Commit e3274067f8

Andrew Kelley <andrew@ziglang.org>
2022-07-04 21:14:48
update macOS libc headers
notably this adds copyfile.h fetch-them-macos-headers rev 900567517197df46e98006c53023fa10cb986004
1 parent 050fef3
Changed files (233)
lib
libc
include
aarch64-macos.11-none
aarch64-macos.12-none
any-macos-any
any-macos.11-any
any-macos.12-any
x86_64-macos.10-none
x86_64-macos.11-none
lib/libc/include/aarch64-macos.11-none/arm/_limits.h
@@ -4,6 +4,10 @@
 #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
lib/libc/include/aarch64-macos.11-none/arm/_mcontext.h
@@ -29,6 +29,8 @@
 #ifndef __ARM_MCONTEXT_H_
 #define __ARM_MCONTEXT_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <sys/cdefs.h> /* __DARWIN_UNIX03 */
 #include <sys/appleapiopts.h>
 #include <mach/machine/_structs.h>
@@ -88,4 +90,6 @@ typedef _STRUCT_MCONTEXT32      *mcontext_t;
 #endif
 #endif /* _MCONTEXT_T */
 
+#endif /* defined (__arm__) || defined (__arm64__) */
+
 #endif /* __ARM_MCONTEXT_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/arm/_param.h
@@ -5,6 +5,8 @@
 #ifndef _ARM__PARAM_H_
 #define _ARM__PARAM_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <arm/_types.h>
 
 /*
@@ -18,5 +20,6 @@
 #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
lib/libc/include/aarch64-macos.11-none/arm/_types.h
@@ -4,6 +4,8 @@
 #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.
@@ -95,4 +97,6 @@ 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
lib/libc/include/aarch64-macos.11-none/arm/arch.h
@@ -28,6 +28,8 @@
 #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
@@ -64,4 +66,6 @@
 #define _ARM_ARCH_4
 #endif
 
+#endif /* defined (__arm__) || defined (__arm64__) */
+
 #endif
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/arm/endian.h
@@ -42,6 +42,8 @@
 #ifndef _ARM__ENDIAN_H_
 #define _ARM__ENDIAN_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <sys/cdefs.h>
 /*
  * Define _NOQUAD if the compiler does NOT support 64-bit integers.
@@ -75,4 +77,5 @@
 #include <sys/_endian.h>
 
 #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
lib/libc/include/aarch64-macos.11-none/arm/limits.h
@@ -39,6 +39,8 @@
 #ifndef _ARM_LIMITS_H_
 #define _ARM_LIMITS_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <sys/cdefs.h>
 #include <arm/_limits.h>
 
@@ -107,4 +109,6 @@
 #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
lib/libc/include/aarch64-macos.11-none/arm/param.h
@@ -48,6 +48,8 @@
 #ifndef _ARM_PARAM_H_
 #define _ARM_PARAM_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <arm/_param.h>
 
 /*
@@ -144,4 +146,6 @@
 #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
lib/libc/include/aarch64-macos.11-none/arm/signal.h
@@ -9,10 +9,14 @@
 #ifndef _ARM_SIGNAL_
 #define _ARM_SIGNAL_ 1
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <sys/cdefs.h>
 
 #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
lib/libc/include/aarch64-macos.11-none/arm/types.h
@@ -39,9 +39,12 @@
  *	@(#)types.h	8.3 (Berkeley) 1/5/94
  */
 
-#ifndef _MACHTYPES_H_
+#ifndef _ARM_MACHTYPES_H_
+#define _ARM_MACHTYPES_H_
 #define _MACHTYPES_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #ifndef __ASSEMBLER__
 #include <arm/_types.h>
 #include <sys/cdefs.h>
@@ -104,4 +107,5 @@ typedef u_int64_t               syscall_arg_t;
 #endif
 
 #endif /* __ASSEMBLER__ */
-#endif  /* _MACHTYPES_H_ */
\ No newline at end of file
+#endif /* defined (__arm__) || defined (__arm64__) */
+#endif  /* _ARM_MACHTYPES_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/mach/arm/_structs.h
@@ -31,6 +31,8 @@
 #ifndef _MACH_ARM__STRUCTS_H_
 #define _MACH_ARM__STRUCTS_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <sys/cdefs.h> /* __DARWIN_UNIX03 */
 #include <machine/types.h> /* __uint32_t */
 
@@ -507,25 +509,6 @@ _STRUCT_ARM_NEON_STATE
 
 #endif /* __DARWIN_UNIX03 */
 
-#if __DARWIN_UNIX03
-#define _STRUCT_ARM_AMX_STATE_V1 struct __darwin_arm_amx_state_v1
-_STRUCT_ARM_AMX_STATE_V1
-{
-	__uint8_t  __x[8][64];        /* 8 64-byte registers */
-	__uint8_t  __y[8][64];        /* 8 64-byte registers */
-	__uint8_t  __z[64][64];       /* 64 64-byte registers in an M-by-N matrix */
-	__uint64_t __amx_state_t_el1; /* AMX_STATE_T_EL1 value */
-} __attribute__((aligned(64)));
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_ARM_AMX_STATE_V1 struct arm_amx_state_v1
-_STRUCT_ARM_AMX_STATE_V1
-{
-	__uint8_t  x[8][64];        /* 8 64-byte registers */
-	__uint8_t  y[8][64];        /* 8 64-byte registers */
-	__uint8_t  z[64][64];       /* 64 64-byte registers in an M-by-N matrix */
-	__uint64_t amx_state_t_el1; /* AMX_STATE_T_EL1 value. */
-} __attribute__((aligned(64)));
-#endif /* __DARWIN_UNIX03 */
 
 #define _STRUCT_ARM_PAGEIN_STATE struct __arm_pagein_state
 _STRUCT_ARM_PAGEIN_STATE
@@ -642,4 +625,6 @@ _STRUCT_ARM_CPMU_STATE64
 };
 #endif /* !__DARWIN_UNIX03 */
 
+#endif /* defined (__arm__) || defined (__arm64__) */
+
 #endif /* _MACH_ARM__STRUCTS_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/mach/arm/boolean.h
@@ -65,6 +65,10 @@
 #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
lib/libc/include/aarch64-macos.11-none/mach/arm/exception.h
@@ -29,6 +29,8 @@
 #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
@@ -75,5 +77,6 @@
 
 #define EXC_ARM_BREAKPOINT      1       /* breakpoint trap */
 
+#endif /* defined (__arm__) || defined (__arm64__) */
 
 #endif  /* _MACH_ARM_EXCEPTION_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/mach/arm/kern_return.h
@@ -67,8 +67,12 @@
 #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
lib/libc/include/aarch64-macos.11-none/mach/arm/processor_info.h
@@ -29,6 +29,8 @@
 #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 */
 
@@ -69,4 +71,6 @@ 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
lib/libc/include/aarch64-macos.11-none/mach/arm/rpc.h
@@ -32,4 +32,8 @@
 #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
lib/libc/include/aarch64-macos.11-none/mach/arm/thread_state.h
@@ -32,13 +32,11 @@
 #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 */
 
-#if defined (__arm__) || defined(__arm64__)
-#define THREAD_STATE_MAX        ARM_THREAD_STATE_MAX
-#else
-#error Unsupported arch
-#endif
+#endif /* defined (__arm__) || defined (__arm64__) */
 
 #endif  /* _MACH_ARM_THREAD_STATE_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/mach/arm/thread_status.h
@@ -33,10 +33,12 @@
 #ifndef _ARM_THREAD_STATUS_H_
 #define _ARM_THREAD_STATUS_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #include <mach/machine/_structs.h>
+#include <mach/machine/thread_state.h>
 #include <mach/message.h>
 #include <mach/vm_types.h>
-#include <mach/arm/thread_state.h>
 
 /*
  *    Support for determining the state of a thread
@@ -67,13 +69,12 @@
 #define ARM_CPMU_STATE64         18
 
 
-/* API */
-#define ARM_AMX_STATE            24
-#define ARM_AMX_STATE_V1         25
-#define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) \
-	((_flavor_) == ARM_AMX_STATE_V1)
 #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) ||              \
@@ -170,7 +171,6 @@ 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_AMX_STATE_V1       arm_amx_state_v1_t;
 
 typedef _STRUCT_ARM_EXCEPTION_STATE   arm_exception_state_t;
 typedef _STRUCT_ARM_EXCEPTION_STATE   arm_exception_state32_t;
@@ -224,26 +224,12 @@ typedef _STRUCT_ARM_LEGACY_DEBUG_STATE arm_debug_state_t;
 #define MACHINE_THREAD_STATE_COUNT ARM_UNIFIED_THREAD_STATE_COUNT
 
 
-struct arm_amx_state {
-	arm_state_hdr_t ash;
-	union {
-		arm_amx_state_v1_t as_v1;
-	} uas;
-};
-#define as_v1 uas.as_v1
-typedef struct arm_amx_state arm_amx_state_t;
-
-#define ARM_AMX_STATE_V1_COUNT ((mach_msg_type_number_t) \
-	(sizeof(arm_amx_state_v1_t)/sizeof(unsigned int)))
-
-#define ARM_AMX_STATE_COUNT ((mach_msg_type_number_t) \
-	(sizeof(arm_amx_state_t)/sizeof(unsigned int)))
-
-
 /*
  * 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
lib/libc/include/aarch64-macos.11-none/mach/arm/vm_param.h
@@ -36,6 +36,8 @@
 #ifndef _MACH_ARM_VM_PARAM_H_
 #define _MACH_ARM_VM_PARAM_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 
 #if !defined (KERNEL) && !defined (__ASSEMBLER__)
 #include <mach/vm_page_size.h>
@@ -104,4 +106,6 @@
 
 #define SWI_SYSCALL     0x80
 
+#endif /* defined (__arm__) || defined (__arm64__) */
+
 #endif  /* _MACH_ARM_VM_PARAM_H_ */
\ No newline at end of file
lib/libc/include/aarch64-macos.11-none/mach/arm/vm_types.h
@@ -67,11 +67,14 @@
 #ifndef _MACH_ARM_VM_TYPES_H_
 #define _MACH_ARM_VM_TYPES_H_
 
+#if defined (__arm__) || defined (__arm64__)
+
 #ifndef ASSEMBLER
 
 #include <arm/_types.h>
 #include <stdint.h>
 #include <Availability.h>
+#include <sys/cdefs.h>
 
 /*
  * natural_t and integer_t are Mach's legacy types for machine-
@@ -98,18 +101,18 @@ typedef int                     integer_t;
  * e.g. an offset into a virtual memory space.
  */
 #ifdef __LP64__
-typedef uintptr_t               vm_offset_t;
+typedef uintptr_t               vm_offset_t __kernel_ptr_semantics;
 typedef uintptr_t               vm_size_t;
 
-typedef uint64_t                mach_vm_address_t;
-typedef uint64_t                mach_vm_offset_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;
-typedef uint64_t                vm_map_address_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;
+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
@@ -129,13 +132,13 @@ 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;
-typedef uint64_t                mach_vm_offset_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;
 #endif
 
-typedef uint32_t                vm_map_offset_t;
-typedef uint32_t                vm_map_address_t;
+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__ */
 
@@ -154,4 +157,6 @@ typedef vm_offset_t             mach_port_context_t;
  */
 #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
lib/libc/include/aarch64-macos.12-none/mach/arm/_structs.h
@@ -184,6 +184,7 @@ _STRUCT_ARM_THREAD_STATE64
 
 #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 0x4
 
 /* Return pc field of arm_thread_state64_t as a data pointer value */
 #define __darwin_arm_thread_state64_get_pc(ts) \
@@ -212,7 +213,9 @@ _STRUCT_ARM_THREAD_STATE64
 	ptrauth_auth_and_resign(__f, ptrauth_key_function_pointer, 0, \
 	ptrauth_key_process_independent_code,                         \
 	ptrauth_string_discriminator("pc")) : ptrauth_auth_data(__f,  \
-	ptrauth_key_function_pointer, 0)) : __f); })
+	ptrauth_key_function_pointer, 0)) : __f);                     \
+	__tsp->__opaque_flags &=                                      \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED; })
 /* 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); \
@@ -243,7 +246,8 @@ _STRUCT_ARM_THREAD_STATE64
 	ptrauth_auth_and_resign(__f, ptrauth_key_function_pointer, 0,          \
 	ptrauth_key_process_independent_code,                                  \
 	ptrauth_string_discriminator("lr"))) : ptrauth_auth_data(__f,          \
-	ptrauth_key_function_pointer, 0)) : __f); })
+	ptrauth_key_function_pointer, 0)) : __f); __tsp->__opaque_flags &=     \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED; })
 /* 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); \
@@ -260,7 +264,9 @@ _STRUCT_ARM_THREAD_STATE64
 	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?             \
 	ptrauth_sign_unauthenticated(__p,                           \
 	ptrauth_key_process_independent_data,                       \
-	ptrauth_string_discriminator("sp")) : __p); })
+	ptrauth_string_discriminator("sp")) : __p);                 \
+	__tsp->__opaque_flags &=                                    \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED; })
 /* 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); \
@@ -277,7 +283,9 @@ _STRUCT_ARM_THREAD_STATE64
 	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?             \
 	ptrauth_sign_unauthenticated(__p,                           \
 	ptrauth_key_process_independent_data,                       \
-	ptrauth_string_discriminator("fp")) : __p); })
+	ptrauth_string_discriminator("fp")) : __p);                 \
+	__tsp->__opaque_flags &=                                    \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED; })
 
 /* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
 #define __darwin_arm_thread_state64_ptrauth_strip(ts) \
@@ -296,7 +304,8 @@ _STRUCT_ARM_THREAD_STATE64
 	__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; })
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH; __tsp->__opaque_flags &=    \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED; })
 
 #else /* __has_feature(ptrauth_calls) && defined(__LP64__) */
 
lib/libc/include/aarch64-macos.12-none/mach/arm/vm_param.h
@@ -39,6 +39,7 @@
 #if defined (__arm__) || defined (__arm64__)
 
 
+
 #if !defined (KERNEL) && !defined (__ASSEMBLER__)
 #include <mach/vm_page_size.h>
 #endif
lib/libc/include/any-macos-any/device/device_types.h
@@ -70,6 +70,7 @@
 #include <mach/mach_types.h>
 #include <mach/message.h>
 #include <mach/port.h>
+#include <stdint.h>
 
 
 
@@ -82,7 +83,6 @@ typedef char *  io_buf_ptr_t;
  * Some types for IOKit.
  */
 
-#ifdef IOKIT
 
 /* must match device_types.defs */
 typedef char                    io_name_t[128];
@@ -113,6 +113,5 @@ typedef mach_port_t     io_object_t;
 #endif  /* __IOKIT_PORTS_DEFINED__ */
 
 
-#endif  /* IOKIT */
 
 #endif  /* DEVICE_TYPES_H */
\ No newline at end of file
lib/libc/include/any-macos-any/dispatch/base.h
@@ -127,6 +127,33 @@
 #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__
lib/libc/include/any-macos.12-any/mach/machine/thread_state.h → lib/libc/include/any-macos-any/mach/machine/thread_state.h
File renamed without changes
lib/libc/include/any-macos-any/mach/clock.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	clock_MSG_COUNT	3
 #endif	/* clock_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos-any/mach/clock_priv.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	clock_priv_MSG_COUNT	2
 #endif	/* clock_priv_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/exception_types.h → lib/libc/include/any-macos-any/mach/exception_types.h
File renamed without changes
lib/libc/include/any-macos-any/mach/host_priv.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	host_priv_MSG_COUNT	26
 #endif	/* host_priv_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos-any/mach/host_security.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	host_security_MSG_COUNT	2
 #endif	/* host_security_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/kern_return.h → lib/libc/include/any-macos-any/mach/kern_return.h
File renamed without changes
lib/libc/include/any-macos-any/mach/lock_set.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	lock_set_MSG_COUNT	6
 #endif	/* lock_set_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos-any/mach/mach.h
@@ -85,10 +85,6 @@ __BEGIN_DECLS
 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 **,
lib/libc/include/any-macos-any/mach/mach_host.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	mach_host_MSG_COUNT	35
 #endif	/* mach_host_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
@@ -74,8 +75,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_info
 (
 	host_t host,
@@ -251,8 +251,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_request_notification
 (
 	host_t host,
@@ -308,8 +307,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_create_mach_voucher
 (
 	host_t host,
@@ -324,8 +322,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_register_mach_voucher_attr_manager
 (
 	host_t host,
@@ -341,8 +338,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_register_well_known_mach_voucher_attr_manager
 (
 	host_t host,
@@ -358,8 +354,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_set_atm_diagnostic_flag
 (
 	host_t host,
@@ -372,8 +367,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t host_get_atm_diagnostic_flag
 (
 	host_t host,
lib/libc/include/any-macos.12-any/mach/mach_port.h → lib/libc/include/any-macos-any/mach/mach_port.h
File renamed without changes
lib/libc/include/any-macos-any/mach/mach_voucher_types.h
@@ -31,6 +31,7 @@
 
 #include <mach/std_types.h>
 #include <mach/port.h>
+#include <mach/message.h>
 
 /*
  * Mach Voucher - an immutable collection of attribute value handles.
@@ -212,7 +213,7 @@ typedef mach_port_t             ipc_voucher_attr_control_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 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;
lib/libc/include/any-macos.12-any/mach/machine.h → lib/libc/include/any-macos-any/mach/machine.h
File renamed without changes
lib/libc/include/any-macos.12-any/mach/message.h → lib/libc/include/any-macos-any/mach/message.h
File renamed without changes
lib/libc/include/any-macos-any/mach/mig.h
@@ -151,7 +151,6 @@ typedef struct mig_symtab {
 #define MIG_SERVER_ROUTINE
 #endif
 
-
 __BEGIN_DECLS
 
 /* Client side reply port allocate */
lib/libc/include/any-macos.12-any/mach/port.h → lib/libc/include/any-macos-any/mach/port.h
File renamed without changes
lib/libc/include/any-macos-any/mach/processor.h
@@ -52,6 +52,7 @@ typedef function_table_entry   *function_table_t;
 #define	processor_MSG_COUNT	6
 #endif	/* processor_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/processor_set.h → lib/libc/include/any-macos-any/mach/processor_set.h
File renamed without changes
lib/libc/include/any-macos-any/mach/sync_policy.h
@@ -44,6 +44,4 @@ typedef int sync_policy_t;
 #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
lib/libc/include/any-macos-any/mach/task_inspect.h
@@ -29,6 +29,9 @@
 #ifndef MACH_TASK_INSPECT_H
 #define MACH_TASK_INSPECT_H
 
+#include <stdint.h>
+#include <mach/vm_types.h>
+
 /*
  * XXX These interfaces are still in development -- they are subject to change
  * without notice.
lib/libc/include/any-macos.12-any/mach/task_special_ports.h → lib/libc/include/any-macos-any/mach/task_special_ports.h
File renamed without changes
lib/libc/include/any-macos.12-any/mach/thread_act.h → lib/libc/include/any-macos-any/mach/thread_act.h
File renamed without changes
lib/libc/include/any-macos-any/mach/thread_policy.h
@@ -131,7 +131,11 @@ typedef struct thread_extended_policy   *thread_extended_policy_t;
  *
  * computation: This is the nominal amount of computation
  * time needed during a separate processing arrival, specified
- * in absolute time units.
+ * 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
@@ -139,11 +143,11 @@ typedef struct thread_extended_policy   *thread_extended_policy_t;
  * 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.
+ * preemptible: IGNORED (This indicates that the computation may be
+ * interrupted, subject to the constraint specified above.)
  */
 
-#define THREAD_TIME_CONSTRAINT_POLICY   2
+#define THREAD_TIME_CONSTRAINT_POLICY           2
 
 struct thread_time_constraint_policy {
 	uint32_t                period;
lib/libc/include/any-macos-any/mach/thread_state.h
@@ -32,7 +32,6 @@
 #include <Availability.h>
 #include <mach/mach.h>
 
-#ifndef KERNEL
 /*
  * Gets all register values in the target thread with pointer-like contents.
  *
@@ -58,6 +57,5 @@
 __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
lib/libc/include/any-macos.12-any/mach/vm_map.h → lib/libc/include/any-macos-any/mach/vm_map.h
File renamed without changes
lib/libc/include/any-macos.12-any/mach/vm_prot.h → lib/libc/include/any-macos-any/mach/vm_prot.h
File renamed without changes
lib/libc/include/any-macos.12-any/mach/vm_statistics.h → lib/libc/include/any-macos-any/mach/vm_statistics.h
File renamed without changes
lib/libc/include/any-macos.12-any/mach/vm_types.h → lib/libc/include/any-macos-any/mach/vm_types.h
File renamed without changes
lib/libc/include/any-macos-any/mach_debug/mach_debug_types.h
@@ -69,12 +69,51 @@
 #include <mach_debug/hash_info.h>
 #include <mach_debug/lockgroup_info.h>
 
-#define MACH_CORE_FILEHEADER_SIGNATURE  0x0063614d20646152ULL
+#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 */
+
 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;
@@ -82,13 +121,78 @@ struct mach_core_details {
 };
 
 struct mach_core_fileheader {
-	uint64_t signature;
+	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 compressed. Possibly in an AEA container]     | <---+
+ * [core #2 data. Zlib 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];
 
lib/libc/include/any-macos.12-any/machine/_mcontext.h → lib/libc/include/any-macos-any/machine/_mcontext.h
File renamed without changes
lib/libc/include/any-macos.12-any/machine/_param.h → lib/libc/include/any-macos-any/machine/_param.h
File renamed without changes
lib/libc/include/any-macos.12-any/machine/limits.h → lib/libc/include/any-macos-any/machine/limits.h
File renamed without changes
lib/libc/include/any-macos.12-any/malloc/malloc.h → lib/libc/include/any-macos-any/malloc/malloc.h
File renamed without changes
lib/libc/include/any-macos-any/net/net_kev.h
@@ -74,7 +74,7 @@
 #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_PRIMARY_ELECTED                  23
 #define KEV_DL_ISSUES                           24
 #define KEV_DL_IFDELEGATE_CHANGED               25
 #define KEV_DL_AWDL_RESTRICTED                  26
@@ -83,6 +83,8 @@
 #define KEV_DL_QOS_MODE_CHANGED                 29
 #define KEV_DL_LOW_POWER_MODE_CHANGED           30
 
+#define KEV_DL_MASTER_ELECTED (_Pragma("gcc warn Use KEV_DL_PRIMARY_ELECTED instead") KEV_DL_PRIMARY_ELECTED)
+
 
 #define KEV_INET6_SUBCLASS      6       /* inet6 subclass */
 /* KEV_INET6_SUBCLASS event codes */
lib/libc/include/any-macos.12-any/netinet6/in6.h → lib/libc/include/any-macos-any/netinet6/in6.h
File renamed without changes
lib/libc/include/any-macos-any/objc/message.h
@@ -316,73 +316,4 @@ _objc_msgForward_stret(id _Nonnull receiver, SEL _Nonnull sel, ...)
     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
lib/libc/include/any-macos-any/objc/NSObjCRuntime.h
@@ -8,7 +8,7 @@
 #include <TargetConditionals.h>
 #include <objc/objc.h>
 
-#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
+#if __LP64__ || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
 typedef long NSInteger;
 typedef unsigned long NSUInteger;
 #else
lib/libc/include/any-macos.12-any/objc/objc-api.h → lib/libc/include/any-macos-any/objc/objc-api.h
File renamed without changes
lib/libc/include/any-macos.12-any/os/base.h → lib/libc/include/any-macos-any/os/base.h
File renamed without changes
lib/libc/include/any-macos-any/simd/base.h
@@ -41,7 +41,14 @@
  *  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   || \
+#   if   __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   || \
lib/libc/include/any-macos.12-any/simd/common.h → lib/libc/include/any-macos-any/simd/common.h
File renamed without changes
lib/libc/include/any-macos.12-any/simd/conversion.h → lib/libc/include/any-macos-any/simd/conversion.h
File renamed without changes
lib/libc/include/any-macos.12-any/simd/math.h → lib/libc/include/any-macos-any/simd/math.h
File renamed without changes
lib/libc/include/any-macos-any/simd/matrix.h
@@ -24,6 +24,10 @@
  *
  *      simd_transpose(x)               Transpose of the matrix x.
  *
+ *      simd_trace(x)                   Trace of the matrix x.
+ *
+ *      simd_determinant(x)             Determinant of the matrix x.
+ *
  *      simd_inverse(x)                 Inverse of x if x is non-singular.  If
  *                                      x is singular, the result is undefined.
  *
@@ -248,6 +252,14 @@ 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_trace(simd_float2x2 __x);
+static float SIMD_CFUNC simd_trace(simd_float3x3 __x);
+static float SIMD_CFUNC simd_trace(simd_float4x4 __x);
+static double SIMD_CFUNC simd_trace(simd_double2x2 __x);
+static double SIMD_CFUNC simd_trace(simd_double3x3 __x);
+static double SIMD_CFUNC simd_trace(simd_double4x4 __x);
+#define matrix_trace simd_trace
+
 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);
@@ -468,7 +480,11 @@ namespace simd {
   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 trace(const float2x2 x) { return ::simd_trace(x); }
+  static SIMD_CPPFUNC float trace(const float3x3 x) { return ::simd_trace(x); }
+  static SIMD_CPPFUNC float trace(const float4x4 x) { return ::simd_trace(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); }
@@ -656,7 +672,11 @@ namespace simd {
   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 trace(const double2x2 x) { return ::simd_trace(x); }
+  static SIMD_CPPFUNC double trace(const double3x3 x) { return ::simd_trace(x); }
+  static SIMD_CPPFUNC double trace(const double4x4 x) { return ::simd_trace(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); }
@@ -1292,6 +1312,13 @@ static simd_double4 SIMD_CFUNC __rotate1(simd_double4 __x) { return __builtin_sh
 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_trace( simd_float2x2 __x) { return __x.columns[0][0] + __x.columns[1][1]; }
+static double SIMD_CFUNC simd_trace(simd_double2x2 __x) { return __x.columns[0][0] + __x.columns[1][1]; }
+static  float SIMD_CFUNC simd_trace( simd_float3x3 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2]; }
+static double SIMD_CFUNC simd_trace(simd_double3x3 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2]; }
+static  float SIMD_CFUNC simd_trace( simd_float4x4 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2] + __x.columns[3][3]; }
+static double SIMD_CFUNC simd_trace(simd_double4x4 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2] + __x.columns[3][3]; }
+
 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]))); }
lib/libc/include/any-macos-any/simd/matrix_types.h
@@ -30,6 +30,7 @@
 #define SIMD_MATRIX_TYPES_HEADER
 
 #include <simd/types.h>
+#include <simd/vector_make.h>
 #if SIMD_COMPILER_HAS_REQUIRED_FEATURES
 
 /*  Matrix types available in C, Objective-C, and C++                         */
@@ -258,6 +259,234 @@ namespace simd {
     double4x4(::simd_quatd q) : ::simd_double4x4(::simd_matrix4x4(q)) { }
 #endif
   };
+
+/*! @abstract Templated Matrix struct based on scalar type and number of columns and rows.  */
+template <typename ScalarType, size_t col, size_t row> struct Matrix {
+    //  static const size_t col
+    //  static const size_t row
+    //  typedef scalar_t
+    //  typedef type
+};
+/*! @abstract Helper type to access the simd type easily.                     */
+template <typename ScalarType, size_t col, size_t row>
+using Matrix_t = typename Matrix<ScalarType, col, row>::type;
+
+template<> struct Matrix<float, 2, 2> {
+    static const size_t col = 2;
+    static const size_t row = 2;
+    typedef float scalar_t;
+    typedef float2x2 type;
+};
+
+template<> struct Matrix<float, 3, 2> {
+    static const size_t col = 3;
+    static const size_t row = 2;
+    typedef float scalar_t;
+    typedef float3x2 type;
+};
+
+template<> struct Matrix<float, 4, 2> {
+    static const size_t col = 4;
+    static const size_t row = 2;
+    typedef float scalar_t;
+    typedef float4x2 type;
+};
+
+template<> struct Matrix<float, 2, 3> {
+    static const size_t col = 2;
+    static const size_t row = 3;
+    typedef float scalar_t;
+    typedef float2x3 type;
+};
+
+template<> struct Matrix<float, 3, 3> {
+    static const size_t col = 3;
+    static const size_t row = 3;
+    typedef float scalar_t;
+    typedef float3x3 type;
+};
+
+template<> struct Matrix<float, 4, 3> {
+    static const size_t col = 4;
+    static const size_t row = 3;
+    typedef float scalar_t;
+    typedef float4x3 type;
+};
+
+template<> struct Matrix<float, 2, 4> {
+    static const size_t col = 2;
+    static const size_t row = 4;
+    typedef float scalar_t;
+    typedef float2x4 type;
+};
+
+template<> struct Matrix<float, 3, 4> {
+    static const size_t col = 3;
+    static const size_t row = 4;
+    typedef float scalar_t;
+    typedef float3x4 type;
+};
+
+template<> struct Matrix<float, 4, 4> {
+    static const size_t col = 4;
+    static const size_t row = 4;
+    typedef float scalar_t;
+    typedef float4x4 type;
+};
+
+template<> struct Matrix<double, 2, 2> {
+    static const size_t col = 2;
+    static const size_t row = 2;
+    typedef double scalar_t;
+    typedef double2x2 type;
+};
+
+template<> struct Matrix<double, 3, 2> {
+    static const size_t col = 3;
+    static const size_t row = 2;
+    typedef double scalar_t;
+    typedef double3x2 type;
+};
+
+template<> struct Matrix<double, 4, 2> {
+    static const size_t col = 4;
+    static const size_t row = 2;
+    typedef double scalar_t;
+    typedef double4x2 type;
+};
+
+template<> struct Matrix<double, 2, 3> {
+    static const size_t col = 2;
+    static const size_t row = 3;
+    typedef double scalar_t;
+    typedef double2x3 type;
+};
+
+template<> struct Matrix<double, 3, 3> {
+    static const size_t col = 3;
+    static const size_t row = 3;
+    typedef double scalar_t;
+    typedef double3x3 type;
+};
+
+template<> struct Matrix<double, 4, 3> {
+    static const size_t col = 4;
+    static const size_t row = 3;
+    typedef double scalar_t;
+    typedef double4x3 type;
+};
+
+template<> struct Matrix<double, 2, 4> {
+    static const size_t col = 2;
+    static const size_t row = 4;
+    typedef double scalar_t;
+    typedef double2x4 type;
+};
+
+template<> struct Matrix<double, 3, 4> {
+    static const size_t col = 3;
+    static const size_t row = 4;
+    typedef double scalar_t;
+    typedef double3x4 type;
+};
+
+template<> struct Matrix<double, 4, 4> {
+    static const size_t col = 4;
+    static const size_t row = 4;
+    typedef double scalar_t;
+    typedef double4x4 type;
+};
+
+template <> struct get_traits<float2x2>
+{
+    using type = Matrix<float, 2, 2>;
+};
+
+template <> struct get_traits<float3x2>
+{
+    using type = Matrix<float, 3, 2>;
+};
+
+template <> struct get_traits<float4x2>
+{
+    using type = Matrix<float, 4, 2>;
+};
+
+template <> struct get_traits<float2x3>
+{
+    using type = Matrix<float, 2, 3>;
+};
+
+template <> struct get_traits<float3x3>
+{
+    using type = Matrix<float, 3, 3>;
+};
+
+template <> struct get_traits<float4x3>
+{
+    using type = Matrix<float, 4, 3>;
+};
+
+template <> struct get_traits<float2x4>
+{
+    using type = Matrix<float, 2, 4>;
+};
+
+template <> struct get_traits<float3x4>
+{
+    using type = Matrix<float, 3, 4>;
+};
+
+template <> struct get_traits<float4x4>
+{
+    using type = Matrix<float, 4, 4>;
+};
+
+template <> struct get_traits<double2x2>
+{
+    using type = Matrix<double, 2, 2>;
+};
+
+template <> struct get_traits<double3x2>
+{
+    using type = Matrix<double, 3, 2>;
+};
+
+template <> struct get_traits<double4x2>
+{
+    using type = Matrix<double, 4, 2>;
+};
+
+template <> struct get_traits<double2x3>
+{
+    using type = Matrix<double, 2, 3>;
+};
+
+template <> struct get_traits<double3x3>
+{
+    using type = Matrix<double, 3, 3>;
+};
+
+template <> struct get_traits<double4x3>
+{
+    using type = Matrix<double, 4, 3>;
+};
+
+template <> struct get_traits<double2x4>
+{
+    using type = Matrix<double, 2, 4>;
+};
+
+template <> struct get_traits<double3x4>
+{
+    using type = Matrix<double, 3, 4>;
+};
+
+template <> struct get_traits<double4x4>
+{
+    using type = Matrix<double, 4, 4>;
+};
+
 }
 #endif /* __cplusplus */
 #endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
lib/libc/include/any-macos.12-any/simd/quaternion.h → lib/libc/include/any-macos-any/simd/quaternion.h
File renamed without changes
lib/libc/include/any-macos-any/simd/vector_make.h
@@ -34,6 +34,35 @@
  *  simd_float3 vector = simd_make_float3(ab, 3);
  *  ~~~
  *
+ *  In C++ the above functions are templated in the simd:: namespace.
+ *
+ *      C++ Function                            Equivalent C Function
+ *      -------------------------------------------------------------------
+ *      simd::make<simd::typeN>(x ...)          simd_make_typeN(x ...)
+ *      simd::make_undef<simd::typeN>(x ...)    simd_make_typeN_undef(x ...)
+ *
+ *
+ *  In addition, templated Vector<ScalarType, count> struct is available for
+ *  templated code based on the scalar type.
+ *
+ *      template <typename ScalarType, size_t count> struct simd::Vector {
+ *        //  static const size_t count
+ *        //  typedef scalar_t
+ *        //  typedef type
+ *        //  typedef packed_t
+ *      };
+ *
+ *  Lookup the equivalent Vector struct according to typeN:
+ *      template <typename typeN> struct simd::get_traits
+ *      {
+ *      //    using type = Vector<ScalarType, count>;
+ *      };
+ *
+ *  This is commonly used to get the type traits of typeN, so a helper type,
+ *  namely traits, is available to query the type traits easily.
+ *      simd::traits<typeN>::count
+ *      simd::traits<typeN>::scalar_t
+ *
  *  @copyright 2014-2016 Apple, Inc. All rights reserved.
  *  @unsorted                                                                 */
 
@@ -5278,6 +5307,9 @@ static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double8 other) {
 #ifdef __cplusplus
 } /* extern "C" */
 
+#include <tuple>
+#include <simd/packed.h>
+
 namespace simd {
 /*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit signed
  *  (twos-complement) integers.                                               */
@@ -6762,6 +6794,1080 @@ template <typename typeN> static SIMD_CPPFUNC double8 make_double8_undef(typeN o
   return ::simd_make_double8_undef(other);
 }
 
+/*! @struct Vector
+ *  @abstract Templated Vector struct based on scalar type and number of
+ *  elements
+ *  @field count Number of elements in the vector
+ *  @field scalar_t The scalar type of each element
+ *  @field type The inferred simd::typeN type
+ *  @field packed_t The inferred simd::packed::typeN type
+ *  @field mask_t The return type of comparison operations                    */
+template <typename ScalarType, size_t count> struct Vector {
+  //  static const size_t count
+  //  typedef scalar_t
+  //  typedef type
+  //  typedef packed_t
+  //  typedef mask_t
+};
+/*! @abstract Helper type to access the simd type easily.                     */
+template <typename ScalarType, size_t count>
+using Vector_t = typename Vector<ScalarType, count>::type;
+
+/*! @abstract Look up the equivalent Vector struct according to the simd
+ *  type.                                                                     */
+template <typename typeN> struct get_traits
+{
+//    using type = Vector<ScalarType, count>;
+};
+/*! @abstract Helper type to access the Vector struct easily.
+ *  @discussion This is commonly used to query the type traits of a simd
+ *  type.
+ *  For example, simd::traits<simd::float4>::count is 4.                      */
+template<typename typeN>
+using traits = typename get_traits<typeN>::type;
+
+template<> struct Vector<char1, 1> {
+  static const size_t count = 1;
+  typedef char1 scalar_t;
+  typedef char1 type;
+  typedef char1 mask_t;
+};
+
+template <> struct get_traits<char1>
+{
+    using type = Vector<char1, 1>;
+};
+
+template<> struct Vector<char1, 2> {
+  static const size_t count = 2;
+  typedef char1 scalar_t;
+  typedef char2 type;
+  typedef packed::char2 packed_t;
+  typedef char2 mask_t;
+};
+
+template <> struct get_traits<char2>
+{
+    using type = Vector<char1, 2>;
+};
+
+template<> struct Vector<char1, 3> {
+  static const size_t count = 3;
+  typedef char1 scalar_t;
+  typedef char3 type;
+  typedef char3 mask_t;
+};
+
+template <> struct get_traits<char3>
+{
+    using type = Vector<char1, 3>;
+};
+
+template<> struct Vector<char1, 4> {
+  static const size_t count = 4;
+  typedef char1 scalar_t;
+  typedef char4 type;
+  typedef packed::char4 packed_t;
+  typedef char4 mask_t;
+};
+
+template <> struct get_traits<char4>
+{
+    using type = Vector<char1, 4>;
+};
+
+template<> struct Vector<char1, 8> {
+  static const size_t count = 8;
+  typedef char1 scalar_t;
+  typedef char8 type;
+  typedef packed::char8 packed_t;
+  typedef char8 mask_t;
+};
+
+template <> struct get_traits<char8>
+{
+    using type = Vector<char1, 8>;
+};
+
+template<> struct Vector<char1, 16> {
+  static const size_t count = 16;
+  typedef char1 scalar_t;
+  typedef char16 type;
+  typedef packed::char16 packed_t;
+  typedef char16 mask_t;
+};
+
+template <> struct get_traits<char16>
+{
+    using type = Vector<char1, 16>;
+};
+
+template<> struct Vector<char1, 32> {
+  static const size_t count = 32;
+  typedef char1 scalar_t;
+  typedef char32 type;
+  typedef packed::char32 packed_t;
+  typedef char32 mask_t;
+};
+
+template <> struct get_traits<char32>
+{
+    using type = Vector<char1, 32>;
+};
+
+template<> struct Vector<char1, 64> {
+  static const size_t count = 64;
+  typedef char1 scalar_t;
+  typedef char64 type;
+  typedef packed::char64 packed_t;
+  typedef char64 mask_t;
+};
+
+template <> struct get_traits<char64>
+{
+    using type = Vector<char1, 64>;
+};
+
+template<> struct Vector<uchar1, 1> {
+  static const size_t count = 1;
+  typedef uchar1 scalar_t;
+  typedef uchar1 type;
+  typedef char1 mask_t;
+};
+
+template <> struct get_traits<uchar1>
+{
+    using type = Vector<uchar1, 1>;
+};
+
+template<> struct Vector<uchar1, 2> {
+  static const size_t count = 2;
+  typedef uchar1 scalar_t;
+  typedef uchar2 type;
+  typedef packed::uchar2 packed_t;
+  typedef char2 mask_t;
+};
+
+template <> struct get_traits<uchar2>
+{
+    using type = Vector<uchar1, 2>;
+};
+
+template<> struct Vector<uchar1, 3> {
+  static const size_t count = 3;
+  typedef uchar1 scalar_t;
+  typedef uchar3 type;
+  typedef char3 mask_t;
+};
+
+template <> struct get_traits<uchar3>
+{
+    using type = Vector<uchar1, 3>;
+};
+
+template<> struct Vector<uchar1, 4> {
+  static const size_t count = 4;
+  typedef uchar1 scalar_t;
+  typedef uchar4 type;
+  typedef packed::uchar4 packed_t;
+  typedef char4 mask_t;
+};
+
+template <> struct get_traits<uchar4>
+{
+    using type = Vector<uchar1, 4>;
+};
+
+template<> struct Vector<uchar1, 8> {
+  static const size_t count = 8;
+  typedef uchar1 scalar_t;
+  typedef uchar8 type;
+  typedef packed::uchar8 packed_t;
+  typedef char8 mask_t;
+};
+
+template <> struct get_traits<uchar8>
+{
+    using type = Vector<uchar1, 8>;
+};
+
+template<> struct Vector<uchar1, 16> {
+  static const size_t count = 16;
+  typedef uchar1 scalar_t;
+  typedef uchar16 type;
+  typedef packed::uchar16 packed_t;
+  typedef char16 mask_t;
+};
+
+template <> struct get_traits<uchar16>
+{
+    using type = Vector<uchar1, 16>;
+};
+
+template<> struct Vector<uchar1, 32> {
+  static const size_t count = 32;
+  typedef uchar1 scalar_t;
+  typedef uchar32 type;
+  typedef packed::uchar32 packed_t;
+  typedef char32 mask_t;
+};
+
+template <> struct get_traits<uchar32>
+{
+    using type = Vector<uchar1, 32>;
+};
+
+template<> struct Vector<uchar1, 64> {
+  static const size_t count = 64;
+  typedef uchar1 scalar_t;
+  typedef uchar64 type;
+  typedef packed::uchar64 packed_t;
+  typedef char64 mask_t;
+};
+
+template <> struct get_traits<uchar64>
+{
+    using type = Vector<uchar1, 64>;
+};
+
+template<> struct Vector<short1, 1> {
+  static const size_t count = 1;
+  typedef short1 scalar_t;
+  typedef short1 type;
+  typedef short1 mask_t;
+};
+
+template <> struct get_traits<short1>
+{
+    using type = Vector<short1, 1>;
+};
+
+template<> struct Vector<short1, 2> {
+  static const size_t count = 2;
+  typedef short1 scalar_t;
+  typedef short2 type;
+  typedef packed::short2 packed_t;
+  typedef short2 mask_t;
+};
+
+template <> struct get_traits<short2>
+{
+    using type = Vector<short1, 2>;
+};
+
+template<> struct Vector<short1, 3> {
+  static const size_t count = 3;
+  typedef short1 scalar_t;
+  typedef short3 type;
+  typedef short3 mask_t;
+};
+
+template <> struct get_traits<short3>
+{
+    using type = Vector<short1, 3>;
+};
+
+template<> struct Vector<short1, 4> {
+  static const size_t count = 4;
+  typedef short1 scalar_t;
+  typedef short4 type;
+  typedef packed::short4 packed_t;
+  typedef short4 mask_t;
+};
+
+template <> struct get_traits<short4>
+{
+    using type = Vector<short1, 4>;
+};
+
+template<> struct Vector<short1, 8> {
+  static const size_t count = 8;
+  typedef short1 scalar_t;
+  typedef short8 type;
+  typedef packed::short8 packed_t;
+  typedef short8 mask_t;
+};
+
+template <> struct get_traits<short8>
+{
+    using type = Vector<short1, 8>;
+};
+
+template<> struct Vector<short1, 16> {
+  static const size_t count = 16;
+  typedef short1 scalar_t;
+  typedef short16 type;
+  typedef packed::short16 packed_t;
+  typedef short16 mask_t;
+};
+
+template <> struct get_traits<short16>
+{
+    using type = Vector<short1, 16>;
+};
+
+template<> struct Vector<short1, 32> {
+  static const size_t count = 32;
+  typedef short1 scalar_t;
+  typedef short32 type;
+  typedef packed::short32 packed_t;
+  typedef short32 mask_t;
+};
+
+template <> struct get_traits<short32>
+{
+    using type = Vector<short1, 32>;
+};
+
+template<> struct Vector<ushort1, 1> {
+  static const size_t count = 1;
+  typedef ushort1 scalar_t;
+  typedef ushort1 type;
+  typedef short1 mask_t;
+};
+
+template <> struct get_traits<ushort1>
+{
+    using type = Vector<ushort1, 1>;
+};
+
+template<> struct Vector<ushort1, 2> {
+  static const size_t count = 2;
+  typedef ushort1 scalar_t;
+  typedef ushort2 type;
+  typedef packed::ushort2 packed_t;
+  typedef short2 mask_t;
+};
+
+template <> struct get_traits<ushort2>
+{
+    using type = Vector<ushort1, 2>;
+};
+
+template<> struct Vector<ushort1, 3> {
+  static const size_t count = 3;
+  typedef ushort1 scalar_t;
+  typedef ushort3 type;
+  typedef short3 mask_t;
+};
+
+template <> struct get_traits<ushort3>
+{
+    using type = Vector<ushort1, 3>;
+};
+
+template<> struct Vector<ushort1, 4> {
+  static const size_t count = 4;
+  typedef ushort1 scalar_t;
+  typedef ushort4 type;
+  typedef packed::ushort4 packed_t;
+  typedef short4 mask_t;
+};
+
+template <> struct get_traits<ushort4>
+{
+    using type = Vector<ushort1, 4>;
+};
+
+template<> struct Vector<ushort1, 8> {
+  static const size_t count = 8;
+  typedef ushort1 scalar_t;
+  typedef ushort8 type;
+  typedef packed::ushort8 packed_t;
+  typedef short8 mask_t;
+};
+
+template <> struct get_traits<ushort8>
+{
+    using type = Vector<ushort1, 8>;
+};
+
+template<> struct Vector<ushort1, 16> {
+  static const size_t count = 16;
+  typedef ushort1 scalar_t;
+  typedef ushort16 type;
+  typedef packed::ushort16 packed_t;
+  typedef short16 mask_t;
+};
+
+template <> struct get_traits<ushort16>
+{
+    using type = Vector<ushort1, 16>;
+};
+
+template<> struct Vector<ushort1, 32> {
+  static const size_t count = 32;
+  typedef ushort1 scalar_t;
+  typedef ushort32 type;
+  typedef packed::ushort32 packed_t;
+  typedef short32 mask_t;
+};
+
+template <> struct get_traits<ushort32>
+{
+    using type = Vector<ushort1, 32>;
+};
+
+template<> struct Vector<int1, 1> {
+  static const size_t count = 1;
+  typedef int1 scalar_t;
+  typedef int1 type;
+  typedef int1 mask_t;
+};
+
+template <> struct get_traits<int1>
+{
+    using type = Vector<int1, 1>;
+};
+
+template<> struct Vector<int1, 2> {
+  static const size_t count = 2;
+  typedef int1 scalar_t;
+  typedef int2 type;
+  typedef packed::int2 packed_t;
+  typedef int2 mask_t;
+};
+
+template <> struct get_traits<int2>
+{
+    using type = Vector<int1, 2>;
+};
+
+template<> struct Vector<int1, 3> {
+  static const size_t count = 3;
+  typedef int1 scalar_t;
+  typedef int3 type;
+  typedef int3 mask_t;
+};
+
+template <> struct get_traits<int3>
+{
+    using type = Vector<int1, 3>;
+};
+
+template<> struct Vector<int1, 4> {
+  static const size_t count = 4;
+  typedef int1 scalar_t;
+  typedef int4 type;
+  typedef packed::int4 packed_t;
+  typedef int4 mask_t;
+};
+
+template <> struct get_traits<int4>
+{
+    using type = Vector<int1, 4>;
+};
+
+template<> struct Vector<int1, 8> {
+  static const size_t count = 8;
+  typedef int1 scalar_t;
+  typedef int8 type;
+  typedef packed::int8 packed_t;
+  typedef int8 mask_t;
+};
+
+template <> struct get_traits<int8>
+{
+    using type = Vector<int1, 8>;
+};
+
+template<> struct Vector<int1, 16> {
+  static const size_t count = 16;
+  typedef int1 scalar_t;
+  typedef int16 type;
+  typedef packed::int16 packed_t;
+  typedef int16 mask_t;
+};
+
+template <> struct get_traits<int16>
+{
+    using type = Vector<int1, 16>;
+};
+
+template<> struct Vector<uint1, 1> {
+  static const size_t count = 1;
+  typedef uint1 scalar_t;
+  typedef uint1 type;
+  typedef int1 mask_t;
+};
+
+template <> struct get_traits<uint1>
+{
+    using type = Vector<uint1, 1>;
+};
+
+template<> struct Vector<uint1, 2> {
+  static const size_t count = 2;
+  typedef uint1 scalar_t;
+  typedef uint2 type;
+  typedef packed::uint2 packed_t;
+  typedef int2 mask_t;
+};
+
+template <> struct get_traits<uint2>
+{
+    using type = Vector<uint1, 2>;
+};
+
+template<> struct Vector<uint1, 3> {
+  static const size_t count = 3;
+  typedef uint1 scalar_t;
+  typedef uint3 type;
+  typedef int3 mask_t;
+};
+
+template <> struct get_traits<uint3>
+{
+    using type = Vector<uint1, 3>;
+};
+
+template<> struct Vector<uint1, 4> {
+  static const size_t count = 4;
+  typedef uint1 scalar_t;
+  typedef uint4 type;
+  typedef packed::uint4 packed_t;
+  typedef int4 mask_t;
+};
+
+template <> struct get_traits<uint4>
+{
+    using type = Vector<uint1, 4>;
+};
+
+template<> struct Vector<uint1, 8> {
+  static const size_t count = 8;
+  typedef uint1 scalar_t;
+  typedef uint8 type;
+  typedef packed::uint8 packed_t;
+  typedef int8 mask_t;
+};
+
+template <> struct get_traits<uint8>
+{
+    using type = Vector<uint1, 8>;
+};
+
+template<> struct Vector<uint1, 16> {
+  static const size_t count = 16;
+  typedef uint1 scalar_t;
+  typedef uint16 type;
+  typedef packed::uint16 packed_t;
+  typedef int16 mask_t;
+};
+
+template <> struct get_traits<uint16>
+{
+    using type = Vector<uint1, 16>;
+};
+
+template<> struct Vector<float1, 1> {
+  static const size_t count = 1;
+  typedef float1 scalar_t;
+  typedef float1 type;
+  typedef int1 mask_t;
+};
+
+template <> struct get_traits<float1>
+{
+    using type = Vector<float1, 1>;
+};
+
+template<> struct Vector<float1, 2> {
+  static const size_t count = 2;
+  typedef float1 scalar_t;
+  typedef float2 type;
+  typedef packed::float2 packed_t;
+  typedef int2 mask_t;
+};
+
+template <> struct get_traits<float2>
+{
+    using type = Vector<float1, 2>;
+};
+
+template<> struct Vector<float1, 3> {
+  static const size_t count = 3;
+  typedef float1 scalar_t;
+  typedef float3 type;
+  typedef int3 mask_t;
+};
+
+template <> struct get_traits<float3>
+{
+    using type = Vector<float1, 3>;
+};
+
+template<> struct Vector<float1, 4> {
+  static const size_t count = 4;
+  typedef float1 scalar_t;
+  typedef float4 type;
+  typedef packed::float4 packed_t;
+  typedef int4 mask_t;
+};
+
+template <> struct get_traits<float4>
+{
+    using type = Vector<float1, 4>;
+};
+
+template<> struct Vector<float1, 8> {
+  static const size_t count = 8;
+  typedef float1 scalar_t;
+  typedef float8 type;
+  typedef packed::float8 packed_t;
+  typedef int8 mask_t;
+};
+
+template <> struct get_traits<float8>
+{
+    using type = Vector<float1, 8>;
+};
+
+template<> struct Vector<float1, 16> {
+  static const size_t count = 16;
+  typedef float1 scalar_t;
+  typedef float16 type;
+  typedef packed::float16 packed_t;
+  typedef int16 mask_t;
+};
+
+template <> struct get_traits<float16>
+{
+    using type = Vector<float1, 16>;
+};
+
+template<> struct Vector<long1, 1> {
+  static const size_t count = 1;
+  typedef long1 scalar_t;
+  typedef long1 type;
+  typedef long1 mask_t;
+};
+
+template <> struct get_traits<long1>
+{
+    using type = Vector<long1, 1>;
+};
+
+template<> struct Vector<long1, 2> {
+  static const size_t count = 2;
+  typedef long1 scalar_t;
+  typedef long2 type;
+  typedef packed::long2 packed_t;
+  typedef long2 mask_t;
+};
+
+template <> struct get_traits<long2>
+{
+    using type = Vector<long1, 2>;
+};
+
+template<> struct Vector<long1, 3> {
+  static const size_t count = 3;
+  typedef long1 scalar_t;
+  typedef long3 type;
+  typedef long3 mask_t;
+};
+
+template <> struct get_traits<long3>
+{
+    using type = Vector<long1, 3>;
+};
+
+template<> struct Vector<long1, 4> {
+  static const size_t count = 4;
+  typedef long1 scalar_t;
+  typedef long4 type;
+  typedef packed::long4 packed_t;
+  typedef long4 mask_t;
+};
+
+template <> struct get_traits<long4>
+{
+    using type = Vector<long1, 4>;
+};
+
+template<> struct Vector<long1, 8> {
+  static const size_t count = 8;
+  typedef long1 scalar_t;
+  typedef long8 type;
+  typedef packed::long8 packed_t;
+  typedef long8 mask_t;
+};
+
+template <> struct get_traits<long8>
+{
+    using type = Vector<long1, 8>;
+};
+
+template<> struct Vector<ulong1, 1> {
+  static const size_t count = 1;
+  typedef ulong1 scalar_t;
+  typedef ulong1 type;
+  typedef long1 mask_t;
+};
+
+template <> struct get_traits<ulong1>
+{
+    using type = Vector<ulong1, 1>;
+};
+
+template<> struct Vector<ulong1, 2> {
+  static const size_t count = 2;
+  typedef ulong1 scalar_t;
+  typedef ulong2 type;
+  typedef packed::ulong2 packed_t;
+  typedef long2 mask_t;
+};
+
+template <> struct get_traits<ulong2>
+{
+    using type = Vector<ulong1, 2>;
+};
+
+template<> struct Vector<ulong1, 3> {
+  static const size_t count = 3;
+  typedef ulong1 scalar_t;
+  typedef ulong3 type;
+  typedef long3 mask_t;
+};
+
+template <> struct get_traits<ulong3>
+{
+    using type = Vector<ulong1, 3>;
+};
+
+template<> struct Vector<ulong1, 4> {
+  static const size_t count = 4;
+  typedef ulong1 scalar_t;
+  typedef ulong4 type;
+  typedef packed::ulong4 packed_t;
+  typedef long4 mask_t;
+};
+
+template <> struct get_traits<ulong4>
+{
+    using type = Vector<ulong1, 4>;
+};
+
+template<> struct Vector<ulong1, 8> {
+  static const size_t count = 8;
+  typedef ulong1 scalar_t;
+  typedef ulong8 type;
+  typedef packed::ulong8 packed_t;
+  typedef long8 mask_t;
+};
+
+template <> struct get_traits<ulong8>
+{
+    using type = Vector<ulong1, 8>;
+};
+
+template<> struct Vector<double1, 1> {
+  static const size_t count = 1;
+  typedef double1 scalar_t;
+  typedef double1 type;
+  typedef long1 mask_t;
+};
+
+template <> struct get_traits<double1>
+{
+    using type = Vector<double1, 1>;
+};
+
+template<> struct Vector<double1, 2> {
+  static const size_t count = 2;
+  typedef double1 scalar_t;
+  typedef double2 type;
+  typedef packed::double2 packed_t;
+  typedef long2 mask_t;
+};
+
+template <> struct get_traits<double2>
+{
+    using type = Vector<double1, 2>;
+};
+
+template<> struct Vector<double1, 3> {
+  static const size_t count = 3;
+  typedef double1 scalar_t;
+  typedef double3 type;
+  typedef long3 mask_t;
+};
+
+template <> struct get_traits<double3>
+{
+    using type = Vector<double1, 3>;
+};
+
+template<> struct Vector<double1, 4> {
+  static const size_t count = 4;
+  typedef double1 scalar_t;
+  typedef double4 type;
+  typedef packed::double4 packed_t;
+  typedef long4 mask_t;
+};
+
+template <> struct get_traits<double4>
+{
+    using type = Vector<double1, 4>;
+};
+
+template<> struct Vector<double1, 8> {
+  static const size_t count = 8;
+  typedef double1 scalar_t;
+  typedef double8 type;
+  typedef packed::double8 packed_t;
+  typedef long8 mask_t;
+};
+
+template <> struct get_traits<double8>
+{
+    using type = Vector<double1, 8>;
+};
+
+#if __has_feature(cxx_constexpr)
+/*! @abstract Templated make function based on return type and argument
+ *  type.                                                                     */
+template<typename typeN, typename... Args>
+static constexpr typeN make(Args... args)
+{
+    if constexpr (traits<typeN>::count == 1)
+    {
+        using FirstArgType = typename std::tuple_element<0, std::tuple<Args...>>::type;
+        if constexpr (std::is_same<FirstArgType, typename traits<FirstArgType>::scalar_t>::value)
+            return typeN(std::get<0>(std::make_tuple(args...)));
+        else
+            return typeN(std::get<0>(std::make_tuple(args...))[0]);
+    }
+    else if constexpr (std::is_same<typeN, char2>::value)
+        return make_char2(args...);
+    else if constexpr (std::is_same<typeN, char3>::value)
+        return make_char3(args...);
+    else if constexpr (std::is_same<typeN, char4>::value)
+        return make_char4(args...);
+    else if constexpr (std::is_same<typeN, char8>::value)
+        return make_char8(args...);
+    else if constexpr (std::is_same<typeN, char16>::value)
+        return make_char16(args...);
+    else if constexpr (std::is_same<typeN, char32>::value)
+        return make_char32(args...);
+    else if constexpr (std::is_same<typeN, char64>::value)
+        return make_char64(args...);
+    else if constexpr (std::is_same<typeN, uchar2>::value)
+        return make_uchar2(args...);
+    else if constexpr (std::is_same<typeN, uchar3>::value)
+        return make_uchar3(args...);
+    else if constexpr (std::is_same<typeN, uchar4>::value)
+        return make_uchar4(args...);
+    else if constexpr (std::is_same<typeN, uchar8>::value)
+        return make_uchar8(args...);
+    else if constexpr (std::is_same<typeN, uchar16>::value)
+        return make_uchar16(args...);
+    else if constexpr (std::is_same<typeN, uchar32>::value)
+        return make_uchar32(args...);
+    else if constexpr (std::is_same<typeN, uchar64>::value)
+        return make_uchar64(args...);
+    else if constexpr (std::is_same<typeN, short2>::value)
+        return make_short2(args...);
+    else if constexpr (std::is_same<typeN, short3>::value)
+        return make_short3(args...);
+    else if constexpr (std::is_same<typeN, short4>::value)
+        return make_short4(args...);
+    else if constexpr (std::is_same<typeN, short8>::value)
+        return make_short8(args...);
+    else if constexpr (std::is_same<typeN, short16>::value)
+        return make_short16(args...);
+    else if constexpr (std::is_same<typeN, short32>::value)
+        return make_short32(args...);
+    else if constexpr (std::is_same<typeN, ushort2>::value)
+        return make_ushort2(args...);
+    else if constexpr (std::is_same<typeN, ushort3>::value)
+        return make_ushort3(args...);
+    else if constexpr (std::is_same<typeN, ushort4>::value)
+        return make_ushort4(args...);
+    else if constexpr (std::is_same<typeN, ushort8>::value)
+        return make_ushort8(args...);
+    else if constexpr (std::is_same<typeN, ushort16>::value)
+        return make_ushort16(args...);
+    else if constexpr (std::is_same<typeN, ushort32>::value)
+        return make_ushort32(args...);
+    else if constexpr (std::is_same<typeN, int2>::value)
+        return make_int2(args...);
+    else if constexpr (std::is_same<typeN, int3>::value)
+        return make_int3(args...);
+    else if constexpr (std::is_same<typeN, int4>::value)
+        return make_int4(args...);
+    else if constexpr (std::is_same<typeN, int8>::value)
+        return make_int8(args...);
+    else if constexpr (std::is_same<typeN, int16>::value)
+        return make_int16(args...);
+    else if constexpr (std::is_same<typeN, uint2>::value)
+        return make_uint2(args...);
+    else if constexpr (std::is_same<typeN, uint3>::value)
+        return make_uint3(args...);
+    else if constexpr (std::is_same<typeN, uint4>::value)
+        return make_uint4(args...);
+    else if constexpr (std::is_same<typeN, uint8>::value)
+        return make_uint8(args...);
+    else if constexpr (std::is_same<typeN, uint16>::value)
+        return make_uint16(args...);
+    else if constexpr (std::is_same<typeN, float2>::value)
+        return make_float2(args...);
+    else if constexpr (std::is_same<typeN, float3>::value)
+        return make_float3(args...);
+    else if constexpr (std::is_same<typeN, float4>::value)
+        return make_float4(args...);
+    else if constexpr (std::is_same<typeN, float8>::value)
+        return make_float8(args...);
+    else if constexpr (std::is_same<typeN, float16>::value)
+        return make_float16(args...);
+    else if constexpr (std::is_same<typeN, long2>::value)
+        return make_long2(args...);
+    else if constexpr (std::is_same<typeN, long3>::value)
+        return make_long3(args...);
+    else if constexpr (std::is_same<typeN, long4>::value)
+        return make_long4(args...);
+    else if constexpr (std::is_same<typeN, long8>::value)
+        return make_long8(args...);
+    else if constexpr (std::is_same<typeN, ulong2>::value)
+        return make_ulong2(args...);
+    else if constexpr (std::is_same<typeN, ulong3>::value)
+        return make_ulong3(args...);
+    else if constexpr (std::is_same<typeN, ulong4>::value)
+        return make_ulong4(args...);
+    else if constexpr (std::is_same<typeN, ulong8>::value)
+        return make_ulong8(args...);
+    else if constexpr (std::is_same<typeN, double2>::value)
+        return make_double2(args...);
+    else if constexpr (std::is_same<typeN, double3>::value)
+        return make_double3(args...);
+    else if constexpr (std::is_same<typeN, double4>::value)
+        return make_double4(args...);
+    else if constexpr (std::is_same<typeN, double8>::value)
+        return make_double8(args...);
+}
+
+/*! @abstract Templated make_undef function based on return type and
+ *  argument type.                                                            */
+template<typename typeN, typename... Args>
+static constexpr typeN make_undef(Args... args)
+{
+    if constexpr (traits<typeN>::count == 1)
+    {
+        using FirstArgType = typename std::tuple_element<0, std::tuple<Args...>>::type;
+        if constexpr (std::is_same<FirstArgType, typename traits<FirstArgType>::scalar_t>::value)
+            return typeN(std::get<0>(std::make_tuple(args...)));
+        else
+            return typeN(std::get<0>(std::make_tuple(args...))[0]);
+    }
+    else if constexpr (std::is_same<typeN, char2>::value)
+        return make_char2_undef(args...);
+    else if constexpr (std::is_same<typeN, char3>::value)
+        return make_char3_undef(args...);
+    else if constexpr (std::is_same<typeN, char4>::value)
+        return make_char4_undef(args...);
+    else if constexpr (std::is_same<typeN, char8>::value)
+        return make_char8_undef(args...);
+    else if constexpr (std::is_same<typeN, char16>::value)
+        return make_char16_undef(args...);
+    else if constexpr (std::is_same<typeN, char32>::value)
+        return make_char32_undef(args...);
+    else if constexpr (std::is_same<typeN, char64>::value)
+        return make_char64_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar2>::value)
+        return make_uchar2_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar3>::value)
+        return make_uchar3_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar4>::value)
+        return make_uchar4_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar8>::value)
+        return make_uchar8_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar16>::value)
+        return make_uchar16_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar32>::value)
+        return make_uchar32_undef(args...);
+    else if constexpr (std::is_same<typeN, uchar64>::value)
+        return make_uchar64_undef(args...);
+    else if constexpr (std::is_same<typeN, short2>::value)
+        return make_short2_undef(args...);
+    else if constexpr (std::is_same<typeN, short3>::value)
+        return make_short3_undef(args...);
+    else if constexpr (std::is_same<typeN, short4>::value)
+        return make_short4_undef(args...);
+    else if constexpr (std::is_same<typeN, short8>::value)
+        return make_short8_undef(args...);
+    else if constexpr (std::is_same<typeN, short16>::value)
+        return make_short16_undef(args...);
+    else if constexpr (std::is_same<typeN, short32>::value)
+        return make_short32_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort2>::value)
+        return make_ushort2_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort3>::value)
+        return make_ushort3_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort4>::value)
+        return make_ushort4_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort8>::value)
+        return make_ushort8_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort16>::value)
+        return make_ushort16_undef(args...);
+    else if constexpr (std::is_same<typeN, ushort32>::value)
+        return make_ushort32_undef(args...);
+    else if constexpr (std::is_same<typeN, int2>::value)
+        return make_int2_undef(args...);
+    else if constexpr (std::is_same<typeN, int3>::value)
+        return make_int3_undef(args...);
+    else if constexpr (std::is_same<typeN, int4>::value)
+        return make_int4_undef(args...);
+    else if constexpr (std::is_same<typeN, int8>::value)
+        return make_int8_undef(args...);
+    else if constexpr (std::is_same<typeN, int16>::value)
+        return make_int16_undef(args...);
+    else if constexpr (std::is_same<typeN, uint2>::value)
+        return make_uint2_undef(args...);
+    else if constexpr (std::is_same<typeN, uint3>::value)
+        return make_uint3_undef(args...);
+    else if constexpr (std::is_same<typeN, uint4>::value)
+        return make_uint4_undef(args...);
+    else if constexpr (std::is_same<typeN, uint8>::value)
+        return make_uint8_undef(args...);
+    else if constexpr (std::is_same<typeN, uint16>::value)
+        return make_uint16_undef(args...);
+    else if constexpr (std::is_same<typeN, float2>::value)
+        return make_float2_undef(args...);
+    else if constexpr (std::is_same<typeN, float3>::value)
+        return make_float3_undef(args...);
+    else if constexpr (std::is_same<typeN, float4>::value)
+        return make_float4_undef(args...);
+    else if constexpr (std::is_same<typeN, float8>::value)
+        return make_float8_undef(args...);
+    else if constexpr (std::is_same<typeN, float16>::value)
+        return make_float16_undef(args...);
+    else if constexpr (std::is_same<typeN, long2>::value)
+        return make_long2_undef(args...);
+    else if constexpr (std::is_same<typeN, long3>::value)
+        return make_long3_undef(args...);
+    else if constexpr (std::is_same<typeN, long4>::value)
+        return make_long4_undef(args...);
+    else if constexpr (std::is_same<typeN, long8>::value)
+        return make_long8_undef(args...);
+    else if constexpr (std::is_same<typeN, ulong2>::value)
+        return make_ulong2_undef(args...);
+    else if constexpr (std::is_same<typeN, ulong3>::value)
+        return make_ulong3_undef(args...);
+    else if constexpr (std::is_same<typeN, ulong4>::value)
+        return make_ulong4_undef(args...);
+    else if constexpr (std::is_same<typeN, ulong8>::value)
+        return make_ulong8_undef(args...);
+    else if constexpr (std::is_same<typeN, double2>::value)
+        return make_double2_undef(args...);
+    else if constexpr (std::is_same<typeN, double3>::value)
+        return make_double3_undef(args...);
+    else if constexpr (std::is_same<typeN, double4>::value)
+        return make_double4_undef(args...);
+    else if constexpr (std::is_same<typeN, double8>::value)
+        return make_double8_undef(args...);
+}
+#endif /* __has_feature(cxx_constexpr) */
 } /* namespace simd */
 #endif /* __cplusplus */
 #endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
lib/libc/include/any-macos-any/sys/_types/_uintptr_t.h
@@ -27,5 +27,11 @@
  */
 #ifndef _UINTPTR_T
 #define _UINTPTR_T
+
+#ifndef __has_attribute
 typedef unsigned long           uintptr_t;
+#else
+typedef unsigned long           uintptr_t;
+#endif /* __has_attribute */
+
 #endif /* _UINTPTR_T */
\ No newline at end of file
lib/libc/include/any-macos.11-any/mach/machine/thread_state.h → lib/libc/include/any-macos-any/sys/clonefile.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ * Copyright (c) 2015-2017 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -26,15 +26,28 @@
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 
-#ifndef _MACH_MACHINE_THREAD_STATE_H_
-#define _MACH_MACHINE_THREAD_STATE_H_
+#ifndef _SYS_CLONEFILE_H_
+#define _SYS_CLONEFILE_H_
 
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/thread_state.h"
-#elif defined (__arm__) || defined (__arm64__)
-#include "mach/arm/thread_state.h"
-#else
-#error architecture not supported
-#endif
+/* Options for clonefile calls */
+#define CLONE_NOFOLLOW      0x0001     /* Don't follow symbolic links */
+#define CLONE_NOOWNERCOPY   0x0002     /* Don't copy ownership information from source */
 
-#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
\ No newline at end of file
+
+#include <sys/cdefs.h>
+#include <machine/_types.h>
+#include <_types/_uint32_t.h>
+#include <Availability.h>
+
+__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
lib/libc/include/any-macos-any/sys/ioctl.h
@@ -107,4 +107,4 @@ __END_DECLS
  */
 #if defined(USE_OLD_TTY) || defined(BSD_KERNEL_PRIVATE)
 #include <sys/ioctl_compat.h>
-#endif /* !_SYS_IOCTL_H_ */
\ No newline at end of file
+#endif /* defined(USE_OLD_TTY) || defined(BSD_KERNEL_PRIVATE) */
\ No newline at end of file
lib/libc/include/any-macos-any/sys/random.h
@@ -29,12 +29,13 @@
 #ifndef __SYS_RANDOM_H__
 #define __SYS_RANDOM_H__
 
+#include <Availability.h>
+#include <stddef.h>
 #include <sys/appleapiopts.h>
 #include <sys/cdefs.h>
 
 __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);
+int getentropy(void* buffer, size_t size) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
 __END_DECLS
 
 #endif /* __SYS_RANDOM_H__ */
\ No newline at end of file
lib/libc/include/any-macos.12-any/sys/resource.h → lib/libc/include/any-macos-any/sys/resource.h
File renamed without changes
lib/libc/include/any-macos.12-any/sys/socket.h → lib/libc/include/any-macos-any/sys/socket.h
File renamed without changes
lib/libc/include/any-macos.12-any/sys/sockio.h → lib/libc/include/any-macos-any/sys/sockio.h
File renamed without changes
lib/libc/include/any-macos-any/sys/ttycom.h
@@ -139,7 +139,7 @@ struct winsize {
 #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 */
+                                                /* 105 unused */
 #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 */
lib/libc/include/any-macos-any/uuid/uuid.h
@@ -62,7 +62,6 @@ 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);
 
lib/libc/include/any-macos-any/xpc/activity.h
@@ -164,6 +164,20 @@ __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0)
 XPC_EXPORT
 const char * const XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP; // bool
 
+/*!
+ * @constant XPC_ACTIVITY_PREVENT_DEVICE_SLEEP
+ * A Boolean value indicating whether the activity should prevent system sleep while
+ * running on battery.
+ * If this property is set, the activity scheduler will take the appropriate power
+ * assertion to keep the device (but not the screen) awake while the activity is running.
+ * Only activities which perform critical system functions that do not want to be
+ * interrupted by system sleep should set this.
+ * Setting this property can impact battery life.
+ */
+__API_AVAILABLE(macos(12.0), ios(15.0), watchos(8.0))
+XPC_EXPORT
+const char * const XPC_ACTIVITY_PREVENT_DEVICE_SLEEP; // bool
+
 /*!
  * @constant XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL
  * An integer percentage of minimum battery charge required to allow the
lib/libc/include/any-macos.12-any/xpc/availability.h → lib/libc/include/any-macos-any/xpc/availability.h
File renamed without changes
lib/libc/include/any-macos.12-any/xpc/base.h → lib/libc/include/any-macos-any/xpc/base.h
File renamed without changes
lib/libc/include/any-macos.12-any/xpc/connection.h → lib/libc/include/any-macos-any/xpc/connection.h
File renamed without changes
lib/libc/include/any-macos-any/assert.h
@@ -56,6 +56,12 @@
 #define	assert(e)	((void)0)
 #else
 
+#ifdef __FILE_NAME__
+#define __ASSERT_FILE_NAME __FILE_NAME__
+#else /* __FILE_NAME__ */
+#define __ASSERT_FILE_NAME __FILE__
+#endif /* __FILE_NAME__ */
+
 #ifndef __GNUC__
 
 __BEGIN_DECLS
@@ -66,7 +72,7 @@ int  printf(const char * __restrict, ...);
 __END_DECLS
 
 #define assert(e)  \
-    ((void) ((e) ? ((void)0) : __assert (#e, __FILE__, __LINE__)))
+    ((void) ((e) ? ((void)0) : __assert (#e, __ASSERT_FILE_NAME, __LINE__)))
 #define __assert(e, file, line) \
     ((void)printf ("%s:%d: failed assertion `%s'\n", file, line, e), abort())
 
@@ -90,10 +96,10 @@ __END_DECLS
 
 #if __DARWIN_UNIX03
 #define	assert(e) \
-    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
+    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
 #else /* !__DARWIN_UNIX03 */
 #define assert(e)  \
-    (__builtin_expect(!(e), 0) ? __assert (#e, __FILE__, __LINE__) : (void)0)
+    (__builtin_expect(!(e), 0) ? __assert (#e, __ASSERT_FILE_NAME, __LINE__) : (void)0)
 #endif /* __DARWIN_UNIX03 */
 
 #endif /* __GNUC__ */
lib/libc/include/any-macos-any/AssertMacros.h
@@ -214,10 +214,15 @@
  *  If you do not define DEBUG_ASSERT_MESSAGE, a simple printf to stderr will be used.
  */
 #ifndef DEBUG_ASSERT_MESSAGE
+#include <TargetConditionals.h>
    #ifdef KERNEL
       #include <libkern/libkern.h>
       #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));
+   #elif TARGET_OS_DRIVERKIT
+      #include <os/log.h>
+      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
+                                  os_log(OS_LOG_DEFAULT, "AssertMacros: %s, %s file: %s, line: %d, value: %ld\n", assertion, (message!=0) ? message : "", file, line, (long) (value));
    #else
       #include <stdio.h>
       #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
lib/libc/include/any-macos.12-any/AvailabilityMacros.h → lib/libc/include/any-macos-any/AvailabilityMacros.h
File renamed without changes
lib/libc/include/any-macos-any/execinfo.h
@@ -27,6 +27,7 @@
 #include <Availability.h>
 #include <os/base.h>
 #include <os/availability.h>
+#include <stddef.h>
 #include <stdint.h>
 #include <uuid/uuid.h>
 
@@ -58,6 +59,40 @@ OS_EXPORT
 void backtrace_image_offsets(void* const* array,
 		struct image_offset *image_offsets, int size);
 
+/*!
+ * @function backtrace_async
+ * Extracts the function return addresses of the current call stack. While
+ * backtrace() will only follow the OS call stack, backtrace_async() will
+ * prefer the unwind the Swift concurrency continuation stack if invoked
+ * from within an async context. In a non-async context this function is
+ * strictly equivalent to backtrace().
+ *
+ * @param array
+ * The array of pointers to fill with the return addresses.
+ *
+ * @param length
+ * The maximum number of pointers to write.
+ *
+ * @param task_id
+ * Can be NULL. If non-NULL, the uint32_t pointed to by `task_id` is set to
+ * a non-zero value that for the current process uniquely identifies the async
+ * task currently running. If called from a non-async context, the value is
+ * set to 0 and `array` contains the same values backtrace() would return.
+ *
+ * Note that the continuation addresses provided by backtrace_async()
+ * have an offset of 1 added to them.  Most symbolication engines will
+ * substract 1 from the call stack return addresses in order to symbolicate
+ * the call site rather than the return location.  With a Swift async
+ * continuation, substracting 1 from its address would result in an address
+ * in a different function.  This offset allows the returned addresses to be
+ * handled correctly by most existing symbolication engines.
+ *
+ * @result
+ * The number of pointers actually written.
+ */
+API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0), watchos(8.0))
+size_t backtrace_async(void** array, size_t length, uint32_t *task_id);
+
 __END_DECLS
 
 #endif /* !_EXECINFO_H_ */
\ No newline at end of file
lib/libc/include/any-macos-any/gethostuuid.h
@@ -36,7 +36,7 @@
 #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);
+int gethostuuid(uuid_t, const struct timespec *) __API_AVAILABLE(macos(10.5)) __API_UNAVAILABLE(ios, tvos, watchos);
 #endif
 
 #endif /* __GETHOSTUUID_H */
\ No newline at end of file
lib/libc/include/any-macos-any/libproc.h
@@ -161,27 +161,12 @@ int proc_setthread_csm(uint32_t flags) __API_AVAILABLE(macos(11.0));
 #define PROC_CSM_NOSMT       0x0002  /* Set NO_SMT - see above */
 #define PROC_CSM_TECS        0x0004  /* Execute VERW on every return to user mode */
 
-#ifdef PRIVATE
-#include <sys/event.h>
-/*
- * 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);
 
+#if __has_include(<libproc_private.h>)
+#include <libproc_private.h>
+#endif
+
 __END_DECLS
 
 #endif /*_LIBPROC_H_ */
\ No newline at end of file
lib/libc/include/any-macos.12-any/pthread.h → lib/libc/include/any-macos-any/pthread.h
@@ -629,9 +629,6 @@ typedef int (*pthread_jit_write_callback_t)(void * _Nullable ctx);
  * On systems where pthread_jit_write_protect_supported_np(3) is false, this
  * function calls @callback directly and does nothing else.
  *
- * Only callbacks in libraries/images present at process start-up are allowed -
- * callbacks in images loaded dynamically via dlopen(3)/etc. are not permitted.
- *
  * 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
@@ -644,6 +641,14 @@ typedef int (*pthread_jit_write_callback_t)(void * _Nullable ctx);
  * 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.
@@ -665,6 +670,35 @@ __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
  *
lib/libc/include/any-macos.12-any/stdio.h → lib/libc/include/any-macos-any/stdio.h
File renamed without changes
lib/libc/include/any-macos.12-any/stdlib.h → lib/libc/include/any-macos-any/stdlib.h
File renamed without changes
lib/libc/include/any-macos-any/unistd.h
@@ -599,6 +599,10 @@ void	 sync(void);
 int	 truncate(const char *, off_t);
 useconds_t	 ualarm(useconds_t, useconds_t);
 int	 usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
+
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("Use posix_spawn or fork")
+#endif
 pid_t	 vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
 /* End XSI */
 
lib/libc/include/any-macos.11-any/dispatch/queue.h
@@ -480,7 +480,7 @@ 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));
+		DISPATCH_NOESCAPE void (^block)(size_t iteration));
 #endif
 
 /*!
@@ -515,7 +515,7 @@ 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));
+		void *_Nullable context, void (*work)(void *_Nullable context, size_t iteration));
 
 /*!
  * @function dispatch_get_current_queue
lib/libc/include/any-macos.11-any/mach/exception_types.h
@@ -1,206 +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 <mach/machine/exception.h>
-
-/*
- *	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 <mach/port.h>
-#include <mach/thread_status.h>
-#include <mach/machine/vm_types.h>
-#include <mach_debug/ipc_info.h>
-/*
- * 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
lib/libc/include/any-macos.11-any/mach/kern_return.h
@@ -1,342 +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 <mach/machine/kern_return.h>
-
-#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_DENIED                     53
-/* Denied by security policy
- */
-
-#define KERN_MISSING_KC                 54
-/* The KC on which the function is operating is missing
- */
-
-#define KERN_INVALID_KC                 55
-/* The KC on which the function is operating is invalid
- */
-
-#define KERN_RETURN_MAX                 0x100
-/* Maximum return value allowable
- */
-
-#endif  /* _MACH_KERN_RETURN_H_ */
\ No newline at end of file
lib/libc/include/any-macos-any/mach/mach_init.h → lib/libc/include/any-macos.11-any/mach/mach_init.h
@@ -64,9 +64,7 @@
 
 #include <sys/cdefs.h>
 
-#ifndef KERNEL
 #include <Availability.h>
-#endif
 
 /*
  *	Kernel-related ports; how a task/thread controls itself
lib/libc/include/any-macos.11-any/mach/mach_port.h
@@ -1,1808 +0,0 @@
-#ifndef	_mach_port_user_
-#define	_mach_port_user_
-
-/* Module mach_port */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#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(<mach/mig_strncpy_zerofill_support.h>) */
-#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 <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__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_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 */
-__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_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
-);
-
-__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
lib/libc/include/any-macos.11-any/mach/mach_types.h
@@ -218,6 +218,7 @@ 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 */
 typedef char suid_cred_path_t[1024];
 typedef uint32_t suid_cred_uid_t;
 
@@ -261,12 +262,16 @@ typedef unsigned int            mach_task_flavor_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))
lib/libc/include/any-macos.11-any/mach/machine.h
@@ -1,409 +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 <stdint.h>
-#include <mach/machine/vm_types.h>
-#include <mach/boolean.h>
-
-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 */
-
-/*
- *	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 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
lib/libc/include/any-macos.11-any/mach/message.h
@@ -1,908 +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 <stdint.h>
-#include <mach/port.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/machine/vm_types.h>
-
-#include <sys/cdefs.h>
-#include <sys/appleapiopts.h>
-#include <Availability.h>
-
-/*
- *  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;
-
-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;
-
-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 <mach/error.h> 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_SEND_MSG_FILTERED          0x10000017
-/* Message send was rejected by message filter */
-
-#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
lib/libc/include/any-macos.11-any/mach/port.h
@@ -1,445 +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:
- *
- *	<mach/mach_port.h> - manipulation of port rights in a given space
- *	<mach/message.h> - message queue [and port right passing] mechanism
- *
- */
-
-#ifndef _MACH_PORT_H_
-#define _MACH_PORT_H_
-
-#include <sys/cdefs.h>
-#include <stdint.h>
-#include <mach/boolean.h>
-#include <mach/machine/vm_types.h>
-
-/*
- *	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 <sys/_types.h>
-#include <sys/_types/_mach_port_t.h>
-
-
-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 */
-#define MPO_FILTER_MSG          0x100   /* Allow message filtering */
-#define MPO_TG_BLOCK_TRACKING   0x200   /* Track blocking relationship for thread group during sync IPC */
-
-/*
- * 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_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,
-	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,
-	kGUARD_EXC_RCV_GUARDED_DESC      = 1u << 20, /* should never be fatal; for development only */
-	kGUARD_EXC_MOD_REFS_NON_FATAL    = 1u << 21,
-	kGUARD_EXC_IMMOVABLE_NON_FATAL   = 1u << 22,
-};
-
-#define MAX_FATAL_kGUARD_EXC_CODE (1u << 7)
-
-/*
- * Mach port guard flags.
- */
-#define MPG_FLAGS_NONE                             (0x00ull)
-
-/*
- * 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)
-
-/*
- * 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
lib/libc/include/any-macos.11-any/mach/processor_set.h
@@ -1,585 +0,0 @@
-#ifndef	_processor_set_user_
-#define	_processor_set_user_
-
-/* Module processor_set */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#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(<mach/mig_strncpy_zerofill_support.h>) */
-#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 <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__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
lib/libc/include/any-macos.11-any/mach/task.h
@@ -49,9 +49,10 @@ typedef function_table_entry   *function_table_t;
 #endif /* AUTOTEST */
 
 #ifndef	task_MSG_COUNT
-#define	task_MSG_COUNT	61
+#define	task_MSG_COUNT	63
 #endif	/* task_MSG_COUNT */
 
+#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
@@ -111,8 +112,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t mach_ports_register
 (
 	task_t target_task,
@@ -126,8 +126,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t mach_ports_lookup
 (
 	task_t target_task,
@@ -155,8 +154,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_info
 (
 	task_t target_task,
@@ -171,8 +169,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_suspend
 (
 	task_read_t target_task
@@ -184,8 +181,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_resume
 (
 	task_read_t target_task
@@ -197,8 +193,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_get_special_port
 (
 	task_inspect_t task,
@@ -212,8 +207,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_special_port
 (
 	task_t task,
@@ -227,8 +221,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t thread_create
 (
 	task_t parent_task,
@@ -241,8 +234,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t thread_create_running
 (
 	task_t parent_task,
@@ -258,8 +250,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_exception_ports
 (
 	task_t task,
@@ -275,8 +266,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_get_exception_ports
 (
 	task_t task,
@@ -294,8 +284,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_swap_exception_ports
 (
 	task_t task,
@@ -368,8 +357,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_policy_set
 (
 	task_policy_set_t task,
@@ -384,8 +372,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_policy_get
 (
 	task_policy_get_t task,
@@ -483,8 +470,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_zone_info
 (
 	task_inspect_t target_task,
@@ -555,8 +541,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_get_state
 (
 	task_read_t task,
@@ -571,8 +556,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_state
 (
 	task_t task,
@@ -587,8 +571,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_phys_footprint_limit
 (
 	task_t task,
@@ -602,8 +585,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_suspend2
 (
 	task_read_t target_task,
@@ -616,8 +598,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_resume2
 (
 	task_suspension_token_t suspend_token
@@ -641,8 +622,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_get_mach_voucher
 (
 	task_read_t task,
@@ -656,8 +636,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_set_mach_voucher
 (
 	task_t task,
@@ -670,8 +649,7 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
 kern_return_t task_swap_mach_voucher
 (
 	task_t task,
@@ -914,6 +892,30 @@ kern_return_t task_get_exception_ports_info
 	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
+);
+
 __END_DECLS
 
 /********************** Caution **************************/
@@ -1712,6 +1714,32 @@ __END_DECLS
 #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
 #endif /* !__Request__task_subsystem__defined */
 
 /* union of all requests */
@@ -1779,6 +1807,8 @@ union __RequestUnion__task_subsystem {
 	__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;
 };
 #endif /* !__RequestUnion__task_subsystem__defined */
 /* typedefs for all replies */
@@ -2592,6 +2622,30 @@ union __RequestUnion__task_subsystem {
 #ifdef  __MigPackStructs
 #pragma pack(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
 #endif /* !__Reply__task_subsystem__defined */
 
 /* union of all replies */
@@ -2659,6 +2713,8 @@ union __ReplyUnion__task_subsystem {
 	__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;
 };
 #endif /* !__RequestUnion__task_subsystem__defined */
 
@@ -2723,7 +2779,9 @@ union __ReplyUnion__task_subsystem {
     { "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_get_exception_ports_info", 3460 },\
+    { "task_test_sync_upcall", 3461 },\
+    { "task_set_corpse_forking_behavior", 3462 }
 #endif
 
 #ifdef __AfterMigUserHeader
lib/libc/include/any-macos.11-any/mach/task_info.h
@@ -494,6 +494,7 @@ typedef struct task_flags_info * task_flags_info_t;
 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 */
@@ -509,6 +510,15 @@ typedef uint32_t task_exc_guard_behavior_t;
 #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.
  */
lib/libc/include/any-macos.11-any/mach/task_special_ports.h
@@ -1,135 +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       /* The full task port for task. */
-
-#define TASK_HOST_PORT          2       /* The host (priv) port for task.  */
-
-#define TASK_NAME_PORT          3       /* The name port for task. */
-
-#define TASK_BOOTSTRAP_PORT     4       /* Bootstrap environment for task. */
-
-#define TASK_INSPECT_PORT       5       /* The inspect port for task. */
-
-#define TASK_READ_PORT          6       /* The read port 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
lib/libc/include/any-macos.11-any/mach/thread_act.h
@@ -1,1435 +0,0 @@
-#ifndef	_thread_act_user_
-#define	_thread_act_user_
-
-/* Module thread_act */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#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(<mach/mig_strncpy_zerofill_support.h>) */
-#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 <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__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_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 */
-__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_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 */
-__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_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 */
-__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_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 */
-__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_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 */
-__WATCHOS_PROHIBITED
-__TVOS_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 */
-__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
-);
-
-/* 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
lib/libc/include/any-macos.11-any/mach/vm_map.h
@@ -1,1503 +0,0 @@
-#ifndef	_vm_map_user_
-#define	_vm_map_user_
-
-/* Module vm_map */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#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(<mach/mig_strncpy_zerofill_support.h>) */
-#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 <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__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
-);
-
-/* 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
lib/libc/include/any-macos.11-any/mach/vm_prot.h
@@ -1,153 +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
lib/libc/include/any-macos.11-any/mach/vm_statistics.h
@@ -1,552 +0,0 @@
-/*
- * 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_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <mach/machine/vm_types.h>
-#include <mach/machine/kern_return.h>
-
-/*
- * 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          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_PERMANENT      0x0080
-#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_PERMANENT |           \
-	                         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<<VM_FLAGS_SUPERPAGE_SHIFT)
-
-/*
- * EXC_GUARD definitions for virtual memory.
- */
-#define GUARD_TYPE_VIRT_MEMORY  0x5
-
-/* Reasons for exception for virtual memory */
-enum virtual_memory_guard_exception_codes {
-	kGUARD_EXC_DEALLOC_GAP  = 1u << 0
-};
-
-
-/* current accounting postmark */
-#define __VM_LEDGER_ACCOUNTING_POSTMARK 2019032600
-
-/* discrete values: */
-#define VM_LEDGER_TAG_NONE      0x00000000
-#define VM_LEDGER_TAG_DEFAULT   0x00000001
-#define VM_LEDGER_TAG_NETWORK   0x00000002
-#define VM_LEDGER_TAG_MEDIA     0x00000003
-#define VM_LEDGER_TAG_GRAPHICS  0x00000004
-#define VM_LEDGER_TAG_NEURAL    0x00000005
-#define VM_LEDGER_TAG_MAX       0x00000005
-/* individual bits: */
-#define VM_LEDGER_FLAG_NO_FOOTPRINT     0x00000001
-#define VM_LEDGER_FLAGS (VM_LEDGER_FLAG_NO_FOOTPRINT)
-
-
-#define VM_MEMORY_MALLOC 1
-#define VM_MEMORY_MALLOC_SMALL 2
-#define VM_MEMORY_MALLOC_LARGE 3
-#define VM_MEMORY_MALLOC_HUGE 4
-#define VM_MEMORY_SBRK 5// uninteresting -- no one should call
-#define VM_MEMORY_REALLOC 6
-#define VM_MEMORY_MALLOC_TINY 7
-#define VM_MEMORY_MALLOC_LARGE_REUSABLE 8
-#define VM_MEMORY_MALLOC_LARGE_REUSED 9
-
-#define VM_MEMORY_ANALYSIS_TOOL 10
-
-#define VM_MEMORY_MALLOC_NANO 11
-#define VM_MEMORY_MALLOC_MEDIUM 12
-#define VM_MEMORY_MALLOC_PGUARD 13
-
-#define VM_MEMORY_MACH_MSG 20
-#define VM_MEMORY_IOKIT 21
-#define VM_MEMORY_STACK  30
-#define VM_MEMORY_GUARD  31
-#define VM_MEMORY_SHARED_PMAP 32
-/* memory containing a dylib */
-#define VM_MEMORY_DYLIB 33
-#define VM_MEMORY_OBJC_DISPATCHERS 34
-
-/* Was a nested pmap (VM_MEMORY_SHARED_PMAP) which has now been unnested */
-#define VM_MEMORY_UNSHARED_PMAP 35
-
-
-// Placeholders for now -- as we analyze the libraries and find how they
-// use memory, we can make these labels more specific.
-#define VM_MEMORY_APPKIT 40
-#define VM_MEMORY_FOUNDATION 41
-#define VM_MEMORY_COREGRAPHICS 42
-#define VM_MEMORY_CORESERVICES 43
-#define VM_MEMORY_CARBON VM_MEMORY_CORESERVICES
-#define VM_MEMORY_JAVA 44
-#define VM_MEMORY_COREDATA 45
-#define VM_MEMORY_COREDATA_OBJECTIDS 46
-#define VM_MEMORY_ATS 50
-#define VM_MEMORY_LAYERKIT 51
-#define VM_MEMORY_CGIMAGE 52
-#define VM_MEMORY_TCMALLOC 53
-
-/* private raster data (i.e. layers, some images, QGL allocator) */
-#define VM_MEMORY_COREGRAPHICS_DATA     54
-
-/* shared image and font caches */
-#define VM_MEMORY_COREGRAPHICS_SHARED   55
-
-/* Memory used for virtual framebuffers, shadowing buffers, etc... */
-#define VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS     56
-
-/* Window backing stores, custom shadow data, and compressed backing stores */
-#define VM_MEMORY_COREGRAPHICS_BACKINGSTORES    57
-
-/* x-alloc'd memory */
-#define VM_MEMORY_COREGRAPHICS_XALLOC 58
-
-/* catch-all for other uses, such as the read-only shared data page */
-#define VM_MEMORY_COREGRAPHICS_MISC VM_MEMORY_COREGRAPHICS
-
-/* memory allocated by the dynamic loader for itself */
-#define VM_MEMORY_DYLD 60
-/* malloc'd memory created by dyld */
-#define VM_MEMORY_DYLD_MALLOC 61
-
-/* Used for sqlite page cache */
-#define VM_MEMORY_SQLITE 62
-
-/* JavaScriptCore heaps */
-#define VM_MEMORY_JAVASCRIPT_CORE 63
-#define VM_MEMORY_WEBASSEMBLY VM_MEMORY_JAVASCRIPT_CORE
-/* memory allocated for the JIT */
-#define VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR 64
-#define VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE 65
-
-/* memory allocated for GLSL */
-#define VM_MEMORY_GLSL  66
-
-/* memory allocated for OpenCL.framework */
-#define VM_MEMORY_OPENCL    67
-
-/* memory allocated for QuartzCore.framework */
-#define VM_MEMORY_COREIMAGE 68
-
-/* memory allocated for WebCore Purgeable Buffers */
-#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69
-
-/* ImageIO memory */
-#define VM_MEMORY_IMAGEIO       70
-
-/* CoreProfile memory */
-#define VM_MEMORY_COREPROFILE   71
-
-/* assetsd / MobileSlideShow memory */
-#define VM_MEMORY_ASSETSD       72
-
-/* libsystem_kernel os_once_alloc */
-#define VM_MEMORY_OS_ALLOC_ONCE 73
-
-/* libdispatch internal allocator */
-#define VM_MEMORY_LIBDISPATCH 74
-
-/* Accelerate.framework image backing stores */
-#define VM_MEMORY_ACCELERATE 75
-
-/* CoreUI image block data */
-#define VM_MEMORY_COREUI 76
-
-/* CoreUI image file */
-#define VM_MEMORY_COREUIFILE 77
-
-/* Genealogy buffers */
-#define VM_MEMORY_GENEALOGY 78
-
-/* RawCamera VM allocated memory */
-#define VM_MEMORY_RAWCAMERA 79
-
-/* corpse info for dead process */
-#define VM_MEMORY_CORPSEINFO 80
-
-/* Apple System Logger (ASL) messages */
-#define VM_MEMORY_ASL 81
-
-/* Swift runtime */
-#define VM_MEMORY_SWIFT_RUNTIME 82
-
-/* Swift metadata */
-#define VM_MEMORY_SWIFT_METADATA 83
-
-/* DHMM data */
-#define VM_MEMORY_DHMM 84
-
-
-/* memory allocated by SceneKit.framework */
-#define VM_MEMORY_SCENEKIT 86
-
-/* memory allocated by skywalk networking */
-#define VM_MEMORY_SKYWALK 87
-
-#define VM_MEMORY_IOSURFACE 88
-
-#define VM_MEMORY_LIBNETWORK 89
-
-#define VM_MEMORY_AUDIO 90
-
-#define VM_MEMORY_VIDEOBITSTREAM 91
-
-/* memory allocated by CoreMedia */
-#define VM_MEMORY_CM_XPC 92
-
-#define VM_MEMORY_CM_RPC 93
-
-#define VM_MEMORY_CM_MEMORYPOOL 94
-
-#define VM_MEMORY_CM_READCACHE 95
-
-#define VM_MEMORY_CM_CRABS 96
-
-/* memory allocated for QuickLookThumbnailing */
-#define VM_MEMORY_QUICKLOOK_THUMBNAILS 97
-
-/* memory allocated by Accounts framework */
-#define VM_MEMORY_ACCOUNTS 98
-
-/* memory allocated by Sanitizer runtime libraries */
-#define VM_MEMORY_SANITIZER 99
-
-/* Differentiate memory needed by GPU drivers and frameworks from generic IOKit allocations */
-#define VM_MEMORY_IOACCELERATOR 100
-
-/* memory allocated by CoreMedia for global image registration of frames */
-#define VM_MEMORY_CM_REGWARP 101
-
-/* memory allocated by EmbeddedAcousticRecognition for speech decoder */
-#define VM_MEMORY_EAR_DECODER 102
-
-/* CoreUI cached image data */
-#define VM_MEMORY_COREUI_CACHED_IMAGE_DATA 103
-
-/* Reserve 230-239 for Rosetta */
-#define VM_MEMORY_ROSETTA 230
-#define VM_MEMORY_ROSETTA_THREAD_CONTEXT 231
-#define VM_MEMORY_ROSETTA_INDIRECT_BRANCH_MAP 232
-#define VM_MEMORY_ROSETTA_RETURN_STACK 233
-#define VM_MEMORY_ROSETTA_EXECUTABLE_HEAP 234
-#define VM_MEMORY_ROSETTA_USER_LDT 235
-#define VM_MEMORY_ROSETTA_ARENA 236
-#define VM_MEMORY_ROSETTA_10 239
-
-/* Reserve 240-255 for application */
-#define VM_MEMORY_APPLICATION_SPECIFIC_1 240
-#define VM_MEMORY_APPLICATION_SPECIFIC_16 255
-
-#define VM_MAKE_TAG(tag) ((tag) << 24)
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* _MACH_VM_STATISTICS_H_ */
\ No newline at end of file
lib/libc/include/any-macos.11-any/mach/vm_types.h
@@ -1,97 +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@
- *
- */
-#ifndef _MACH_VM_TYPES_H_
-#define _MACH_VM_TYPES_H_
-
-#include <mach/port.h>
-#include <mach/machine/vm_types.h>
-
-#include <stdint.h>
-
-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, 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 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
lib/libc/include/any-macos.11-any/mach-o/loader.h
@@ -1274,6 +1274,8 @@ struct build_tool_version {
 #define PLATFORM_WATCHOSSIMULATOR 9
 #define PLATFORM_DRIVERKIT 10
 
+
+
 /* Known values for the tool field above. */
 #define TOOL_CLANG 1
 #define TOOL_SWIFT 2
@@ -1456,6 +1458,8 @@ struct dyld_info_command {
 #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.
lib/libc/include/any-macos.11-any/machine/_mcontext.h
@@ -1,34 +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"
-#elif defined (__arm__) || defined (__arm64__)
-#include "arm/_mcontext.h"
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
lib/libc/include/any-macos.11-any/machine/limits.h
@@ -1,11 +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 <i386/limits.h>
-#elif defined (__arm__) || defined (__arm64__)
-#include <arm/limits.h>
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
lib/libc/include/any-macos.11-any/malloc/malloc.h
@@ -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 <stddef.h>
-#include <mach/mach_types.h>
-#include <sys/cdefs.h>
-#include <Availability.h>
-
-#if __has_feature(ptrauth_calls)
-#include <ptrauth.h>
-
-// 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, ...) __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__ */
-
-__END_DECLS
-
-#endif /* _MALLOC_MALLOC_H_ */
\ No newline at end of file
lib/libc/include/any-macos.11-any/net/if.h
@@ -63,21 +63,24 @@
 #ifndef _NET_IF_H_
 #define _NET_IF_H_
 
-#include <sys/cdefs.h>
-#include <net/net_kev.h>
-
 #define IF_NAMESIZE     16
 
 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/cdefs.h>
 #include <sys/appleapiopts.h>
 #ifdef __APPLE__
 
 #include <net/if_var.h>
+#include <net/net_kev.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 
 #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 */
@@ -285,9 +288,6 @@ struct ifkpi {
  * 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;
@@ -371,7 +371,6 @@ struct ifmediareq {
 #pragma pack()
 
 
-
 #pragma pack(4)
 struct  ifdrv {
 	char            ifd_name[IFNAMSIZ];     /* if name, e.g. "en0" */
lib/libc/include/any-macos.11-any/net/if_var.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2020 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2021 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -222,6 +222,124 @@ struct if_data64 {
 };
 
 
+#if defined (PRIVATE) || defined (DRIVERKIT_PRIVATE)
+/*
+ * This structure is used to define the parameters for advisory notifications
+ * on an interface.
+ */
+#pragma pack(push, 1)
+struct ifnet_interface_advisory {
+	/* The current structure version */
+	uint8_t     version;
+#define IF_INTERFACE_ADVISORY_VERSION_1    0x1
+#define IF_INTERFACE_ADVISORY_VERSION_CURRENT  IF_INTERFACE_ADVISORY_VERSION_1
+	/*  Specifies if the advisory is for transmit or receive path */
+	uint8_t     direction;
+#define IF_INTERFACE_ADVISORY_DIRECTION_TX    0x1
+#define IF_INTERFACE_ADVISORY_DIRECTION_RX    0x2
+	/* reserved for future use */
+	uint16_t    _reserved;
+	/*
+	 * suggestion for data rate change to keep the latency low.
+	 * unit: bits per second (bps)
+	 * NOTE: if the interface cannot provide suggestions in terms of bps,
+	 * it should use the following values:
+	 * INT32_MAX : ramp up
+	 * INT32_MIN : ramp down
+	 * 0         : neutral
+	 */
+#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_UP         INT32_MAX
+#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_DOWN       INT32_MIN
+#define IF_INTERFACE_ADVISORY_RATE_SUGGESTION_RAMP_NEUTRAL    0
+	int32_t     rate_trend_suggestion;
+	/*
+	 * Time of the issue of advisory.
+	 * Timestamp should be in the host domain.
+	 * unit: mach absolute time
+	 */
+	uint64_t    timestamp;
+	/*
+	 * Maximum theoretical bandwidth of the interface.
+	 * unit: bits per second (bps)
+	 */
+	uint64_t    max_bandwidth;
+	/*
+	 * Total bytes sent or received on the interface.
+	 * wrap around possible and the application should account for that.
+	 * unit: byte
+	 */
+	uint64_t    total_byte_count;
+	/*
+	 * average throughput observed at the driver stack.
+	 * unit: bits per second (bps)
+	 */
+	uint64_t    average_throughput;
+	/*
+	 * flushable queue size at the driver.
+	 * should be set to UINT32_MAX if not available.
+	 * unit: byte
+	 */
+	uint32_t    flushable_queue_size;
+	/*
+	 * non flushable queue size at the driver.
+	 * should be set to UINT32_MAX if not available.
+	 * unit: byte
+	 */
+	uint32_t    non_flushable_queue_size;
+	/*
+	 * average delay observed at the interface.
+	 * unit: milliseconds (ms)
+	 */
+	uint32_t    average_delay;
+	/*
+	 * Current frequency band (enumeration).
+	 */
+#define IF_INTERFACE_ADVISORY_FREQ_BAND_NOT_AVAIL     0
+#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_24GHZ    1
+#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_5GHZ     2
+#define IF_INTERFACE_ADVISORY_FREQ_BAND_WIFI_6GHZ     3
+	uint8_t    frequency_band;
+	/*
+	 * Intermittent WiFi state [true(1)/false(0)]
+	 */
+	uint8_t     intermittent_state;
+	/*
+	 * Estimated period for which intermittent state is expected to last.
+	 * 1 tick -> 1 ms UNDEF => UINT16_MAX
+	 */
+	uint16_t    estimated_intermittent_period;
+	/*
+	 * Expected wifi outage period during intermittent state
+	 * 1 tick -> 1 ms UNDEF => UINT16_MAX
+	 */
+	uint16_t    single_outage_period;
+
+	/*
+	 * WiFi-BT coexistence, 1-ON, 0-OFF
+	 */
+	uint8_t     bt_coex;
+	/*
+	 * on scale of 1 to 5
+	 */
+	uint8_t     quality_score_delay;
+	/*
+	 * on scale of 1 to 5
+	 */
+	uint8_t     quality_score_loss;
+	/*
+	 * on scale of 1 to 5
+	 */
+	uint8_t     quality_score_channel;
+} __attribute__((aligned(sizeof(uint64_t))));
+#pragma pack(pop)
+
+#else
+
+struct ifnet_interface_advisory;
+
+#endif /* defined (PRIVATE) || defined (DRIVERKIT_PRIVATE) */
+
+
 #pragma pack()
 
 /*
lib/libc/include/any-macos-any/net/route.h → lib/libc/include/any-macos.11-any/net/route.h
File renamed without changes
lib/libc/include/any-macos.11-any/netinet6/in6.h
@@ -1,681 +0,0 @@
-/*
- * 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 <sys/appleapiopts.h>
-
-#include <sys/_types.h>
-#include <sys/_types/_sa_family_t.h>
-
-/*
- * 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 <netinet/in.h>
- *
- * To use the old IPv6 Sockets options from RFC 2292
- * the constant __APPLE_USE_RFC_2292 must be defined before
- * including <netinet/in.h>
- *
- * 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
-
-/* 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 /* PLATFORM_DriverKit */
-#endif /* !_NETINET6_IN6_H_ */
\ No newline at end of file
lib/libc/include/any-macos.11-any/objc/objc-api.h
@@ -1,304 +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 <Availability.h>
-#include <AvailabilityMacros.h>
-#include <TargetConditionals.h>
-#include <sys/types.h>
-
-#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)
-#   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
-
-/* 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
-
-#endif
\ No newline at end of file
lib/libc/include/any-macos.11-any/objc/runtime.h
@@ -52,24 +52,6 @@ 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__
@@ -1877,154 +1859,8 @@ _objc_realizeClassFromSwift(Class _Nullable cls, void * _Nullable previously)
 #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
@@ -2057,108 +1893,9 @@ 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
lib/libc/include/any-macos.11-any/os/base.h
@@ -1,322 +0,0 @@
-/*
- * 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 <sys/cdefs.h>
-
-
-#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 // <sys/_types/_os_inline.h>
-#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(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_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:
- * <code>
- * os_block_t block;
- * if (x) {
- *     block = ^{ printf("true\n"); };
- * } else {
- *     block = ^{ printf("false\n"); };
- * }
- * block(); // unsafe!!!
- * </code>
- *
- * What is happening behind the scenes:
- * <code>
- * if (x) {
- *     struct Block __tmp_1 = ...; // setup details
- *     block = &__tmp_1;
- * } else {
- *     struct Block __tmp_2 = ...; // setup details
- *     block = &__tmp_2;
- * }
- * </code>
- *
- * 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
lib/libc/include/any-macos.11-any/simd/common.h
@@ -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 <simd/base.h>
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include <simd/vector_make.h>
-#include <simd/logic.h>
-#include <simd/math.h>
-
-#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 <typename typeN> static SIMD_CPPFUNC typeN abs(const typeN x) { return ::simd_abs(x); }
-  /*! @abstract The lanewise maximum of x and y.                              */
-  template <typename typeN> 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 <typename typeN> 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 <typename typeN> 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 <typename fptypeN> 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 <typename fptypeN> 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 <typename fptypeN> static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return simd_recip(x); }
-  /*! @abstract An approximation to 1/sqrt(x).                                */
-  template <typename fptypeN> static SIMD_CPPFUNC fptypeN rsqrt(const fptypeN x) { return simd_rsqrt(x); }
-  /*! @abstract The "fracional part" of x, in the range [0,1).                */
-  template <typename fptypeN> static SIMD_CPPFUNC fptypeN fract(const fptypeN x) { return ::simd_fract(x); }
-  /*! @abstract 0 if x < edge, 1 otherwise.                                   */
-  template <typename fptypeN> 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 <typename fptypeN> 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 <typename fptypeN> 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 <typename typeN> static SIMD_CPPFUNC auto reduce_add(typeN x) { return ::simd_reduce_add(x); }
-  /*! @abstract The least element in x.                                       */
-  template <typename typeN> static SIMD_CPPFUNC auto reduce_min(typeN x) { return ::simd_reduce_min(x); }
-  /*! @abstract The greatest element in x.                                    */
-  template <typename typeN> static SIMD_CPPFUNC auto reduce_max(typeN x) { return ::simd_reduce_max(x); }
-#endif
-  namespace precise {
-    /*! @abstract An approximation to 1/x.                                      */
-    template <typename fptypeN> static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return ::simd_precise_recip(x); }
-    /*! @abstract An approximation to 1/sqrt(x).                                */
-    template <typename fptypeN> static SIMD_CPPFUNC fptypeN rsqrt(const fptypeN x) { return ::simd_precise_rsqrt(x); }
-  }
-  namespace fast {
-    /*! @abstract An approximation to 1/x.                                      */
-    template <typename fptypeN> static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return ::simd_fast_recip(x); }
-    /*! @abstract An approximation to 1/sqrt(x).                                */
-    template <typename fptypeN> 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 (simd_char16) _mm_abs_epi8((__m128i)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 (simd_short8) _mm_abs_epi16((__m128i)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 (simd_int4) _mm_abs_epi32((__m128i)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 (simd_long2) _mm_abs_epi64((__m128i)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 (simd_char16) _mm_min_epi8((__m128i)x, (__m128i)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 (simd_uchar16) _mm_min_epu8((__m128i)x, (__m128i)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 (simd_short8) _mm_min_epi16((__m128i)x, (__m128i)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 (simd_ushort8) _mm_min_epu16((__m128i)x, (__m128i)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 (simd_int4) _mm_min_epi32((__m128i)x, (__m128i)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 (simd_uint4) _mm_min_epu32((__m128i)x, (__m128i)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 (simd_char16) _mm_max_epi8((__m128i)x, (__m128i)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 (simd_uchar16) _mm_max_epu8((__m128i)x, (__m128i)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 (simd_short8) _mm_max_epi16((__m128i)x, (__m128i)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 (simd_ushort8) _mm_max_epu16((__m128i)x, (__m128i)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 (simd_int4) _mm_max_epi32((__m128i)x, (__m128i)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 (simd_uint4) _mm_max_epu32((__m128i)x, (__m128i)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
lib/libc/include/any-macos.11-any/simd/conversion.h
@@ -1,1966 +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 <simd/>, there are no abbreviated C++
- *  names for these functions in the simd:: namespace.
- */
-
-#ifndef __SIMD_CONVERSION_HEADER__
-#define __SIMD_CONVERSION_HEADER__
-
-#include <simd/base.h>
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include <simd/vector_types.h>
-#include <simd/common.h>
-#include <simd/logic.h>
-
-#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);
-static simd_int2  SIMD_CFUNC simd_int_rte(simd_float2   __x);
-static simd_int3  SIMD_CFUNC simd_int_rte(simd_float3   __x);
-static simd_int4  SIMD_CFUNC simd_int_rte(simd_float4   __x);
-static simd_int8  SIMD_CFUNC simd_int_rte(simd_float8   __x);
-static simd_int16 SIMD_CFUNC simd_int_rte(simd_float16  __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);
-static simd_long2  SIMD_CFUNC simd_long_rte(simd_double2  __x);
-static simd_long3  SIMD_CFUNC simd_long_rte(simd_double3  __x);
-static simd_long4  SIMD_CFUNC simd_long_rte(simd_double4  __x);
-static simd_long8  SIMD_CFUNC simd_long_rte(simd_double8  __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_int2  SIMD_CFUNC simd_int_rte(simd_float2   __x) {
-#if defined __arm64__
-  return vcvtn_s32_f32(__x);
-#else
-  return simd_make_int2(simd_int_rte(simd_make_float4_undef(__x)));
-#endif
-}
-
-static simd_int3  SIMD_CFUNC simd_int_rte(simd_float3   __x) {
-  return simd_make_int3(simd_int_rte(simd_make_float4_undef(__x)));
-}
-
-static simd_int4  SIMD_CFUNC simd_int_rte(simd_float4   __x) {
-#if defined __SSE2__
-  return _mm_cvtps_epi32(__x);
-#elif defined __arm64__
-  return vcvtnq_s32_f32(__x);
-#else
-  simd_float4 magic = __tg_copysign(0x1.0p23, __x);
-  simd_int4 x_is_small = __tg_fabs(__x) < 0x1.0p23;
-  return __builtin_convertvector(simd_bitselect(__x, (__x + magic) - magic, x_is_small & 0x7fffffff), simd_int4);
-#endif
-}
-
-static simd_int8  SIMD_CFUNC simd_int_rte(simd_float8   __x) {
-#if defined __AVX__
-  return _mm256_cvtps_epi32(__x);
-#else
-  return simd_make_int8(simd_int_rte(__x.lo), simd_int_rte(__x.hi));
-#endif
-}
-
-static simd_int16 SIMD_CFUNC simd_int_rte(simd_float16  __x) {
-#if defined __AVX512F__
-  return _mm512_cvt_roundps_epi32(__x, _MM_FROUND_RINT);
-#else
-  return simd_make_int16(simd_int_rte(__x.lo), simd_int_rte(__x.hi));
-#endif
-}
-
-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_long2  SIMD_CFUNC simd_long_rte(simd_double2  __x) {
-#if defined __AVX512F__
-  return _mm_cvtpd_epi64(__x);
-#elif defined __arm64__
-  return vcvtnq_s64_f64(__x);
-#else
-  simd_double2 magic = __tg_copysign(0x1.0p52, __x);
-  simd_long2 x_is_small = __tg_fabs(__x) < 0x1.0p52;
-  return __builtin_convertvector(simd_bitselect(__x, (__x + magic) - magic, x_is_small & 0x7fffffffffffffff), simd_long2);
-#endif
-}
-
-static simd_long3  SIMD_CFUNC simd_long_rte(simd_double3  __x) {
-  return simd_make_long3(simd_long_rte(simd_make_double4_undef(__x)));
-}
-
-static simd_long4  SIMD_CFUNC simd_long_rte(simd_double4  __x) {
-#if defined __AVX512F__
-  return _mm256_cvtpd_epi64(__x);
-#else
-  return simd_make_long4(simd_long_rte(__x.lo), simd_long_rte(__x.hi));
-#endif
-}
-
-static simd_long8  SIMD_CFUNC simd_long_rte(simd_double8  __x) {
-#if defined __AVX512F__
-  return _mm512_cvt_roundpd_epi64(__x, _MM_FROUND_RINT);
-#else
-  return simd_make_long8(simd_long_rte(__x.lo), simd_long_rte(__x.hi));
-#endif
-}
-
-
-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
lib/libc/include/any-macos.11-any/simd/math.h
@@ -1,5380 +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 <tgmath.h> 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 <simd/base.h>
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include <simd/vector_make.h>
-#include <simd/logic.h>
-
-#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 <cmath>
-/*! @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 <cmath> function acos to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN acos(fptypeN x) { return ::__tg_acos(x); }
-  
-/*! @abstract Generalizes the <cmath> function asin to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN asin(fptypeN x) { return ::__tg_asin(x); }
-  
-/*! @abstract Generalizes the <cmath> function atan to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN atan(fptypeN x) { return ::__tg_atan(x); }
-  
-/*! @abstract Generalizes the <cmath> function cos to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN cos(fptypeN x) { return ::__tg_cos(x); }
-  
-/*! @abstract Generalizes the <cmath> function sin to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN sin(fptypeN x) { return ::__tg_sin(x); }
-  
-/*! @abstract Generalizes the <cmath> function tan to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN tan(fptypeN x) { return ::__tg_tan(x); }
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the <cmath> function cospi to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN cospi(fptypeN x) { return ::__tg_cospi(x); }
-#endif
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the <cmath> function sinpi to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN sinpi(fptypeN x) { return ::__tg_sinpi(x); }
-#endif
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the <cmath> function tanpi to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN tanpi(fptypeN x) { return ::__tg_tanpi(x); }
-#endif
-  
-/*! @abstract Generalizes the <cmath> function acosh to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN acosh(fptypeN x) { return ::__tg_acosh(x); }
-  
-/*! @abstract Generalizes the <cmath> function asinh to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN asinh(fptypeN x) { return ::__tg_asinh(x); }
-  
-/*! @abstract Generalizes the <cmath> function atanh to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN atanh(fptypeN x) { return ::__tg_atanh(x); }
-  
-/*! @abstract Generalizes the <cmath> function cosh to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN cosh(fptypeN x) { return ::__tg_cosh(x); }
-  
-/*! @abstract Generalizes the <cmath> function sinh to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN sinh(fptypeN x) { return ::__tg_sinh(x); }
-  
-/*! @abstract Generalizes the <cmath> function tanh to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN tanh(fptypeN x) { return ::__tg_tanh(x); }
-  
-/*! @abstract Generalizes the <cmath> function exp to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN exp(fptypeN x) { return ::__tg_exp(x); }
-  
-/*! @abstract Generalizes the <cmath> function exp2 to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN exp2(fptypeN x) { return ::__tg_exp2(x); }
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the <cmath> function exp10 to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN exp10(fptypeN x) { return ::__tg_exp10(x); }
-#endif
-  
-/*! @abstract Generalizes the <cmath> function expm1 to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN expm1(fptypeN x) { return ::__tg_expm1(x); }
-  
-/*! @abstract Generalizes the <cmath> function log to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN log(fptypeN x) { return ::__tg_log(x); }
-  
-/*! @abstract Generalizes the <cmath> function log2 to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN log2(fptypeN x) { return ::__tg_log2(x); }
-  
-/*! @abstract Generalizes the <cmath> function log10 to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN log10(fptypeN x) { return ::__tg_log10(x); }
-  
-/*! @abstract Generalizes the <cmath> function log1p to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN log1p(fptypeN x) { return ::__tg_log1p(x); }
-  
-/*! @abstract Generalizes the <cmath> function fabs to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN fabs(fptypeN x) { return ::__tg_fabs(x); }
-  
-/*! @abstract Generalizes the <cmath> function cbrt to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN cbrt(fptypeN x) { return ::__tg_cbrt(x); }
-  
-/*! @abstract Generalizes the <cmath> function sqrt to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN sqrt(fptypeN x) { return ::__tg_sqrt(x); }
-  
-/*! @abstract Generalizes the <cmath> function erf to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN erf(fptypeN x) { return ::__tg_erf(x); }
-  
-/*! @abstract Generalizes the <cmath> function erfc to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN erfc(fptypeN x) { return ::__tg_erfc(x); }
-  
-/*! @abstract Generalizes the <cmath> function tgamma to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN tgamma(fptypeN x) { return ::__tg_tgamma(x); }
-  
-/*! @abstract Generalizes the <cmath> function ceil to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN ceil(fptypeN x) { return ::__tg_ceil(x); }
-  
-/*! @abstract Generalizes the <cmath> function floor to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN floor(fptypeN x) { return ::__tg_floor(x); }
-  
-/*! @abstract Generalizes the <cmath> function rint to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN rint(fptypeN x) { return ::__tg_rint(x); }
-  
-/*! @abstract Generalizes the <cmath> function round to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN round(fptypeN x) { return ::__tg_round(x); }
-  
-/*! @abstract Generalizes the <cmath> function trunc to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN trunc(fptypeN x) { return ::__tg_trunc(x); }
-  
-/*! @abstract Generalizes the <cmath> function atan2 to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN atan2(fptypeN y, fptypeN x) { return ::__tg_atan2(y, x); }
-    
-/*! @abstract Generalizes the <cmath> function hypot to operate on vectors
- *  of floats and doubles.                                                    */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN hypot(fptypeN x, fptypeN y) { return ::__tg_hypot(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function pow to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN pow(fptypeN x, fptypeN y) { return ::__tg_pow(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function fmod to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN fmod(fptypeN x, fptypeN y) { return ::__tg_fmod(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function remainder to operate on
- *  vectors of floats and doubles.                                            */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN remainder(fptypeN x, fptypeN y) { return ::__tg_remainder(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function copysign to operate on
- *  vectors of floats and doubles.                                            */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN copysign(fptypeN x, fptypeN y) { return ::__tg_copysign(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function nextafter to operate on
- *  vectors of floats and doubles.                                            */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN nextafter(fptypeN x, fptypeN y) { return ::__tg_nextafter(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function fdim to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN fdim(fptypeN x, fptypeN y) { return ::__tg_fdim(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function fmax to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN fmax(fptypeN x, fptypeN y) { return ::__tg_fmax(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function fmin to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN fmin(fptypeN x, fptypeN y) { return ::__tg_fmin(x, y); }
-    
-/*! @abstract Generalizes the <cmath> function fma to operate on vectors of
- *  floats and doubles.                                                       */
-  template <typename fptypeN>
-  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 <typename fptypeN>
-  static SIMD_CPPFUNC fptypeN muladd(fptypeN x, fptypeN y, fptypeN z) { return ::simd_muladd(x, y, z); }
-};
-
-extern "C" {
-#else
-#include <tgmath.h>
-/* 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 <math.h>, 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 `<simd/simd.h>`.                        */
-#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 `<simd/simd.h>`.                     */
-#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 `<simd/simd.h>`.                        */
-#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 `<simd/simd.h>`.                               */
-#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 __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, 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 __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
-
-static inline SIMD_CFUNC simd_float2 __tg_fdim(simd_float2 x, simd_float2 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_float3 __tg_fdim(simd_float3 x, simd_float3 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_float4 __tg_fdim(simd_float4 x, simd_float4 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_float8 __tg_fdim(simd_float8 x, simd_float8 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_float16 __tg_fdim(simd_float16 x, simd_float16 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_double2 __tg_fdim(simd_double2 x, simd_double2 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_double3 __tg_fdim(simd_double3 x, simd_double3 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_double4 __tg_fdim(simd_double4 x, simd_double4 y) { return simd_bitselect(x-y, 0, x<y); }
-static inline SIMD_CFUNC simd_double8 __tg_fdim(simd_double8 x, simd_double8 y) { return simd_bitselect(x-y, 0, x<y); }
- 
-static inline SIMD_CFUNC simd_float2 __tg_fma(simd_float2 x, simd_float2 y, simd_float2 z) {
-#if defined __arm64__ || defined __ARM_VFPV4__
-  return vfma_f32(z, x, y);
-#else
-  return simd_make_float2(__tg_fma(simd_make_float4_undef(x), simd_make_float4_undef(y), simd_make_float4_undef(z)));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_fma(simd_float3 x, simd_float3 y, simd_float3 z) {
-  return simd_make_float3(__tg_fma(simd_make_float4(x), simd_make_float4(y), simd_make_float4(z)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 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
lib/libc/include/any-macos.11-any/simd/quaternion.h
@@ -1,1194 +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 <simd/base.h>
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include <simd/vector.h>
-#include <simd/types.h>
-
-#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 <simd/math.h>
-#include <simd/geometry.h>
-  
-/*  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 = 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.                         */
-  half = simd_normalize(half);
-  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 <simd/math.h>
-#include <simd/geometry.h>
-  
-/*  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 = 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.                         */
-  half = simd_normalize(half);
-  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
lib/libc/include/any-macos.11-any/sys/_symbol_aliasing.h
@@ -341,6 +341,24 @@
 #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_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
@@ -555,4 +573,16 @@
 #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
\ No newline at end of file
lib/libc/include/any-macos.11-any/sys/attr.h
@@ -83,6 +83,7 @@ struct attrlist {
 	attrgroup_t fileattr;                   /* file attribute group */
 	attrgroup_t forkattr;                   /* fork attribute group */
 };
+
 #define ATTR_BIT_MAP_COUNT 5
 
 typedef struct attribute_set {
@@ -93,6 +94,9 @@ typedef struct attribute_set {
 	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;
@@ -463,12 +467,13 @@ typedef struct vol_attributes_attr {
 #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                      0xF007FFFF
+#define ATTR_VOL_VALIDMASK                      0xF087FFFF
 
 /*
  * The list of settable ATTR_VOL_* attributes include the following:
lib/libc/include/any-macos.11-any/sys/cdefs.h
@@ -152,8 +152,16 @@
 #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.
@@ -179,9 +187,9 @@
  * __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")
+#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.
@@ -817,6 +825,7 @@
 #define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden")))
 #endif
 
+
 /*
  * Architecture validation for current SDK
  */
@@ -873,4 +882,11 @@
 	        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
lib/libc/include/any-macos.11-any/sys/event.h
@@ -58,7 +58,9 @@
 
 #include <machine/types.h>
 #include <sys/cdefs.h>
+#include <sys/queue.h>
 #include <stdint.h>
+#include <sys/types.h>
 
 /*
  * Filter types
@@ -366,13 +368,10 @@ enum {
 
 
 /* Temporay solution for BootX to use inode.h till kqueue moves to vfs layer */
-#include <sys/queue.h>
 struct knote;
 SLIST_HEAD(klist, knote);
 
 
-#include <sys/types.h>
-
 struct timespec;
 
 __BEGIN_DECLS
lib/libc/include/any-macos.11-any/sys/fcntl.h
@@ -134,8 +134,11 @@
 #define O_NOCTTY        0x00020000      /* don't assign controlling terminal */
 
 
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#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
 
@@ -256,7 +259,13 @@
 
 #define F_LOG2PHYS_EXT  65              /* file offset to device offset, extended */
 
-#define F_GETLKPID              66              /* get record locking information, per-process */
+#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 */
 
lib/libc/include/any-macos.11-any/sys/mount.h
@@ -388,7 +388,6 @@ struct netfs_status {
 
 
 
-
 /*
  * Generic file handle
  */
@@ -403,6 +402,7 @@ struct fhandle {
 typedef struct fhandle  fhandle_t;
 
 
+
 __BEGIN_DECLS
 int     fhopen(const struct fhandle *, int);
 int     fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs);
lib/libc/include/any-macos.11-any/sys/proc_info.h
@@ -620,12 +620,11 @@ struct kqueue_dyninfo {
 };
 
 /* 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
-
+#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;
lib/libc/include/any-macos.11-any/sys/resource.h
@@ -1,520 +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 <sys/appleapiopts.h>
-#include <sys/cdefs.h>
-#include <sys/_types.h>
-
-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
-#include <stdint.h>
-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
-
-#include <Availability.h>
-
-/* [XSI] The timeval structure shall be defined as described in
- * <sys/time.h>
- */
-#include <sys/_types/_timeval.h>
-
-/* The id_t type shall be defined as described in <sys/types.h> */
-#include <sys/_types/_id_t.h>
-
-
-/*
- * 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_CURRENT     RUSAGE_INFO_V5
-
-/*
- * 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;
-};
-
-typedef struct rusage_info_v5 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
-
-/* 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
-
-#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
lib/libc/include/any-macos.11-any/sys/socket.h
@@ -1,741 +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 <sys/types.h>
-#include <sys/cdefs.h>
-#include <machine/_param.h>
-#include <net/net_kev.h>
-
-
-#include <Availability.h>
-
-/*
- * Definitions related to sockets: types, address families, options.
- */
-
-/*
- * Data types.
- */
-
-#include <sys/_types/_gid_t.h>
-#include <sys/_types/_off_t.h>
-#include <sys/_types/_pid_t.h>
-#include <sys/_types/_sa_family_t.h>
-#include <sys/_types/_socklen_t.h>
-
-/* XXX Not explicitly defined by POSIX, but function return types are */
-#include <sys/_types/_size_t.h>
-
-/* XXX Not explicitly defined by POSIX, but function return types are */
-#include <sys/_types/_ssize_t.h>
-
-/*
- * [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
- */
-#include <sys/_types/_iovec_t.h>
-
-/*
- * 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          /* 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_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_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 */
-	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_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
lib/libc/include/any-macos.11-any/sys/sockio.h
@@ -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 <sys/appleapiopts.h>
-
-#include <sys/ioccom.h>
-
-/* 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 <net/if_media.h>
- */
-#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)   /* deprecated */
-#define SIOCSIFMAC      _IOW('i', 131, struct ifreq)    /* deprecated */
-#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
lib/libc/include/any-macos.11-any/sys/sysctl.h
@@ -338,8 +338,8 @@ struct ctlname {
 #define KERN_KDSET_TYPEFILTER 22
 #define KERN_KDBUFWAIT        23
 #define KERN_KDCPUMAP         24
-/* 25 - 26 unused */
-#define KERN_KDWRITEMAP_V3    27
+#define KERN_KDCPUMAP_EXT     25
+/* 25 - 27 unused */
 #define KERN_KDWRITETR_V3     28
 
 #define CTL_KERN_NAMES { \
@@ -668,6 +668,28 @@ extern struct loadavg averunnable;
  *   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
lib/libc/include/any-macos.11-any/xpc/availability.h
@@ -1,124 +0,0 @@
-#ifndef __XPC_AVAILABILITY_H__
-#define __XPC_AVAILABILITY_H__
-
-#include <Availability.h>
-
-// Certain parts of the project use all the project's headers but have to build
-// against newer OSX SDKs than ebuild uses -- liblaunch_host being the example.
-// So we need to define these.
-#ifndef __MAC_10_16
-#define __MAC_10_16 101600
-#endif // __MAC_10_16
-
-#ifndef __MAC_10_15
-#define __MAC_10_15 101500
-#define __AVAILABILITY_INTERNAL__MAC_10_15 \
-__attribute__((availability(macosx, introduced=10.15)))
-#endif // __MAC_10_15
-
-#ifndef __MAC_10_14
-#define __MAC_10_14 101400
-#define __AVAILABILITY_INTERNAL__MAC_10_14 \
-__attribute__((availability(macosx, introduced=10.14)))
-#endif // __MAC_10_14
-
-#ifndef __MAC_10_13
-#define __MAC_10_13 101300
-#define __AVAILABILITY_INTERNAL__MAC_10_13 \
-	__attribute__((availability(macosx, introduced=10.13)))
-#endif // __MAC_10_13
-
-#ifndef __MAC_10_12
-#define __MAC_10_12 101200
-#define __AVAILABILITY_INTERNAL__MAC_10_12 \
-	__attribute__((availability(macosx, introduced=10.12)))
-#endif // __MAC_10_12
-
-#ifndef __MAC_10_11
-#define __MAC_10_11 101100
-#define __AVAILABILITY_INTERNAL__MAC_10_11 \
-	__attribute__((availability(macosx, introduced=10.11)))
-#endif // __MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
-#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
-#endif // __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
-
-#ifndef __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
-#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
-#endif // __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
-
-#if __has_include(<simulator_host.h>)
-#include <simulator_host.h>
-#else // __has_include(<simulator_host.h>)
-#ifndef IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED
-#define IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED 999999
-#endif // IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED
-#endif // __has_include(<simulator_host.h>)
-
-#ifndef __WATCHOS_UNAVAILABLE
-#define __WATCHOS_UNAVAILABLE
-#endif
-
-#ifndef __TVOS_UNAVAILABLE
-#define __TVOS_UNAVAILABLE
-#endif
-
-// simulator host-side bits build against SDKs not having __*_AVAILABLE() yet
-#ifndef __OSX_AVAILABLE
-#define __OSX_AVAILABLE(...)
-#endif
-
-#ifndef __IOS_AVAILABLE
-#define __IOS_AVAILABLE(...)
-#endif
-
-#ifndef __TVOS_AVAILABLE
-#define __TVOS_AVAILABLE(...)
-#endif
-
-#ifndef __WATCHOS_AVAILABLE
-#define __WATCHOS_AVAILABLE(...)
-#endif
-
-#ifndef __API_AVAILABLE
-#define __API_AVAILABLE(...)
-#endif
-
-#endif // __XPC_AVAILABILITY_H__
\ No newline at end of file
lib/libc/include/any-macos.11-any/xpc/base.h
@@ -1,213 +0,0 @@
-// Copyright (c) 2009-2011 Apple Inc. All rights reserved.
-
-#ifndef __XPC_BASE_H__
-#define __XPC_BASE_H__
-
-#include <sys/cdefs.h>
-
-__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(<xpc/availability.h>)
-#include <xpc/availability.h>
-#else // __has_include(<xpc/availability.h>)
-#include <Availability.h>
-#endif // __has_include(<xpc/availability.h>)
-
-#include <os/availability.h>
-
-#ifndef __XPC_INDIRECT__
-#error "Please #include <xpc/xpc.h> 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
lib/libc/include/any-macos.11-any/xpc/connection.h
@@ -1,748 +0,0 @@
-#ifndef __XPC_CONNECTION_H__
-#define __XPC_CONNECTION_H__
-
-#ifndef __XPC_INDIRECT__
-#error "Please #include <xpc/xpc.h> instead of this file directly."
-// For HeaderDoc.
-#include <xpc/base.h>
-#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 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);
-
-__END_DECLS
-XPC_ASSUME_NONNULL_END
-
-#endif // __XPC_CONNECTION_H__
\ No newline at end of file
lib/libc/include/any-macos.11-any/AvailabilityInternal.h
@@ -55,7 +55,7 @@
     #ifdef __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ when -mtvos-version-min is used */
         #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
-        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_14_5
+        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_15_2
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -65,7 +65,7 @@
     #ifdef __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ when -mwatchos-version-min is used */
         #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
-        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_7_4
+        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_8_3
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -75,7 +75,7 @@
     #ifdef __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
         
         #define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
-        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 50300
+        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 60100
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
     #endif
@@ -90,14 +90,14 @@
 #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
     /* make sure a default max version is set */
     #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
-        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_11_3
+        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_12_1
     #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_14_5
+        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_15_2
     #endif
     /* make sure a valid min is set */
     #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
lib/libc/include/any-macos.11-any/AvailabilityMacros.h
@@ -1,4015 +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_VERSION_11_0         110000
-#define MAC_OS_VERSION_11_1         110100
-#define MAC_OS_VERSION_11_3         110300
-
-/* 
- * 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_11_3
-        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_MIN_REQUIRED
-    #else
-        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_VERSION_11_3
-    #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 <Availability.h>
-			#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
lib/libc/include/any-macos.11-any/AvailabilityVersions.h
@@ -60,6 +60,11 @@
 #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
 /* __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
@@ -114,6 +119,12 @@
 #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
 /* __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
@@ -142,6 +153,11 @@
 #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 __WATCHOS_1_0     10000
 #define __WATCHOS_2_0     20000
@@ -167,6 +183,12 @@
 #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
+
 
 /*
  * Set up standard Mac OS X versions
@@ -207,10 +229,12 @@
 #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
 
 #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
lib/libc/include/any-macos.11-any/pthread.h
@@ -1,592 +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>
-#include <pthread/sched.h>
-#include <time.h>
-#include <sys/_pthread/_pthread_types.h>
-#include <sys/_pthread/_pthread_attr_t.h>
-#include <sys/_pthread/_pthread_cond_t.h>
-#include <sys/_pthread/_pthread_condattr_t.h>
-#include <sys/_pthread/_pthread_key_t.h>
-#include <sys/_pthread/_pthread_mutex_t.h>
-#include <sys/_pthread/_pthread_mutexattr_t.h>
-#include <sys/_pthread/_pthread_once_t.h>
-#include <sys/_pthread/_pthread_rwlock_t.h>
-#include <sys/_pthread/_pthread_rwlockattr_t.h>
-#include <sys/_pthread/_pthread_t.h>
-
-#include <pthread/qos.h>
-
-#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
-
-#include <sys/_types/_mach_port_t.h>
-#include <sys/_types/_sigset_t.h>
-
-#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 <unistd.h>
- * #ifdef _POSIX_THREADS
- * #include <pthread.h>
- * #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 <sys/types.h>
- */
-
-#include <sys/cdefs.h>
-#include <Availability.h>
-
-#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}}
-
-/* <rdar://problem/10854763> */
-#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
-
-/* <rdar://problem/25944576> */
-#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);
-
-__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);
-
-/*!
- * @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
lib/libc/include/any-macos-any/spawn.h → lib/libc/include/any-macos.11-any/spawn.h
File renamed without changes
lib/libc/include/any-macos.11-any/stdio.h
@@ -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 <limits.h> */
-#define	FOPEN_MAX	20	/* must be <= OPEN_MAX <sys/syslimits.h> */
-#define	FILENAME_MAX	1024	/* must be <= PATH_MAX <sys/syslimits.h> */
-
-/* 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_IPHONE
-#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 <sys/_types/_off_t.h>
-
-__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 <sys/_types/_ssize_t.h>
-
-__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 <xlocale/_stdio.h>
-#endif /* _USE_EXTENDED_LOCALES_ */
-
-#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus)
-/* Security checking functions.  */
-#include <secure/_stdio.h>
-#endif
-
-#endif /* _STDIO_H_ */
\ No newline at end of file
lib/libc/include/any-macos.11-any/stdlib.h
@@ -1,373 +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 <Availability.h>
-#include <sys/cdefs.h>
-
-#include <_types.h>
-#if !defined(_ANSI_SOURCE)
-#include <sys/wait.h>
-#if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-#include <alloca.h>
-#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#endif /* !_ANSI_SOURCE */
-
-/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
- * _GCC_SIZE_T */
-#include <sys/_types/_size_t.h>
-
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-#include <sys/_types/_ct_rune_t.h>
-#include <sys/_types/_rune_t.h>
-#endif	/* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-#include <sys/_types/_wchar_t.h>
-
-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 <sys/_types/_null.h>
-
-#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 <malloc/_malloc.h>
-
-__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_IPHONE
-#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 <machine/types.h>
-#include <sys/_types/_dev_t.h>
-#include <sys/_types/_mode_t.h>
-#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);
-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 <xlocale/_stdlib.h>
-#endif /* _USE_EXTENDED_LOCALES_ */
-
-#endif /* _STDLIB_H_ */
\ No newline at end of file
lib/libc/include/any-macos.11-any/TargetConditionals.h
@@ -61,8 +61,10 @@
  *  The IOS/TV/WATCH conditionals are mutually exclusive.
  *
  *
- *      TARGET_OS_WIN32           - Generated code will run under 32-bit Windows
+ *      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
@@ -178,7 +180,7 @@
     /* -target=x86_64-apple-driverkit19.0 */
     /* -target=arm64-apple-driverkit19.0 */
     /* -target=arm64e-apple-driverkit19.0 */
-    #if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(driverkit)
+    #if __is_target_vendor(apple) && __is_target_os(driverkit)
         #define TARGET_OS_OSX               0
         #define TARGET_OS_IPHONE            0
         #define TARGET_OS_IOS               0
@@ -214,7 +216,9 @@
 #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
@@ -355,7 +359,9 @@
 #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
@@ -481,7 +487,9 @@
     #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
lib/libc/include/any-macos-any/time.h → lib/libc/include/any-macos.11-any/time.h
File renamed without changes
lib/libc/include/any-macos.12-any/dispatch/queue.h
@@ -473,6 +473,9 @@ dispatch_async_and_wait_f(dispatch_queue_t queue,
  * @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))
lib/libc/include/any-macos.12-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 <mach/mach_types.h>
+#include <mach/vm_page_size.h>
+#include <stdarg.h>
+
+#include <sys/cdefs.h>
+
+#include <Availability.h>
+
+/*
+ *	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 <mach/mach_traps.h>
+__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
lib/libc/include/any-macos.12-any/mach/mach_types.h
@@ -145,7 +145,6 @@ 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             suid_cred_t;
 typedef mach_port_t             task_id_token_t;
 
 
@@ -219,8 +218,6 @@ 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 */
-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)
@@ -249,7 +246,6 @@ typedef uint32_t suid_cred_uid_t;
 #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 SUID_CRED_NULL          ((suid_cred_t) 0)
 #define TASK_ID_TOKEN_NULL      ((task_id_token_t) 0)
 
 /* capability strictly _DECREASING_.
lib/libc/include/any-macos.12-any/mach/task.h
@@ -49,7 +49,7 @@ typedef function_table_entry   *function_table_t;
 #endif /* AUTOTEST */
 
 #ifndef	task_MSG_COUNT
-#define	task_MSG_COUNT	63
+#define	task_MSG_COUNT	64
 #endif	/* task_MSG_COUNT */
 
 #include <Availability.h>
@@ -812,20 +812,6 @@ kern_return_t task_set_exc_guard_behavior
 	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
-);
-
 /* Routine task_dyld_process_info_notify_register */
 #ifdef	mig_external
 mig_external
@@ -916,6 +902,20 @@ kern_return_t task_set_corpse_forking_behavior
 	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
+);
+
 __END_DECLS
 
 /********************** Caution **************************/
@@ -1018,7 +1018,7 @@ __END_DECLS
 		NDR_record_t NDR;
 		task_flavor_t flavor;
 		mach_msg_type_number_t task_info_inCnt;
-		integer_t task_info_in[87];
+		integer_t task_info_in[89];
 	} __Request__task_set_info_t __attribute__((unused));
 #ifdef  __MigPackStructs
 #pragma pack(pop)
@@ -1640,21 +1640,6 @@ __END_DECLS
 #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
-
 #ifdef  __MigPackStructs
 #pragma pack(push, 4)
 #endif
@@ -1740,6 +1725,23 @@ __END_DECLS
 #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
 #endif /* !__Request__task_subsystem__defined */
 
 /* union of all requests */
@@ -1801,7 +1803,6 @@ union __RequestUnion__task_subsystem {
 	__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;
 	__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;
@@ -1809,6 +1810,7 @@ union __RequestUnion__task_subsystem {
 	__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;
 };
 #endif /* !__RequestUnion__task_subsystem__defined */
 /* typedefs for all replies */
@@ -1894,7 +1896,7 @@ union __RequestUnion__task_subsystem {
 		NDR_record_t NDR;
 		kern_return_t RetCode;
 		mach_msg_type_number_t task_info_outCnt;
-		integer_t task_info_out[87];
+		integer_t task_info_out[89];
 	} __Reply__task_info_t __attribute__((unused));
 #ifdef  __MigPackStructs
 #pragma pack(pop)
@@ -2540,20 +2542,6 @@ union __RequestUnion__task_subsystem {
 #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
-
 #ifdef  __MigPackStructs
 #pragma pack(push, 4)
 #endif
@@ -2646,6 +2634,18 @@ union __RequestUnion__task_subsystem {
 #ifdef  __MigPackStructs
 #pragma pack(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
 #endif /* !__Reply__task_subsystem__defined */
 
 /* union of all replies */
@@ -2707,7 +2707,6 @@ union __ReplyUnion__task_subsystem {
 	__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;
 	__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;
@@ -2715,6 +2714,7 @@ union __ReplyUnion__task_subsystem {
 	__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;
 };
 #endif /* !__RequestUnion__task_subsystem__defined */
 
@@ -2774,14 +2774,14 @@ union __ReplyUnion__task_subsystem {
     { "task_inspect", 3451 },\
     { "task_get_exc_guard_behavior", 3452 },\
     { "task_set_exc_guard_behavior", 3453 },\
-    { "task_create_suid_cred", 3454 },\
     { "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_set_corpse_forking_behavior", 3462 },\
+    { "task_test_async_upcall_propagation", 3463 }
 #endif
 
 #ifdef __AfterMigUserHeader
lib/libc/include/any-macos.12-any/mach/task_info.h
@@ -400,12 +400,17 @@ struct task_vm_info {
 
 	/* 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_REV5_COUNT TASK_VM_INFO_COUNT
+#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 */ \
lib/libc/include/any-macos.12-any/mach-o/loader.h
@@ -1274,12 +1274,22 @@ struct build_tool_version {
 #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
 
 /*
  * The dyld_info_command contains the file offsets and sizes of 
lib/libc/include/any-macos.12-any/mach_debug/mach_debug_types.h
@@ -1,199 +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 <mach_debug/ipc_info.h>
-#include <mach_debug/vm_info.h>
-#include <mach_debug/zone_info.h>
-#include <mach_debug/page_info.h>
-#include <mach_debug/hash_info.h>
-#include <mach_debug/lockgroup_info.h>
-
-#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 */
-
-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 compressed. Possibly in an AEA container]     | <---+
- * [core #2 data. Zlib 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
lib/libc/include/any-macos.12-any/net/if.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2020 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2021 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
lib/libc/include/any-macos.12-any/net/if_var.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2022 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
lib/libc/include/any-macos.12-any/net/route.h
@@ -0,0 +1,263 @@
+/*
+ * 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 <sys/appleapiopts.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+/*
+ * 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
lib/libc/include/any-macos.12-any/objc/runtime.h
@@ -1827,37 +1827,51 @@ _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'
+// 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;
 
lib/libc/include/any-macos.12-any/sys/_symbol_aliasing.h
@@ -347,6 +347,30 @@
 #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_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
@@ -567,4 +591,22 @@
 #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
\ No newline at end of file
lib/libc/include/any-macos.12-any/sys/attr.h
@@ -52,6 +52,7 @@
 
 #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
lib/libc/include/any-macos.12-any/sys/cdefs.h
@@ -395,11 +395,13 @@
  * types.
  */
 #define __printflike(fmtarg, firstvararg) \
-	        __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+	__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
 #define __printf0like(fmtarg, firstvararg) \
-	        __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
+	__attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
 #define __scanflike(fmtarg, firstvararg) \
-	        __attribute__((__format__ (__scanf__, 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
 
@@ -825,6 +827,49 @@
 #define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden")))
 #endif
 
+#if __has_include(<ptrcheck.h>)
+#include <ptrcheck.h>
+#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)
+
+/*
+ * 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))
+
+/* decay operates normally; attribute is meaningless without pointer checks. */
+#define __array_decay_dicards_count_in_parameters
+#endif /* !__has_include(<ptrcheck.h>) */
+
+#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
@@ -883,6 +928,7 @@
 #endif
 
 
+
 #define __kernel_ptr_semantics
 #define __kernel_data_semantics
 #define __kernel_dual_semantics
lib/libc/include/any-macos.12-any/sys/event.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003-2019 Apple Inc. All rights reserved.
+ * Copyright (c) 2003-2021 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
lib/libc/include/any-macos.12-any/sys/fcntl.h
@@ -172,6 +172,7 @@
 #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
 
@@ -308,6 +309,7 @@
 #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_FSRESERVED            106     /* Placeholder for future usage */
 
 // FS-specific fcntl()'s numbers begin at 0x00010000 and go up
 #define FCNTL_FS_SPECIFIC_BASE  0x00010000
lib/libc/include/any-macos.12-any/sys/mount.h
@@ -228,6 +228,7 @@ struct vfsstatfs {
 #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 */
@@ -247,7 +248,8 @@ struct vfsstatfs {
 	                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)
+	                MNT_NOFOLLOW | MNT_NOATIME | MNT_STRICTATIME | \
+	                MNT_SNAPSHOT | MNT_CPROTECT)
 /*
  * External filesystem command modifier flags.
  * Unmount can use the MNT_FORCE flag.
lib/libc/include/any-macos.12-any/sys/proc_info.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005-2020 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2005-2021 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -652,6 +652,8 @@ typedef uint64_t proc_info_udata_t;
 #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;
@@ -663,6 +665,39 @@ struct proc_fileportinfo {
 	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
@@ -741,6 +776,8 @@ struct proc_fileportinfo {
 #define PROC_PIDFDATALKINFO_SIZE        (sizeof(struct appletalk_fdinfo))
 
 
+#define PROC_PIDFDCHANNELINFO           10
+#define PROC_PIDFDCHANNELINFO_SIZE      (sizeof(struct channel_fdinfo))
 
 /* Flavors for proc_pidfileportinfo */
 
lib/libc/include/any-macos.11-any/machine/_param.h → lib/libc/include/any-macos.12-any/sys/stdio.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+ * Copyright (c) 2013 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -25,10 +25,36 @@
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
-#if defined (__i386__) || defined (__x86_64__)
-#include <i386/_param.h>
-#elif defined (__arm__) || defined (__arm64__)
-#include <arm/_param.h>
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
+
+#ifndef _SYS_STDIO_H_
+#define _SYS_STDIO_H_
+
+#include <sys/cdefs.h>
+
+#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 <Availability.h>
+
+__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
lib/libc/include/any-macos.12-any/sys/sysctl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2021 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -339,7 +339,8 @@ struct ctlname {
 #define KERN_KDBUFWAIT        23
 #define KERN_KDCPUMAP         24
 #define KERN_KDCPUMAP_EXT     25
-/* 25 - 27 unused */
+#define KERN_KDSET_EDM        26
+#define KERN_KDGET_EDM        27
 #define KERN_KDWRITETR_V3     28
 
 #define CTL_KERN_NAMES { \
lib/libc/include/any-macos.12-any/sys/unistd.h
@@ -0,0 +1,219 @@
+/*
+ * 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 <sys/cdefs.h>
+
+/*
+ * 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 <sys/_types/_posix_vdisable.h>
+
+#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 <sys/_types/_seek_set.h>
+
+#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 <machine/_types.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <_types/_uint64_t.h>
+#include <_types/_uint32_t.h>
+#include <Availability.h>
+
+__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 <machine/_types.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <sys/_types.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_gid_t.h>
+#include <Availability.h>
+
+__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
lib/libc/include/any-macos.12-any/AvailabilityInternal.h
@@ -55,7 +55,7 @@
     #ifdef __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ when -mtvos-version-min is used */
         #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
-        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_15_0
+        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_15_4
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -65,7 +65,7 @@
     #ifdef __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ when -mwatchos-version-min is used */
         #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
-        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_8_0
+        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_8_5
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -75,7 +75,7 @@
     #ifdef __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
         
         #define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
-        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 60000
+        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 60400
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
     #endif
@@ -90,14 +90,14 @@
 #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
     /* make sure a default max version is set */
     #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
-        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_12_0
+        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_12_3
     #endif
 #endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */
 
 #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
     /* make sure a default max version is set */
     #ifndef __IPHONE_OS_VERSION_MAX_ALLOWED
-        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_15_0
+        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_15_4
     #endif
     /* make sure a valid min is set */
     #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
lib/libc/include/any-macos.12-any/AvailabilityVersions.h
@@ -62,7 +62,11 @@
 #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
 /* __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
@@ -121,6 +125,10 @@
 #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
 /* __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
@@ -152,6 +160,10 @@
 #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 __WATCHOS_1_0     10000
 #define __WATCHOS_2_0     20000
@@ -180,6 +192,10 @@
 #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
 
 /*
  * Set up standard Mac OS X versions
lib/libc/include/any-macos.12-any/copyfile.h
@@ -0,0 +1,136 @@
+/*
+ * 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 <sys/cdefs.h>
+#include <stdint.h>
+
+__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_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
lib/libc/include/any-macos.12-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 <sys/cdefs.h>
+#include <_types.h>
+#include <sys/spawn.h> /* shared types */
+
+#include <Availability.h>
+
+/*
+ * [SPN] Inclusion of the <spawn.h> header may make visible symbols defined
+ * in the <sched.h>, <signal.h>, and <sys/types.h> headers.
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_sigset_t.h>
+#include <sys/_types/_mode_t.h>
+
+/*
+ * 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 <mach/exception_types.h>
+#include <mach/machine.h>
+#include <mach/port.h>
+
+#include <sys/_types/_size_t.h>
+
+__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
lib/libc/include/any-macos.12-any/TargetConditionals.h
@@ -73,25 +73,26 @@
  *            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_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
@@ -112,13 +113,13 @@
  *      __is_target_os
  *      __is_target_environment
  *
- *  “-target=x86_64-apple-ios12-macabi”
+ *  "-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=x86_64-apple-ios12-simulator"
  *      TARGET_OS_MAC=1
  *      TARGET_OS_IPHONE=1
  *      TARGET_OS_IOS=1
@@ -135,9 +136,9 @@
    #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” */
+    /* "-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
@@ -150,6 +151,7 @@
         #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
@@ -157,8 +159,10 @@
         #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)
+    /* "-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
@@ -170,6 +174,7 @@
         #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
@@ -177,9 +182,11 @@
         #define DYNAMIC_TARGETS_ENABLED     1
     #endif 
 
-    /* -target=x86_64-apple-driverkit19.0 */
-    /* -target=arm64-apple-driverkit19.0 */
-    /* -target=arm64e-apple-driverkit19.0 */
+
+
+    /* "-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
@@ -192,6 +199,7 @@
         #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
@@ -229,6 +237,7 @@
         #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
lib/libc/include/any-macos.12-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 <sys/cdefs.h>
+#include <Availability.h>
+#include <sys/_types/_clock_t.h>
+#include <sys/_types/_null.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_timespec.h>
+
+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 <machine/_limits.h>	/* 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 <xlocale/_time.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* !_TIME_H_ */
\ No newline at end of file
lib/libc/include/any-macos.12-any/device/device_types.h → lib/libc/include/x86_64-macos.10-none/device/device_types.h
@@ -70,7 +70,6 @@
 #include <mach/mach_types.h>
 #include <mach/message.h>
 #include <mach/port.h>
-#include <stdint.h>
 
 
 
@@ -83,6 +82,7 @@ typedef char *  io_buf_ptr_t;
  * Some types for IOKit.
  */
 
+#ifdef IOKIT
 
 /* must match device_types.defs */
 typedef char                    io_name_t[128];
@@ -113,5 +113,6 @@ typedef mach_port_t     io_object_t;
 #endif  /* __IOKIT_PORTS_DEFINED__ */
 
 
+#endif  /* IOKIT */
 
 #endif  /* DEVICE_TYPES_H */
\ No newline at end of file
lib/libc/include/x86_64-macos.10-none/dispatch/base.h
@@ -0,0 +1,306 @@
+/*
+ * 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 <dispatch/dispatch.h> 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
lib/libc/include/any-macos.12-any/mach/clock.h → lib/libc/include/x86_64-macos.10-none/mach/clock.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	clock_MSG_COUNT	3
 #endif	/* clock_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/clock_priv.h → lib/libc/include/x86_64-macos.10-none/mach/clock_priv.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	clock_priv_MSG_COUNT	2
 #endif	/* clock_priv_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/host_priv.h → lib/libc/include/x86_64-macos.10-none/mach/host_priv.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	host_priv_MSG_COUNT	26
 #endif	/* host_priv_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/host_security.h → lib/libc/include/x86_64-macos.10-none/mach/host_security.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	host_security_MSG_COUNT	2
 #endif	/* host_security_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/lock_set.h → lib/libc/include/x86_64-macos.10-none/mach/lock_set.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	lock_set_MSG_COUNT	6
 #endif	/* lock_set_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/mach.h → lib/libc/include/x86_64-macos.10-none/mach/mach.h
@@ -85,6 +85,10 @@ __BEGIN_DECLS
 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 **,
lib/libc/include/any-macos.12-any/mach/mach_host.h → lib/libc/include/x86_64-macos.10-none/mach/mach_host.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	mach_host_MSG_COUNT	35
 #endif	/* mach_host_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
@@ -75,7 +74,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_info
 (
 	host_t host,
@@ -251,7 +251,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_request_notification
 (
 	host_t host,
@@ -307,7 +308,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_create_mach_voucher
 (
 	host_t host,
@@ -322,7 +324,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_register_mach_voucher_attr_manager
 (
 	host_t host,
@@ -338,7 +341,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_register_well_known_mach_voucher_attr_manager
 (
 	host_t host,
@@ -354,7 +358,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_set_atm_diagnostic_flag
 (
 	host_t host,
@@ -367,7 +372,8 @@ mig_external
 #else
 extern
 #endif	/* mig_external */
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
 kern_return_t host_get_atm_diagnostic_flag
 (
 	host_t host,
lib/libc/include/any-macos.12-any/mach/mach_voucher_types.h → lib/libc/include/x86_64-macos.10-none/mach/mach_voucher_types.h
@@ -31,7 +31,6 @@
 
 #include <mach/std_types.h>
 #include <mach/port.h>
-#include <mach/message.h>
 
 /*
  * Mach Voucher - an immutable collection of attribute value handles.
@@ -213,7 +212,7 @@ typedef mach_port_t             ipc_voucher_attr_control_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 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;
lib/libc/include/any-macos.12-any/mach/mig.h → lib/libc/include/x86_64-macos.10-none/mach/mig.h
@@ -151,6 +151,7 @@ typedef struct mig_symtab {
 #define MIG_SERVER_ROUTINE
 #endif
 
+
 __BEGIN_DECLS
 
 /* Client side reply port allocate */
lib/libc/include/any-macos.12-any/mach/processor.h → lib/libc/include/x86_64-macos.10-none/mach/processor.h
@@ -52,7 +52,6 @@ typedef function_table_entry   *function_table_t;
 #define	processor_MSG_COUNT	6
 #endif	/* processor_MSG_COUNT */
 
-#include <Availability.h>
 #include <mach/std_types.h>
 #include <mach/mig.h>
 #include <mach/mig.h>
lib/libc/include/any-macos.12-any/mach/sync_policy.h → lib/libc/include/x86_64-macos.10-none/mach/sync_policy.h
@@ -44,4 +44,6 @@ typedef int sync_policy_t;
 #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
lib/libc/include/any-macos.12-any/mach/task_inspect.h → lib/libc/include/x86_64-macos.10-none/mach/task_inspect.h
@@ -29,9 +29,6 @@
 #ifndef MACH_TASK_INSPECT_H
 #define MACH_TASK_INSPECT_H
 
-#include <stdint.h>
-#include <mach/vm_types.h>
-
 /*
  * XXX These interfaces are still in development -- they are subject to change
  * without notice.
lib/libc/include/any-macos.12-any/mach/thread_policy.h → lib/libc/include/x86_64-macos.10-none/mach/thread_policy.h
@@ -131,11 +131,7 @@ typedef struct thread_extended_policy   *thread_extended_policy_t;
  *
  * 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.
+ * in absolute time units.
  *
  * constraint: This is the maximum amount of real time that
  * may elapse from the start of a separate processing arrival
@@ -143,11 +139,11 @@ typedef struct thread_extended_policy   *thread_extended_policy_t;
  * 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.)
+ * preemptible: This indicates that the computation may be
+ * interrupted, subject to the constraint specified above.
  */
 
-#define THREAD_TIME_CONSTRAINT_POLICY           2
+#define THREAD_TIME_CONSTRAINT_POLICY   2
 
 struct thread_time_constraint_policy {
 	uint32_t                period;
lib/libc/include/x86_64-macos.10-none/mach/thread_state.h
@@ -0,0 +1,63 @@
+/*
+ * 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 <Availability.h>
+#include <mach/mach.h>
+
+#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
lib/libc/include/x86_64-macos.10-none/mach_debug/mach_debug_types.h
@@ -0,0 +1,95 @@
+/*
+ * 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 <mach_debug/ipc_info.h>
+#include <mach_debug/vm_info.h>
+#include <mach_debug/zone_info.h>
+#include <mach_debug/page_info.h>
+#include <mach_debug/hash_info.h>
+#include <mach_debug/lockgroup_info.h>
+
+#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
lib/libc/include/any-macos.12-any/net/net_kev.h → lib/libc/include/x86_64-macos.10-none/net/net_kev.h
@@ -74,7 +74,7 @@
 #define KEV_DL_LINK_QUALITY_METRIC_CHANGED      20
 #define KEV_DL_NODE_PRESENCE                    21
 #define KEV_DL_NODE_ABSENCE                     22
-#define KEV_DL_PRIMARY_ELECTED                  23
+#define KEV_DL_MASTER_ELECTED                   23
 #define KEV_DL_ISSUES                           24
 #define KEV_DL_IFDELEGATE_CHANGED               25
 #define KEV_DL_AWDL_RESTRICTED                  26
@@ -83,8 +83,6 @@
 #define KEV_DL_QOS_MODE_CHANGED                 29
 #define KEV_DL_LOW_POWER_MODE_CHANGED           30
 
-#define KEV_DL_MASTER_ELECTED (_Pragma("gcc warn Use KEV_DL_PRIMARY_ELECTED instead") KEV_DL_PRIMARY_ELECTED)
-
 
 #define KEV_INET6_SUBCLASS      6       /* inet6 subclass */
 /* KEV_INET6_SUBCLASS event codes */
lib/libc/include/any-macos.12-any/objc/message.h → lib/libc/include/x86_64-macos.10-none/objc/message.h
@@ -316,4 +316,73 @@ _objc_msgForward_stret(id _Nonnull receiver, SEL _Nonnull sel, ...)
     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
lib/libc/include/any-macos.12-any/objc/NSObjCRuntime.h → lib/libc/include/x86_64-macos.10-none/objc/NSObjCRuntime.h
@@ -8,7 +8,7 @@
 #include <TargetConditionals.h>
 #include <objc/objc.h>
 
-#if __LP64__ || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
+#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
 typedef long NSInteger;
 typedef unsigned long NSUInteger;
 #else
lib/libc/include/any-macos.12-any/simd/base.h → lib/libc/include/x86_64-macos.10-none/simd/base.h
@@ -41,14 +41,7 @@
  *  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_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   || \
+#   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   || \
lib/libc/include/any-macos.12-any/simd/matrix.h → lib/libc/include/x86_64-macos.10-none/simd/matrix.h
@@ -24,10 +24,6 @@
  *
  *      simd_transpose(x)               Transpose of the matrix x.
  *
- *      simd_trace(x)                   Trace of the matrix x.
- *
- *      simd_determinant(x)             Determinant of the matrix x.
- *
  *      simd_inverse(x)                 Inverse of x if x is non-singular.  If
  *                                      x is singular, the result is undefined.
  *
@@ -252,14 +248,6 @@ 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_trace(simd_float2x2 __x);
-static float SIMD_CFUNC simd_trace(simd_float3x3 __x);
-static float SIMD_CFUNC simd_trace(simd_float4x4 __x);
-static double SIMD_CFUNC simd_trace(simd_double2x2 __x);
-static double SIMD_CFUNC simd_trace(simd_double3x3 __x);
-static double SIMD_CFUNC simd_trace(simd_double4x4 __x);
-#define matrix_trace simd_trace
-
 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);
@@ -480,11 +468,7 @@ namespace simd {
   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 trace(const float2x2 x) { return ::simd_trace(x); }
-  static SIMD_CPPFUNC float trace(const float3x3 x) { return ::simd_trace(x); }
-  static SIMD_CPPFUNC float trace(const float4x4 x) { return ::simd_trace(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); }
@@ -672,11 +656,7 @@ namespace simd {
   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 trace(const double2x2 x) { return ::simd_trace(x); }
-  static SIMD_CPPFUNC double trace(const double3x3 x) { return ::simd_trace(x); }
-  static SIMD_CPPFUNC double trace(const double4x4 x) { return ::simd_trace(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); }
@@ -1312,13 +1292,6 @@ static simd_double4 SIMD_CFUNC __rotate1(simd_double4 __x) { return __builtin_sh
 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_trace( simd_float2x2 __x) { return __x.columns[0][0] + __x.columns[1][1]; }
-static double SIMD_CFUNC simd_trace(simd_double2x2 __x) { return __x.columns[0][0] + __x.columns[1][1]; }
-static  float SIMD_CFUNC simd_trace( simd_float3x3 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2]; }
-static double SIMD_CFUNC simd_trace(simd_double3x3 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2]; }
-static  float SIMD_CFUNC simd_trace( simd_float4x4 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2] + __x.columns[3][3]; }
-static double SIMD_CFUNC simd_trace(simd_double4x4 __x) { return __x.columns[0][0] + __x.columns[1][1] + __x.columns[2][2] + __x.columns[3][3]; }
-
 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]))); }
lib/libc/include/any-macos.12-any/simd/matrix_types.h → lib/libc/include/x86_64-macos.10-none/simd/matrix_types.h
@@ -30,7 +30,6 @@
 #define SIMD_MATRIX_TYPES_HEADER
 
 #include <simd/types.h>
-#include <simd/vector_make.h>
 #if SIMD_COMPILER_HAS_REQUIRED_FEATURES
 
 /*  Matrix types available in C, Objective-C, and C++                         */
@@ -259,234 +258,6 @@ namespace simd {
     double4x4(::simd_quatd q) : ::simd_double4x4(::simd_matrix4x4(q)) { }
 #endif
   };
-
-/*! @abstract Templated Matrix struct based on scalar type and number of columns and rows.  */
-template <typename ScalarType, size_t col, size_t row> struct Matrix {
-    //  static const size_t col
-    //  static const size_t row
-    //  typedef scalar_t
-    //  typedef type
-};
-/*! @abstract Helper type to access the simd type easily.                     */
-template <typename ScalarType, size_t col, size_t row>
-using Matrix_t = typename Matrix<ScalarType, col, row>::type;
-
-template<> struct Matrix<float, 2, 2> {
-    static const size_t col = 2;
-    static const size_t row = 2;
-    typedef float scalar_t;
-    typedef float2x2 type;
-};
-
-template<> struct Matrix<float, 3, 2> {
-    static const size_t col = 3;
-    static const size_t row = 2;
-    typedef float scalar_t;
-    typedef float3x2 type;
-};
-
-template<> struct Matrix<float, 4, 2> {
-    static const size_t col = 4;
-    static const size_t row = 2;
-    typedef float scalar_t;
-    typedef float4x2 type;
-};
-
-template<> struct Matrix<float, 2, 3> {
-    static const size_t col = 2;
-    static const size_t row = 3;
-    typedef float scalar_t;
-    typedef float2x3 type;
-};
-
-template<> struct Matrix<float, 3, 3> {
-    static const size_t col = 3;
-    static const size_t row = 3;
-    typedef float scalar_t;
-    typedef float3x3 type;
-};
-
-template<> struct Matrix<float, 4, 3> {
-    static const size_t col = 4;
-    static const size_t row = 3;
-    typedef float scalar_t;
-    typedef float4x3 type;
-};
-
-template<> struct Matrix<float, 2, 4> {
-    static const size_t col = 2;
-    static const size_t row = 4;
-    typedef float scalar_t;
-    typedef float2x4 type;
-};
-
-template<> struct Matrix<float, 3, 4> {
-    static const size_t col = 3;
-    static const size_t row = 4;
-    typedef float scalar_t;
-    typedef float3x4 type;
-};
-
-template<> struct Matrix<float, 4, 4> {
-    static const size_t col = 4;
-    static const size_t row = 4;
-    typedef float scalar_t;
-    typedef float4x4 type;
-};
-
-template<> struct Matrix<double, 2, 2> {
-    static const size_t col = 2;
-    static const size_t row = 2;
-    typedef double scalar_t;
-    typedef double2x2 type;
-};
-
-template<> struct Matrix<double, 3, 2> {
-    static const size_t col = 3;
-    static const size_t row = 2;
-    typedef double scalar_t;
-    typedef double3x2 type;
-};
-
-template<> struct Matrix<double, 4, 2> {
-    static const size_t col = 4;
-    static const size_t row = 2;
-    typedef double scalar_t;
-    typedef double4x2 type;
-};
-
-template<> struct Matrix<double, 2, 3> {
-    static const size_t col = 2;
-    static const size_t row = 3;
-    typedef double scalar_t;
-    typedef double2x3 type;
-};
-
-template<> struct Matrix<double, 3, 3> {
-    static const size_t col = 3;
-    static const size_t row = 3;
-    typedef double scalar_t;
-    typedef double3x3 type;
-};
-
-template<> struct Matrix<double, 4, 3> {
-    static const size_t col = 4;
-    static const size_t row = 3;
-    typedef double scalar_t;
-    typedef double4x3 type;
-};
-
-template<> struct Matrix<double, 2, 4> {
-    static const size_t col = 2;
-    static const size_t row = 4;
-    typedef double scalar_t;
-    typedef double2x4 type;
-};
-
-template<> struct Matrix<double, 3, 4> {
-    static const size_t col = 3;
-    static const size_t row = 4;
-    typedef double scalar_t;
-    typedef double3x4 type;
-};
-
-template<> struct Matrix<double, 4, 4> {
-    static const size_t col = 4;
-    static const size_t row = 4;
-    typedef double scalar_t;
-    typedef double4x4 type;
-};
-
-template <> struct get_traits<float2x2>
-{
-    using type = Matrix<float, 2, 2>;
-};
-
-template <> struct get_traits<float3x2>
-{
-    using type = Matrix<float, 3, 2>;
-};
-
-template <> struct get_traits<float4x2>
-{
-    using type = Matrix<float, 4, 2>;
-};
-
-template <> struct get_traits<float2x3>
-{
-    using type = Matrix<float, 2, 3>;
-};
-
-template <> struct get_traits<float3x3>
-{
-    using type = Matrix<float, 3, 3>;
-};
-
-template <> struct get_traits<float4x3>
-{
-    using type = Matrix<float, 4, 3>;
-};
-
-template <> struct get_traits<float2x4>
-{
-    using type = Matrix<float, 2, 4>;
-};
-
-template <> struct get_traits<float3x4>
-{
-    using type = Matrix<float, 3, 4>;
-};
-
-template <> struct get_traits<float4x4>
-{
-    using type = Matrix<float, 4, 4>;
-};
-
-template <> struct get_traits<double2x2>
-{
-    using type = Matrix<double, 2, 2>;
-};
-
-template <> struct get_traits<double3x2>
-{
-    using type = Matrix<double, 3, 2>;
-};
-
-template <> struct get_traits<double4x2>
-{
-    using type = Matrix<double, 4, 2>;
-};
-
-template <> struct get_traits<double2x3>
-{
-    using type = Matrix<double, 2, 3>;
-};
-
-template <> struct get_traits<double3x3>
-{
-    using type = Matrix<double, 3, 3>;
-};
-
-template <> struct get_traits<double4x3>
-{
-    using type = Matrix<double, 4, 3>;
-};
-
-template <> struct get_traits<double2x4>
-{
-    using type = Matrix<double, 2, 4>;
-};
-
-template <> struct get_traits<double3x4>
-{
-    using type = Matrix<double, 3, 4>;
-};
-
-template <> struct get_traits<double4x4>
-{
-    using type = Matrix<double, 4, 4>;
-};
-
 }
 #endif /* __cplusplus */
 #endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
lib/libc/include/any-macos.12-any/simd/vector_make.h → lib/libc/include/x86_64-macos.10-none/simd/vector_make.h
@@ -34,35 +34,6 @@
  *  simd_float3 vector = simd_make_float3(ab, 3);
  *  ~~~
  *
- *  In C++ the above functions are templated in the simd:: namespace.
- *
- *      C++ Function                            Equivalent C Function
- *      -------------------------------------------------------------------
- *      simd::make<simd::typeN>(x ...)          simd_make_typeN(x ...)
- *      simd::make_undef<simd::typeN>(x ...)    simd_make_typeN_undef(x ...)
- *
- *
- *  In addition, templated Vector<ScalarType, count> struct is available for
- *  templated code based on the scalar type.
- *
- *      template <typename ScalarType, size_t count> struct simd::Vector {
- *        //  static const size_t count
- *        //  typedef scalar_t
- *        //  typedef type
- *        //  typedef packed_t
- *      };
- *
- *  Lookup the equivalent Vector struct according to typeN:
- *      template <typename typeN> struct simd::get_traits
- *      {
- *      //    using type = Vector<ScalarType, count>;
- *      };
- *
- *  This is commonly used to get the type traits of typeN, so a helper type,
- *  namely traits, is available to query the type traits easily.
- *      simd::traits<typeN>::count
- *      simd::traits<typeN>::scalar_t
- *
  *  @copyright 2014-2016 Apple, Inc. All rights reserved.
  *  @unsorted                                                                 */
 
@@ -5307,9 +5278,6 @@ static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double8 other) {
 #ifdef __cplusplus
 } /* extern "C" */
 
-#include <tuple>
-#include <simd/packed.h>
-
 namespace simd {
 /*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit signed
  *  (twos-complement) integers.                                               */
@@ -6794,1080 +6762,6 @@ template <typename typeN> static SIMD_CPPFUNC double8 make_double8_undef(typeN o
   return ::simd_make_double8_undef(other);
 }
 
-/*! @struct Vector
- *  @abstract Templated Vector struct based on scalar type and number of
- *  elements
- *  @field count Number of elements in the vector
- *  @field scalar_t The scalar type of each element
- *  @field type The inferred simd::typeN type
- *  @field packed_t The inferred simd::packed::typeN type
- *  @field mask_t The return type of comparison operations                    */
-template <typename ScalarType, size_t count> struct Vector {
-  //  static const size_t count
-  //  typedef scalar_t
-  //  typedef type
-  //  typedef packed_t
-  //  typedef mask_t
-};
-/*! @abstract Helper type to access the simd type easily.                     */
-template <typename ScalarType, size_t count>
-using Vector_t = typename Vector<ScalarType, count>::type;
-
-/*! @abstract Look up the equivalent Vector struct according to the simd
- *  type.                                                                     */
-template <typename typeN> struct get_traits
-{
-//    using type = Vector<ScalarType, count>;
-};
-/*! @abstract Helper type to access the Vector struct easily.
- *  @discussion This is commonly used to query the type traits of a simd
- *  type.
- *  For example, simd::traits<simd::float4>::count is 4.                      */
-template<typename typeN>
-using traits = typename get_traits<typeN>::type;
-
-template<> struct Vector<char1, 1> {
-  static const size_t count = 1;
-  typedef char1 scalar_t;
-  typedef char1 type;
-  typedef char1 mask_t;
-};
-
-template <> struct get_traits<char1>
-{
-    using type = Vector<char1, 1>;
-};
-
-template<> struct Vector<char1, 2> {
-  static const size_t count = 2;
-  typedef char1 scalar_t;
-  typedef char2 type;
-  typedef packed::char2 packed_t;
-  typedef char2 mask_t;
-};
-
-template <> struct get_traits<char2>
-{
-    using type = Vector<char1, 2>;
-};
-
-template<> struct Vector<char1, 3> {
-  static const size_t count = 3;
-  typedef char1 scalar_t;
-  typedef char3 type;
-  typedef char3 mask_t;
-};
-
-template <> struct get_traits<char3>
-{
-    using type = Vector<char1, 3>;
-};
-
-template<> struct Vector<char1, 4> {
-  static const size_t count = 4;
-  typedef char1 scalar_t;
-  typedef char4 type;
-  typedef packed::char4 packed_t;
-  typedef char4 mask_t;
-};
-
-template <> struct get_traits<char4>
-{
-    using type = Vector<char1, 4>;
-};
-
-template<> struct Vector<char1, 8> {
-  static const size_t count = 8;
-  typedef char1 scalar_t;
-  typedef char8 type;
-  typedef packed::char8 packed_t;
-  typedef char8 mask_t;
-};
-
-template <> struct get_traits<char8>
-{
-    using type = Vector<char1, 8>;
-};
-
-template<> struct Vector<char1, 16> {
-  static const size_t count = 16;
-  typedef char1 scalar_t;
-  typedef char16 type;
-  typedef packed::char16 packed_t;
-  typedef char16 mask_t;
-};
-
-template <> struct get_traits<char16>
-{
-    using type = Vector<char1, 16>;
-};
-
-template<> struct Vector<char1, 32> {
-  static const size_t count = 32;
-  typedef char1 scalar_t;
-  typedef char32 type;
-  typedef packed::char32 packed_t;
-  typedef char32 mask_t;
-};
-
-template <> struct get_traits<char32>
-{
-    using type = Vector<char1, 32>;
-};
-
-template<> struct Vector<char1, 64> {
-  static const size_t count = 64;
-  typedef char1 scalar_t;
-  typedef char64 type;
-  typedef packed::char64 packed_t;
-  typedef char64 mask_t;
-};
-
-template <> struct get_traits<char64>
-{
-    using type = Vector<char1, 64>;
-};
-
-template<> struct Vector<uchar1, 1> {
-  static const size_t count = 1;
-  typedef uchar1 scalar_t;
-  typedef uchar1 type;
-  typedef char1 mask_t;
-};
-
-template <> struct get_traits<uchar1>
-{
-    using type = Vector<uchar1, 1>;
-};
-
-template<> struct Vector<uchar1, 2> {
-  static const size_t count = 2;
-  typedef uchar1 scalar_t;
-  typedef uchar2 type;
-  typedef packed::uchar2 packed_t;
-  typedef char2 mask_t;
-};
-
-template <> struct get_traits<uchar2>
-{
-    using type = Vector<uchar1, 2>;
-};
-
-template<> struct Vector<uchar1, 3> {
-  static const size_t count = 3;
-  typedef uchar1 scalar_t;
-  typedef uchar3 type;
-  typedef char3 mask_t;
-};
-
-template <> struct get_traits<uchar3>
-{
-    using type = Vector<uchar1, 3>;
-};
-
-template<> struct Vector<uchar1, 4> {
-  static const size_t count = 4;
-  typedef uchar1 scalar_t;
-  typedef uchar4 type;
-  typedef packed::uchar4 packed_t;
-  typedef char4 mask_t;
-};
-
-template <> struct get_traits<uchar4>
-{
-    using type = Vector<uchar1, 4>;
-};
-
-template<> struct Vector<uchar1, 8> {
-  static const size_t count = 8;
-  typedef uchar1 scalar_t;
-  typedef uchar8 type;
-  typedef packed::uchar8 packed_t;
-  typedef char8 mask_t;
-};
-
-template <> struct get_traits<uchar8>
-{
-    using type = Vector<uchar1, 8>;
-};
-
-template<> struct Vector<uchar1, 16> {
-  static const size_t count = 16;
-  typedef uchar1 scalar_t;
-  typedef uchar16 type;
-  typedef packed::uchar16 packed_t;
-  typedef char16 mask_t;
-};
-
-template <> struct get_traits<uchar16>
-{
-    using type = Vector<uchar1, 16>;
-};
-
-template<> struct Vector<uchar1, 32> {
-  static const size_t count = 32;
-  typedef uchar1 scalar_t;
-  typedef uchar32 type;
-  typedef packed::uchar32 packed_t;
-  typedef char32 mask_t;
-};
-
-template <> struct get_traits<uchar32>
-{
-    using type = Vector<uchar1, 32>;
-};
-
-template<> struct Vector<uchar1, 64> {
-  static const size_t count = 64;
-  typedef uchar1 scalar_t;
-  typedef uchar64 type;
-  typedef packed::uchar64 packed_t;
-  typedef char64 mask_t;
-};
-
-template <> struct get_traits<uchar64>
-{
-    using type = Vector<uchar1, 64>;
-};
-
-template<> struct Vector<short1, 1> {
-  static const size_t count = 1;
-  typedef short1 scalar_t;
-  typedef short1 type;
-  typedef short1 mask_t;
-};
-
-template <> struct get_traits<short1>
-{
-    using type = Vector<short1, 1>;
-};
-
-template<> struct Vector<short1, 2> {
-  static const size_t count = 2;
-  typedef short1 scalar_t;
-  typedef short2 type;
-  typedef packed::short2 packed_t;
-  typedef short2 mask_t;
-};
-
-template <> struct get_traits<short2>
-{
-    using type = Vector<short1, 2>;
-};
-
-template<> struct Vector<short1, 3> {
-  static const size_t count = 3;
-  typedef short1 scalar_t;
-  typedef short3 type;
-  typedef short3 mask_t;
-};
-
-template <> struct get_traits<short3>
-{
-    using type = Vector<short1, 3>;
-};
-
-template<> struct Vector<short1, 4> {
-  static const size_t count = 4;
-  typedef short1 scalar_t;
-  typedef short4 type;
-  typedef packed::short4 packed_t;
-  typedef short4 mask_t;
-};
-
-template <> struct get_traits<short4>
-{
-    using type = Vector<short1, 4>;
-};
-
-template<> struct Vector<short1, 8> {
-  static const size_t count = 8;
-  typedef short1 scalar_t;
-  typedef short8 type;
-  typedef packed::short8 packed_t;
-  typedef short8 mask_t;
-};
-
-template <> struct get_traits<short8>
-{
-    using type = Vector<short1, 8>;
-};
-
-template<> struct Vector<short1, 16> {
-  static const size_t count = 16;
-  typedef short1 scalar_t;
-  typedef short16 type;
-  typedef packed::short16 packed_t;
-  typedef short16 mask_t;
-};
-
-template <> struct get_traits<short16>
-{
-    using type = Vector<short1, 16>;
-};
-
-template<> struct Vector<short1, 32> {
-  static const size_t count = 32;
-  typedef short1 scalar_t;
-  typedef short32 type;
-  typedef packed::short32 packed_t;
-  typedef short32 mask_t;
-};
-
-template <> struct get_traits<short32>
-{
-    using type = Vector<short1, 32>;
-};
-
-template<> struct Vector<ushort1, 1> {
-  static const size_t count = 1;
-  typedef ushort1 scalar_t;
-  typedef ushort1 type;
-  typedef short1 mask_t;
-};
-
-template <> struct get_traits<ushort1>
-{
-    using type = Vector<ushort1, 1>;
-};
-
-template<> struct Vector<ushort1, 2> {
-  static const size_t count = 2;
-  typedef ushort1 scalar_t;
-  typedef ushort2 type;
-  typedef packed::ushort2 packed_t;
-  typedef short2 mask_t;
-};
-
-template <> struct get_traits<ushort2>
-{
-    using type = Vector<ushort1, 2>;
-};
-
-template<> struct Vector<ushort1, 3> {
-  static const size_t count = 3;
-  typedef ushort1 scalar_t;
-  typedef ushort3 type;
-  typedef short3 mask_t;
-};
-
-template <> struct get_traits<ushort3>
-{
-    using type = Vector<ushort1, 3>;
-};
-
-template<> struct Vector<ushort1, 4> {
-  static const size_t count = 4;
-  typedef ushort1 scalar_t;
-  typedef ushort4 type;
-  typedef packed::ushort4 packed_t;
-  typedef short4 mask_t;
-};
-
-template <> struct get_traits<ushort4>
-{
-    using type = Vector<ushort1, 4>;
-};
-
-template<> struct Vector<ushort1, 8> {
-  static const size_t count = 8;
-  typedef ushort1 scalar_t;
-  typedef ushort8 type;
-  typedef packed::ushort8 packed_t;
-  typedef short8 mask_t;
-};
-
-template <> struct get_traits<ushort8>
-{
-    using type = Vector<ushort1, 8>;
-};
-
-template<> struct Vector<ushort1, 16> {
-  static const size_t count = 16;
-  typedef ushort1 scalar_t;
-  typedef ushort16 type;
-  typedef packed::ushort16 packed_t;
-  typedef short16 mask_t;
-};
-
-template <> struct get_traits<ushort16>
-{
-    using type = Vector<ushort1, 16>;
-};
-
-template<> struct Vector<ushort1, 32> {
-  static const size_t count = 32;
-  typedef ushort1 scalar_t;
-  typedef ushort32 type;
-  typedef packed::ushort32 packed_t;
-  typedef short32 mask_t;
-};
-
-template <> struct get_traits<ushort32>
-{
-    using type = Vector<ushort1, 32>;
-};
-
-template<> struct Vector<int1, 1> {
-  static const size_t count = 1;
-  typedef int1 scalar_t;
-  typedef int1 type;
-  typedef int1 mask_t;
-};
-
-template <> struct get_traits<int1>
-{
-    using type = Vector<int1, 1>;
-};
-
-template<> struct Vector<int1, 2> {
-  static const size_t count = 2;
-  typedef int1 scalar_t;
-  typedef int2 type;
-  typedef packed::int2 packed_t;
-  typedef int2 mask_t;
-};
-
-template <> struct get_traits<int2>
-{
-    using type = Vector<int1, 2>;
-};
-
-template<> struct Vector<int1, 3> {
-  static const size_t count = 3;
-  typedef int1 scalar_t;
-  typedef int3 type;
-  typedef int3 mask_t;
-};
-
-template <> struct get_traits<int3>
-{
-    using type = Vector<int1, 3>;
-};
-
-template<> struct Vector<int1, 4> {
-  static const size_t count = 4;
-  typedef int1 scalar_t;
-  typedef int4 type;
-  typedef packed::int4 packed_t;
-  typedef int4 mask_t;
-};
-
-template <> struct get_traits<int4>
-{
-    using type = Vector<int1, 4>;
-};
-
-template<> struct Vector<int1, 8> {
-  static const size_t count = 8;
-  typedef int1 scalar_t;
-  typedef int8 type;
-  typedef packed::int8 packed_t;
-  typedef int8 mask_t;
-};
-
-template <> struct get_traits<int8>
-{
-    using type = Vector<int1, 8>;
-};
-
-template<> struct Vector<int1, 16> {
-  static const size_t count = 16;
-  typedef int1 scalar_t;
-  typedef int16 type;
-  typedef packed::int16 packed_t;
-  typedef int16 mask_t;
-};
-
-template <> struct get_traits<int16>
-{
-    using type = Vector<int1, 16>;
-};
-
-template<> struct Vector<uint1, 1> {
-  static const size_t count = 1;
-  typedef uint1 scalar_t;
-  typedef uint1 type;
-  typedef int1 mask_t;
-};
-
-template <> struct get_traits<uint1>
-{
-    using type = Vector<uint1, 1>;
-};
-
-template<> struct Vector<uint1, 2> {
-  static const size_t count = 2;
-  typedef uint1 scalar_t;
-  typedef uint2 type;
-  typedef packed::uint2 packed_t;
-  typedef int2 mask_t;
-};
-
-template <> struct get_traits<uint2>
-{
-    using type = Vector<uint1, 2>;
-};
-
-template<> struct Vector<uint1, 3> {
-  static const size_t count = 3;
-  typedef uint1 scalar_t;
-  typedef uint3 type;
-  typedef int3 mask_t;
-};
-
-template <> struct get_traits<uint3>
-{
-    using type = Vector<uint1, 3>;
-};
-
-template<> struct Vector<uint1, 4> {
-  static const size_t count = 4;
-  typedef uint1 scalar_t;
-  typedef uint4 type;
-  typedef packed::uint4 packed_t;
-  typedef int4 mask_t;
-};
-
-template <> struct get_traits<uint4>
-{
-    using type = Vector<uint1, 4>;
-};
-
-template<> struct Vector<uint1, 8> {
-  static const size_t count = 8;
-  typedef uint1 scalar_t;
-  typedef uint8 type;
-  typedef packed::uint8 packed_t;
-  typedef int8 mask_t;
-};
-
-template <> struct get_traits<uint8>
-{
-    using type = Vector<uint1, 8>;
-};
-
-template<> struct Vector<uint1, 16> {
-  static const size_t count = 16;
-  typedef uint1 scalar_t;
-  typedef uint16 type;
-  typedef packed::uint16 packed_t;
-  typedef int16 mask_t;
-};
-
-template <> struct get_traits<uint16>
-{
-    using type = Vector<uint1, 16>;
-};
-
-template<> struct Vector<float1, 1> {
-  static const size_t count = 1;
-  typedef float1 scalar_t;
-  typedef float1 type;
-  typedef int1 mask_t;
-};
-
-template <> struct get_traits<float1>
-{
-    using type = Vector<float1, 1>;
-};
-
-template<> struct Vector<float1, 2> {
-  static const size_t count = 2;
-  typedef float1 scalar_t;
-  typedef float2 type;
-  typedef packed::float2 packed_t;
-  typedef int2 mask_t;
-};
-
-template <> struct get_traits<float2>
-{
-    using type = Vector<float1, 2>;
-};
-
-template<> struct Vector<float1, 3> {
-  static const size_t count = 3;
-  typedef float1 scalar_t;
-  typedef float3 type;
-  typedef int3 mask_t;
-};
-
-template <> struct get_traits<float3>
-{
-    using type = Vector<float1, 3>;
-};
-
-template<> struct Vector<float1, 4> {
-  static const size_t count = 4;
-  typedef float1 scalar_t;
-  typedef float4 type;
-  typedef packed::float4 packed_t;
-  typedef int4 mask_t;
-};
-
-template <> struct get_traits<float4>
-{
-    using type = Vector<float1, 4>;
-};
-
-template<> struct Vector<float1, 8> {
-  static const size_t count = 8;
-  typedef float1 scalar_t;
-  typedef float8 type;
-  typedef packed::float8 packed_t;
-  typedef int8 mask_t;
-};
-
-template <> struct get_traits<float8>
-{
-    using type = Vector<float1, 8>;
-};
-
-template<> struct Vector<float1, 16> {
-  static const size_t count = 16;
-  typedef float1 scalar_t;
-  typedef float16 type;
-  typedef packed::float16 packed_t;
-  typedef int16 mask_t;
-};
-
-template <> struct get_traits<float16>
-{
-    using type = Vector<float1, 16>;
-};
-
-template<> struct Vector<long1, 1> {
-  static const size_t count = 1;
-  typedef long1 scalar_t;
-  typedef long1 type;
-  typedef long1 mask_t;
-};
-
-template <> struct get_traits<long1>
-{
-    using type = Vector<long1, 1>;
-};
-
-template<> struct Vector<long1, 2> {
-  static const size_t count = 2;
-  typedef long1 scalar_t;
-  typedef long2 type;
-  typedef packed::long2 packed_t;
-  typedef long2 mask_t;
-};
-
-template <> struct get_traits<long2>
-{
-    using type = Vector<long1, 2>;
-};
-
-template<> struct Vector<long1, 3> {
-  static const size_t count = 3;
-  typedef long1 scalar_t;
-  typedef long3 type;
-  typedef long3 mask_t;
-};
-
-template <> struct get_traits<long3>
-{
-    using type = Vector<long1, 3>;
-};
-
-template<> struct Vector<long1, 4> {
-  static const size_t count = 4;
-  typedef long1 scalar_t;
-  typedef long4 type;
-  typedef packed::long4 packed_t;
-  typedef long4 mask_t;
-};
-
-template <> struct get_traits<long4>
-{
-    using type = Vector<long1, 4>;
-};
-
-template<> struct Vector<long1, 8> {
-  static const size_t count = 8;
-  typedef long1 scalar_t;
-  typedef long8 type;
-  typedef packed::long8 packed_t;
-  typedef long8 mask_t;
-};
-
-template <> struct get_traits<long8>
-{
-    using type = Vector<long1, 8>;
-};
-
-template<> struct Vector<ulong1, 1> {
-  static const size_t count = 1;
-  typedef ulong1 scalar_t;
-  typedef ulong1 type;
-  typedef long1 mask_t;
-};
-
-template <> struct get_traits<ulong1>
-{
-    using type = Vector<ulong1, 1>;
-};
-
-template<> struct Vector<ulong1, 2> {
-  static const size_t count = 2;
-  typedef ulong1 scalar_t;
-  typedef ulong2 type;
-  typedef packed::ulong2 packed_t;
-  typedef long2 mask_t;
-};
-
-template <> struct get_traits<ulong2>
-{
-    using type = Vector<ulong1, 2>;
-};
-
-template<> struct Vector<ulong1, 3> {
-  static const size_t count = 3;
-  typedef ulong1 scalar_t;
-  typedef ulong3 type;
-  typedef long3 mask_t;
-};
-
-template <> struct get_traits<ulong3>
-{
-    using type = Vector<ulong1, 3>;
-};
-
-template<> struct Vector<ulong1, 4> {
-  static const size_t count = 4;
-  typedef ulong1 scalar_t;
-  typedef ulong4 type;
-  typedef packed::ulong4 packed_t;
-  typedef long4 mask_t;
-};
-
-template <> struct get_traits<ulong4>
-{
-    using type = Vector<ulong1, 4>;
-};
-
-template<> struct Vector<ulong1, 8> {
-  static const size_t count = 8;
-  typedef ulong1 scalar_t;
-  typedef ulong8 type;
-  typedef packed::ulong8 packed_t;
-  typedef long8 mask_t;
-};
-
-template <> struct get_traits<ulong8>
-{
-    using type = Vector<ulong1, 8>;
-};
-
-template<> struct Vector<double1, 1> {
-  static const size_t count = 1;
-  typedef double1 scalar_t;
-  typedef double1 type;
-  typedef long1 mask_t;
-};
-
-template <> struct get_traits<double1>
-{
-    using type = Vector<double1, 1>;
-};
-
-template<> struct Vector<double1, 2> {
-  static const size_t count = 2;
-  typedef double1 scalar_t;
-  typedef double2 type;
-  typedef packed::double2 packed_t;
-  typedef long2 mask_t;
-};
-
-template <> struct get_traits<double2>
-{
-    using type = Vector<double1, 2>;
-};
-
-template<> struct Vector<double1, 3> {
-  static const size_t count = 3;
-  typedef double1 scalar_t;
-  typedef double3 type;
-  typedef long3 mask_t;
-};
-
-template <> struct get_traits<double3>
-{
-    using type = Vector<double1, 3>;
-};
-
-template<> struct Vector<double1, 4> {
-  static const size_t count = 4;
-  typedef double1 scalar_t;
-  typedef double4 type;
-  typedef packed::double4 packed_t;
-  typedef long4 mask_t;
-};
-
-template <> struct get_traits<double4>
-{
-    using type = Vector<double1, 4>;
-};
-
-template<> struct Vector<double1, 8> {
-  static const size_t count = 8;
-  typedef double1 scalar_t;
-  typedef double8 type;
-  typedef packed::double8 packed_t;
-  typedef long8 mask_t;
-};
-
-template <> struct get_traits<double8>
-{
-    using type = Vector<double1, 8>;
-};
-
-#if __has_feature(cxx_constexpr)
-/*! @abstract Templated make function based on return type and argument
- *  type.                                                                     */
-template<typename typeN, typename... Args>
-static constexpr typeN make(Args... args)
-{
-    if constexpr (traits<typeN>::count == 1)
-    {
-        using FirstArgType = typename std::tuple_element<0, std::tuple<Args...>>::type;
-        if constexpr (std::is_same<FirstArgType, typename traits<FirstArgType>::scalar_t>::value)
-            return typeN(std::get<0>(std::make_tuple(args...)));
-        else
-            return typeN(std::get<0>(std::make_tuple(args...))[0]);
-    }
-    else if constexpr (std::is_same<typeN, char2>::value)
-        return make_char2(args...);
-    else if constexpr (std::is_same<typeN, char3>::value)
-        return make_char3(args...);
-    else if constexpr (std::is_same<typeN, char4>::value)
-        return make_char4(args...);
-    else if constexpr (std::is_same<typeN, char8>::value)
-        return make_char8(args...);
-    else if constexpr (std::is_same<typeN, char16>::value)
-        return make_char16(args...);
-    else if constexpr (std::is_same<typeN, char32>::value)
-        return make_char32(args...);
-    else if constexpr (std::is_same<typeN, char64>::value)
-        return make_char64(args...);
-    else if constexpr (std::is_same<typeN, uchar2>::value)
-        return make_uchar2(args...);
-    else if constexpr (std::is_same<typeN, uchar3>::value)
-        return make_uchar3(args...);
-    else if constexpr (std::is_same<typeN, uchar4>::value)
-        return make_uchar4(args...);
-    else if constexpr (std::is_same<typeN, uchar8>::value)
-        return make_uchar8(args...);
-    else if constexpr (std::is_same<typeN, uchar16>::value)
-        return make_uchar16(args...);
-    else if constexpr (std::is_same<typeN, uchar32>::value)
-        return make_uchar32(args...);
-    else if constexpr (std::is_same<typeN, uchar64>::value)
-        return make_uchar64(args...);
-    else if constexpr (std::is_same<typeN, short2>::value)
-        return make_short2(args...);
-    else if constexpr (std::is_same<typeN, short3>::value)
-        return make_short3(args...);
-    else if constexpr (std::is_same<typeN, short4>::value)
-        return make_short4(args...);
-    else if constexpr (std::is_same<typeN, short8>::value)
-        return make_short8(args...);
-    else if constexpr (std::is_same<typeN, short16>::value)
-        return make_short16(args...);
-    else if constexpr (std::is_same<typeN, short32>::value)
-        return make_short32(args...);
-    else if constexpr (std::is_same<typeN, ushort2>::value)
-        return make_ushort2(args...);
-    else if constexpr (std::is_same<typeN, ushort3>::value)
-        return make_ushort3(args...);
-    else if constexpr (std::is_same<typeN, ushort4>::value)
-        return make_ushort4(args...);
-    else if constexpr (std::is_same<typeN, ushort8>::value)
-        return make_ushort8(args...);
-    else if constexpr (std::is_same<typeN, ushort16>::value)
-        return make_ushort16(args...);
-    else if constexpr (std::is_same<typeN, ushort32>::value)
-        return make_ushort32(args...);
-    else if constexpr (std::is_same<typeN, int2>::value)
-        return make_int2(args...);
-    else if constexpr (std::is_same<typeN, int3>::value)
-        return make_int3(args...);
-    else if constexpr (std::is_same<typeN, int4>::value)
-        return make_int4(args...);
-    else if constexpr (std::is_same<typeN, int8>::value)
-        return make_int8(args...);
-    else if constexpr (std::is_same<typeN, int16>::value)
-        return make_int16(args...);
-    else if constexpr (std::is_same<typeN, uint2>::value)
-        return make_uint2(args...);
-    else if constexpr (std::is_same<typeN, uint3>::value)
-        return make_uint3(args...);
-    else if constexpr (std::is_same<typeN, uint4>::value)
-        return make_uint4(args...);
-    else if constexpr (std::is_same<typeN, uint8>::value)
-        return make_uint8(args...);
-    else if constexpr (std::is_same<typeN, uint16>::value)
-        return make_uint16(args...);
-    else if constexpr (std::is_same<typeN, float2>::value)
-        return make_float2(args...);
-    else if constexpr (std::is_same<typeN, float3>::value)
-        return make_float3(args...);
-    else if constexpr (std::is_same<typeN, float4>::value)
-        return make_float4(args...);
-    else if constexpr (std::is_same<typeN, float8>::value)
-        return make_float8(args...);
-    else if constexpr (std::is_same<typeN, float16>::value)
-        return make_float16(args...);
-    else if constexpr (std::is_same<typeN, long2>::value)
-        return make_long2(args...);
-    else if constexpr (std::is_same<typeN, long3>::value)
-        return make_long3(args...);
-    else if constexpr (std::is_same<typeN, long4>::value)
-        return make_long4(args...);
-    else if constexpr (std::is_same<typeN, long8>::value)
-        return make_long8(args...);
-    else if constexpr (std::is_same<typeN, ulong2>::value)
-        return make_ulong2(args...);
-    else if constexpr (std::is_same<typeN, ulong3>::value)
-        return make_ulong3(args...);
-    else if constexpr (std::is_same<typeN, ulong4>::value)
-        return make_ulong4(args...);
-    else if constexpr (std::is_same<typeN, ulong8>::value)
-        return make_ulong8(args...);
-    else if constexpr (std::is_same<typeN, double2>::value)
-        return make_double2(args...);
-    else if constexpr (std::is_same<typeN, double3>::value)
-        return make_double3(args...);
-    else if constexpr (std::is_same<typeN, double4>::value)
-        return make_double4(args...);
-    else if constexpr (std::is_same<typeN, double8>::value)
-        return make_double8(args...);
-}
-
-/*! @abstract Templated make_undef function based on return type and
- *  argument type.                                                            */
-template<typename typeN, typename... Args>
-static constexpr typeN make_undef(Args... args)
-{
-    if constexpr (traits<typeN>::count == 1)
-    {
-        using FirstArgType = typename std::tuple_element<0, std::tuple<Args...>>::type;
-        if constexpr (std::is_same<FirstArgType, typename traits<FirstArgType>::scalar_t>::value)
-            return typeN(std::get<0>(std::make_tuple(args...)));
-        else
-            return typeN(std::get<0>(std::make_tuple(args...))[0]);
-    }
-    else if constexpr (std::is_same<typeN, char2>::value)
-        return make_char2_undef(args...);
-    else if constexpr (std::is_same<typeN, char3>::value)
-        return make_char3_undef(args...);
-    else if constexpr (std::is_same<typeN, char4>::value)
-        return make_char4_undef(args...);
-    else if constexpr (std::is_same<typeN, char8>::value)
-        return make_char8_undef(args...);
-    else if constexpr (std::is_same<typeN, char16>::value)
-        return make_char16_undef(args...);
-    else if constexpr (std::is_same<typeN, char32>::value)
-        return make_char32_undef(args...);
-    else if constexpr (std::is_same<typeN, char64>::value)
-        return make_char64_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar2>::value)
-        return make_uchar2_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar3>::value)
-        return make_uchar3_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar4>::value)
-        return make_uchar4_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar8>::value)
-        return make_uchar8_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar16>::value)
-        return make_uchar16_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar32>::value)
-        return make_uchar32_undef(args...);
-    else if constexpr (std::is_same<typeN, uchar64>::value)
-        return make_uchar64_undef(args...);
-    else if constexpr (std::is_same<typeN, short2>::value)
-        return make_short2_undef(args...);
-    else if constexpr (std::is_same<typeN, short3>::value)
-        return make_short3_undef(args...);
-    else if constexpr (std::is_same<typeN, short4>::value)
-        return make_short4_undef(args...);
-    else if constexpr (std::is_same<typeN, short8>::value)
-        return make_short8_undef(args...);
-    else if constexpr (std::is_same<typeN, short16>::value)
-        return make_short16_undef(args...);
-    else if constexpr (std::is_same<typeN, short32>::value)
-        return make_short32_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort2>::value)
-        return make_ushort2_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort3>::value)
-        return make_ushort3_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort4>::value)
-        return make_ushort4_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort8>::value)
-        return make_ushort8_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort16>::value)
-        return make_ushort16_undef(args...);
-    else if constexpr (std::is_same<typeN, ushort32>::value)
-        return make_ushort32_undef(args...);
-    else if constexpr (std::is_same<typeN, int2>::value)
-        return make_int2_undef(args...);
-    else if constexpr (std::is_same<typeN, int3>::value)
-        return make_int3_undef(args...);
-    else if constexpr (std::is_same<typeN, int4>::value)
-        return make_int4_undef(args...);
-    else if constexpr (std::is_same<typeN, int8>::value)
-        return make_int8_undef(args...);
-    else if constexpr (std::is_same<typeN, int16>::value)
-        return make_int16_undef(args...);
-    else if constexpr (std::is_same<typeN, uint2>::value)
-        return make_uint2_undef(args...);
-    else if constexpr (std::is_same<typeN, uint3>::value)
-        return make_uint3_undef(args...);
-    else if constexpr (std::is_same<typeN, uint4>::value)
-        return make_uint4_undef(args...);
-    else if constexpr (std::is_same<typeN, uint8>::value)
-        return make_uint8_undef(args...);
-    else if constexpr (std::is_same<typeN, uint16>::value)
-        return make_uint16_undef(args...);
-    else if constexpr (std::is_same<typeN, float2>::value)
-        return make_float2_undef(args...);
-    else if constexpr (std::is_same<typeN, float3>::value)
-        return make_float3_undef(args...);
-    else if constexpr (std::is_same<typeN, float4>::value)
-        return make_float4_undef(args...);
-    else if constexpr (std::is_same<typeN, float8>::value)
-        return make_float8_undef(args...);
-    else if constexpr (std::is_same<typeN, float16>::value)
-        return make_float16_undef(args...);
-    else if constexpr (std::is_same<typeN, long2>::value)
-        return make_long2_undef(args...);
-    else if constexpr (std::is_same<typeN, long3>::value)
-        return make_long3_undef(args...);
-    else if constexpr (std::is_same<typeN, long4>::value)
-        return make_long4_undef(args...);
-    else if constexpr (std::is_same<typeN, long8>::value)
-        return make_long8_undef(args...);
-    else if constexpr (std::is_same<typeN, ulong2>::value)
-        return make_ulong2_undef(args...);
-    else if constexpr (std::is_same<typeN, ulong3>::value)
-        return make_ulong3_undef(args...);
-    else if constexpr (std::is_same<typeN, ulong4>::value)
-        return make_ulong4_undef(args...);
-    else if constexpr (std::is_same<typeN, ulong8>::value)
-        return make_ulong8_undef(args...);
-    else if constexpr (std::is_same<typeN, double2>::value)
-        return make_double2_undef(args...);
-    else if constexpr (std::is_same<typeN, double3>::value)
-        return make_double3_undef(args...);
-    else if constexpr (std::is_same<typeN, double4>::value)
-        return make_double4_undef(args...);
-    else if constexpr (std::is_same<typeN, double8>::value)
-        return make_double8_undef(args...);
-}
-#endif /* __has_feature(cxx_constexpr) */
 } /* namespace simd */
 #endif /* __cplusplus */
 #endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
lib/libc/include/any-macos.12-any/sys/_types/_uintptr_t.h → lib/libc/include/x86_64-macos.10-none/sys/_types/_uintptr_t.h
@@ -27,11 +27,5 @@
  */
 #ifndef _UINTPTR_T
 #define _UINTPTR_T
-
-#ifndef __has_attribute
 typedef unsigned long           uintptr_t;
-#else
-typedef unsigned long           uintptr_t;
-#endif /* __has_attribute */
-
 #endif /* _UINTPTR_T */
\ No newline at end of file
lib/libc/include/any-macos.12-any/sys/ioctl.h → lib/libc/include/x86_64-macos.10-none/sys/ioctl.h
@@ -107,4 +107,4 @@ __END_DECLS
  */
 #if defined(USE_OLD_TTY) || defined(BSD_KERNEL_PRIVATE)
 #include <sys/ioctl_compat.h>
-#endif /* defined(USE_OLD_TTY) || defined(BSD_KERNEL_PRIVATE) */
\ No newline at end of file
+#endif /* !_SYS_IOCTL_H_ */
\ No newline at end of file
lib/libc/include/any-macos.12-any/sys/random.h → lib/libc/include/x86_64-macos.10-none/sys/random.h
@@ -29,13 +29,12 @@
 #ifndef __SYS_RANDOM_H__
 #define __SYS_RANDOM_H__
 
-#include <Availability.h>
-#include <stddef.h>
 #include <sys/appleapiopts.h>
 #include <sys/cdefs.h>
 
 __BEGIN_DECLS
-int getentropy(void* buffer, size_t size) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+    __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
lib/libc/include/any-macos.12-any/sys/ttycom.h → lib/libc/include/x86_64-macos.10-none/sys/ttycom.h
@@ -139,7 +139,7 @@ struct winsize {
 #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 */
-                                                /* 105 unused */
+#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 */
lib/libc/include/any-macos.12-any/uuid/uuid.h → lib/libc/include/x86_64-macos.10-none/uuid/uuid.h
@@ -62,6 +62,7 @@ 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);
 
lib/libc/include/any-macos.12-any/xpc/activity.h → lib/libc/include/x86_64-macos.10-none/xpc/activity.h
@@ -164,20 +164,6 @@ __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0)
 XPC_EXPORT
 const char * const XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP; // bool
 
-/*!
- * @constant XPC_ACTIVITY_PREVENT_DEVICE_SLEEP
- * A Boolean value indicating whether the activity should prevent system sleep while
- * running on battery.
- * If this property is set, the activity scheduler will take the appropriate power
- * assertion to keep the device (but not the screen) awake while the activity is running.
- * Only activities which perform critical system functions that do not want to be
- * interrupted by system sleep should set this.
- * Setting this property can impact battery life.
- */
-__API_AVAILABLE(macos(12.0), ios(15.0), watchos(8.0))
-XPC_EXPORT
-const char * const XPC_ACTIVITY_PREVENT_DEVICE_SLEEP; // bool
-
 /*!
  * @constant XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL
  * An integer percentage of minimum battery charge required to allow the
lib/libc/include/any-macos.12-any/assert.h → lib/libc/include/x86_64-macos.10-none/assert.h
@@ -56,12 +56,6 @@
 #define	assert(e)	((void)0)
 #else
 
-#ifdef __FILE_NAME__
-#define __ASSERT_FILE_NAME __FILE_NAME__
-#else /* __FILE_NAME__ */
-#define __ASSERT_FILE_NAME __FILE__
-#endif /* __FILE_NAME__ */
-
 #ifndef __GNUC__
 
 __BEGIN_DECLS
@@ -72,7 +66,7 @@ int  printf(const char * __restrict, ...);
 __END_DECLS
 
 #define assert(e)  \
-    ((void) ((e) ? ((void)0) : __assert (#e, __ASSERT_FILE_NAME, __LINE__)))
+    ((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())
 
@@ -96,10 +90,10 @@ __END_DECLS
 
 #if __DARWIN_UNIX03
 #define	assert(e) \
-    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
+    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
 #else /* !__DARWIN_UNIX03 */
 #define assert(e)  \
-    (__builtin_expect(!(e), 0) ? __assert (#e, __ASSERT_FILE_NAME, __LINE__) : (void)0)
+    (__builtin_expect(!(e), 0) ? __assert (#e, __FILE__, __LINE__) : (void)0)
 #endif /* __DARWIN_UNIX03 */
 
 #endif /* __GNUC__ */
lib/libc/include/any-macos.12-any/AssertMacros.h → lib/libc/include/x86_64-macos.10-none/AssertMacros.h
@@ -214,15 +214,10 @@
  *  If you do not define DEBUG_ASSERT_MESSAGE, a simple printf to stderr will be used.
  */
 #ifndef DEBUG_ASSERT_MESSAGE
-#include <TargetConditionals.h>
    #ifdef KERNEL
       #include <libkern/libkern.h>
       #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));
-   #elif TARGET_OS_DRIVERKIT
-      #include <os/log.h>
-      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
-                                  os_log(OS_LOG_DEFAULT, "AssertMacros: %s, %s file: %s, line: %d, value: %ld\n", assertion, (message!=0) ? message : "", file, line, (long) (value));
    #else
       #include <stdio.h>
       #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
lib/libc/include/any-macos.12-any/execinfo.h → lib/libc/include/x86_64-macos.10-none/execinfo.h
@@ -27,7 +27,6 @@
 #include <Availability.h>
 #include <os/base.h>
 #include <os/availability.h>
-#include <stddef.h>
 #include <stdint.h>
 #include <uuid/uuid.h>
 
@@ -59,40 +58,6 @@ OS_EXPORT
 void backtrace_image_offsets(void* const* array,
 		struct image_offset *image_offsets, int size);
 
-/*!
- * @function backtrace_async
- * Extracts the function return addresses of the current call stack. While
- * backtrace() will only follow the OS call stack, backtrace_async() will
- * prefer the unwind the Swift concurrency continuation stack if invoked
- * from within an async context. In a non-async context this function is
- * strictly equivalent to backtrace().
- *
- * @param array
- * The array of pointers to fill with the return addresses.
- *
- * @param length
- * The maximum number of pointers to write.
- *
- * @param task_id
- * Can be NULL. If non-NULL, the uint32_t pointed to by `task_id` is set to
- * a non-zero value that for the current process uniquely identifies the async
- * task currently running. If called from a non-async context, the value is
- * set to 0 and `array` contains the same values backtrace() would return.
- *
- * Note that the continuation addresses provided by backtrace_async()
- * have an offset of 1 added to them.  Most symbolication engines will
- * substract 1 from the call stack return addresses in order to symbolicate
- * the call site rather than the return location.  With a Swift async
- * continuation, substracting 1 from its address would result in an address
- * in a different function.  This offset allows the returned addresses to be
- * handled correctly by most existing symbolication engines.
- *
- * @result
- * The number of pointers actually written.
- */
-API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0), watchos(8.0))
-size_t backtrace_async(void** array, size_t length, uint32_t *task_id);
-
 __END_DECLS
 
 #endif /* !_EXECINFO_H_ */
\ No newline at end of file
lib/libc/include/any-macos.12-any/gethostuuid.h → lib/libc/include/x86_64-macos.10-none/gethostuuid.h
@@ -36,7 +36,7 @@
 #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 *) __API_AVAILABLE(macos(10.5)) __API_UNAVAILABLE(ios, tvos, watchos);
+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
lib/libc/include/any-macos.12-any/unistd.h → lib/libc/include/x86_64-macos.10-none/unistd.h
@@ -599,10 +599,6 @@ void	 sync(void);
 int	 truncate(const char *, off_t);
 useconds_t	 ualarm(useconds_t, useconds_t);
 int	 usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
-
-#if !defined(_POSIX_C_SOURCE)
-__deprecated_msg("Use posix_spawn or fork")
-#endif
 pid_t	 vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
 /* End XSI */
 
lib/libc/include/x86_64-macos.11-none/i386/_limits.h
@@ -22,6 +22,10 @@
 #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
lib/libc/include/x86_64-macos.11-none/i386/_mcontext.h
@@ -29,6 +29,8 @@
 #ifndef __I386_MCONTEXT_H_
 #define __I386_MCONTEXT_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <sys/cdefs.h> /* __DARWIN_UNIX03 */
 #include <sys/appleapiopts.h>
 #include <mach/machine/_structs.h>
@@ -209,4 +211,6 @@ typedef _STRUCT_MCONTEXT32      *mcontext_t;
 #endif
 #endif /* _MCONTEXT_T */
 
+#endif /* defined (__i386__) || defined (__x86_64__) */
+
 #endif /* __I386_MCONTEXT_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/i386/_param.h
@@ -29,6 +29,8 @@
 #ifndef _I386__PARAM_H_
 #define _I386__PARAM_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <i386/_types.h>
 
 /*
@@ -42,5 +44,6 @@
 #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
lib/libc/include/x86_64-macos.11-none/i386/_types.h
@@ -28,6 +28,8 @@
 #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.
@@ -119,4 +121,6 @@ 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
lib/libc/include/x86_64-macos.11-none/i386/eflags.h
@@ -59,6 +59,8 @@
 #ifndef _I386_EFLAGS_H_
 #define _I386_EFLAGS_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 /*
  *	i386 flags register
  */
@@ -91,4 +93,6 @@
 #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
lib/libc/include/x86_64-macos.11-none/i386/endian.h
@@ -66,6 +66,8 @@
 #ifndef _I386__ENDIAN_H_
 #define _I386__ENDIAN_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <sys/cdefs.h>
 /*
  * Define _NOQUAD if the compiler does NOT support 64-bit integers.
@@ -99,4 +101,5 @@
 #include <sys/_endian.h>
 
 #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
lib/libc/include/x86_64-macos.11-none/i386/limits.h
@@ -36,6 +36,8 @@
 #ifndef _I386_LIMITS_H_
 #define _I386_LIMITS_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <sys/cdefs.h>
 #include <i386/_limits.h>
 
@@ -104,4 +106,6 @@
 #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
lib/libc/include/x86_64-macos.11-none/i386/param.h
@@ -72,6 +72,8 @@
 #ifndef _I386_PARAM_H_
 #define _I386_PARAM_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <i386/_param.h>
 
 /*
@@ -168,4 +170,6 @@
 #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
lib/libc/include/x86_64-macos.11-none/i386/signal.h
@@ -33,6 +33,8 @@
 #ifndef _I386_SIGNAL_H_
 #define _I386_SIGNAL_H_ 1
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <sys/cdefs.h>
 
 #ifndef _ANSI_SOURCE
@@ -40,4 +42,6 @@ typedef int sig_atomic_t;
 
 #endif /* ! _ANSI_SOURCE */
 
+#endif /* defined (__i386__) || defined (__x86_64__) */
+
 #endif  /* _I386_SIGNAL_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/i386/types.h
@@ -63,9 +63,12 @@
  *	@(#)types.h	8.3 (Berkeley) 1/5/94
  */
 
-#ifndef _MACHTYPES_H_
+#ifndef _I386_MACHTYPES_H_
+#define _I386_MACHTYPES_H_
 #define _MACHTYPES_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #ifndef __ASSEMBLER__
 #include <i386/_types.h>
 #include <sys/cdefs.h>
@@ -111,4 +114,5 @@ typedef int64_t                 user_off_t;
 typedef u_int64_t               syscall_arg_t;
 
 #endif /* __ASSEMBLER__ */
-#endif  /* _MACHTYPES_H_ */
\ No newline at end of file
+#endif /* defined (__i386__) || defined (__x86_64__) */
+#endif  /* _I386_MACHTYPES_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/mach/i386/_structs.h
@@ -32,6 +32,8 @@
 #ifndef	_MACH_I386__STRUCTS_H_
 #define	_MACH_I386__STRUCTS_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <sys/cdefs.h> /* __DARWIN_UNIX03 */
 #include <machine/types.h> /* __uint8_t */
 
@@ -1309,4 +1311,6 @@ _STRUCT_X86_CPMU_STATE64
 };
 #endif /* !__DARWIN_UNIX03 */
 
+#endif /* defined (__i386__) || defined (__x86_64__) */
+
 #endif /* _MACH_I386__STRUCTS_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/mach/i386/boolean.h
@@ -65,10 +65,14 @@
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/exception.h
@@ -59,6 +59,8 @@
 #ifndef _MACH_I386_EXCEPTION_H_
 #define _MACH_I386_EXCEPTION_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 /*
  * No machine dependent types for the 80386
  */
@@ -132,4 +134,6 @@
  */
 #define EXC_MASK_MACHINE        0
 
+#endif /* defined (__i386__) || defined (__x86_64__) */
+
 #endif  /* _MACH_I386_EXCEPTION_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/mach/i386/fp_reg.h
@@ -59,6 +59,8 @@
 #ifndef _I386_FP_SAVE_H_
 #define _I386_FP_SAVE_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 /*
  * Control register
  */
@@ -115,4 +117,6 @@
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/kern_return.h
@@ -67,8 +67,12 @@
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/processor_info.h
@@ -34,4 +34,8 @@
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/rpc.h
@@ -32,4 +32,8 @@
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/thread_state.h
@@ -32,11 +32,11 @@
 #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 */
 
-#if defined (__i386__) || defined(__x86_64__)
-#define THREAD_STATE_MAX        I386_THREAD_STATE_MAX
-#endif
+#endif /* defined (__i386__) || defined (__x86_64__) */
 
 #endif  /* _MACH_I386_THREAD_STATE_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/mach/i386/thread_status.h
@@ -67,10 +67,12 @@
 #ifndef _MACH_I386_THREAD_STATUS_H_
 #define _MACH_I386_THREAD_STATUS_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #include <mach/machine/_structs.h>
+#include <mach/machine/thread_state.h>
 #include <mach/message.h>
 #include <mach/i386/fp_reg.h>
-#include <mach/i386/thread_state.h>
 #include <i386/eflags.h>
 
 
@@ -359,4 +361,6 @@ typedef struct x86_avx512_state x86_avx512_state_t;
 #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
lib/libc/include/x86_64-macos.11-none/mach/i386/vm_param.h
@@ -90,6 +90,8 @@
 #ifndef _MACH_I386_VM_PARAM_H_
 #define _MACH_I386_VM_PARAM_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #if !defined(KERNEL) && !defined(__ASSEMBLER__)
 
 #include <mach/vm_page_size.h>
@@ -122,9 +124,11 @@
 
 #define VM_MIN_ADDRESS64        ((user_addr_t) 0x0000000000000000ULL)
 /*
- * default top of user stack... it grows down from here
+ * 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) 0x00007FFEEFC00000ULL)
+#define VM_USRSTACK64           ((user_addr_t) (0x00007FF7C0000000ull - (1024 * 1024)))
 
 /*
  * XXX TODO: Obsolete?
@@ -154,4 +158,6 @@
 
 
 
+#endif /* defined (__i386__) || defined (__x86_64__) */
+
 #endif  /* _MACH_I386_VM_PARAM_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.11-none/mach/i386/vm_types.h
@@ -67,10 +67,13 @@
 #ifndef _MACH_I386_VM_TYPES_H_
 #define _MACH_I386_VM_TYPES_H_
 
+#if defined (__i386__) || defined (__x86_64__)
+
 #ifndef ASSEMBLER
 
 #include <i386/_types.h>
 #include <stdint.h>
+#include <sys/cdefs.h>
 
 /*
  * natural_t and integer_t are Mach's legacy types for machine-
@@ -97,9 +100,9 @@ typedef int                     integer_t;
  * e.g. an offset into a virtual memory space.
  */
 #ifdef __LP64__
-typedef uintptr_t               vm_offset_t;
+typedef uintptr_t               vm_offset_t __kernel_ptr_semantics;
 #else   /* __LP64__ */
-typedef natural_t               vm_offset_t;
+typedef natural_t               vm_offset_t __kernel_ptr_semantics;
 #endif  /* __LP64__ */
 
 /*
@@ -120,12 +123,12 @@ typedef natural_t               vm_size_t;
  * 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_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;
-typedef uint64_t                vm_map_address_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;
@@ -138,4 +141,6 @@ typedef mach_vm_address_t       mach_port_context_t;
  */
 #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