aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/aarch64-macos-gnu/sys
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2020-12-19 12:13:03 +0100
committerGitHub <noreply@github.com>2020-12-19 12:13:03 +0100
commitb090451646904006ac41b2b99e532489d89ea837 (patch)
treeb0a5ec423dc42f5bf6dcf533b90f8c67a69e9b99 /lib/libc/include/aarch64-macos-gnu/sys
parent506af7e52e0985b410ea089bf5fa3247ab2377cb (diff)
parent3f81ddb735bfc8e6fb1776df7407ace213816252 (diff)
downloadzig-b090451646904006ac41b2b99e532489d89ea837.tar.gz
zig-b090451646904006ac41b2b99e532489d89ea837.zip
Merge pull request #7318 from kubkon/cc-macho
stage1: cross compile to x86_64 and arm64 macOS from anywhere with LLVM
Diffstat (limited to 'lib/libc/include/aarch64-macos-gnu/sys')
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_attr_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_cond_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_condattr_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_t.h32
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_types.h120
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_select.h57
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_symbol_aliasing.h534
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_types/_fd_def.h121
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_types/_int8_t.h31
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/_types/_ucontext.h59
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/acl.h212
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/attr.h586
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/cdefs.h876
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/event.h396
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/fcntl.h581
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/ioccom.h99
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/kauth.h410
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/mman.h263
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/mount.h434
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/param.h235
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/proc.h224
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/resource.h512
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/shm.h190
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/socket.h741
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/sockio.h180
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/spawn.h79
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/stat.h432
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/sysctl.h779
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/syslimits.h125
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/uio.h111
-rw-r--r--lib/libc/include/aarch64-macos-gnu/sys/un.h106
33 files changed, 8685 insertions, 0 deletions
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_attr_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_attr_t.h
new file mode 100644
index 0000000000..e46261f1e4
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_attr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_ATTR_T
+#define _PTHREAD_ATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_attr_t */
+typedef __darwin_pthread_attr_t pthread_attr_t;
+#endif /* _PTHREAD_ATTR_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_cond_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_cond_t.h
new file mode 100644
index 0000000000..628bd99ce7
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_cond_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_COND_T
+#define _PTHREAD_COND_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_cond_t */
+typedef __darwin_pthread_cond_t pthread_cond_t;
+#endif /* _PTHREAD_COND_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_condattr_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_condattr_t.h
new file mode 100644
index 0000000000..4352a31611
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_condattr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_CONDATTR_T
+#define _PTHREAD_CONDATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_condattr_t */
+typedef __darwin_pthread_condattr_t pthread_condattr_t;
+#endif /* _PTHREAD_CONDATTR_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h
new file mode 100644
index 0000000000..f033ed3069
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_RWLOCK_T
+#define _PTHREAD_RWLOCK_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlock_t */
+typedef __darwin_pthread_rwlock_t pthread_rwlock_t;
+#endif /* _PTHREAD_RWLOCK_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h
new file mode 100644
index 0000000000..6843d994ea
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_RWLOCKATTR_T
+#define _PTHREAD_RWLOCKATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlockattr_t */
+typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t;
+#endif /* _PTHREAD_RWLOCKATTR_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_t.h
new file mode 100644
index 0000000000..bc03e26c2e
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_T
+#define _PTHREAD_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_t */
+typedef __darwin_pthread_t pthread_t;
+#endif /* _PTHREAD_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_types.h b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_types.h
new file mode 100644
index 0000000000..5cf3d7a442
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_pthread/_pthread_types.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SYS__PTHREAD_TYPES_H_
+#define _SYS__PTHREAD_TYPES_H_
+
+#include <sys/cdefs.h>
+
+// pthread opaque structures
+#if defined(__LP64__)
+#define __PTHREAD_SIZE__ 8176
+#define __PTHREAD_ATTR_SIZE__ 56
+#define __PTHREAD_MUTEXATTR_SIZE__ 8
+#define __PTHREAD_MUTEX_SIZE__ 56
+#define __PTHREAD_CONDATTR_SIZE__ 8
+#define __PTHREAD_COND_SIZE__ 40
+#define __PTHREAD_ONCE_SIZE__ 8
+#define __PTHREAD_RWLOCK_SIZE__ 192
+#define __PTHREAD_RWLOCKATTR_SIZE__ 16
+#else // !__LP64__
+#define __PTHREAD_SIZE__ 4088
+#define __PTHREAD_ATTR_SIZE__ 36
+#define __PTHREAD_MUTEXATTR_SIZE__ 8
+#define __PTHREAD_MUTEX_SIZE__ 40
+#define __PTHREAD_CONDATTR_SIZE__ 4
+#define __PTHREAD_COND_SIZE__ 24
+#define __PTHREAD_ONCE_SIZE__ 4
+#define __PTHREAD_RWLOCK_SIZE__ 124
+#define __PTHREAD_RWLOCKATTR_SIZE__ 12
+#endif // !__LP64__
+
+struct __darwin_pthread_handler_rec {
+ void (*__routine)(void *); // Routine to call
+ void *__arg; // Argument to pass
+ struct __darwin_pthread_handler_rec *__next;
+};
+
+struct _opaque_pthread_attr_t {
+ long __sig;
+ char __opaque[__PTHREAD_ATTR_SIZE__];
+};
+
+struct _opaque_pthread_cond_t {
+ long __sig;
+ char __opaque[__PTHREAD_COND_SIZE__];
+};
+
+struct _opaque_pthread_condattr_t {
+ long __sig;
+ char __opaque[__PTHREAD_CONDATTR_SIZE__];
+};
+
+struct _opaque_pthread_mutex_t {
+ long __sig;
+ char __opaque[__PTHREAD_MUTEX_SIZE__];
+};
+
+struct _opaque_pthread_mutexattr_t {
+ long __sig;
+ char __opaque[__PTHREAD_MUTEXATTR_SIZE__];
+};
+
+struct _opaque_pthread_once_t {
+ long __sig;
+ char __opaque[__PTHREAD_ONCE_SIZE__];
+};
+
+struct _opaque_pthread_rwlock_t {
+ long __sig;
+ char __opaque[__PTHREAD_RWLOCK_SIZE__];
+};
+
+struct _opaque_pthread_rwlockattr_t {
+ long __sig;
+ char __opaque[__PTHREAD_RWLOCKATTR_SIZE__];
+};
+
+struct _opaque_pthread_t {
+ long __sig;
+ struct __darwin_pthread_handler_rec *__cleanup_stack;
+ char __opaque[__PTHREAD_SIZE__];
+};
+
+typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t;
+typedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t;
+typedef struct _opaque_pthread_condattr_t __darwin_pthread_condattr_t;
+typedef unsigned long __darwin_pthread_key_t;
+typedef struct _opaque_pthread_mutex_t __darwin_pthread_mutex_t;
+typedef struct _opaque_pthread_mutexattr_t __darwin_pthread_mutexattr_t;
+typedef struct _opaque_pthread_once_t __darwin_pthread_once_t;
+typedef struct _opaque_pthread_rwlock_t __darwin_pthread_rwlock_t;
+typedef struct _opaque_pthread_rwlockattr_t __darwin_pthread_rwlockattr_t;
+typedef struct _opaque_pthread_t *__darwin_pthread_t;
+
+#endif // _SYS__PTHREAD_TYPES_H_ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_select.h b/lib/libc/include/aarch64-macos-gnu/sys/_select.h
new file mode 100644
index 0000000000..587b506d0c
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_select.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2005, 2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * This is called from sys/select.h and sys/time.h for the common prototype
+ * of select(). Setting _DARWIN_C_SOURCE or _DARWIN_UNLIMITED_SELECT uses
+ * the version of select() that does not place a limit on the first argument
+ * (nfds). In the UNIX conformance case, values of nfds greater than
+ * FD_SETSIZE will return an error of EINVAL.
+ */
+#ifndef _SYS__SELECT_H_
+#define _SYS__SELECT_H_
+
+#include <sys/cdefs.h> /* __DARWIN_EXTSN_C, __DARWIN_1050, __DARWIN_ALIAS_C */
+#include <sys/_types/_fd_def.h> /* fd_set */
+#include <sys/_types/_timeval.h> /* struct timeval */
+
+int select(int, fd_set * __restrict, fd_set * __restrict,
+ fd_set * __restrict, struct timeval * __restrict)
+
+#if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT)
+__DARWIN_EXTSN_C(select)
+#else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */
+# if defined(__LP64__) && !__DARWIN_NON_CANCELABLE
+__DARWIN_1050(select)
+# else /* !__LP64__ || __DARWIN_NON_CANCELABLE */
+__DARWIN_ALIAS_C(select)
+# endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */
+#endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */
+;
+
+#endif /* !_SYS__SELECT_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_symbol_aliasing.h b/lib/libc/include/aarch64-macos-gnu/sys/_symbol_aliasing.h
new file mode 100644
index 0000000000..151156d6e1
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_symbol_aliasing.h
@@ -0,0 +1,534 @@
+/* Copyright (c) 2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _CDEFS_H_
+# error "Never use <sys/_symbol_aliasing.h> directly. Use <sys/cdefs.h> instead."
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130500
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130600
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130700
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1010
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1020
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1030
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1080
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101002
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101003
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101100
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101102
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101103
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101104
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101201
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101202
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101204
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101300
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101301
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101302
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101304
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101401
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101404
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101405
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101406
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101500
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101501
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101600
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x)
+#endif \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_types/_fd_def.h b/lib/libc/include/aarch64-macos-gnu/sys/_types/_fd_def.h
new file mode 100644
index 0000000000..138a1d49e2
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_types/_fd_def.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _FD_SET
+#define _FD_SET
+
+#include <machine/types.h> /* __int32_t and uintptr_t */
+#include <Availability.h>
+
+/*
+ * Select uses bit masks of file descriptors in longs. These macros
+ * manipulate such bit fields (the filesystem macros use chars). The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#ifdef FD_SETSIZE
+#define __DARWIN_FD_SETSIZE FD_SETSIZE
+#else /* !FD_SETSIZE */
+#define __DARWIN_FD_SETSIZE 1024
+#endif /* FD_SETSIZE */
+#define __DARWIN_NBBY 8 /* bits in a byte */
+#define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */
+#define __DARWIN_howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */
+
+__BEGIN_DECLS
+typedef struct fd_set {
+ __int32_t fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)];
+} fd_set;
+
+int __darwin_check_fd_set_overflow(int, const void *, int) __API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+__END_DECLS
+
+__header_always_inline int
+__darwin_check_fd_set(int _a, const void *_b)
+{
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
+#endif
+ if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) {
+#if defined(_DARWIN_UNLIMITED_SELECT) || defined(_DARWIN_C_SOURCE)
+ return __darwin_check_fd_set_overflow(_a, _b, 1);
+#else
+ return __darwin_check_fd_set_overflow(_a, _b, 0);
+#endif
+ } else {
+ return 1;
+ }
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+}
+
+/* This inline avoids argument side-effect issues with FD_ISSET() */
+__header_always_inline int
+__darwin_fd_isset(int _fd, const struct fd_set *_p)
+{
+ if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+ return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)));
+ }
+
+ return 0;
+}
+
+__header_always_inline void
+__darwin_fd_set(int _fd, struct fd_set *const _p)
+{
+ if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+ (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+ }
+}
+
+__header_always_inline void
+__darwin_fd_clr(int _fd, struct fd_set *const _p)
+{
+ if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+ (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+ }
+}
+
+
+#define __DARWIN_FD_SET(n, p) __darwin_fd_set((n), (p))
+#define __DARWIN_FD_CLR(n, p) __darwin_fd_clr((n), (p))
+#define __DARWIN_FD_ISSET(n, p) __darwin_fd_isset((n), (p))
+
+#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3
+/*
+ * Use the built-in bzero function instead of the library version so that
+ * we do not pollute the namespace or introduce prototype warnings.
+ */
+#define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p)))
+#else
+#define __DARWIN_FD_ZERO(p) bzero(p, sizeof(*(p)))
+#endif
+
+#define __DARWIN_FD_COPY(f, t) bcopy(f, t, sizeof(*(f)))
+#endif /* _FD_SET */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_types/_int8_t.h b/lib/libc/include/aarch64-macos-gnu/sys/_types/_int8_t.h
new file mode 100644
index 0000000000..5ca9ba85b0
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_types/_int8_t.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _INT8_T
+#define _INT8_T
+typedef signed char int8_t;
+#endif /* _INT8_T */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/_types/_ucontext.h b/lib/libc/include/aarch64-macos-gnu/sys/_types/_ucontext.h
new file mode 100644
index 0000000000..de3132a861
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/_types/_ucontext.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _STRUCT_UCONTEXT
+
+#include <sys/cdefs.h> /* __DARWIN_UNIX03 */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_UCONTEXT struct __darwin_ucontext
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_UCONTEXT struct ucontext
+#endif /* __DARWIN_UNIX03 */
+
+#include <machine/types.h> /* __darwin_size_t */
+#include <machine/_mcontext.h> /* _STRUCT_MCONTEXT */
+#include <sys/_types.h> /* __darwin_sigset_t */
+#include <sys/_types/_sigaltstack.h> /* _STRUCT_SIGALTSTACK */
+
+_STRUCT_UCONTEXT
+{
+ int uc_onstack;
+ __darwin_sigset_t uc_sigmask; /* signal mask used by this context */
+ _STRUCT_SIGALTSTACK uc_stack; /* stack used by this context */
+ _STRUCT_UCONTEXT *uc_link; /* pointer to resuming context */
+ __darwin_size_t uc_mcsize; /* size of the machine context passed in */
+ _STRUCT_MCONTEXT *uc_mcontext; /* pointer to machine specific context */
+#ifdef _XOPEN_SOURCE
+ _STRUCT_MCONTEXT __mcontext_data;
+#endif /* _XOPEN_SOURCE */
+};
+
+/* user context */
+typedef _STRUCT_UCONTEXT ucontext_t; /* [???] user context */
+
+#endif /* _STRUCT_UCONTEXT */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/acl.h b/lib/libc/include/aarch64-macos-gnu/sys/acl.h
new file mode 100644
index 0000000000..f2a5385714
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/acl.h
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2004, 2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License"). You may not use this file except in compliance with the
+ * License. Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ *
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SYS_ACL_H
+#define _SYS_ACL_H
+
+#include <Availability.h>
+#include <sys/kauth.h>
+#include <sys/_types/_ssize_t.h>
+
+#define __DARWIN_ACL_READ_DATA (1<<1)
+#define __DARWIN_ACL_LIST_DIRECTORY __DARWIN_ACL_READ_DATA
+#define __DARWIN_ACL_WRITE_DATA (1<<2)
+#define __DARWIN_ACL_ADD_FILE __DARWIN_ACL_WRITE_DATA
+#define __DARWIN_ACL_EXECUTE (1<<3)
+#define __DARWIN_ACL_SEARCH __DARWIN_ACL_EXECUTE
+#define __DARWIN_ACL_DELETE (1<<4)
+#define __DARWIN_ACL_APPEND_DATA (1<<5)
+#define __DARWIN_ACL_ADD_SUBDIRECTORY __DARWIN_ACL_APPEND_DATA
+#define __DARWIN_ACL_DELETE_CHILD (1<<6)
+#define __DARWIN_ACL_READ_ATTRIBUTES (1<<7)
+#define __DARWIN_ACL_WRITE_ATTRIBUTES (1<<8)
+#define __DARWIN_ACL_READ_EXTATTRIBUTES (1<<9)
+#define __DARWIN_ACL_WRITE_EXTATTRIBUTES (1<<10)
+#define __DARWIN_ACL_READ_SECURITY (1<<11)
+#define __DARWIN_ACL_WRITE_SECURITY (1<<12)
+#define __DARWIN_ACL_CHANGE_OWNER (1<<13)
+#define __DARWIN_ACL_SYNCHRONIZE (1<<20)
+
+#define __DARWIN_ACL_EXTENDED_ALLOW 1
+#define __DARWIN_ACL_EXTENDED_DENY 2
+
+#define __DARWIN_ACL_ENTRY_INHERITED (1<<4)
+#define __DARWIN_ACL_ENTRY_FILE_INHERIT (1<<5)
+#define __DARWIN_ACL_ENTRY_DIRECTORY_INHERIT (1<<6)
+#define __DARWIN_ACL_ENTRY_LIMIT_INHERIT (1<<7)
+#define __DARWIN_ACL_ENTRY_ONLY_INHERIT (1<<8)
+#define __DARWIN_ACL_FLAG_NO_INHERIT (1<<17)
+
+/*
+ * Implementation constants.
+ *
+ * The ACL_TYPE_EXTENDED binary format permits 169 entries plus
+ * the ACL header in a page. Give ourselves some room to grow;
+ * this limit is arbitrary.
+ */
+#define ACL_MAX_ENTRIES 128
+
+/* 23.2.2 Individual object access permissions - nonstandard */
+typedef enum {
+ ACL_READ_DATA = __DARWIN_ACL_READ_DATA,
+ ACL_LIST_DIRECTORY = __DARWIN_ACL_LIST_DIRECTORY,
+ ACL_WRITE_DATA = __DARWIN_ACL_WRITE_DATA,
+ ACL_ADD_FILE = __DARWIN_ACL_ADD_FILE,
+ ACL_EXECUTE = __DARWIN_ACL_EXECUTE,
+ ACL_SEARCH = __DARWIN_ACL_SEARCH,
+ ACL_DELETE = __DARWIN_ACL_DELETE,
+ ACL_APPEND_DATA = __DARWIN_ACL_APPEND_DATA,
+ ACL_ADD_SUBDIRECTORY = __DARWIN_ACL_ADD_SUBDIRECTORY,
+ ACL_DELETE_CHILD = __DARWIN_ACL_DELETE_CHILD,
+ ACL_READ_ATTRIBUTES = __DARWIN_ACL_READ_ATTRIBUTES,
+ ACL_WRITE_ATTRIBUTES = __DARWIN_ACL_WRITE_ATTRIBUTES,
+ ACL_READ_EXTATTRIBUTES = __DARWIN_ACL_READ_EXTATTRIBUTES,
+ ACL_WRITE_EXTATTRIBUTES = __DARWIN_ACL_WRITE_EXTATTRIBUTES,
+ ACL_READ_SECURITY = __DARWIN_ACL_READ_SECURITY,
+ ACL_WRITE_SECURITY = __DARWIN_ACL_WRITE_SECURITY,
+ ACL_CHANGE_OWNER = __DARWIN_ACL_CHANGE_OWNER,
+ ACL_SYNCHRONIZE = __DARWIN_ACL_SYNCHRONIZE,
+} acl_perm_t;
+
+/* 23.2.5 ACL entry tag type bits - nonstandard */
+typedef enum {
+ ACL_UNDEFINED_TAG = 0,
+ ACL_EXTENDED_ALLOW = __DARWIN_ACL_EXTENDED_ALLOW,
+ ACL_EXTENDED_DENY = __DARWIN_ACL_EXTENDED_DENY
+} acl_tag_t;
+
+/* 23.2.6 Individual ACL types */
+typedef enum {
+ ACL_TYPE_EXTENDED = 0x00000100,
+/* Posix 1003.1e types - not supported */
+ ACL_TYPE_ACCESS = 0x00000000,
+ ACL_TYPE_DEFAULT = 0x00000001,
+/* The following types are defined on FreeBSD/Linux - not supported */
+ ACL_TYPE_AFS = 0x00000002,
+ ACL_TYPE_CODA = 0x00000003,
+ ACL_TYPE_NTFS = 0x00000004,
+ ACL_TYPE_NWFS = 0x00000005
+} acl_type_t;
+
+/* 23.2.7 ACL qualifier constants */
+
+#define ACL_UNDEFINED_ID NULL /* XXX ? */
+
+/* 23.2.8 ACL Entry Constants */
+typedef enum {
+ ACL_FIRST_ENTRY = 0,
+ ACL_NEXT_ENTRY = -1,
+ ACL_LAST_ENTRY = -2
+} acl_entry_id_t;
+
+/* nonstandard ACL / entry flags */
+typedef enum {
+ ACL_FLAG_DEFER_INHERIT = (1 << 0), /* tentative */
+ ACL_FLAG_NO_INHERIT = __DARWIN_ACL_FLAG_NO_INHERIT,
+ ACL_ENTRY_INHERITED = __DARWIN_ACL_ENTRY_INHERITED,
+ ACL_ENTRY_FILE_INHERIT = __DARWIN_ACL_ENTRY_FILE_INHERIT,
+ ACL_ENTRY_DIRECTORY_INHERIT = __DARWIN_ACL_ENTRY_DIRECTORY_INHERIT,
+ ACL_ENTRY_LIMIT_INHERIT = __DARWIN_ACL_ENTRY_LIMIT_INHERIT,
+ ACL_ENTRY_ONLY_INHERIT = __DARWIN_ACL_ENTRY_ONLY_INHERIT
+} acl_flag_t;
+
+/* "External" ACL types */
+
+struct _acl;
+struct _acl_entry;
+struct _acl_permset;
+struct _acl_flagset;
+
+typedef struct _acl *acl_t;
+typedef struct _acl_entry *acl_entry_t;
+typedef struct _acl_permset *acl_permset_t;
+typedef struct _acl_flagset *acl_flagset_t;
+
+typedef u_int64_t acl_permset_mask_t;
+
+__BEGIN_DECLS
+/* 23.1.6.1 ACL Storage Management */
+extern acl_t acl_dup(acl_t acl);
+extern int acl_free(void *obj_p);
+extern acl_t acl_init(int count);
+
+/* 23.1.6.2 (1) ACL Entry manipulation */
+extern int acl_copy_entry(acl_entry_t dest_d, acl_entry_t src_d);
+extern int acl_create_entry(acl_t *acl_p, acl_entry_t *entry_p);
+extern int acl_create_entry_np(acl_t *acl_p, acl_entry_t *entry_p, int entry_index);
+extern int acl_delete_entry(acl_t acl, acl_entry_t entry_d);
+extern int acl_get_entry(acl_t acl, int entry_id, acl_entry_t *entry_p);
+extern int acl_valid(acl_t acl);
+extern int acl_valid_fd_np(int fd, acl_type_t type, acl_t acl);
+extern int acl_valid_file_np(const char *path, acl_type_t type, acl_t acl);
+extern int acl_valid_link_np(const char *path, acl_type_t type, acl_t acl);
+
+/* 23.1.6.2 (2) Manipulate permissions within an ACL entry */
+extern int acl_add_perm(acl_permset_t permset_d, acl_perm_t perm);
+extern int acl_calc_mask(acl_t *acl_p); /* not supported */
+extern int acl_clear_perms(acl_permset_t permset_d);
+extern int acl_delete_perm(acl_permset_t permset_d, acl_perm_t perm);
+extern int acl_get_perm_np(acl_permset_t permset_d, acl_perm_t perm);
+extern int acl_get_permset(acl_entry_t entry_d, acl_permset_t *permset_p);
+extern int acl_set_permset(acl_entry_t entry_d, acl_permset_t permset_d);
+
+/* nonstandard - manipulate permissions within an ACL entry using bitmasks */
+extern int acl_maximal_permset_mask_np(acl_permset_mask_t * mask_p) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+extern int acl_get_permset_mask_np(acl_entry_t entry_d, acl_permset_mask_t * mask_p) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+extern int acl_set_permset_mask_np(acl_entry_t entry_d, acl_permset_mask_t mask) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+
+/* nonstandard - manipulate flags on ACLs and entries */
+extern int acl_add_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+extern int acl_clear_flags_np(acl_flagset_t flagset_d);
+extern int acl_delete_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+extern int acl_get_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+extern int acl_get_flagset_np(void *obj_p, acl_flagset_t *flagset_p);
+extern int acl_set_flagset_np(void *obj_p, acl_flagset_t flagset_d);
+
+/* 23.1.6.2 (3) Manipulate ACL entry tag type and qualifier */
+extern void *acl_get_qualifier(acl_entry_t entry_d);
+extern int acl_get_tag_type(acl_entry_t entry_d, acl_tag_t *tag_type_p);
+extern int acl_set_qualifier(acl_entry_t entry_d, const void *tag_qualifier_p);
+extern int acl_set_tag_type(acl_entry_t entry_d, acl_tag_t tag_type);
+
+/* 23.1.6.3 ACL manipulation on an Object */
+extern int acl_delete_def_file(const char *path_p); /* not supported */
+extern acl_t acl_get_fd(int fd);
+extern acl_t acl_get_fd_np(int fd, acl_type_t type);
+extern acl_t acl_get_file(const char *path_p, acl_type_t type);
+extern acl_t acl_get_link_np(const char *path_p, acl_type_t type);
+extern int acl_set_fd(int fd, acl_t acl);
+extern int acl_set_fd_np(int fd, acl_t acl, acl_type_t acl_type);
+extern int acl_set_file(const char *path_p, acl_type_t type, acl_t acl);
+extern int acl_set_link_np(const char *path_p, acl_type_t type, acl_t acl);
+
+/* 23.1.6.4 ACL Format translation */
+extern ssize_t acl_copy_ext(void *buf_p, acl_t acl, ssize_t size);
+extern ssize_t acl_copy_ext_native(void *buf_p, acl_t acl, ssize_t size);
+extern acl_t acl_copy_int(const void *buf_p);
+extern acl_t acl_copy_int_native(const void *buf_p);
+extern acl_t acl_from_text(const char *buf_p);
+extern ssize_t acl_size(acl_t acl);
+extern char *acl_to_text(acl_t acl, ssize_t *len_p);
+__END_DECLS
+
+#endif /* _SYS_ACL_H */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/attr.h b/lib/libc/include/aarch64-macos-gnu/sys/attr.h
new file mode 100644
index 0000000000..9eca5efb34
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/attr.h
@@ -0,0 +1,586 @@
+/*
+ * Copyright (c) 2000-2018 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * attr.h - attribute data structures and interfaces
+ *
+ * Copyright (c) 1998, Apple Computer, Inc. All Rights Reserved.
+ */
+
+#ifndef _SYS_ATTR_H_
+#define _SYS_ATTR_H_
+
+#include <sys/appleapiopts.h>
+
+#ifdef __APPLE_API_UNSTABLE
+#include <sys/types.h>
+#include <sys/ucred.h>
+#include <sys/time.h>
+#include <sys/cdefs.h>
+
+#define FSOPT_NOFOLLOW 0x00000001
+#define FSOPT_NOINMEMUPDATE 0x00000002
+#define FSOPT_REPORT_FULLSIZE 0x00000004
+/* The following option only valid when requesting ATTR_CMN_RETURNED_ATTRS */
+#define FSOPT_PACK_INVAL_ATTRS 0x00000008
+
+
+#define FSOPT_ATTR_CMN_EXTENDED 0x00000020
+#define FSOPT_RETURN_REALDEV 0x00000200
+
+/* we currently aren't anywhere near this amount for a valid
+ * fssearchblock.sizeofsearchparams1 or fssearchblock.sizeofsearchparams2
+ * but we put a sanity check in to avoid abuse of the value passed in from
+ * user land.
+ */
+#define SEARCHFS_MAX_SEARCHPARMS 4096
+
+typedef u_int32_t text_encoding_t;
+
+typedef u_int32_t fsobj_type_t;
+
+typedef u_int32_t fsobj_tag_t;
+
+typedef u_int32_t fsfile_type_t;
+
+typedef u_int32_t fsvolid_t;
+
+#include <sys/_types/_fsobj_id_t.h> /* file object id type */
+
+typedef u_int32_t attrgroup_t;
+
+struct attrlist {
+ u_short bitmapcount; /* number of attr. bit sets in list (should be 5) */
+ u_int16_t reserved; /* (to maintain 4-byte alignment) */
+ attrgroup_t commonattr; /* common attribute group */
+ attrgroup_t volattr; /* Volume attribute group */
+ attrgroup_t dirattr; /* directory attribute group */
+ attrgroup_t fileattr; /* file attribute group */
+ attrgroup_t forkattr; /* fork attribute group */
+};
+#define ATTR_BIT_MAP_COUNT 5
+
+typedef struct attribute_set {
+ attrgroup_t commonattr; /* common attribute group */
+ attrgroup_t volattr; /* Volume attribute group */
+ attrgroup_t dirattr; /* directory attribute group */
+ attrgroup_t fileattr; /* file attribute group */
+ attrgroup_t forkattr; /* fork attribute group */
+} attribute_set_t;
+
+typedef struct attrreference {
+ int32_t attr_dataoffset;
+ u_int32_t attr_length;
+} attrreference_t;
+
+/* XXX PPD This is derived from HFSVolumePriv.h and should perhaps be referenced from there? */
+
+struct diskextent {
+ u_int32_t startblock; /* first block allocated */
+ u_int32_t blockcount; /* number of blocks allocated */
+};
+
+typedef struct diskextent extentrecord[8];
+
+typedef u_int32_t vol_capabilities_set_t[4];
+
+#define VOL_CAPABILITIES_FORMAT 0
+#define VOL_CAPABILITIES_INTERFACES 1
+#define VOL_CAPABILITIES_RESERVED1 2
+#define VOL_CAPABILITIES_RESERVED2 3
+
+typedef struct vol_capabilities_attr {
+ vol_capabilities_set_t capabilities;
+ vol_capabilities_set_t valid;
+} vol_capabilities_attr_t;
+
+/*
+ * XXX this value needs to be raised - 3893388
+ */
+#define ATTR_MAX_BUFFER 8192
+
+/*
+ * VOL_CAP_FMT_PERSISTENTOBJECTIDS: When set, the volume has object IDs
+ * that are persistent (retain their values even when the volume is
+ * unmounted and remounted), and a file or directory can be looked up
+ * by ID. Volumes that support VolFS and can support Carbon File ID
+ * references should set this bit.
+ *
+ * VOL_CAP_FMT_SYMBOLICLINKS: When set, the volume supports symbolic
+ * links. The symlink(), readlink(), and lstat() calls all use this
+ * symbolic link.
+ *
+ * VOL_CAP_FMT_HARDLINKS: When set, the volume supports hard links.
+ * The link() call creates hard links.
+ *
+ * VOL_CAP_FMT_JOURNAL: When set, the volume is capable of supporting
+ * a journal used to speed recovery in case of unplanned shutdown
+ * (such as a power outage or crash). This bit does not necessarily
+ * mean the volume is actively using a journal for recovery.
+ *
+ * VOL_CAP_FMT_JOURNAL_ACTIVE: When set, the volume is currently using
+ * a journal for use in speeding recovery after an unplanned shutdown.
+ * This bit can be set only if VOL_CAP_FMT_JOURNAL is also set.
+ *
+ * VOL_CAP_FMT_NO_ROOT_TIMES: When set, the volume format does not
+ * store reliable times for the root directory, so you should not
+ * depend on them to detect changes, etc.
+ *
+ * VOL_CAP_FMT_SPARSE_FILES: When set, the volume supports sparse files.
+ * That is, files which can have "holes" that have never been written
+ * to, and are not allocated on disk. Sparse files may have an
+ * allocated size that is less than the file's logical length.
+ *
+ * VOL_CAP_FMT_ZERO_RUNS: For security reasons, parts of a file (runs)
+ * that have never been written to must appear to contain zeroes. When
+ * this bit is set, the volume keeps track of allocated but unwritten
+ * runs of a file so that it can substitute zeroes without actually
+ * writing zeroes to the media. This provides performance similar to
+ * sparse files, but not the space savings.
+ *
+ * VOL_CAP_FMT_CASE_SENSITIVE: When set, file and directory names are
+ * case sensitive (upper and lower case are different). When clear,
+ * an upper case character is equivalent to a lower case character,
+ * and you can't have two names that differ solely in the case of
+ * the characters.
+ *
+ * VOL_CAP_FMT_CASE_PRESERVING: When set, file and directory names
+ * preserve the difference between upper and lower case. If clear,
+ * the volume may change the case of some characters (typically
+ * making them all upper or all lower case). A volume that sets
+ * VOL_CAP_FMT_CASE_SENSITIVE should also set VOL_CAP_FMT_CASE_PRESERVING.
+ *
+ * VOL_CAP_FMT_FAST_STATFS: This bit is used as a hint to upper layers
+ * (especially Carbon) that statfs() is fast enough that its results
+ * need not be cached by those upper layers. A volume that caches
+ * the statfs information in its in-memory structures should set this bit.
+ * A volume that must always read from disk or always perform a network
+ * transaction should not set this bit.
+ *
+ * VOL_CAP_FMT_2TB_FILESIZE: If this bit is set the volume format supports
+ * file sizes larger than 4GB, and potentially up to 2TB; it does not
+ * indicate whether the filesystem supports files larger than that.
+ *
+ * VOL_CAP_FMT_OPENDENYMODES: When set, the volume supports open deny
+ * modes (e.g. "open for read write, deny write"; effectively, mandatory
+ * file locking based on open modes).
+ *
+ * VOL_CAP_FMT_HIDDEN_FILES: When set, the volume supports the UF_HIDDEN
+ * file flag, and the UF_HIDDEN flag is mapped to that volume's native
+ * "hidden" or "invisible" bit (which may be the invisible bit from the
+ * Finder Info extended attribute).
+ *
+ * VOL_CAP_FMT_PATH_FROM_ID: When set, the volume supports the ability
+ * to derive a pathname to the root of the file system given only the
+ * id of an object. This also implies that object ids on this file
+ * system are persistent and not recycled. This is a very specialized
+ * capability and it is assumed that most file systems will not support
+ * it. Its use is for legacy non-posix APIs like ResolveFileIDRef.
+ *
+ * VOL_CAP_FMT_NO_VOLUME_SIZES: When set, the volume does not support
+ * returning values for total data blocks, available blocks, or free blocks
+ * (as in f_blocks, f_bavail, or f_bfree in "struct statfs"). Historically,
+ * those values were set to 0xFFFFFFFF for volumes that did not support them.
+ *
+ * VOL_CAP_FMT_DECMPFS_COMPRESSION: When set, the volume supports transparent
+ * decompression of compressed files using decmpfs.
+ *
+ * VOL_CAP_FMT_64BIT_OBJECT_IDS: When set, the volume uses object IDs that
+ * are 64-bit. This means that ATTR_CMN_FILEID and ATTR_CMN_PARENTID are the
+ * only legitimate attributes for obtaining object IDs from this volume and the
+ * 32-bit fid_objno fields of the fsobj_id_t returned by ATTR_CMN_OBJID,
+ * ATTR_CMN_OBJPERMID, and ATTR_CMN_PAROBJID are undefined.
+ *
+ * VOL_CAP_FMT_DIR_HARDLINKS: When set, the volume supports directory
+ * hard links.
+ *
+ * VOL_CAP_FMT_DOCUMENT_ID: When set, the volume supports document IDs
+ * (an ID which persists across object ID changes) for document revisions.
+ *
+ * VOL_CAP_FMT_WRITE_GENERATION_COUNT: When set, the volume supports write
+ * generation counts (a count of how many times an object has been modified)
+ *
+ * VOL_CAP_FMT_NO_IMMUTABLE_FILES: When set, the volume does not support
+ * setting the UF_IMMUTABLE flag.
+ *
+ * VOL_CAP_FMT_NO_PERMISSIONS: When set, the volume does not support setting
+ * permissions.
+ *
+ * VOL_CAP_FMT_SHARED_SPACE: When set, the volume supports sharing space with
+ * other filesystems i.e. multiple logical filesystems can exist in the same
+ * "partition". An implication of this is that the filesystem which sets
+ * this capability treats waitfor arguments to VFS_SYNC as bit flags.
+ *
+ * VOL_CAP_FMT_VOL_GROUPS: When set, this volume is part of a volume-group
+ * that implies multiple volumes must be mounted in order to boot and root the
+ * operating system. Typically, this means a read-only system volume and a
+ * writable data volume.
+ *
+ * VOL_CAP_FMT_SEALED: When set, this volume is cryptographically sealed.
+ * Any modifications to volume data or metadata will be detected and may
+ * render the volume unusable.
+ */
+#define VOL_CAP_FMT_PERSISTENTOBJECTIDS 0x00000001
+#define VOL_CAP_FMT_SYMBOLICLINKS 0x00000002
+#define VOL_CAP_FMT_HARDLINKS 0x00000004
+#define VOL_CAP_FMT_JOURNAL 0x00000008
+#define VOL_CAP_FMT_JOURNAL_ACTIVE 0x00000010
+#define VOL_CAP_FMT_NO_ROOT_TIMES 0x00000020
+#define VOL_CAP_FMT_SPARSE_FILES 0x00000040
+#define VOL_CAP_FMT_ZERO_RUNS 0x00000080
+#define VOL_CAP_FMT_CASE_SENSITIVE 0x00000100
+#define VOL_CAP_FMT_CASE_PRESERVING 0x00000200
+#define VOL_CAP_FMT_FAST_STATFS 0x00000400
+#define VOL_CAP_FMT_2TB_FILESIZE 0x00000800
+#define VOL_CAP_FMT_OPENDENYMODES 0x00001000
+#define VOL_CAP_FMT_HIDDEN_FILES 0x00002000
+#define VOL_CAP_FMT_PATH_FROM_ID 0x00004000
+#define VOL_CAP_FMT_NO_VOLUME_SIZES 0x00008000
+#define VOL_CAP_FMT_DECMPFS_COMPRESSION 0x00010000
+#define VOL_CAP_FMT_64BIT_OBJECT_IDS 0x00020000
+#define VOL_CAP_FMT_DIR_HARDLINKS 0x00040000
+#define VOL_CAP_FMT_DOCUMENT_ID 0x00080000
+#define VOL_CAP_FMT_WRITE_GENERATION_COUNT 0x00100000
+#define VOL_CAP_FMT_NO_IMMUTABLE_FILES 0x00200000
+#define VOL_CAP_FMT_NO_PERMISSIONS 0x00400000
+#define VOL_CAP_FMT_SHARED_SPACE 0x00800000
+#define VOL_CAP_FMT_VOL_GROUPS 0x01000000
+#define VOL_CAP_FMT_SEALED 0x02000000
+
+/*
+ * VOL_CAP_INT_SEARCHFS: When set, the volume implements the
+ * searchfs() system call (the vnop_searchfs vnode operation).
+ *
+ * VOL_CAP_INT_ATTRLIST: When set, the volume implements the
+ * getattrlist() and setattrlist() system calls (vnop_getattrlist
+ * and vnop_setattrlist vnode operations) for the volume, files,
+ * and directories. The volume may or may not implement the
+ * readdirattr() system call. XXX Is there any minimum set
+ * of attributes that should be supported? To determine the
+ * set of supported attributes, get the ATTR_VOL_ATTRIBUTES
+ * attribute of the volume.
+ *
+ * VOL_CAP_INT_NFSEXPORT: When set, the volume implements exporting
+ * of NFS volumes.
+ *
+ * VOL_CAP_INT_READDIRATTR: When set, the volume implements the
+ * readdirattr() system call (vnop_readdirattr vnode operation).
+ *
+ * VOL_CAP_INT_EXCHANGEDATA: When set, the volume implements the
+ * exchangedata() system call (VNOP_EXCHANGE vnode operation).
+ *
+ * VOL_CAP_INT_COPYFILE: When set, the volume implements the
+ * VOP_COPYFILE vnode operation. (XXX There should be a copyfile()
+ * system call in <unistd.h>.)
+ *
+ * VOL_CAP_INT_ALLOCATE: When set, the volume implements the
+ * VNOP_ALLOCATE vnode operation, which means it implements the
+ * F_PREALLOCATE selector of fcntl(2).
+ *
+ * VOL_CAP_INT_VOL_RENAME: When set, the volume implements the
+ * ATTR_VOL_NAME attribute for both getattrlist() and setattrlist().
+ * The volume can be renamed by setting ATTR_VOL_NAME with setattrlist().
+ *
+ * VOL_CAP_INT_ADVLOCK: When set, the volume implements POSIX style
+ * byte range locks via vnop_advlock (accessible from fcntl(2)).
+ *
+ * VOL_CAP_INT_FLOCK: When set, the volume implements whole-file flock(2)
+ * style locks via vnop_advlock. This includes the O_EXLOCK and O_SHLOCK
+ * flags of the open(2) call.
+ *
+ * VOL_CAP_INT_EXTENDED_SECURITY: When set, the volume implements
+ * extended security (ACLs).
+ *
+ * VOL_CAP_INT_USERACCESS: When set, the volume supports the
+ * ATTR_CMN_USERACCESS attribute (used to get the user's access
+ * mode to the file).
+ *
+ * VOL_CAP_INT_MANLOCK: When set, the volume supports AFP-style
+ * mandatory byte range locks via an ioctl().
+ *
+ * VOL_CAP_INT_EXTENDED_ATTR: When set, the volume implements
+ * native extended attribues.
+ *
+ * VOL_CAP_INT_NAMEDSTREAMS: When set, the volume supports
+ * native named streams.
+ *
+ * VOL_CAP_INT_CLONE: When set, the volume supports clones.
+ *
+ * VOL_CAP_INT_SNAPSHOT: When set, the volume supports snapshots.
+ *
+ * VOL_CAP_INT_RENAME_SWAP: When set, the volume supports swapping
+ * file system objects.
+ *
+ * VOL_CAP_INT_RENAME_EXCL: When set, the volume supports an
+ * exclusive rename operation.
+ *
+ * VOL_CAP_INT_RENAME_OPENFAIL: When set, the volume may fail rename
+ * operations on files that are open.
+ */
+#define VOL_CAP_INT_SEARCHFS 0x00000001
+#define VOL_CAP_INT_ATTRLIST 0x00000002
+#define VOL_CAP_INT_NFSEXPORT 0x00000004
+#define VOL_CAP_INT_READDIRATTR 0x00000008
+#define VOL_CAP_INT_EXCHANGEDATA 0x00000010
+#define VOL_CAP_INT_COPYFILE 0x00000020
+#define VOL_CAP_INT_ALLOCATE 0x00000040
+#define VOL_CAP_INT_VOL_RENAME 0x00000080
+#define VOL_CAP_INT_ADVLOCK 0x00000100
+#define VOL_CAP_INT_FLOCK 0x00000200
+#define VOL_CAP_INT_EXTENDED_SECURITY 0x00000400
+#define VOL_CAP_INT_USERACCESS 0x00000800
+#define VOL_CAP_INT_MANLOCK 0x00001000
+#define VOL_CAP_INT_NAMEDSTREAMS 0x00002000
+#define VOL_CAP_INT_EXTENDED_ATTR 0x00004000
+#define VOL_CAP_INT_CLONE 0x00010000
+#define VOL_CAP_INT_SNAPSHOT 0x00020000
+#define VOL_CAP_INT_RENAME_SWAP 0x00040000
+#define VOL_CAP_INT_RENAME_EXCL 0x00080000
+#define VOL_CAP_INT_RENAME_OPENFAIL 0x00100000
+
+typedef struct vol_attributes_attr {
+ attribute_set_t validattr;
+ attribute_set_t nativeattr;
+} vol_attributes_attr_t;
+
+#define ATTR_CMN_NAME 0x00000001
+#define ATTR_CMN_DEVID 0x00000002
+#define ATTR_CMN_FSID 0x00000004
+#define ATTR_CMN_OBJTYPE 0x00000008
+#define ATTR_CMN_OBJTAG 0x00000010
+#define ATTR_CMN_OBJID 0x00000020
+#define ATTR_CMN_OBJPERMANENTID 0x00000040
+#define ATTR_CMN_PAROBJID 0x00000080
+#define ATTR_CMN_SCRIPT 0x00000100
+#define ATTR_CMN_CRTIME 0x00000200
+#define ATTR_CMN_MODTIME 0x00000400
+#define ATTR_CMN_CHGTIME 0x00000800
+#define ATTR_CMN_ACCTIME 0x00001000
+#define ATTR_CMN_BKUPTIME 0x00002000
+#define ATTR_CMN_FNDRINFO 0x00004000
+#define ATTR_CMN_OWNERID 0x00008000
+#define ATTR_CMN_GRPID 0x00010000
+#define ATTR_CMN_ACCESSMASK 0x00020000
+#define ATTR_CMN_FLAGS 0x00040000
+
+/* The following were defined as: */
+/* #define ATTR_CMN_NAMEDATTRCOUNT 0x00080000 */
+/* #define ATTR_CMN_NAMEDATTRLIST 0x00100000 */
+/* These bits have been salvaged for use as: */
+/* #define ATTR_CMN_GEN_COUNT 0x00080000 */
+/* #define ATTR_CMN_DOCUMENT_ID 0x00100000 */
+/* They can only be used with the FSOPT_ATTR_CMN_EXTENDED */
+/* option flag. */
+
+#define ATTR_CMN_GEN_COUNT 0x00080000
+#define ATTR_CMN_DOCUMENT_ID 0x00100000
+
+#define ATTR_CMN_USERACCESS 0x00200000
+#define ATTR_CMN_EXTENDED_SECURITY 0x00400000
+#define ATTR_CMN_UUID 0x00800000
+#define ATTR_CMN_GRPUUID 0x01000000
+#define ATTR_CMN_FILEID 0x02000000
+#define ATTR_CMN_PARENTID 0x04000000
+#define ATTR_CMN_FULLPATH 0x08000000
+#define ATTR_CMN_ADDEDTIME 0x10000000
+#define ATTR_CMN_ERROR 0x20000000
+#define ATTR_CMN_DATA_PROTECT_FLAGS 0x40000000
+
+/*
+ * ATTR_CMN_RETURNED_ATTRS is only valid with getattrlist(2) and
+ * getattrlistbulk(2). It is always the first attribute in the return buffer.
+ */
+#define ATTR_CMN_RETURNED_ATTRS 0x80000000
+
+#define ATTR_CMN_VALIDMASK 0xFFFFFFFF
+/*
+ * The settable ATTR_CMN_* attributes include the following:
+ * ATTR_CMN_SCRIPT
+ * ATTR_CMN_CRTIME
+ * ATTR_CMN_MODTIME
+ * ATTR_CMN_CHGTIME
+ *
+ * ATTR_CMN_ACCTIME
+ * ATTR_CMN_BKUPTIME
+ * ATTR_CMN_FNDRINFO
+ * ATTR_CMN_OWNERID
+ *
+ * ATTR_CMN_GRPID
+ * ATTR_CMN_ACCESSMASK
+ * ATTR_CMN_FLAGS
+ *
+ * ATTR_CMN_EXTENDED_SECURITY
+ * ATTR_CMN_UUID
+ *
+ * ATTR_CMN_GRPUUID
+ *
+ * ATTR_CMN_DATA_PROTECT_FLAGS
+ */
+#define ATTR_CMN_SETMASK 0x51C7FF00
+#define ATTR_CMN_VOLSETMASK 0x00006700
+
+#define ATTR_VOL_FSTYPE 0x00000001
+#define ATTR_VOL_SIGNATURE 0x00000002
+#define ATTR_VOL_SIZE 0x00000004
+#define ATTR_VOL_SPACEFREE 0x00000008
+#define ATTR_VOL_SPACEAVAIL 0x00000010
+#define ATTR_VOL_MINALLOCATION 0x00000020
+#define ATTR_VOL_ALLOCATIONCLUMP 0x00000040
+#define ATTR_VOL_IOBLOCKSIZE 0x00000080
+#define ATTR_VOL_OBJCOUNT 0x00000100
+#define ATTR_VOL_FILECOUNT 0x00000200
+#define ATTR_VOL_DIRCOUNT 0x00000400
+#define ATTR_VOL_MAXOBJCOUNT 0x00000800
+#define ATTR_VOL_MOUNTPOINT 0x00001000
+#define ATTR_VOL_NAME 0x00002000
+#define ATTR_VOL_MOUNTFLAGS 0x00004000
+#define ATTR_VOL_MOUNTEDDEVICE 0x00008000
+#define ATTR_VOL_ENCODINGSUSED 0x00010000
+#define ATTR_VOL_CAPABILITIES 0x00020000
+#define ATTR_VOL_UUID 0x00040000
+#define ATTR_VOL_QUOTA_SIZE 0x10000000
+#define ATTR_VOL_RESERVED_SIZE 0x20000000
+#define ATTR_VOL_ATTRIBUTES 0x40000000
+#define ATTR_VOL_INFO 0x80000000
+
+#define ATTR_VOL_VALIDMASK 0xF007FFFF
+
+/*
+ * The list of settable ATTR_VOL_* attributes include the following:
+ * ATTR_VOL_NAME
+ * ATTR_VOL_INFO
+ */
+#define ATTR_VOL_SETMASK 0x80002000
+
+
+/* File/directory attributes: */
+#define ATTR_DIR_LINKCOUNT 0x00000001
+#define ATTR_DIR_ENTRYCOUNT 0x00000002
+#define ATTR_DIR_MOUNTSTATUS 0x00000004
+#define ATTR_DIR_ALLOCSIZE 0x00000008
+#define ATTR_DIR_IOBLOCKSIZE 0x00000010
+#define ATTR_DIR_DATALENGTH 0x00000020
+
+/* ATTR_DIR_MOUNTSTATUS Flags: */
+#define DIR_MNTSTATUS_MNTPOINT 0x00000001
+#define DIR_MNTSTATUS_TRIGGER 0x00000002
+
+#define ATTR_DIR_VALIDMASK 0x0000003f
+#define ATTR_DIR_SETMASK 0x00000000
+
+#define ATTR_FILE_LINKCOUNT 0x00000001
+#define ATTR_FILE_TOTALSIZE 0x00000002
+#define ATTR_FILE_ALLOCSIZE 0x00000004
+#define ATTR_FILE_IOBLOCKSIZE 0x00000008
+#define ATTR_FILE_DEVTYPE 0x00000020
+#define ATTR_FILE_FORKCOUNT 0x00000080
+#define ATTR_FILE_FORKLIST 0x00000100
+#define ATTR_FILE_DATALENGTH 0x00000200
+#define ATTR_FILE_DATAALLOCSIZE 0x00000400
+#define ATTR_FILE_RSRCLENGTH 0x00001000
+#define ATTR_FILE_RSRCALLOCSIZE 0x00002000
+
+#define ATTR_FILE_VALIDMASK 0x000037FF
+/*
+ * Settable ATTR_FILE_* attributes include:
+ * ATTR_FILE_DEVTYPE
+ */
+#define ATTR_FILE_SETMASK 0x00000020
+
+/* CMNEXT attributes extend the common attributes, but in the forkattr field */
+#define ATTR_CMNEXT_RELPATH 0x00000004
+#define ATTR_CMNEXT_PRIVATESIZE 0x00000008
+#define ATTR_CMNEXT_LINKID 0x00000010
+#define ATTR_CMNEXT_NOFIRMLINKPATH 0x00000020
+#define ATTR_CMNEXT_REALDEVID 0x00000040
+#define ATTR_CMNEXT_REALFSID 0x00000080
+#define ATTR_CMNEXT_CLONEID 0x00000100
+#define ATTR_CMNEXT_EXT_FLAGS 0x00000200
+#define ATTR_CMNEXT_RECURSIVE_GENCOUNT 0x00000400
+
+#define ATTR_CMNEXT_VALIDMASK 0x000007fc
+#define ATTR_CMNEXT_SETMASK 0x00000000
+
+/* Deprecated fork attributes */
+#define ATTR_FORK_TOTALSIZE 0x00000001
+#define ATTR_FORK_ALLOCSIZE 0x00000002
+#define ATTR_FORK_RESERVED 0xffffffff
+
+#define ATTR_FORK_VALIDMASK 0x00000003
+#define ATTR_FORK_SETMASK 0x00000000
+
+/* Obsolete, implemented, not supported */
+#define ATTR_CMN_NAMEDATTRCOUNT 0x00080000
+#define ATTR_CMN_NAMEDATTRLIST 0x00100000
+#define ATTR_FILE_CLUMPSIZE 0x00000010 /* obsolete */
+#define ATTR_FILE_FILETYPE 0x00000040 /* always zero */
+#define ATTR_FILE_DATAEXTENTS 0x00000800 /* obsolete, HFS-specific */
+#define ATTR_FILE_RSRCEXTENTS 0x00004000 /* obsolete, HFS-specific */
+
+/* Required attributes for getattrlistbulk(2) */
+#define ATTR_BULK_REQUIRED (ATTR_CMN_NAME | ATTR_CMN_RETURNED_ATTRS)
+
+/*
+ * Searchfs
+ */
+#define SRCHFS_START 0x00000001
+#define SRCHFS_MATCHPARTIALNAMES 0x00000002
+#define SRCHFS_MATCHDIRS 0x00000004
+#define SRCHFS_MATCHFILES 0x00000008
+#define SRCHFS_SKIPLINKS 0x00000010
+#define SRCHFS_SKIPINVISIBLE 0x00000020
+#define SRCHFS_SKIPPACKAGES 0x00000040
+#define SRCHFS_SKIPINAPPROPRIATE 0x00000080
+
+#define SRCHFS_NEGATEPARAMS 0x80000000
+#define SRCHFS_VALIDOPTIONSMASK 0x800000FF
+
+struct fssearchblock {
+ struct attrlist *returnattrs;
+ void *returnbuffer;
+ size_t returnbuffersize;
+ u_long maxmatches;
+ struct timeval timelimit;
+ void *searchparams1;
+ size_t sizeofsearchparams1;
+ void *searchparams2;
+ size_t sizeofsearchparams2;
+ struct attrlist searchattrs;
+};
+
+
+struct searchstate {
+ uint32_t ss_union_flags; // for SRCHFS_START
+ uint32_t ss_union_layer; // 0 = top
+ u_char ss_fsstate[548]; // fs private
+} __attribute__((packed));
+
+#define FST_EOF (-1) /* end-of-file offset */
+
+#endif /* __APPLE_API_UNSTABLE */
+#endif /* !_SYS_ATTR_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/cdefs.h b/lib/libc/include/aarch64-macos-gnu/sys/cdefs.h
new file mode 100644
index 0000000000..e8145978d4
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/cdefs.h
@@ -0,0 +1,876 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright 1995 NeXT Computer, Inc. All rights reserved. */
+/*
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Berkeley Software Design, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+ */
+
+#ifndef _CDEFS_H_
+#define _CDEFS_H_
+
+#if defined(__cplusplus)
+#define __BEGIN_DECLS extern "C" {
+#define __END_DECLS }
+#else
+#define __BEGIN_DECLS
+#define __END_DECLS
+#endif
+
+/* This SDK is designed to work with clang and specific versions of
+ * gcc >= 4.0 with Apple's patch sets */
+#if !defined(__GNUC__) || __GNUC__ < 4
+#warning "Unsupported compiler detected"
+#endif
+
+/*
+ * Compatibility with compilers and environments that don't support compiler
+ * feature checking function-like macros.
+ */
+#ifndef __has_builtin
+#define __has_builtin(x) 0
+#endif
+#ifndef __has_include
+#define __has_include(x) 0
+#endif
+#ifndef __has_feature
+#define __has_feature(x) 0
+#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+#ifndef __has_extension
+#define __has_extension(x) 0
+#endif
+
+/*
+ * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+ * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+ * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+ * in between its arguments. __CONCAT can also concatenate double-quoted
+ * strings produced by the __STRING macro, but this only works with ANSI C.
+ */
+#if defined(__STDC__) || defined(__cplusplus)
+#define __P(protos) protos /* full-blown ANSI C */
+#define __CONCAT(x, y) x ## y
+#define __STRING(x) #x
+
+#define __const const /* define reserved names to standard */
+#define __signed signed
+#define __volatile volatile
+#if defined(__cplusplus)
+#define __inline inline /* convert to C++ keyword */
+#else
+#ifndef __GNUC__
+#define __inline /* delete GCC keyword */
+#endif /* !__GNUC__ */
+#endif /* !__cplusplus */
+
+#else /* !(__STDC__ || __cplusplus) */
+#define __P(protos) () /* traditional C preprocessor */
+#define __CONCAT(x, y) x /**/ y
+#define __STRING(x) "x"
+
+#ifndef __GNUC__
+#define __const /* delete pseudo-ANSI C keywords */
+#define __inline
+#define __signed
+#define __volatile
+#endif /* !__GNUC__ */
+
+/*
+ * In non-ANSI C environments, new programs will want ANSI-only C keywords
+ * deleted from the program and old programs will want them left alone.
+ * When using a compiler other than gcc, programs using the ANSI C keywords
+ * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+ * When using "gcc -traditional", we assume that this is the intent; if
+ * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+ */
+#ifndef NO_ANSI_KEYWORDS
+#define const __const /* convert ANSI C keywords */
+#define inline __inline
+#define signed __signed
+#define volatile __volatile
+#endif /* !NO_ANSI_KEYWORDS */
+#endif /* !(__STDC__ || __cplusplus) */
+
+#define __dead2 __attribute__((__noreturn__))
+#define __pure2 __attribute__((__const__))
+
+/* __unused denotes variables and functions that may not be used, preventing
+ * the compiler from warning about it if not used.
+ */
+#define __unused __attribute__((__unused__))
+
+/* __used forces variables and functions to be included even if it appears
+ * to the compiler that they are not used (and would thust be discarded).
+ */
+#define __used __attribute__((__used__))
+
+/* __cold marks code used for debugging or that is rarely taken
+ * and tells the compiler to optimize for size and outline code.
+ */
+#if __has_attribute(cold)
+#define __cold __attribute__((__cold__))
+#else
+#define __cold
+#endif
+
+/* __exported denotes symbols that should be exported even when symbols
+ * are hidden by default.
+ * __exported_push/_exported_pop are pragmas used to delimit a range of
+ * symbols that should be exported even when symbols are hidden by default.
+ */
+#define __exported __attribute__((__visibility__("default")))
+#define __exported_push _Pragma("GCC visibility push(default)")
+#define __exported_pop _Pragma("GCC visibility pop")
+
+/* __deprecated causes the compiler to produce a warning when encountering
+ * code using the deprecated functionality.
+ * __deprecated_msg() does the same, and compilers that support it will print
+ * a message along with the deprecation warning.
+ * This may require turning on such warning with the -Wdeprecated flag.
+ * __deprecated_enum_msg() should be used on enums, and compilers that support
+ * it will print the deprecation warning.
+ * __kpi_deprecated() specifically indicates deprecation of kernel programming
+ * interfaces in Kernel.framework used by KEXTs.
+ */
+#define __deprecated __attribute__((__deprecated__))
+
+#if __has_extension(attribute_deprecated_with_message) || \
+ (defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))))
+ #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
+#else
+ #define __deprecated_msg(_msg) __attribute__((__deprecated__))
+#endif
+
+#if __has_extension(enumerator_attributes)
+ #define __deprecated_enum_msg(_msg) __deprecated_msg(_msg)
+#else
+ #define __deprecated_enum_msg(_msg)
+#endif
+
+#define __kpi_deprecated(_msg)
+
+/* __unavailable causes the compiler to error out when encountering
+ * code using the tagged function
+ */
+#if __has_attribute(unavailable)
+#define __unavailable __attribute__((__unavailable__))
+#else
+#define __unavailable
+#endif
+
+#define __kpi_unavailable
+
+#define __kpi_deprecated_arm64_macos_unavailable
+
+/* Delete pseudo-keywords wherever they are not available or needed. */
+#ifndef __dead
+#define __dead
+#define __pure
+#endif
+
+/*
+ * We use `__restrict' as a way to define the `restrict' type qualifier
+ * without disturbing older software that is unaware of C99 keywords.
+ */
+#if __STDC_VERSION__ < 199901
+#define __restrict
+#else
+#define __restrict restrict
+#endif
+
+/* Compatibility with compilers and environments that don't support the
+ * nullability feature.
+ */
+
+#if !__has_feature(nullability)
+#ifndef __nullable
+#define __nullable
+#endif
+#ifndef __nonnull
+#define __nonnull
+#endif
+#ifndef __null_unspecified
+#define __null_unspecified
+#endif
+#ifndef _Nullable
+#define _Nullable
+#endif
+#ifndef _Nonnull
+#define _Nonnull
+#endif
+#ifndef _Null_unspecified
+#define _Null_unspecified
+#endif
+#endif
+
+/*
+ * __disable_tail_calls causes the compiler to not perform tail call
+ * optimization inside the marked function.
+ */
+#if __has_attribute(disable_tail_calls)
+#define __disable_tail_calls __attribute__((__disable_tail_calls__))
+#else
+#define __disable_tail_calls
+#endif
+
+/*
+ * __not_tail_called causes the compiler to prevent tail call optimization
+ * on statically bound calls to the function. It has no effect on indirect
+ * calls. Virtual functions, objective-c methods, and functions marked as
+ * "always_inline" cannot be marked as __not_tail_called.
+ */
+#if __has_attribute(not_tail_called)
+#define __not_tail_called __attribute__((__not_tail_called__))
+#else
+#define __not_tail_called
+#endif
+
+/*
+ * __result_use_check warns callers of a function that not using the function
+ * return value is a bug, i.e. dismissing malloc() return value results in a
+ * memory leak.
+ */
+#if __has_attribute(warn_unused_result)
+#define __result_use_check __attribute__((__warn_unused_result__))
+#else
+#define __result_use_check
+#endif
+
+/*
+ * __swift_unavailable causes the compiler to mark a symbol as specifically
+ * unavailable in Swift, regardless of any other availability in C.
+ */
+#if __has_feature(attribute_availability_swift)
+#define __swift_unavailable(_msg) __attribute__((__availability__(swift, unavailable, message=_msg)))
+#else
+#define __swift_unavailable(_msg)
+#endif
+
+/*
+ * __abortlike is the attribute to put on functions like abort() that are
+ * typically used to mark assertions. These optimize the codegen
+ * for outlining while still maintaining debugability.
+ */
+#ifndef __abortlike
+#define __abortlike __dead2 __cold __not_tail_called
+#endif
+
+/* Declaring inline functions within headers is error-prone due to differences
+ * across various versions of the C language and extensions. __header_inline
+ * can be used to declare inline functions within system headers. In cases
+ * where you want to force inlining instead of letting the compiler make
+ * the decision, you can use __header_always_inline.
+ *
+ * Be aware that using inline for functions which compilers may also provide
+ * builtins can behave differently under various compilers. If you intend to
+ * provide an inline version of such a function, you may want to use a macro
+ * instead.
+ *
+ * The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+ * support c99 inline in some cases:
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+ */
+
+#if defined(__cplusplus) || \
+ (__STDC_VERSION__ >= 199901L && \
+ !defined(__GNUC_GNU_INLINE__) && \
+ (!defined(__GNUC__) || defined(__clang__)))
+# define __header_inline inline
+#elif defined(__GNUC__) && defined(__GNUC_STDC_INLINE__)
+# define __header_inline extern __inline __attribute__((__gnu_inline__))
+#elif defined(__GNUC__)
+# define __header_inline extern __inline
+#else
+/* If we land here, we've encountered an unsupported compiler,
+ * so hopefully it understands static __inline as a fallback.
+ */
+# define __header_inline static __inline
+#endif
+
+#ifdef __GNUC__
+# define __header_always_inline __header_inline __attribute__ ((__always_inline__))
+#else
+/* Unfortunately, we're using a compiler that we don't know how to force to
+ * inline. Oh well.
+ */
+# define __header_always_inline __header_inline
+#endif
+
+/*
+ * Compiler-dependent macros that bracket portions of code where the
+ * "-Wunreachable-code" warning should be ignored. Please use sparingly.
+ */
+#if defined(__clang__)
+# define __unreachable_ok_push \
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic ignored \"-Wunreachable-code\"")
+# define __unreachable_ok_pop \
+ _Pragma("clang diagnostic pop")
+#elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+# define __unreachable_ok_push \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wunreachable-code\"")
+# define __unreachable_ok_pop \
+ _Pragma("GCC diagnostic pop")
+#else
+# define __unreachable_ok_push
+# define __unreachable_ok_pop
+#endif
+
+/*
+ * Compiler-dependent macros to declare that functions take printf-like
+ * or scanf-like arguments. They are null except for versions of gcc
+ * that are known to support the features properly. Functions declared
+ * with these attributes will cause compilation warnings if there is a
+ * mismatch between the format string and subsequent function parameter
+ * types.
+ */
+#define __printflike(fmtarg, firstvararg) \
+ __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+#define __printf0like(fmtarg, firstvararg) \
+ __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
+#define __scanflike(fmtarg, firstvararg) \
+ __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
+
+#define __IDSTRING(name, string) static const char name[] __used = string
+
+#ifndef __COPYRIGHT
+#define __COPYRIGHT(s) __IDSTRING(copyright,s)
+#endif
+
+#ifndef __RCSID
+#define __RCSID(s) __IDSTRING(rcsid,s)
+#endif
+
+#ifndef __SCCSID
+#define __SCCSID(s) __IDSTRING(sccsid,s)
+#endif
+
+#ifndef __PROJECT_VERSION
+#define __PROJECT_VERSION(s) __IDSTRING(project_version,s)
+#endif
+
+/* Source compatibility only, ID string not emitted in object file */
+#ifndef __FBSDID
+#define __FBSDID(s)
+#endif
+
+#ifndef __DECONST
+#define __DECONST(type, var) __CAST_AWAY_QUALIFIER(var, const, type)
+#endif
+
+#ifndef __DEVOLATILE
+#define __DEVOLATILE(type, var) __CAST_AWAY_QUALIFIER(var, volatile, type)
+#endif
+
+#ifndef __DEQUALIFY
+#define __DEQUALIFY(type, var) __CAST_AWAY_QUALIFIER(var, const volatile, type)
+#endif
+
+/*
+ * __alloc_size can be used to label function arguments that represent the
+ * size of memory that the function allocates and returns. The one-argument
+ * form labels a single argument that gives the allocation size (where the
+ * arguments are numbered from 1):
+ *
+ * void *malloc(size_t __size) __alloc_size(1);
+ *
+ * The two-argument form handles the case where the size is calculated as the
+ * product of two arguments:
+ *
+ * void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+ */
+#ifndef __alloc_size
+#if __has_attribute(alloc_size)
+#define __alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
+#else
+#define __alloc_size(...)
+#endif
+#endif // __alloc_size
+
+/*
+ * COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+ *
+ * DEFAULT By default newly complied code will get POSIX APIs plus
+ * Apple API extensions in scope.
+ *
+ * Most users will use this compilation environment to avoid
+ * behavioral differences between 32 and 64 bit code.
+ *
+ * LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+ * API extensions in scope.
+ *
+ * This is generally equivalent to the Tiger release compilation
+ * environment, except that it cannot be applied to 64 bit code;
+ * its use is discouraged.
+ *
+ * We expect this environment to be deprecated in the future.
+ *
+ * STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+ * available APIs to exactly the set of APIs defined by the
+ * corresponding standard, based on the value defined.
+ *
+ * A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+ * A correct, portable definition for _XOPEN_SOURCE is 600L.
+ *
+ * Apple API extensions are not visible in this environment,
+ * which can cause Apple specific code to fail to compile,
+ * or behave incorrectly if prototypes are not in scope or
+ * warnings about missing prototypes are not enabled or ignored.
+ *
+ * In any compilation environment, for correct symbol resolution to occur,
+ * function prototypes must be in scope. It is recommended that all Apple
+ * tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+ * compiler flags to their projects to be warned when a function is being
+ * used without a prototype in scope.
+ */
+
+/* These settings are particular to each product. */
+/* Platform: MacOSX */
+#if defined(__i386__)
+#define __DARWIN_ONLY_64_BIT_INO_T 0
+#define __DARWIN_ONLY_UNIX_CONFORMANCE 0
+#define __DARWIN_ONLY_VERS_1050 0
+#elif defined(__x86_64__)
+#define __DARWIN_ONLY_64_BIT_INO_T 0
+#define __DARWIN_ONLY_UNIX_CONFORMANCE 1
+#define __DARWIN_ONLY_VERS_1050 0
+#else
+#define __DARWIN_ONLY_64_BIT_INO_T 1
+#define __DARWIN_ONLY_UNIX_CONFORMANCE 1
+#define __DARWIN_ONLY_VERS_1050 1
+#endif
+
+/*
+ * The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+ * legacy code to use the old symbol, thus maintaining binary compatibility
+ * while new code can use a standards compliant version of the same function.
+ *
+ * __DARWIN_ALIAS is used by itself if the function signature has not
+ * changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+ * if the signature has changed. Because the __LP64__ environment
+ * only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+ * defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+ *
+ * As a special case, when XCode is used to target a specific version of the
+ * OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+ * will be defined by the compiler, with the digits representing major version
+ * time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+ * pre-10.5, and it is the default compilation environment, revert the
+ * compilation environment to pre-__DARWIN_UNIX03.
+ */
+#if !defined(__DARWIN_UNIX03)
+# if __DARWIN_ONLY_UNIX_CONFORMANCE
+# if defined(_NONSTD_SOURCE)
+# error "Can't define _NONSTD_SOURCE when only UNIX conformance is available."
+# endif /* _NONSTD_SOURCE */
+# define __DARWIN_UNIX03 1
+# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1040)
+# define __DARWIN_UNIX03 0
+# elif defined(_DARWIN_C_SOURCE) || defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE)
+# if defined(_NONSTD_SOURCE)
+# error "Can't define both _NONSTD_SOURCE and any of _DARWIN_C_SOURCE, _XOPEN_SOURCE or _POSIX_C_SOURCE."
+# endif /* _NONSTD_SOURCE */
+# define __DARWIN_UNIX03 1
+# elif defined(_NONSTD_SOURCE)
+# define __DARWIN_UNIX03 0
+# else /* default */
+# if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050)
+# define __DARWIN_UNIX03 0
+# else /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */
+# define __DARWIN_UNIX03 1
+# endif /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */
+# endif /* _DARWIN_C_SOURCE || _XOPEN_SOURCE || _POSIX_C_SOURCE || __LP64__ */
+#endif /* !__DARWIN_UNIX03 */
+
+#if !defined(__DARWIN_64_BIT_INO_T)
+# if defined(_DARWIN_USE_64_BIT_INODE)
+# if defined(_DARWIN_NO_64_BIT_INODE)
+# error "Can't define both _DARWIN_USE_64_BIT_INODE and _DARWIN_NO_64_BIT_INODE."
+# endif /* _DARWIN_NO_64_BIT_INODE */
+# define __DARWIN_64_BIT_INO_T 1
+# elif defined(_DARWIN_NO_64_BIT_INODE)
+# if __DARWIN_ONLY_64_BIT_INO_T
+# error "Can't define _DARWIN_NO_64_BIT_INODE when only 64-bit inodes are available."
+# endif /* __DARWIN_ONLY_64_BIT_INO_T */
+# define __DARWIN_64_BIT_INO_T 0
+# else /* default */
+# if __DARWIN_ONLY_64_BIT_INO_T
+# define __DARWIN_64_BIT_INO_T 1
+# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1060) || __DARWIN_UNIX03 == 0
+# define __DARWIN_64_BIT_INO_T 0
+# else /* default */
+# define __DARWIN_64_BIT_INO_T 1
+# endif /* __DARWIN_ONLY_64_BIT_INO_T */
+# endif
+#endif /* !__DARWIN_64_BIT_INO_T */
+
+#if !defined(__DARWIN_VERS_1050)
+# if __DARWIN_ONLY_VERS_1050
+# define __DARWIN_VERS_1050 1
+# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050) || __DARWIN_UNIX03 == 0
+# define __DARWIN_VERS_1050 0
+# else /* default */
+# define __DARWIN_VERS_1050 1
+# endif
+#endif /* !__DARWIN_VERS_1050 */
+
+#if !defined(__DARWIN_NON_CANCELABLE)
+# define __DARWIN_NON_CANCELABLE 0
+#endif /* !__DARWIN_NON_CANCELABLE */
+
+/*
+ * symbol suffixes used for symbol versioning
+ */
+#if __DARWIN_UNIX03
+# if __DARWIN_ONLY_UNIX_CONFORMANCE
+# define __DARWIN_SUF_UNIX03 /* nothing */
+# else /* !__DARWIN_ONLY_UNIX_CONFORMANCE */
+# define __DARWIN_SUF_UNIX03 "$UNIX2003"
+# endif /* __DARWIN_ONLY_UNIX_CONFORMANCE */
+
+# if __DARWIN_64_BIT_INO_T
+# if __DARWIN_ONLY_64_BIT_INO_T
+# define __DARWIN_SUF_64_BIT_INO_T /* nothing */
+# else /* !__DARWIN_ONLY_64_BIT_INO_T */
+# define __DARWIN_SUF_64_BIT_INO_T "$INODE64"
+# endif /* __DARWIN_ONLY_64_BIT_INO_T */
+# else /* !__DARWIN_64_BIT_INO_T */
+# define __DARWIN_SUF_64_BIT_INO_T /* nothing */
+# endif /* __DARWIN_64_BIT_INO_T */
+
+# if __DARWIN_VERS_1050
+# if __DARWIN_ONLY_VERS_1050
+# define __DARWIN_SUF_1050 /* nothing */
+# else /* !__DARWIN_ONLY_VERS_1050 */
+# define __DARWIN_SUF_1050 "$1050"
+# endif /* __DARWIN_ONLY_VERS_1050 */
+# else /* !__DARWIN_VERS_1050 */
+# define __DARWIN_SUF_1050 /* nothing */
+# endif /* __DARWIN_VERS_1050 */
+
+# if __DARWIN_NON_CANCELABLE
+# define __DARWIN_SUF_NON_CANCELABLE "$NOCANCEL"
+# else /* !__DARWIN_NON_CANCELABLE */
+# define __DARWIN_SUF_NON_CANCELABLE /* nothing */
+# endif /* __DARWIN_NON_CANCELABLE */
+
+#else /* !__DARWIN_UNIX03 */
+# define __DARWIN_SUF_UNIX03 /* nothing */
+# define __DARWIN_SUF_64_BIT_INO_T /* nothing */
+# define __DARWIN_SUF_NON_CANCELABLE /* nothing */
+# define __DARWIN_SUF_1050 /* nothing */
+#endif /* __DARWIN_UNIX03 */
+
+#define __DARWIN_SUF_EXTSN "$DARWIN_EXTSN"
+
+/*
+ * symbol versioning macros
+ */
+#define __DARWIN_ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_UNIX03)
+#define __DARWIN_ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03)
+#define __DARWIN_ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03)
+#define __DARWIN_NOCANCEL(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE)
+#define __DARWIN_INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T)
+
+#define __DARWIN_1050(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050)
+#define __DARWIN_1050ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T)
+
+#define __DARWIN_EXTSN(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN)
+#define __DARWIN_EXTSN_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN __DARWIN_SUF_NON_CANCELABLE)
+
+/*
+ * symbol release macros
+ */
+#include <sys/_symbol_aliasing.h>
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) __DARWIN_ALIAS_STARTING_IPHONE_##_iphone(x)
+#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) __DARWIN_ALIAS_STARTING_MAC_##_mac(x)
+#else
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) x
+#endif
+
+
+/*
+ * POSIX.1 requires that the macros we test be defined before any standard
+ * header file is included. This permits us to convert values for feature
+ * testing, as necessary, using only _POSIX_C_SOURCE.
+ *
+ * Here's a quick run-down of the versions:
+ * defined(_POSIX_SOURCE) 1003.1-1988
+ * _POSIX_C_SOURCE == 1L 1003.1-1990
+ * _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+ * _POSIX_C_SOURCE == 199309L 1003.1b-1993
+ * _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+ * and the omnibus ISO/IEC 9945-1: 1996
+ * _POSIX_C_SOURCE == 200112L 1003.1-2001
+ * _POSIX_C_SOURCE == 200809L 1003.1-2008
+ *
+ * In addition, the X/Open Portability Guide, which is now the Single UNIX
+ * Specification, defines a feature-test macro which indicates the version of
+ * that specification, and which subsumes _POSIX_C_SOURCE.
+ */
+
+/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1L
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 199009L
+#endif
+
+/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2L
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 199209L
+#endif
+
+/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
+#ifdef _XOPEN_SOURCE
+#if _XOPEN_SOURCE - 0L >= 700L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200809L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200809L
+#elif _XOPEN_SOURCE - 0L >= 600L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200112L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200112L
+#elif _XOPEN_SOURCE - 0L >= 500L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 199506L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 199506L
+#endif
+#endif
+
+/*
+ * Deal with all versions of POSIX. The ordering relative to the tests above is
+ * important.
+ */
+#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
+#define _POSIX_C_SOURCE 198808L
+#endif
+
+/* POSIX C deprecation macros */
+#include <sys/_posix_availability.h>
+
+#define __POSIX_C_DEPRECATED(ver) ___POSIX_C_DEPRECATED_STARTING_##ver
+
+/*
+ * Set a single macro which will always be defined and can be used to determine
+ * the appropriate namespace. For POSIX, these values will correspond to
+ * _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+ * to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+ */
+#define __DARWIN_C_ANSI 010000L
+#define __DARWIN_C_FULL 900000L
+
+#if defined(_ANSI_SOURCE)
+#define __DARWIN_C_LEVEL __DARWIN_C_ANSI
+#elif defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE) && !defined(_NONSTD_SOURCE)
+#define __DARWIN_C_LEVEL _POSIX_C_SOURCE
+#else
+#define __DARWIN_C_LEVEL __DARWIN_C_FULL
+#endif
+
+/* If the developer has neither requested a strict language mode nor a version
+ * of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+ * of __DARWIN_C_FULL.
+ */
+#if !defined(__STDC_WANT_LIB_EXT1__) && !defined(__STRICT_ANSI__) && __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define __STDC_WANT_LIB_EXT1__ 1
+#endif
+
+/*
+ * long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+ * c99 still want long longs. While not perfect, we allow long longs for
+ * g++.
+ */
+#if (defined(__STRICT_ANSI__) && (__STDC_VERSION__ - 0 < 199901L) && !defined(__GNUG__))
+#define __DARWIN_NO_LONG_LONG 1
+#else
+#define __DARWIN_NO_LONG_LONG 0
+#endif
+
+/*****************************************
+* Public darwin-specific feature macros
+*****************************************/
+
+/*
+ * _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+ * structures modified for 64-bit inodes (like struct stat) will be used.
+ */
+#if __DARWIN_64_BIT_INO_T
+#define _DARWIN_FEATURE_64_BIT_INODE 1
+#endif
+
+/*
+ * _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+ * be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+ * (and non-zero). There is no struct stat64 either, as the regular
+ * struct stat will already be the 64-bit version.
+ */
+#if __DARWIN_ONLY_64_BIT_INO_T
+#define _DARWIN_FEATURE_ONLY_64_BIT_INODE 1
+#endif
+
+/*
+ * _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+ * in 10.5 exists; no pre-10.5 variants are available.
+ */
+#if __DARWIN_ONLY_VERS_1050
+#define _DARWIN_FEATURE_ONLY_VERS_1050 1
+#endif
+
+/*
+ * _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+ * are available (the legacy BSD APIs are not available)
+ */
+#if __DARWIN_ONLY_UNIX_CONFORMANCE
+#define _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE 1
+#endif
+
+/*
+ * _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+ * and specifies the conformance level (3 is SUSv3)
+ */
+#if __DARWIN_UNIX03
+#define _DARWIN_FEATURE_UNIX_CONFORMANCE 3
+#endif
+
+
+/*
+ * This macro casts away the qualifier from the variable
+ *
+ * Note: use at your own risk, removing qualifiers can result in
+ * catastrophic run-time failures.
+ */
+#ifndef __CAST_AWAY_QUALIFIER
+#define __CAST_AWAY_QUALIFIER(variable, qualifier, type) (type) (long)(variable)
+#endif
+
+/*
+ * __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+ * used from other compilation units, but not other libraries or executables.
+ */
+#ifndef __XNU_PRIVATE_EXTERN
+#define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden")))
+#endif
+
+/*
+ * Architecture validation for current SDK
+ */
+#if !defined(__sys_cdefs_arch_unknown__) && defined(__i386__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__x86_64__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__arm__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__arm64__)
+#else
+#error Unsupported architecture
+#endif
+
+
+
+#define __compiler_barrier() __asm__ __volatile__("" ::: "memory")
+
+#if __has_attribute(enum_extensibility)
+#define __enum_open __attribute__((__enum_extensibility__(open)))
+#define __enum_closed __attribute__((__enum_extensibility__(closed)))
+#else
+#define __enum_open
+#define __enum_closed
+#endif // __has_attribute(enum_extensibility)
+
+#if __has_attribute(flag_enum)
+#define __enum_options __attribute__((__flag_enum__))
+#else
+#define __enum_options
+#endif
+
+/*
+ * Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+ *
+ * This provides more advanced type checking on compilers supporting
+ * the proper extensions, even in C.
+ */
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
+ __has_extension(cxx_strong_enums)
+#define __enum_decl(_name, _type, ...) \
+ typedef enum : _type __VA_ARGS__ __enum_open _name
+#define __enum_closed_decl(_name, _type, ...) \
+ typedef enum : _type __VA_ARGS__ __enum_closed _name
+#define __options_decl(_name, _type, ...) \
+ typedef enum : _type __VA_ARGS__ __enum_open __enum_options _name
+#define __options_closed_decl(_name, _type, ...) \
+ typedef enum : _type __VA_ARGS__ __enum_closed __enum_options _name
+#else
+#define __enum_decl(_name, _type, ...) \
+ typedef _type _name; enum __VA_ARGS__ __enum_open
+#define __enum_closed_decl(_name, _type, ...) \
+ typedef _type _name; enum __VA_ARGS__ __enum_closed
+#define __options_decl(_name, _type, ...) \
+ typedef _type _name; enum __VA_ARGS__ __enum_open __enum_options
+#define __options_closed_decl(_name, _type, ...) \
+ typedef _type _name; enum __VA_ARGS__ __enum_closed __enum_options
+#endif
+
+#endif /* !_CDEFS_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/event.h b/lib/libc/include/aarch64-macos-gnu/sys/event.h
new file mode 100644
index 0000000000..b03d37f867
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/event.h
@@ -0,0 +1,396 @@
+/*
+ * Copyright (c) 2003-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1999,2000,2001 Jonathan Lemon <jlemon@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/sys/sys/event.h,v 1.5.2.5 2001/12/14 19:21:22 jlemon Exp $
+ */
+
+#ifndef _SYS_EVENT_H_
+#define _SYS_EVENT_H_
+
+#include <machine/types.h>
+#include <sys/cdefs.h>
+#include <stdint.h>
+
+/*
+ * Filter types
+ */
+#define EVFILT_READ (-1)
+#define EVFILT_WRITE (-2)
+#define EVFILT_AIO (-3) /* attached to aio requests */
+#define EVFILT_VNODE (-4) /* attached to vnodes */
+#define EVFILT_PROC (-5) /* attached to struct proc */
+#define EVFILT_SIGNAL (-6) /* attached to struct proc */
+#define EVFILT_TIMER (-7) /* timers */
+#define EVFILT_MACHPORT (-8) /* Mach portsets */
+#define EVFILT_FS (-9) /* Filesystem events */
+#define EVFILT_USER (-10) /* User events */
+#define EVFILT_VM (-12) /* Virtual memory events */
+#define EVFILT_EXCEPT (-15) /* Exception events */
+
+#define EVFILT_SYSCOUNT 17
+#define EVFILT_THREADMARKER EVFILT_SYSCOUNT /* Internal use only */
+
+#pragma pack(4)
+
+struct kevent {
+ uintptr_t ident; /* identifier for this event */
+ int16_t filter; /* filter for event */
+ uint16_t flags; /* general flags */
+ uint32_t fflags; /* filter-specific flags */
+ intptr_t data; /* filter-specific data */
+ void *udata; /* opaque user data identifier */
+};
+
+
+#pragma pack()
+
+struct kevent64_s {
+ uint64_t ident; /* identifier for this event */
+ int16_t filter; /* filter for event */
+ uint16_t flags; /* general flags */
+ uint32_t fflags; /* filter-specific flags */
+ int64_t data; /* filter-specific data */
+ uint64_t udata; /* opaque user data identifier */
+ uint64_t ext[2]; /* filter-specific extensions */
+};
+
+
+#define EV_SET(kevp, a, b, c, d, e, f) do { \
+ struct kevent *__kevp__ = (kevp); \
+ __kevp__->ident = (a); \
+ __kevp__->filter = (b); \
+ __kevp__->flags = (c); \
+ __kevp__->fflags = (d); \
+ __kevp__->data = (e); \
+ __kevp__->udata = (f); \
+} while(0)
+
+#define EV_SET64(kevp, a, b, c, d, e, f, g, h) do { \
+ struct kevent64_s *__kevp__ = (kevp); \
+ __kevp__->ident = (a); \
+ __kevp__->filter = (b); \
+ __kevp__->flags = (c); \
+ __kevp__->fflags = (d); \
+ __kevp__->data = (e); \
+ __kevp__->udata = (f); \
+ __kevp__->ext[0] = (g); \
+ __kevp__->ext[1] = (h); \
+} while(0)
+
+
+/* kevent system call flags */
+#define KEVENT_FLAG_NONE 0x000000 /* no flag value */
+#define KEVENT_FLAG_IMMEDIATE 0x000001 /* immediate timeout */
+#define KEVENT_FLAG_ERROR_EVENTS 0x000002 /* output events only include change errors */
+
+
+/* actions */
+#define EV_ADD 0x0001 /* add event to kq (implies enable) */
+#define EV_DELETE 0x0002 /* delete event from kq */
+#define EV_ENABLE 0x0004 /* enable event */
+#define EV_DISABLE 0x0008 /* disable event (not reported) */
+
+/* flags */
+#define EV_ONESHOT 0x0010 /* only report one occurrence */
+#define EV_CLEAR 0x0020 /* clear event state after reporting */
+#define EV_RECEIPT 0x0040 /* force immediate event output */
+ /* ... with or without EV_ERROR */
+ /* ... use KEVENT_FLAG_ERROR_EVENTS */
+ /* on syscalls supporting flags */
+
+#define EV_DISPATCH 0x0080 /* disable event after reporting */
+#define EV_UDATA_SPECIFIC 0x0100 /* unique kevent per udata value */
+
+#define EV_DISPATCH2 (EV_DISPATCH | EV_UDATA_SPECIFIC)
+/* ... in combination with EV_DELETE */
+/* will defer delete until udata-specific */
+/* event enabled. EINPROGRESS will be */
+/* returned to indicate the deferral */
+
+#define EV_VANISHED 0x0200 /* report that source has vanished */
+ /* ... only valid with EV_DISPATCH2 */
+
+#define EV_SYSFLAGS 0xF000 /* reserved by system */
+#define EV_FLAG0 0x1000 /* filter-specific flag */
+#define EV_FLAG1 0x2000 /* filter-specific flag */
+
+/* returned values */
+#define EV_EOF 0x8000 /* EOF detected */
+#define EV_ERROR 0x4000 /* error, data contains errno */
+
+/*
+ * Filter specific flags for EVFILT_READ
+ *
+ * The default behavior for EVFILT_READ is to make the "read" determination
+ * relative to the current file descriptor read pointer.
+ *
+ * The EV_POLL flag indicates the determination should be made via poll(2)
+ * semantics. These semantics dictate always returning true for regular files,
+ * regardless of the amount of unread data in the file.
+ *
+ * On input, EV_OOBAND specifies that filter should actively return in the
+ * presence of OOB on the descriptor. It implies that filter will return
+ * if there is OOB data available to read OR when any other condition
+ * for the read are met (for example number of bytes regular data becomes >=
+ * low-watermark).
+ * If EV_OOBAND is not set on input, it implies that the filter should not actively
+ * return for out of band data on the descriptor. The filter will then only return
+ * when some other condition for read is met (ex: when number of regular data bytes
+ * >=low-watermark OR when socket can't receive more data (SS_CANTRCVMORE)).
+ *
+ * On output, EV_OOBAND indicates the presence of OOB data on the descriptor.
+ * If it was not specified as an input parameter, then the data count is the
+ * number of bytes before the current OOB marker, else data count is the number
+ * of bytes beyond OOB marker.
+ */
+#define EV_POLL EV_FLAG0
+#define EV_OOBAND EV_FLAG1
+
+/*
+ * data/hint fflags for EVFILT_USER, shared with userspace
+ */
+
+/*
+ * On input, NOTE_TRIGGER causes the event to be triggered for output.
+ */
+#define NOTE_TRIGGER 0x01000000
+
+/*
+ * On input, the top two bits of fflags specifies how the lower twenty four
+ * bits should be applied to the stored value of fflags.
+ *
+ * On output, the top two bits will always be set to NOTE_FFNOP and the
+ * remaining twenty four bits will contain the stored fflags value.
+ */
+#define NOTE_FFNOP 0x00000000 /* ignore input fflags */
+#define NOTE_FFAND 0x40000000 /* and fflags */
+#define NOTE_FFOR 0x80000000 /* or fflags */
+#define NOTE_FFCOPY 0xc0000000 /* copy fflags */
+#define NOTE_FFCTRLMASK 0xc0000000 /* mask for operations */
+#define NOTE_FFLAGSMASK 0x00ffffff
+
+
+/*
+ * data/hint fflags for EVFILT_{READ|WRITE}, shared with userspace
+ *
+ * The default behavior for EVFILT_READ is to make the determination
+ * realtive to the current file descriptor read pointer.
+ */
+#define NOTE_LOWAT 0x00000001 /* low water mark */
+
+/* data/hint flags for EVFILT_EXCEPT, shared with userspace */
+#define NOTE_OOB 0x00000002 /* OOB data */
+
+/*
+ * data/hint fflags for EVFILT_VNODE, shared with userspace
+ */
+#define NOTE_DELETE 0x00000001 /* vnode was removed */
+#define NOTE_WRITE 0x00000002 /* data contents changed */
+#define NOTE_EXTEND 0x00000004 /* size increased */
+#define NOTE_ATTRIB 0x00000008 /* attributes changed */
+#define NOTE_LINK 0x00000010 /* link count changed */
+#define NOTE_RENAME 0x00000020 /* vnode was renamed */
+#define NOTE_REVOKE 0x00000040 /* vnode access was revoked */
+#define NOTE_NONE 0x00000080 /* No specific vnode event: to test for EVFILT_READ activation*/
+#define NOTE_FUNLOCK 0x00000100 /* vnode was unlocked by flock(2) */
+
+/*
+ * data/hint fflags for EVFILT_PROC, shared with userspace
+ *
+ * Please note that EVFILT_PROC and EVFILT_SIGNAL share the same knote list
+ * that hangs off the proc structure. They also both play games with the hint
+ * passed to KNOTE(). If NOTE_SIGNAL is passed as a hint, then the lower bits
+ * of the hint contain the signal. IF NOTE_FORK is passed, then the lower bits
+ * contain the PID of the child (but the pid does not get passed through in
+ * the actual kevent).
+ */
+enum {
+ eNoteReapDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is deprecated") = 0x10000000
+};
+
+#define NOTE_EXIT 0x80000000 /* process exited */
+#define NOTE_FORK 0x40000000 /* process forked */
+#define NOTE_EXEC 0x20000000 /* process exec'd */
+#define NOTE_REAP ((unsigned int)eNoteReapDeprecated /* 0x10000000 */ ) /* process reaped */
+#define NOTE_SIGNAL 0x08000000 /* shared with EVFILT_SIGNAL */
+#define NOTE_EXITSTATUS 0x04000000 /* exit status to be returned, valid for child process or when allowed to signal target pid */
+#define NOTE_EXIT_DETAIL 0x02000000 /* provide details on reasons for exit */
+
+#define NOTE_PDATAMASK 0x000fffff /* mask for signal & exit status */
+#define NOTE_PCTRLMASK (~NOTE_PDATAMASK)
+
+/*
+ * If NOTE_EXITSTATUS is present, provide additional info about exiting process.
+ */
+enum {
+ eNoteExitReparentedDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is no longer sent") = 0x00080000
+};
+#define NOTE_EXIT_REPARENTED ((unsigned int)eNoteExitReparentedDeprecated) /* exited while reparented */
+
+/*
+ * If NOTE_EXIT_DETAIL is present, these bits indicate specific reasons for exiting.
+ */
+#define NOTE_EXIT_DETAIL_MASK 0x00070000
+#define NOTE_EXIT_DECRYPTFAIL 0x00010000
+#define NOTE_EXIT_MEMORY 0x00020000
+#define NOTE_EXIT_CSERROR 0x00040000
+
+
+/*
+ * data/hint fflags for EVFILT_VM, shared with userspace.
+ */
+#define NOTE_VM_PRESSURE 0x80000000 /* will react on memory pressure */
+#define NOTE_VM_PRESSURE_TERMINATE 0x40000000 /* will quit on memory pressure, possibly after cleaning up dirty state */
+#define NOTE_VM_PRESSURE_SUDDEN_TERMINATE 0x20000000 /* will quit immediately on memory pressure */
+#define NOTE_VM_ERROR 0x10000000 /* there was an error */
+
+
+/*
+ * data/hint fflags for EVFILT_TIMER, shared with userspace.
+ * The default is a (repeating) interval timer with the data
+ * specifying the timeout interval in milliseconds.
+ *
+ * All timeouts are implicitly EV_CLEAR events.
+ */
+#define NOTE_SECONDS 0x00000001 /* data is seconds */
+#define NOTE_USECONDS 0x00000002 /* data is microseconds */
+#define NOTE_NSECONDS 0x00000004 /* data is nanoseconds */
+#define NOTE_ABSOLUTE 0x00000008 /* absolute timeout */
+/* ... implicit EV_ONESHOT, timeout uses the gettimeofday epoch */
+#define NOTE_LEEWAY 0x00000010 /* ext[1] holds leeway for power aware timers */
+#define NOTE_CRITICAL 0x00000020 /* system does minimal timer coalescing */
+#define NOTE_BACKGROUND 0x00000040 /* system does maximum timer coalescing */
+#define NOTE_MACH_CONTINUOUS_TIME 0x00000080
+/*
+ * NOTE_MACH_CONTINUOUS_TIME:
+ * with NOTE_ABSOLUTE: causes the timer to continue to tick across sleep,
+ * still uses gettimeofday epoch
+ * with NOTE_MACHTIME and NOTE_ABSOLUTE: uses mach continuous time epoch
+ * without NOTE_ABSOLUTE (interval timer mode): continues to tick across sleep
+ */
+#define NOTE_MACHTIME 0x00000100 /* data is mach absolute time units */
+/* timeout uses the mach absolute time epoch */
+
+
+/*
+ * data/hint fflags for EVFILT_MACHPORT, shared with userspace.
+ *
+ * Only portsets are supported at this time.
+ *
+ * The fflags field can optionally contain the MACH_RCV_MSG, MACH_RCV_LARGE,
+ * and related trailer receive options as defined in <mach/message.h>.
+ * The presence of these flags directs the kevent64() call to attempt to receive
+ * the message during kevent delivery, rather than just indicate that a message exists.
+ * On setup, The ext[0] field contains the receive buffer pointer and ext[1] contains
+ * the receive buffer length. Upon event delivery, the actual received message size
+ * is returned in ext[1]. As with mach_msg(), the buffer must be large enough to
+ * receive the message and the requested (or default) message trailers. In addition,
+ * the fflags field contains the return code normally returned by mach_msg().
+ *
+ * If MACH_RCV_MSG is specified, and the ext[1] field specifies a zero length, the
+ * system call argument specifying an ouput area (kevent_qos) will be consulted. If
+ * the system call specified an output data area, the user-space address
+ * of the received message is carved from that provided output data area (if enough
+ * space remains there). The address and length of each received message is
+ * returned in the ext[0] and ext[1] fields (respectively) of the corresponding kevent.
+ *
+ * IF_MACH_RCV_VOUCHER_CONTENT is specified, the contents of the message voucher is
+ * extracted (as specified in the xflags field) and stored in ext[2] up to ext[3]
+ * length. If the input length is zero, and the system call provided a data area,
+ * the space for the voucher content is carved from the provided space and its
+ * address and length is returned in ext[2] and ext[3] respectively.
+ *
+ * If no message receipt options were provided in the fflags field on setup, no
+ * message is received by this call. Instead, on output, the data field simply
+ * contains the name of the actual port detected with a message waiting.
+ */
+
+/*
+ * DEPRECATED!!!!!!!!!
+ * NOTE_TRACK, NOTE_TRACKERR, and NOTE_CHILD are no longer supported as of 10.5
+ */
+/* additional flags for EVFILT_PROC */
+#define NOTE_TRACK 0x00000001 /* follow across forks */
+#define NOTE_TRACKERR 0x00000002 /* could not track child */
+#define NOTE_CHILD 0x00000004 /* am a child process */
+
+
+
+/* Temporay solution for BootX to use inode.h till kqueue moves to vfs layer */
+#include <sys/queue.h>
+struct knote;
+SLIST_HEAD(klist, knote);
+
+
+#include <sys/types.h>
+
+struct timespec;
+
+__BEGIN_DECLS
+int kqueue(void);
+int kevent(int kq,
+ const struct kevent *changelist, int nchanges,
+ struct kevent *eventlist, int nevents,
+ const struct timespec *timeout);
+int kevent64(int kq,
+ const struct kevent64_s *changelist, int nchanges,
+ struct kevent64_s *eventlist, int nevents,
+ unsigned int flags,
+ const struct timespec *timeout);
+
+
+__END_DECLS
+
+
+
+
+#endif /* !_SYS_EVENT_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/fcntl.h b/lib/libc/include/aarch64-macos-gnu/sys/fcntl.h
new file mode 100644
index 0000000000..8f13a01f90
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/fcntl.h
@@ -0,0 +1,581 @@
+/*
+ * Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1983, 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+ */
+
+
+#ifndef _SYS_FCNTL_H_
+#define _SYS_FCNTL_H_
+
+/*
+ * This file includes the definitions for open and fcntl
+ * described by POSIX for <fcntl.h>; it also includes
+ * related kernel definitions.
+ */
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+/* We should not be exporting size_t here. Temporary for gcc bootstrapping. */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_pid_t.h>
+
+/*
+ * File status flags: these are used by open(2), fcntl(2).
+ * They are also used (indirectly) in the kernel file structure f_flags,
+ * which is a superset of the open/fcntl flags. Open flags and f_flags
+ * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+ * Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+ */
+/* open-only flags */
+#define O_RDONLY 0x0000 /* open for reading only */
+#define O_WRONLY 0x0001 /* open for writing only */
+#define O_RDWR 0x0002 /* open for reading and writing */
+#define O_ACCMODE 0x0003 /* mask for above modes */
+
+/*
+ * Kernel encoding of open mode; separate read and write bits that are
+ * independently testable: 1 greater than the above.
+ *
+ * XXX
+ * FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+ * which was documented to use FREAD/FWRITE, continues to work.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FREAD 0x00000001
+#define FWRITE 0x00000002
+#endif
+#define O_NONBLOCK 0x00000004 /* no delay */
+#define O_APPEND 0x00000008 /* set append mode */
+
+#include <sys/_types/_o_sync.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_SHLOCK 0x00000010 /* open with shared file lock */
+#define O_EXLOCK 0x00000020 /* open with exclusive file lock */
+#define O_ASYNC 0x00000040 /* signal pgrp when data ready */
+#define O_FSYNC O_SYNC /* source compatibility: do not use */
+#define O_NOFOLLOW 0x00000100 /* don't follow symlinks */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define O_CREAT 0x00000200 /* create if nonexistant */
+#define O_TRUNC 0x00000400 /* truncate to zero length */
+#define O_EXCL 0x00000800 /* error if already exists */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_EVTONLY 0x00008000 /* descriptor requested for event notifications only */
+#endif
+
+
+#define O_NOCTTY 0x00020000 /* don't assign controlling terminal */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_DIRECTORY 0x00100000
+#define O_SYMLINK 0x00200000 /* allow open of a symlink */
+#endif
+
+// O_DSYNC 0x00400000 /* synch I/O data integrity */
+#include <sys/_types/_o_dsync.h>
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define O_CLOEXEC 0x01000000 /* implicitly set FD_CLOEXEC */
+#endif
+
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define O_NOFOLLOW_ANY 0x20000000 /* no symlinks allowed in path */
+#endif
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+/*
+ * Descriptor value for the current working directory
+ */
+#define AT_FDCWD -2
+
+/*
+ * Flags for the at functions
+ */
+#define AT_EACCESS 0x0010 /* Use effective ids in access check */
+#define AT_SYMLINK_NOFOLLOW 0x0020 /* Act on the symlink itself not the target */
+#define AT_SYMLINK_FOLLOW 0x0040 /* Act on target of symlink */
+#define AT_REMOVEDIR 0x0080 /* Path refers to directory */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define AT_REALDEV 0x0200 /* Return real device inodes resides on for fstatat(2) */
+#define AT_FDONLY 0x0400 /* Use only the fd and Ignore the path for fstatat(2) */
+#endif
+#endif
+
+/* Data Protection Flags */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_DP_GETRAWENCRYPTED 0x0001
+#define O_DP_GETRAWUNENCRYPTED 0x0002
+#endif
+
+
+
+/*
+ * The O_* flags used to have only F* names, which were used in the kernel
+ * and by fcntl. We retain the F* names for the kernel f_flags field
+ * and for backward compatibility for fcntl.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FAPPEND O_APPEND /* kernel/compat */
+#define FASYNC O_ASYNC /* kernel/compat */
+#define FFSYNC O_FSYNC /* kernel */
+#define FFDSYNC O_DSYNC /* kernel */
+#define FNONBLOCK O_NONBLOCK /* kernel */
+#define FNDELAY O_NONBLOCK /* compat */
+#define O_NDELAY O_NONBLOCK /* compat */
+#endif
+
+/*
+ * Flags used for copyfile(2)
+ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CPF_OVERWRITE 0x0001
+#define CPF_IGNORE_MODE 0x0002
+#define CPF_MASK (CPF_OVERWRITE|CPF_IGNORE_MODE)
+#endif
+
+/*
+ * Constants used for fcntl(2)
+ */
+
+/* command values */
+#define F_DUPFD 0 /* duplicate file descriptor */
+#define F_GETFD 1 /* get file descriptor flags */
+#define F_SETFD 2 /* set file descriptor flags */
+#define F_GETFL 3 /* get file status flags */
+#define F_SETFL 4 /* set file status flags */
+#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
+#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
+#define F_GETLK 7 /* get record locking information */
+#define F_SETLK 8 /* set record locking information */
+#define F_SETLKW 9 /* F_SETLK; wait if blocked */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define F_SETLKWTIMEOUT 10 /* F_SETLK; wait if blocked, return on timeout */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define F_FLUSH_DATA 40
+#define F_CHKCLEAN 41 /* Used for regression test */
+#define F_PREALLOCATE 42 /* Preallocate storage */
+#define F_SETSIZE 43 /* Truncate a file. Equivalent to calling truncate(2) */
+#define F_RDADVISE 44 /* Issue an advisory read async with no copy to user */
+#define F_RDAHEAD 45 /* turn read ahead off/on for this fd */
+/*
+ * 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+ */
+#define F_NOCACHE 48 /* turn data caching off/on for this fd */
+#define F_LOG2PHYS 49 /* file offset to device offset */
+#define F_GETPATH 50 /* return the full path of the fd */
+#define F_FULLFSYNC 51 /* fsync + ask the drive to flush to the media */
+#define F_PATHPKG_CHECK 52 /* find which component (if any) is a package */
+#define F_FREEZE_FS 53 /* "freeze" all fs operations */
+#define F_THAW_FS 54 /* "thaw" all fs operations */
+#define F_GLOBAL_NOCACHE 55 /* turn data caching off/on (globally) for this file */
+
+
+#define F_ADDSIGS 59 /* add detached signatures */
+
+
+#define F_ADDFILESIGS 61 /* add signature from same file (used by dyld for shared libs) */
+
+#define F_NODIRECT 62 /* used in conjunction with F_NOCACHE to indicate that DIRECT, synchonous writes */
+ /* should not be used (i.e. its ok to temporaily create cached pages) */
+
+#define F_GETPROTECTIONCLASS 63 /* Get the protection class of a file from the EA, returns int */
+#define F_SETPROTECTIONCLASS 64 /* Set the protection class of a file for the EA, requires int */
+
+#define F_LOG2PHYS_EXT 65 /* file offset to device offset, extended */
+
+#define F_GETLKPID 66 /* get record locking information, per-process */
+
+/* See F_DUPFD_CLOEXEC below for 67 */
+
+
+#define F_SETBACKINGSTORE 70 /* Mark the file as being the backing store for another filesystem */
+#define F_GETPATH_MTMINFO 71 /* return the full path of the FD, but error in specific mtmd circumstances */
+
+#define F_GETCODEDIR 72 /* Returns the code directory, with associated hashes, to the caller */
+
+#define F_SETNOSIGPIPE 73 /* No SIGPIPE generated on EPIPE */
+#define F_GETNOSIGPIPE 74 /* Status of SIGPIPE for this fd */
+
+#define F_TRANSCODEKEY 75 /* For some cases, we need to rewrap the key for AKS/MKB */
+
+#define F_SINGLE_WRITER 76 /* file being written to a by single writer... if throttling enabled, writes */
+ /* may be broken into smaller chunks with throttling in between */
+
+#define F_GETPROTECTIONLEVEL 77 /* Get the protection version number for this filesystem */
+
+#define F_FINDSIGS 78 /* Add detached code signatures (used by dyld for shared libs) */
+
+
+#define F_ADDFILESIGS_FOR_DYLD_SIM 83 /* Add signature from same file, only if it is signed by Apple (used by dyld for simulator) */
+
+
+#define F_BARRIERFSYNC 85 /* fsync + issue barrier to drive */
+
+
+#define F_ADDFILESIGS_RETURN 97 /* Add signature from same file, return end offset in structure on success */
+#define F_CHECK_LV 98 /* Check if Library Validation allows this Mach-O file to be mapped into the calling process */
+
+#define F_PUNCHHOLE 99 /* Deallocate a range of the file */
+
+#define F_TRIM_ACTIVE_FILE 100 /* Trim an active file */
+
+#define F_SPECULATIVE_READ 101 /* Synchronous advisory read fcntl for regular and compressed file */
+
+#define F_GETPATH_NOFIRMLINK 102 /* return the full path without firmlinks of the fd */
+
+#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 */
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+#define FCNTL_FS_SPECIFIC_BASE 0x00010000
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define F_DUPFD_CLOEXEC 67 /* mark the dup with FD_CLOEXEC */
+#endif
+
+/* file descriptor flags (F_GETFD, F_SETFD) */
+#define FD_CLOEXEC 1 /* close-on-exec flag */
+
+/* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */
+#define F_RDLCK 1 /* shared or read lock */
+#define F_UNLCK 2 /* unlock */
+#define F_WRLCK 3 /* exclusive or write lock */
+
+
+/*
+ * [XSI] The values used for l_whence shall be defined as described
+ * in <unistd.h>
+ */
+#include <sys/_types/_seek_set.h>
+
+/*
+ * [XSI] The symbolic names for file modes for use as values of mode_t
+ * shall be defined as described in <sys/stat.h>
+ */
+#include <sys/_types/_s_ifmt.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* allocate flags (F_PREALLOCATE) */
+
+#define F_ALLOCATECONTIG 0x00000002 /* allocate contigious space */
+#define F_ALLOCATEALL 0x00000004 /* allocate all requested space or no space at all */
+
+/* Position Modes (fst_posmode) for F_PREALLOCATE */
+
+#define F_PEOFPOSMODE 3 /* Make it past all of the SEEK pos modes so that */
+ /* we can keep them in sync should we desire */
+#define F_VOLPOSMODE 4 /* specify volume starting postion */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Advisory file segment locking data type -
+ * information passed to system by user
+ */
+struct flock {
+ off_t l_start; /* starting offset */
+ off_t l_len; /* len = 0 means until end of file */
+ pid_t l_pid; /* lock owner */
+ short l_type; /* lock type: read/write, etc. */
+ short l_whence; /* type of l_start */
+};
+
+#include <sys/_types/_timespec.h>
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Advisory file segment locking with time out -
+ * Information passed to system by user for F_SETLKWTIMEOUT
+ */
+struct flocktimeout {
+ struct flock fl; /* flock passed for file locking */
+ struct timespec timeout; /* timespec struct for timeout */
+};
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * advisory file read data type -
+ * information passed by user to system
+ */
+
+
+struct radvisory {
+ off_t ra_offset;
+ int ra_count;
+};
+
+
+/*
+ * detached code signatures data type -
+ * information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+ * F_ADDFILESIGS is a shortcut for files that contain their own signature and
+ * doesn't require mapping of the file in order to load the signature.
+ */
+#define USER_FSIGNATURES_CDHASH_LEN 20
+typedef struct fsignatures {
+ off_t fs_file_start;
+ void *fs_blob_start;
+ size_t fs_blob_size;
+
+ /* The following fields are only applicable to F_ADDFILESIGS_INFO (64bit only). */
+ /* Prior to F_ADDFILESIGS_INFO, this struct ended after fs_blob_size. */
+ size_t fs_fsignatures_size;// input: size of this struct (for compatibility)
+ char fs_cdhash[USER_FSIGNATURES_CDHASH_LEN]; // output: cdhash
+ int fs_hash_type;// output: hash algorithm type for cdhash
+} fsignatures_t;
+
+typedef struct fsupplement {
+ off_t fs_file_start; /* offset of Mach-O image in FAT file */
+ off_t fs_blob_start; /* offset of signature in Mach-O image */
+ size_t fs_blob_size; /* signature blob size */
+ int fs_orig_fd; /* address of original image */
+} fsupplement_t;
+
+
+
+/*
+ * DYLD needs to check if the object is allowed to be combined
+ * into the main binary. This is done between the code signature
+ * is loaded and dyld is doing all the work to process the LOAD commands.
+ *
+ * While this could be done in F_ADDFILESIGS.* family the hook into
+ * the MAC module doesn't say no when LV isn't enabled and then that
+ * is cached on the vnode, and the MAC module never gets change once
+ * a process that library validation enabled.
+ */
+typedef struct fchecklv {
+ off_t lv_file_start;
+ size_t lv_error_message_size;
+ void *lv_error_message;
+} fchecklv_t;
+
+
+/* At this time F_GETSIGSINFO can only indicate platformness.
+ * As additional requestable information is defined, new keys will be added and the
+ * fgetsigsinfo_t structure will be lengthened to add space for the additional information
+ */
+#define GETSIGSINFO_PLATFORM_BINARY 1
+
+/* fgetsigsinfo_t used by F_GETSIGSINFO command */
+typedef struct fgetsigsinfo {
+ off_t fg_file_start; /* IN: Offset in the file to look for a signature, -1 for any signature */
+ int fg_info_request; /* IN: Key indicating the info requested */
+ int fg_sig_is_platform; /* OUT: 1 if the signature is a plat form binary, 0 if not */
+} fgetsigsinfo_t;
+
+
+/* lock operations for flock(2) */
+#define LOCK_SH 0x01 /* shared file lock */
+#define LOCK_EX 0x02 /* exclusive file lock */
+#define LOCK_NB 0x04 /* don't block when locking */
+#define LOCK_UN 0x08 /* unlock file */
+
+/* fstore_t type used by F_PREALLOCATE command */
+
+typedef struct fstore {
+ unsigned int fst_flags; /* IN: flags word */
+ int fst_posmode; /* IN: indicates use of offset field */
+ off_t fst_offset; /* IN: start of the region */
+ off_t fst_length; /* IN: size of the region */
+ off_t fst_bytesalloc; /* OUT: number of bytes allocated */
+} fstore_t;
+
+/* fpunchhole_t used by F_PUNCHHOLE */
+typedef struct fpunchhole {
+ unsigned int fp_flags; /* unused */
+ unsigned int reserved; /* (to maintain 8-byte alignment) */
+ off_t fp_offset; /* IN: start of the region */
+ off_t fp_length; /* IN: size of the region */
+} fpunchhole_t;
+
+/* factive_file_trim_t used by F_TRIM_ACTIVE_FILE */
+typedef struct ftrimactivefile {
+ off_t fta_offset; /* IN: start of the region */
+ off_t fta_length; /* IN: size of the region */
+} ftrimactivefile_t;
+
+/* fspecread_t used by F_SPECULATIVE_READ */
+typedef struct fspecread {
+ unsigned int fsr_flags; /* IN: flags word */
+ unsigned int reserved; /* to maintain 8-byte alignment */
+ off_t fsr_offset; /* IN: start of the region */
+ off_t fsr_length; /* IN: size of the region */
+} fspecread_t;
+
+/* fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands */
+
+typedef struct fbootstraptransfer {
+ off_t fbt_offset; /* IN: offset to start read/write */
+ size_t fbt_length; /* IN: number of bytes to transfer */
+ void *fbt_buffer; /* IN: buffer to be read/written */
+} fbootstraptransfer_t;
+
+
+/*
+ * For F_LOG2PHYS this information is passed back to user
+ * Currently only devoffset is returned - that is the VOP_BMAP
+ * result - the disk device address corresponding to the
+ * current file offset (likely set with an lseek).
+ *
+ * The flags could hold an indication of whether the # of
+ * contiguous bytes reflects the true extent length on disk,
+ * or is an advisory value that indicates there is at least that
+ * many bytes contiguous. For some filesystems it might be too
+ * inefficient to provide anything beyond the advisory value.
+ * Flags and contiguous bytes return values are not yet implemented.
+ * For them the fcntl will nedd to switch from using BMAP to CMAP
+ * and a per filesystem type flag will be needed to interpret the
+ * contiguous bytes count result from CMAP.
+ *
+ * F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+ * file offset and length instead of the current file offset.
+ * F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+ * treats it as an in/out.
+ */
+#pragma pack(4)
+
+struct log2phys {
+ unsigned int l2p_flags; /* unused so far */
+ off_t l2p_contigbytes; /* F_LOG2PHYS: unused so far */
+ /* F_LOG2PHYS_EXT: IN: number of bytes to be queried */
+ /* OUT: number of contiguous bytes at this position */
+ off_t l2p_devoffset; /* F_LOG2PHYS: OUT: bytes into device */
+ /* F_LOG2PHYS_EXT: IN: bytes into file */
+ /* OUT: bytes into device */
+};
+
+#pragma pack()
+
+#define O_POPUP 0x80000000 /* force window to popup on open */
+#define O_ALERT 0x20000000 /* small, clean popup window */
+
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_filesec_t.h>
+
+typedef enum {
+ FILESEC_OWNER = 1,
+ FILESEC_GROUP = 2,
+ FILESEC_UUID = 3,
+ FILESEC_MODE = 4,
+ FILESEC_ACL = 5,
+ FILESEC_GRPUUID = 6,
+
+/* XXX these are private to the implementation */
+ FILESEC_ACL_RAW = 100,
+ FILESEC_ACL_ALLOCSIZE = 101
+} filesec_property_t;
+
+/* XXX backwards compatibility */
+#define FILESEC_GUID FILESEC_UUID
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+int open(const char *, int, ...) __DARWIN_ALIAS_C(open);
+#if __DARWIN_C_LEVEL >= 200809L
+int openat(int, const char *, int, ...) __DARWIN_NOCANCEL(openat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+#endif
+int creat(const char *, mode_t) __DARWIN_ALIAS_C(creat);
+int fcntl(int, int, ...) __DARWIN_ALIAS_C(fcntl);
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+int openx_np(const char *, int, filesec_t);
+/*
+ * data-protected non-portable open(2) :
+ * int open_dprotected_np(user_addr_t path, int flags, int class, int dpflags, int mode)
+ */
+int open_dprotected_np( const char *, int, int, int, ...);
+int flock(int, int);
+filesec_t filesec_init(void);
+filesec_t filesec_dup(filesec_t);
+void filesec_free(filesec_t);
+int filesec_get_property(filesec_t, filesec_property_t, void *);
+int filesec_query_property(filesec_t, filesec_property_t, int *);
+int filesec_set_property(filesec_t, filesec_property_t, const void *);
+int filesec_unset_property(filesec_t, filesec_property_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#define _FILESEC_UNSET_PROPERTY ((void *)0)
+#define _FILESEC_REMOVE_ACL ((void *)1)
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+#endif /* !_SYS_FCNTL_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/ioccom.h b/lib/libc/include/aarch64-macos-gnu/sys/ioccom.h
new file mode 100644
index 0000000000..d4be2e433e
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/ioccom.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1990, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)ioccom.h 8.2 (Berkeley) 3/28/94
+ */
+
+#ifndef _SYS_IOCCOM_H_
+#define _SYS_IOCCOM_H_
+
+#include <sys/_types.h>
+
+/*
+ * Ioctl's have the command encoded in the lower word, and the size of
+ * any in or out parameters in the upper word. The high 3 bits of the
+ * upper word are used to encode the in/out status of the parameter.
+ */
+#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */
+#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
+#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
+#define IOCGROUP(x) (((x) >> 8) & 0xff)
+
+#define IOCPARM_MAX (IOCPARM_MASK + 1) /* max size of ioctl args */
+/* no parameters */
+#define IOC_VOID (__uint32_t)0x20000000
+/* copy parameters out */
+#define IOC_OUT (__uint32_t)0x40000000
+/* copy parameters in */
+#define IOC_IN (__uint32_t)0x80000000
+/* copy parameters in and out */
+#define IOC_INOUT (IOC_IN|IOC_OUT)
+/* mask for IN/OUT/VOID */
+#define IOC_DIRMASK (__uint32_t)0xe0000000
+
+#define _IOC(inout, group, num, len) \
+ (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
+#define _IO(g, n) _IOC(IOC_VOID, (g), (n), 0)
+#define _IOR(g, n, t) _IOC(IOC_OUT, (g), (n), sizeof(t))
+#define _IOW(g, n, t) _IOC(IOC_IN, (g), (n), sizeof(t))
+/* this should be _IORW, but stdio got there first */
+#define _IOWR(g, n, t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
+
+#endif /* !_SYS_IOCCOM_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/kauth.h b/lib/libc/include/aarch64-macos-gnu/sys/kauth.h
new file mode 100644
index 0000000000..8742c60439
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/kauth.h
@@ -0,0 +1,410 @@
+/*
+ * Copyright (c) 2004-2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections. This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+#ifndef _SYS_KAUTH_H
+#define _SYS_KAUTH_H
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <mach/boolean.h>
+#include <machine/types.h> /* u_int8_t, etc. */
+#include <sys/_types.h> /* __offsetof() */
+#include <sys/_types/_uid_t.h> /* uid_t */
+#include <sys/_types/_gid_t.h> /* gid_t */
+#include <sys/syslimits.h> /* NGROUPS_MAX */
+
+#ifdef __APPLE_API_EVOLVING
+
+/*
+ * Identities.
+ */
+
+#define KAUTH_UID_NONE (~(uid_t)0 - 100) /* not a valid UID */
+#define KAUTH_GID_NONE (~(gid_t)0 - 100) /* not a valid GID */
+
+#include <sys/_types/_guid_t.h>
+
+/* NT Security Identifier, structure as defined by Microsoft */
+#pragma pack(1) /* push packing of 1 byte */
+typedef struct {
+ u_int8_t sid_kind;
+ u_int8_t sid_authcount;
+ u_int8_t sid_authority[6];
+#define KAUTH_NTSID_MAX_AUTHORITIES 16
+ u_int32_t sid_authorities[KAUTH_NTSID_MAX_AUTHORITIES];
+} ntsid_t;
+#pragma pack() /* pop packing to previous packing level */
+#define _NTSID_T
+
+/* valid byte count inside a SID structure */
+#define KAUTH_NTSID_HDRSIZE (8)
+#define KAUTH_NTSID_SIZE(_s) (KAUTH_NTSID_HDRSIZE + ((_s)->sid_authcount * sizeof(u_int32_t)))
+
+/*
+ * External lookup message payload; this structure is shared between the
+ * kernel group membership resolver, and the user space group membership
+ * resolver daemon, and is use to communicate resolution requests from the
+ * kernel to user space, and the result of that request from user space to
+ * the kernel.
+ */
+struct kauth_identity_extlookup {
+ u_int32_t el_seqno; /* request sequence number */
+ u_int32_t el_result; /* lookup result */
+#define KAUTH_EXTLOOKUP_SUCCESS 0 /* results here are good */
+#define KAUTH_EXTLOOKUP_BADRQ 1 /* request badly formatted */
+#define KAUTH_EXTLOOKUP_FAILURE 2 /* transient failure during lookup */
+#define KAUTH_EXTLOOKUP_FATAL 3 /* permanent failure during lookup */
+#define KAUTH_EXTLOOKUP_INPROG 100 /* request in progress */
+ u_int32_t el_flags;
+#define KAUTH_EXTLOOKUP_VALID_UID (1<<0)
+#define KAUTH_EXTLOOKUP_VALID_UGUID (1<<1)
+#define KAUTH_EXTLOOKUP_VALID_USID (1<<2)
+#define KAUTH_EXTLOOKUP_VALID_GID (1<<3)
+#define KAUTH_EXTLOOKUP_VALID_GGUID (1<<4)
+#define KAUTH_EXTLOOKUP_VALID_GSID (1<<5)
+#define KAUTH_EXTLOOKUP_WANT_UID (1<<6)
+#define KAUTH_EXTLOOKUP_WANT_UGUID (1<<7)
+#define KAUTH_EXTLOOKUP_WANT_USID (1<<8)
+#define KAUTH_EXTLOOKUP_WANT_GID (1<<9)
+#define KAUTH_EXTLOOKUP_WANT_GGUID (1<<10)
+#define KAUTH_EXTLOOKUP_WANT_GSID (1<<11)
+#define KAUTH_EXTLOOKUP_WANT_MEMBERSHIP (1<<12)
+#define KAUTH_EXTLOOKUP_VALID_MEMBERSHIP (1<<13)
+#define KAUTH_EXTLOOKUP_ISMEMBER (1<<14)
+#define KAUTH_EXTLOOKUP_VALID_PWNAM (1<<15)
+#define KAUTH_EXTLOOKUP_WANT_PWNAM (1<<16)
+#define KAUTH_EXTLOOKUP_VALID_GRNAM (1<<17)
+#define KAUTH_EXTLOOKUP_WANT_GRNAM (1<<18)
+#define KAUTH_EXTLOOKUP_VALID_SUPGRPS (1<<19)
+#define KAUTH_EXTLOOKUP_WANT_SUPGRPS (1<<20)
+
+ __darwin_pid_t el_info_pid; /* request on behalf of PID */
+ u_int64_t el_extend; /* extension field */
+ u_int32_t el_info_reserved_1; /* reserved (APPLE) */
+
+ uid_t el_uid; /* user ID */
+ guid_t el_uguid; /* user GUID */
+ u_int32_t el_uguid_valid; /* TTL on translation result (seconds) */
+ ntsid_t el_usid; /* user NT SID */
+ u_int32_t el_usid_valid; /* TTL on translation result (seconds) */
+ gid_t el_gid; /* group ID */
+ guid_t el_gguid; /* group GUID */
+ u_int32_t el_gguid_valid; /* TTL on translation result (seconds) */
+ ntsid_t el_gsid; /* group SID */
+ u_int32_t el_gsid_valid; /* TTL on translation result (seconds) */
+ u_int32_t el_member_valid; /* TTL on group lookup result */
+ u_int32_t el_sup_grp_cnt; /* count of supplemental groups up to NGROUPS */
+ gid_t el_sup_groups[NGROUPS_MAX]; /* supplemental group list */
+};
+
+struct kauth_cache_sizes {
+ u_int32_t kcs_group_size;
+ u_int32_t kcs_id_size;
+};
+
+#define KAUTH_EXTLOOKUP_REGISTER (0)
+#define KAUTH_EXTLOOKUP_RESULT (1<<0)
+#define KAUTH_EXTLOOKUP_WORKER (1<<1)
+#define KAUTH_EXTLOOKUP_DEREGISTER (1<<2)
+#define KAUTH_GET_CACHE_SIZES (1<<3)
+#define KAUTH_SET_CACHE_SIZES (1<<4)
+#define KAUTH_CLEAR_CACHES (1<<5)
+
+#define IDENTITYSVC_ENTITLEMENT "com.apple.private.identitysvc"
+
+
+
+/*
+ * Generic Access Control Lists.
+ */
+#if defined(KERNEL) || defined (_SYS_ACL_H)
+
+typedef u_int32_t kauth_ace_rights_t;
+
+/* Access Control List Entry (ACE) */
+struct kauth_ace {
+ guid_t ace_applicable;
+ u_int32_t ace_flags;
+#define KAUTH_ACE_KINDMASK 0xf
+#define KAUTH_ACE_PERMIT 1
+#define KAUTH_ACE_DENY 2
+#define KAUTH_ACE_AUDIT 3 /* not implemented */
+#define KAUTH_ACE_ALARM 4 /* not implemented */
+#define KAUTH_ACE_INHERITED (1<<4)
+#define KAUTH_ACE_FILE_INHERIT (1<<5)
+#define KAUTH_ACE_DIRECTORY_INHERIT (1<<6)
+#define KAUTH_ACE_LIMIT_INHERIT (1<<7)
+#define KAUTH_ACE_ONLY_INHERIT (1<<8)
+#define KAUTH_ACE_SUCCESS (1<<9) /* not implemented (AUDIT/ALARM) */
+#define KAUTH_ACE_FAILURE (1<<10) /* not implemented (AUDIT/ALARM) */
+/* All flag bits controlling ACE inheritance */
+#define KAUTH_ACE_INHERIT_CONTROL_FLAGS \
+ (KAUTH_ACE_FILE_INHERIT | \
+ KAUTH_ACE_DIRECTORY_INHERIT | \
+ KAUTH_ACE_LIMIT_INHERIT | \
+ KAUTH_ACE_ONLY_INHERIT)
+ kauth_ace_rights_t ace_rights; /* scope specific */
+ /* These rights are never tested, but may be present in an ACL */
+#define KAUTH_ACE_GENERIC_ALL (1<<21)
+#define KAUTH_ACE_GENERIC_EXECUTE (1<<22)
+#define KAUTH_ACE_GENERIC_WRITE (1<<23)
+#define KAUTH_ACE_GENERIC_READ (1<<24)
+};
+
+#ifndef _KAUTH_ACE
+#define _KAUTH_ACE
+typedef struct kauth_ace *kauth_ace_t;
+#endif
+
+
+/* Access Control List */
+struct kauth_acl {
+ u_int32_t acl_entrycount;
+ u_int32_t acl_flags;
+
+ struct kauth_ace acl_ace[1];
+};
+
+/*
+ * XXX this value needs to be raised - 3893388
+ */
+#define KAUTH_ACL_MAX_ENTRIES 128
+
+/*
+ * The low 16 bits of the flags field are reserved for filesystem
+ * internal use and must be preserved by all APIs. This includes
+ * round-tripping flags through user-space interfaces.
+ */
+#define KAUTH_ACL_FLAGS_PRIVATE (0xffff)
+
+/*
+ * The high 16 bits of the flags are used to store attributes and
+ * to request specific handling of the ACL.
+ */
+
+/* inheritance will be deferred until the first rename operation */
+#define KAUTH_ACL_DEFER_INHERIT (1<<16)
+/* this ACL must not be overwritten as part of an inheritance operation */
+#define KAUTH_ACL_NO_INHERIT (1<<17)
+
+/* acl_entrycount that tells us the ACL is not valid */
+#define KAUTH_FILESEC_NOACL ((u_int32_t)(-1))
+
+/*
+ * If the acl_entrycount field is KAUTH_FILESEC_NOACL, then the size is the
+ * same as a kauth_acl structure; the intent is to put an actual entrycount of
+ * KAUTH_FILESEC_NOACL on disk to distinguish a kauth_filesec_t with an empty
+ * entry (Windows treats this as "deny all") from one that merely indicates a
+ * file group and/or owner guid values.
+ */
+#define KAUTH_ACL_SIZE(c) (__offsetof(struct kauth_acl, acl_ace) + ((u_int32_t)(c) != KAUTH_FILESEC_NOACL ? ((c) * sizeof(struct kauth_ace)) : 0))
+#define KAUTH_ACL_COPYSIZE(p) KAUTH_ACL_SIZE((p)->acl_entrycount)
+
+
+#ifndef _KAUTH_ACL
+#define _KAUTH_ACL
+typedef struct kauth_acl *kauth_acl_t;
+#endif
+
+
+
+/*
+ * Extended File Security.
+ */
+
+/* File Security information */
+struct kauth_filesec {
+ u_int32_t fsec_magic;
+#define KAUTH_FILESEC_MAGIC 0x012cc16d
+ guid_t fsec_owner;
+ guid_t fsec_group;
+
+ struct kauth_acl fsec_acl;
+};
+
+/* backwards compatibility */
+#define fsec_entrycount fsec_acl.acl_entrycount
+#define fsec_flags fsec_acl.acl_flags
+#define fsec_ace fsec_acl.acl_ace
+#define KAUTH_FILESEC_FLAGS_PRIVATE KAUTH_ACL_FLAGS_PRIVATE
+#define KAUTH_FILESEC_DEFER_INHERIT KAUTH_ACL_DEFER_INHERIT
+#define KAUTH_FILESEC_NO_INHERIT KAUTH_ACL_NO_INHERIT
+#define KAUTH_FILESEC_NONE ((kauth_filesec_t)0)
+#define KAUTH_FILESEC_WANTED ((kauth_filesec_t)1)
+
+#ifndef _KAUTH_FILESEC
+#define _KAUTH_FILESEC
+typedef struct kauth_filesec *kauth_filesec_t;
+#endif
+
+#define KAUTH_FILESEC_SIZE(c) (__offsetof(struct kauth_filesec, fsec_acl) + __offsetof(struct kauth_acl, acl_ace) + (c) * sizeof(struct kauth_ace))
+#define KAUTH_FILESEC_COPYSIZE(p) KAUTH_FILESEC_SIZE(((p)->fsec_entrycount == KAUTH_FILESEC_NOACL) ? 0 : (p)->fsec_entrycount)
+#define KAUTH_FILESEC_COUNT(s) (((s) - KAUTH_FILESEC_SIZE(0)) / sizeof(struct kauth_ace))
+#define KAUTH_FILESEC_VALID(s) ((s) >= KAUTH_FILESEC_SIZE(0) && (((s) - KAUTH_FILESEC_SIZE(0)) % sizeof(struct kauth_ace)) == 0)
+
+#define KAUTH_FILESEC_XATTR "com.apple.system.Security"
+
+/* Allowable first arguments to kauth_filesec_acl_setendian() */
+#define KAUTH_ENDIAN_HOST 0x00000001 /* set host endianness */
+#define KAUTH_ENDIAN_DISK 0x00000002 /* set disk endianness */
+
+#endif /* KERNEL || <sys/acl.h> */
+
+
+
+/* Actions, also rights bits in an ACE */
+
+#if defined(KERNEL) || defined (_SYS_ACL_H)
+#define KAUTH_VNODE_READ_DATA (1U<<1)
+#define KAUTH_VNODE_LIST_DIRECTORY KAUTH_VNODE_READ_DATA
+#define KAUTH_VNODE_WRITE_DATA (1U<<2)
+#define KAUTH_VNODE_ADD_FILE KAUTH_VNODE_WRITE_DATA
+#define KAUTH_VNODE_EXECUTE (1U<<3)
+#define KAUTH_VNODE_SEARCH KAUTH_VNODE_EXECUTE
+#define KAUTH_VNODE_DELETE (1U<<4)
+#define KAUTH_VNODE_APPEND_DATA (1U<<5)
+#define KAUTH_VNODE_ADD_SUBDIRECTORY KAUTH_VNODE_APPEND_DATA
+#define KAUTH_VNODE_DELETE_CHILD (1U<<6)
+#define KAUTH_VNODE_READ_ATTRIBUTES (1U<<7)
+#define KAUTH_VNODE_WRITE_ATTRIBUTES (1U<<8)
+#define KAUTH_VNODE_READ_EXTATTRIBUTES (1U<<9)
+#define KAUTH_VNODE_WRITE_EXTATTRIBUTES (1U<<10)
+#define KAUTH_VNODE_READ_SECURITY (1U<<11)
+#define KAUTH_VNODE_WRITE_SECURITY (1U<<12)
+#define KAUTH_VNODE_TAKE_OWNERSHIP (1U<<13)
+
+/* backwards compatibility only */
+#define KAUTH_VNODE_CHANGE_OWNER KAUTH_VNODE_TAKE_OWNERSHIP
+
+/* For Windows interoperability only */
+#define KAUTH_VNODE_SYNCHRONIZE (1U<<20)
+
+/* (1<<21) - (1<<24) are reserved for generic rights bits */
+
+/* Actions not expressed as rights bits */
+/*
+ * Authorizes the vnode as the target of a hard link.
+ */
+#define KAUTH_VNODE_LINKTARGET (1U<<25)
+
+/*
+ * Indicates that other steps have been taken to authorise the action,
+ * but authorisation should be denied for immutable objects.
+ */
+#define KAUTH_VNODE_CHECKIMMUTABLE (1U<<26)
+
+/* Action modifiers */
+/*
+ * The KAUTH_VNODE_ACCESS bit is passed to the callback if the authorisation
+ * request in progress is advisory, rather than authoritative. Listeners
+ * performing consequential work (i.e. not strictly checking authorisation)
+ * may test this flag to avoid performing unnecessary work.
+ *
+ * This bit will never be present in an ACE.
+ */
+#define KAUTH_VNODE_ACCESS (1U<<31)
+
+/*
+ * The KAUTH_VNODE_NOIMMUTABLE bit is passed to the callback along with the
+ * KAUTH_VNODE_WRITE_SECURITY bit (and no others) to indicate that the
+ * caller wishes to change one or more of the immutable flags, and the
+ * state of these flags should not be considered when authorizing the request.
+ * The system immutable flags are only ignored when the system securelevel
+ * is low enough to allow their removal.
+ */
+#define KAUTH_VNODE_NOIMMUTABLE (1U<<30)
+
+
+/*
+ * fake right that is composed by the following...
+ * vnode must have search for owner, group and world allowed
+ * plus there must be no deny modes present for SEARCH... this fake
+ * right is used by the fast lookup path to avoid checking
+ * for an exact match on the last credential to lookup
+ * the component being acted on
+ */
+#define KAUTH_VNODE_SEARCHBYANYONE (1U<<29)
+
+
+/*
+ * when passed as an 'action' to "vnode_uncache_authorized_actions"
+ * it indicates that all of the cached authorizations for that
+ * vnode should be invalidated
+ */
+#define KAUTH_INVALIDATE_CACHED_RIGHTS ((kauth_action_t)~0)
+
+
+
+/* The expansions of the GENERIC bits at evaluation time */
+#define KAUTH_VNODE_GENERIC_READ_BITS (KAUTH_VNODE_READ_DATA | \
+ KAUTH_VNODE_READ_ATTRIBUTES | \
+ KAUTH_VNODE_READ_EXTATTRIBUTES | \
+ KAUTH_VNODE_READ_SECURITY)
+
+#define KAUTH_VNODE_GENERIC_WRITE_BITS (KAUTH_VNODE_WRITE_DATA | \
+ KAUTH_VNODE_APPEND_DATA | \
+ KAUTH_VNODE_DELETE | \
+ KAUTH_VNODE_DELETE_CHILD | \
+ KAUTH_VNODE_WRITE_ATTRIBUTES | \
+ KAUTH_VNODE_WRITE_EXTATTRIBUTES | \
+ KAUTH_VNODE_WRITE_SECURITY)
+
+#define KAUTH_VNODE_GENERIC_EXECUTE_BITS (KAUTH_VNODE_EXECUTE)
+
+#define KAUTH_VNODE_GENERIC_ALL_BITS (KAUTH_VNODE_GENERIC_READ_BITS | \
+ KAUTH_VNODE_GENERIC_WRITE_BITS | \
+ KAUTH_VNODE_GENERIC_EXECUTE_BITS)
+
+/*
+ * Some sets of bits, defined here for convenience.
+ */
+#define KAUTH_VNODE_WRITE_RIGHTS (KAUTH_VNODE_ADD_FILE | \
+ KAUTH_VNODE_ADD_SUBDIRECTORY | \
+ KAUTH_VNODE_DELETE_CHILD | \
+ KAUTH_VNODE_WRITE_DATA | \
+ KAUTH_VNODE_APPEND_DATA | \
+ KAUTH_VNODE_DELETE | \
+ KAUTH_VNODE_WRITE_ATTRIBUTES | \
+ KAUTH_VNODE_WRITE_EXTATTRIBUTES | \
+ KAUTH_VNODE_WRITE_SECURITY | \
+ KAUTH_VNODE_TAKE_OWNERSHIP | \
+ KAUTH_VNODE_LINKTARGET | \
+ KAUTH_VNODE_CHECKIMMUTABLE)
+
+
+#endif /* KERNEL || <sys/acl.h> */
+
+
+#endif /* __APPLE_API_EVOLVING */
+#endif /* _SYS_KAUTH_H */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/mman.h b/lib/libc/include/aarch64-macos-gnu/sys/mman.h
new file mode 100644
index 0000000000..b254715ad3
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/mman.h
@@ -0,0 +1,263 @@
+/*
+ * Copyright (c) 2000-2020 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)mman.h 8.1 (Berkeley) 6/2/93
+ */
+
+/*
+ * Currently unsupported:
+ *
+ * [TYM] POSIX_TYPED_MEM_ALLOCATE
+ * [TYM] POSIX_TYPED_MEM_ALLOCATE_CONTIG
+ * [TYM] POSIX_TYPED_MEM_MAP_ALLOCATABLE
+ * [TYM] struct posix_typed_mem_info
+ * [TYM] posix_mem_offset()
+ * [TYM] posix_typed_mem_get_info()
+ * [TYM] posix_typed_mem_open()
+ */
+
+#ifndef _SYS_MMAN_H_
+#define _SYS_MMAN_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types.h>
+
+/*
+ * [various] The mode_t, off_t, and size_t types shall be defined as
+ * described in <sys/types.h>
+ */
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_size_t.h>
+
+#if __DARWIN_C_LEVEL >= 200809L
+#include <Availability.h>
+#endif /* __DARWIN_C_LEVEL */
+
+/*
+ * Protections are chosen from these bits, or-ed together
+ */
+#define PROT_NONE 0x00 /* [MC2] no permissions */
+#define PROT_READ 0x01 /* [MC2] pages can be read */
+#define PROT_WRITE 0x02 /* [MC2] pages can be written */
+#define PROT_EXEC 0x04 /* [MC2] pages can be executed */
+
+/*
+ * Flags contain sharing type and options.
+ * Sharing types; choose one.
+ */
+#define MAP_SHARED 0x0001 /* [MF|SHM] share changes */
+#define MAP_PRIVATE 0x0002 /* [MF|SHM] changes are private */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_COPY MAP_PRIVATE /* Obsolete */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Other flags
+ */
+#define MAP_FIXED 0x0010 /* [MF|SHM] interpret addr exactly */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_RENAME 0x0020 /* Sun: rename private pages to file */
+#define MAP_NORESERVE 0x0040 /* Sun: don't reserve needed swap area */
+#define MAP_RESERVED0080 0x0080 /* previously unimplemented MAP_INHERIT */
+#define MAP_NOEXTEND 0x0100 /* for MAP_FILE, don't change file size */
+#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
+#define MAP_NOCACHE 0x0400 /* don't cache pages for this mapping */
+#define MAP_JIT 0x0800 /* Allocate a region that will be used for JIT purposes */
+
+/*
+ * Mapping type
+ */
+#define MAP_FILE 0x0000 /* map from file (default) */
+#define MAP_ANON 0x1000 /* allocated from memory, swap space */
+#define MAP_ANONYMOUS MAP_ANON
+
+/*
+ * The MAP_RESILIENT_* flags can be used when the caller wants to map some
+ * possibly unreliable memory and be able to access it safely, possibly
+ * getting the wrong contents rather than raising any exception.
+ * For safety reasons, such mappings have to be read-only (PROT_READ access
+ * only).
+ *
+ * MAP_RESILIENT_CODESIGN:
+ * accessing this mapping will not generate code-signing violations,
+ * even if the contents are tainted.
+ * MAP_RESILIENT_MEDIA:
+ * accessing this mapping will not generate an exception if the contents
+ * are not available (unreachable removable or remote media, access beyond
+ * end-of-file, ...). Missing contents will be replaced with zeroes.
+ */
+#define MAP_RESILIENT_CODESIGN 0x2000 /* no code-signing failures */
+#define MAP_RESILIENT_MEDIA 0x4000 /* no backing-store failures */
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
+#define MAP_32BIT 0x8000 /* Return virtual addresses <4G only */
+#endif /* defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 */
+
+
+/*
+ * Flags used to support translated processes.
+ */
+#define MAP_TRANSLATED_ALLOW_EXECUTE 0x20000 /* allow execute in translated processes */
+
+#define MAP_UNIX03 0x40000 /* UNIX03 compliance */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Process memory locking
+ */
+#define MCL_CURRENT 0x0001 /* [ML] Lock only current memory */
+#define MCL_FUTURE 0x0002 /* [ML] Lock all future memory as well */
+
+/*
+ * Error return from mmap()
+ */
+#define MAP_FAILED ((void *)-1) /* [MF|SHM] mmap failed */
+
+/*
+ * msync() flags
+ */
+#define MS_ASYNC 0x0001 /* [MF|SIO] return immediately */
+#define MS_INVALIDATE 0x0002 /* [MF|SIO] invalidate all cached data */
+#define MS_SYNC 0x0010 /* [MF|SIO] msync synchronously */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MS_KILLPAGES 0x0004 /* invalidate pages, leave mapped */
+#define MS_DEACTIVATE 0x0008 /* deactivate pages, leave mapped */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+/*
+ * Advice to madvise
+ */
+#define POSIX_MADV_NORMAL 0 /* [MC1] no further special treatment */
+#define POSIX_MADV_RANDOM 1 /* [MC1] expect random page refs */
+#define POSIX_MADV_SEQUENTIAL 2 /* [MC1] expect sequential page refs */
+#define POSIX_MADV_WILLNEED 3 /* [MC1] will need these pages */
+#define POSIX_MADV_DONTNEED 4 /* [MC1] dont need these pages */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MADV_NORMAL POSIX_MADV_NORMAL
+#define MADV_RANDOM POSIX_MADV_RANDOM
+#define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL
+#define MADV_WILLNEED POSIX_MADV_WILLNEED
+#define MADV_DONTNEED POSIX_MADV_DONTNEED
+#define MADV_FREE 5 /* pages unneeded, discard contents */
+#define MADV_ZERO_WIRED_PAGES 6 /* zero the wired pages that have not been unwired before the entry is deleted */
+#define MADV_FREE_REUSABLE 7 /* pages can be reused (by anyone) */
+#define MADV_FREE_REUSE 8 /* caller wants to reuse those pages */
+#define MADV_CAN_REUSE 9
+#define MADV_PAGEOUT 10 /* page out now (internal only) */
+
+/*
+ * Return bits from mincore
+ */
+#define MINCORE_INCORE 0x1 /* Page is incore */
+#define MINCORE_REFERENCED 0x2 /* Page has been referenced by us */
+#define MINCORE_MODIFIED 0x4 /* Page has been modified by us */
+#define MINCORE_REFERENCED_OTHER 0x8 /* Page has been referenced */
+#define MINCORE_MODIFIED_OTHER 0x10 /* Page has been modified */
+#define MINCORE_PAGED_OUT 0x20 /* Page has been paged out */
+#define MINCORE_COPIED 0x40 /* Page has been copied */
+#define MINCORE_ANONYMOUS 0x80 /* Page belongs to an anonymous object */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+__BEGIN_DECLS
+/* [ML] */
+int mlockall(int);
+int munlockall(void);
+/* [MR] */
+int mlock(const void *, size_t);
+#ifndef _MMAP
+#define _MMAP
+/* [MC3]*/
+void * mmap(void *, size_t, int, int, int, off_t) __DARWIN_ALIAS(mmap);
+#endif
+/* [MPR] */
+int mprotect(void *, size_t, int) __DARWIN_ALIAS(mprotect);
+/* [MF|SIO] */
+int msync(void *, size_t, int) __DARWIN_ALIAS_C(msync);
+/* [MR] */
+int munlock(const void *, size_t);
+/* [MC3]*/
+int munmap(void *, size_t) __DARWIN_ALIAS(munmap);
+/* [SHM] */
+int shm_open(const char *, int, ...);
+int shm_unlink(const char *);
+/* [ADV] */
+int posix_madvise(void *, size_t, int);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int madvise(void *, size_t, int);
+int mincore(const void *, size_t, char *);
+int minherit(void *, size_t, int);
+#endif
+
+
+__END_DECLS
+
+#endif /* !_SYS_MMAN_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/mount.h b/lib/libc/include/aarch64-macos-gnu/sys/mount.h
new file mode 100644
index 0000000000..85a8347ddf
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/mount.h
@@ -0,0 +1,434 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)mount.h 8.21 (Berkeley) 5/20/95
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections. This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+
+#ifndef _SYS_MOUNT_H_
+#define _SYS_MOUNT_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/attr.h> /* needed for vol_capabilities_attr_t */
+#include <os/base.h>
+
+#include <stdint.h>
+#include <sys/ucred.h>
+#include <sys/queue.h> /* XXX needed for user builds */
+#include <Availability.h>
+
+#include <sys/_types/_fsid_t.h> /* file system id type */
+
+/*
+ * file system statistics
+ */
+
+#define MFSNAMELEN 15 /* length of fs type name, not inc. null */
+#define MFSTYPENAMELEN 16 /* length of fs type name including null */
+
+#if __DARWIN_64_BIT_INO_T
+#define MNAMELEN MAXPATHLEN /* length of buffer for returned name */
+#else /* ! __DARWIN_64_BIT_INO_T */
+#define MNAMELEN 90 /* length of buffer for returned name */
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#define MNT_EXT_ROOT_DATA_VOL 0x00000001 /* Data volume of root volume group */
+
+#define __DARWIN_STRUCT_STATFS64 { \
+ uint32_t f_bsize; /* fundamental file system block size */ \
+ int32_t f_iosize; /* optimal transfer block size */ \
+ uint64_t f_blocks; /* total data blocks in file system */ \
+ uint64_t f_bfree; /* free blocks in fs */ \
+ uint64_t f_bavail; /* free blocks avail to non-superuser */ \
+ uint64_t f_files; /* total file nodes in file system */ \
+ uint64_t f_ffree; /* free file nodes in fs */ \
+ fsid_t f_fsid; /* file system id */ \
+ uid_t f_owner; /* user that mounted the filesystem */ \
+ uint32_t f_type; /* type of filesystem */ \
+ uint32_t f_flags; /* copy of mount exported flags */ \
+ uint32_t f_fssubtype; /* fs sub-type (flavor) */ \
+ char f_fstypename[MFSTYPENAMELEN]; /* fs type name */ \
+ char f_mntonname[MAXPATHLEN]; /* directory on which mounted */ \
+ char f_mntfromname[MAXPATHLEN]; /* mounted filesystem */ \
+ uint32_t f_flags_ext; /* extended flags */ \
+ uint32_t f_reserved[7]; /* For future use */ \
+}
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+
+struct statfs64 __DARWIN_STRUCT_STATFS64;
+
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+
+#if __DARWIN_64_BIT_INO_T
+
+struct statfs __DARWIN_STRUCT_STATFS64;
+
+#else /* !__DARWIN_64_BIT_INO_T */
+
+/*
+ * LP64 - WARNING - must be kept in sync with struct user_statfs in mount_internal.h.
+ */
+struct statfs {
+ short f_otype; /* TEMPORARY SHADOW COPY OF f_type */
+ short f_oflags; /* TEMPORARY SHADOW COPY OF f_flags */
+ long f_bsize; /* fundamental file system block size */
+ long f_iosize; /* optimal transfer block size */
+ long f_blocks; /* total data blocks in file system */
+ long f_bfree; /* free blocks in fs */
+ long f_bavail; /* free blocks avail to non-superuser */
+ long f_files; /* total file nodes in file system */
+ long f_ffree; /* free file nodes in fs */
+ fsid_t f_fsid; /* file system id */
+ uid_t f_owner; /* user that mounted the filesystem */
+ short f_reserved1; /* spare for later */
+ short f_type; /* type of filesystem */
+ long f_flags; /* copy of mount exported flags */
+ long f_reserved2[2]; /* reserved for future use */
+ char f_fstypename[MFSNAMELEN]; /* fs type name */
+ char f_mntonname[MNAMELEN]; /* directory on which mounted */
+ char f_mntfromname[MNAMELEN];/* mounted filesystem */
+ char f_reserved3; /* For alignment */
+ long f_reserved4[4]; /* For future use */
+};
+
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#pragma pack(4)
+
+struct vfsstatfs {
+ uint32_t f_bsize; /* fundamental file system block size */
+ size_t f_iosize; /* optimal transfer block size */
+ uint64_t f_blocks; /* total data blocks in file system */
+ uint64_t f_bfree; /* free blocks in fs */
+ uint64_t f_bavail; /* free blocks avail to non-superuser */
+ uint64_t f_bused; /* free blocks avail to non-superuser */
+ uint64_t f_files; /* total file nodes in file system */
+ uint64_t f_ffree; /* free file nodes in fs */
+ fsid_t f_fsid; /* file system id */
+ uid_t f_owner; /* user that mounted the filesystem */
+ uint64_t f_flags; /* copy of mount exported flags */
+ char f_fstypename[MFSTYPENAMELEN];/* fs type name inclus */
+ char f_mntonname[MAXPATHLEN];/* directory on which mounted */
+ char f_mntfromname[MAXPATHLEN];/* mounted filesystem */
+ uint32_t f_fssubtype; /* fs sub-type (flavor) */
+ void *f_reserved[2]; /* For future use == 0 */
+};
+
+#pragma pack()
+
+
+/*
+ * User specifiable flags.
+ *
+ * Unmount uses MNT_FORCE flag.
+ */
+#define MNT_RDONLY 0x00000001 /* read only filesystem */
+#define MNT_SYNCHRONOUS 0x00000002 /* file system written synchronously */
+#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */
+#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */
+#define MNT_NODEV 0x00000010 /* don't interpret special files */
+#define MNT_UNION 0x00000020 /* union with underlying filesystem */
+#define MNT_ASYNC 0x00000040 /* file system written asynchronously */
+#define MNT_CPROTECT 0x00000080 /* file system supports content protection */
+
+/*
+ * NFS export related mount flags.
+ */
+#define MNT_EXPORTED 0x00000100 /* file system is exported */
+
+/*
+ * Denotes storage which can be removed from the system by the user.
+ */
+
+#define MNT_REMOVABLE 0x00000200
+
+/*
+ * MAC labeled / "quarantined" flag
+ */
+#define MNT_QUARANTINE 0x00000400 /* file system is quarantined */
+
+/*
+ * Flags set by internal operations.
+ */
+#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */
+#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */
+#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */
+#define MNT_DOVOLFS 0x00008000 /* FS supports volfs (deprecated flag in Mac OS X 10.5) */
+
+
+#define MNT_DONTBROWSE 0x00100000 /* file system is not appropriate path to user data */
+#define MNT_IGNORE_OWNERSHIP 0x00200000 /* VFS will ignore ownership information on filesystem objects */
+#define MNT_AUTOMOUNTED 0x00400000 /* filesystem was mounted by automounter */
+#define MNT_JOURNALED 0x00800000 /* filesystem is journaled */
+#define MNT_NOUSERXATTR 0x01000000 /* Don't allow user extended attributes */
+#define MNT_DEFWRITE 0x02000000 /* filesystem should defer writes */
+#define MNT_MULTILABEL 0x04000000 /* MAC support for individual labels */
+#define MNT_NOATIME 0x10000000 /* disable update of file access time */
+#define MNT_SNAPSHOT 0x40000000 /* The mount is a snapshot */
+#define MNT_STRICTATIME 0x80000000 /* enable strict update of file access time */
+
+/* backwards compatibility only */
+#define MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP
+
+
+/*
+ * XXX I think that this could now become (~(MNT_CMDFLAGS))
+ * but the 'mount' program may need changing to handle this.
+ */
+#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \
+ MNT_NOSUID | MNT_NODEV | MNT_UNION | \
+ MNT_ASYNC | MNT_EXPORTED | MNT_QUARANTINE | \
+ MNT_LOCAL | MNT_QUOTA | MNT_REMOVABLE | \
+ MNT_ROOTFS | MNT_DOVOLFS | MNT_DONTBROWSE | \
+ MNT_IGNORE_OWNERSHIP | MNT_AUTOMOUNTED | MNT_JOURNALED | \
+ MNT_NOUSERXATTR | MNT_DEFWRITE | MNT_MULTILABEL | \
+ MNT_NOATIME | MNT_STRICTATIME | MNT_SNAPSHOT | MNT_CPROTECT)
+/*
+ * External filesystem command modifier flags.
+ * Unmount can use the MNT_FORCE flag.
+ * XXX These are not STATES and really should be somewhere else.
+ * External filesystem control flags.
+ */
+#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */
+#define MNT_NOBLOCK 0x00020000 /* don't block unmount if not responding */
+#define MNT_RELOAD 0x00040000 /* reload filesystem data */
+#define MNT_FORCE 0x00080000 /* force unmount or readonly change */
+#define MNT_CMDFLAGS (MNT_UPDATE|MNT_NOBLOCK|MNT_RELOAD|MNT_FORCE)
+
+
+
+/*
+ * Sysctl CTL_VFS definitions.
+ *
+ * Second level identifier specifies which filesystem. Second level
+ * identifier VFS_GENERIC returns information about all filesystems.
+ */
+#define VFS_GENERIC 0 /* generic filesystem information */
+#define VFS_NUMMNTOPS 1 /* int: total num of vfs mount/unmount operations */
+/*
+ * Third level identifiers for VFS_GENERIC are given below; third
+ * level identifiers for specific filesystems are given in their
+ * mount specific header files.
+ */
+#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */
+#define VFS_CONF 2 /* struct: vfsconf for filesystem given
+ * as next argument */
+
+/*
+ * Flags for various system call interfaces.
+ *
+ * waitfor flags to vfs_sync() and getfsstat()
+ */
+#define MNT_WAIT 1 /* synchronized I/O file integrity completion */
+#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */
+#define MNT_DWAIT 4 /* synchronized I/O data integrity completion */
+
+
+#if !defined(KERNEL) && !defined(_KERN_SYS_KERNELTYPES_H_) /* also defined in kernel_types.h */
+struct mount;
+typedef struct mount * mount_t;
+struct vnode;
+typedef struct vnode * vnode_t;
+#endif
+
+/* Reserved fields preserve binary compatibility */
+struct vfsconf {
+ uint32_t vfc_reserved1; /* opaque */
+ char vfc_name[MFSNAMELEN]; /* filesystem type name */
+ int vfc_typenum; /* historic filesystem type number */
+ int vfc_refcount; /* number mounted of this type */
+ int vfc_flags; /* permanent flags */
+ uint32_t vfc_reserved2; /* opaque */
+ uint32_t vfc_reserved3; /* opaque */
+};
+
+struct vfsidctl {
+ int vc_vers; /* should be VFSIDCTL_VERS1 (below) */
+ fsid_t vc_fsid; /* fsid to operate on. */
+ void *vc_ptr; /* pointer to data structure. */
+ size_t vc_len; /* sizeof said structure. */
+ u_int32_t vc_spare[12]; /* spare (must be zero). */
+};
+
+
+/* vfsidctl API version. */
+#define VFS_CTL_VERS1 0x01
+
+
+/*
+ * New style VFS sysctls, do not reuse/conflict with the namespace for
+ * private sysctls.
+ */
+#define VFS_CTL_OSTATFS 0x00010001 /* old legacy statfs */
+#define VFS_CTL_UMOUNT 0x00010002 /* unmount */
+#define VFS_CTL_QUERY 0x00010003 /* anything wrong? (vfsquery) */
+#define VFS_CTL_NEWADDR 0x00010004 /* reconnect to new address */
+#define VFS_CTL_TIMEO 0x00010005 /* set timeout for vfs notification */
+#define VFS_CTL_NOLOCKS 0x00010006 /* disable file locking */
+#define VFS_CTL_SADDR 0x00010007 /* get server address */
+#define VFS_CTL_DISC 0x00010008 /* server disconnected */
+#define VFS_CTL_SERVERINFO 0x00010009 /* information about fs server */
+#define VFS_CTL_NSTATUS 0x0001000A /* netfs mount status */
+#define VFS_CTL_STATFS64 0x0001000B /* statfs64 */
+
+/*
+ * Automatically select the correct VFS_CTL_*STATFS* flavor based
+ * on what "struct statfs" layout the client will use.
+ */
+#if __DARWIN_64_BIT_INO_T
+#define VFS_CTL_STATFS VFS_CTL_STATFS64
+#else
+#define VFS_CTL_STATFS VFS_CTL_OSTATFS
+#endif
+
+struct vfsquery {
+ u_int32_t vq_flags;
+ u_int32_t vq_spare[31];
+};
+
+struct vfs_server {
+ int32_t vs_minutes; /* minutes until server goes down. */
+ u_int8_t vs_server_name[MAXHOSTNAMELEN * 3]; /* UTF8 server name to display (null terminated) */
+};
+
+/*
+ * NetFS mount status - returned by VFS_CTL_NSTATUS
+ */
+struct netfs_status {
+ u_int32_t ns_status; // Current status of mount (vfsquery flags)
+ char ns_mountopts[512]; // Significant mount options
+ uint32_t ns_waittime; // Time waiting for reply (sec)
+ uint32_t ns_threadcount; // Number of threads blocked on network calls
+ uint64_t ns_threadids[0]; // Thread IDs of those blocked threads
+};
+
+/* vfsquery flags */
+#define VQ_NOTRESP 0x0001 /* server down */
+#define VQ_NEEDAUTH 0x0002 /* server bad auth */
+#define VQ_LOWDISK 0x0004 /* we're low on space */
+#define VQ_MOUNT 0x0008 /* new filesystem arrived */
+#define VQ_UNMOUNT 0x0010 /* filesystem has left */
+#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */
+#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external program */
+#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */
+#define VQ_UPDATE 0x0100 /* filesystem information has changed */
+#define VQ_VERYLOWDISK 0x0200 /* file system has *very* little disk space left */
+#define VQ_SYNCEVENT 0x0400 /* a sync just happened (not set by kernel starting Mac OS X 10.9) */
+#define VQ_SERVEREVENT 0x0800 /* server issued notification/warning */
+#define VQ_QUOTA 0x1000 /* a user quota has been hit */
+#define VQ_NEARLOWDISK 0x2000 /* Above lowdisk and below desired disk space */
+#define VQ_DESIRED_DISK 0x4000 /* the desired disk space */
+#define VQ_FREE_SPACE_CHANGE 0x8000 /* free disk space has significantly changed */
+#define VQ_FLAG10000 0x10000 /* placeholder */
+
+
+
+
+/*
+ * Generic file handle
+ */
+#define NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE
+#define NFSV4_MAX_FH_SIZE 128
+#define NFSV3_MAX_FH_SIZE 64
+#define NFSV2_MAX_FH_SIZE 32
+struct fhandle {
+ unsigned int fh_len; /* length of file handle */
+ unsigned char fh_data[NFS_MAX_FH_SIZE]; /* file handle value */
+};
+typedef struct fhandle fhandle_t;
+
+
+__BEGIN_DECLS
+int fhopen(const struct fhandle *, int);
+int fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int fstatfs64(int, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int getfh(const char *, fhandle_t *);
+int getfsstat(struct statfs *, int, int) __DARWIN_INODE64(getfsstat);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int getfsstat64(struct statfs64 *, int, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int getmntinfo(struct statfs **, int) __DARWIN_INODE64(getmntinfo);
+int getmntinfo_r_np(struct statfs **, int) __DARWIN_INODE64(getmntinfo_r_np)
+__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int getmntinfo64(struct statfs64 **, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int mount(const char *, const char *, int, void *);
+int fmount(const char *, int, int, void *) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int statfs(const char *, struct statfs *) __DARWIN_INODE64(statfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int statfs64(const char *, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int unmount(const char *, int);
+int getvfsbyname(const char *, struct vfsconf *);
+__END_DECLS
+
+#endif /* !_SYS_MOUNT_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/param.h b/lib/libc/include/aarch64-macos-gnu/sys/param.h
new file mode 100644
index 0000000000..ee007bdd3e
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/param.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995, 1997 Apple Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)param.h 8.3 (Berkeley) 4/4/95
+ */
+
+#ifndef _SYS_PARAM_H_
+#define _SYS_PARAM_H_
+
+#define BSD 199506 /* System version (year & month). */
+#define BSD4_3 1
+#define BSD4_4 1
+
+#define NeXTBSD 1995064 /* NeXTBSD version (year, month, release) */
+#define NeXTBSD4_0 0 /* NeXTBSD 4.0 */
+
+#include <sys/_types.h>
+#include <sys/_types/_null.h>
+
+#ifndef LOCORE
+#include <sys/types.h>
+#endif
+
+/*
+ * Machine-independent constants (some used in following include files).
+ * Redefined constants are from POSIX 1003.1 limits file.
+ *
+ * MAXCOMLEN should be >= sizeof(ac_comm) (see <acct.h>)
+ * MAXLOGNAME should be >= UT_NAMESIZE (see <utmp.h>)
+ */
+#include <sys/syslimits.h>
+
+#define MAXCOMLEN 16 /* max command name remembered */
+#define MAXINTERP 64 /* max interpreter file name length */
+#define MAXLOGNAME 255 /* max login name length */
+#define MAXUPRC CHILD_MAX /* max simultaneous processes */
+#define NCARGS ARG_MAX /* max bytes for an exec function */
+#define NGROUPS NGROUPS_MAX /* max number groups */
+#define NOFILE 256 /* default max open files per process */
+#define NOGROUP 65535 /* marker for empty group set member */
+#define MAXHOSTNAMELEN 256 /* max hostname size */
+#define MAXDOMNAMELEN 256 /* maximum domain name length */
+
+/* Machine type dependent parameters. */
+#include <machine/param.h>
+
+/* More types and definitions used throughout the kernel. */
+#include <limits.h>
+
+/* Signals. */
+#include <sys/signal.h>
+
+/*
+ * Priorities. Note that with 32 run queues, differences less than 4 are
+ * insignificant.
+ */
+#define PSWP 0
+#define PVM 4
+#define PINOD 8
+#define PRIBIO 16
+#define PVFS 20
+#define PZERO 22 /* No longer magic, shouldn't be here. XXX */
+#define PSOCK 24
+#define PWAIT 32
+#define PLOCK 36
+#define PPAUSE 40
+#define PUSER 50
+#define MAXPRI 127 /* Priorities range from 0 through MAXPRI. */
+
+#define PRIMASK 0x0ff
+#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */
+#define PTTYBLOCK 0x200 /* for tty SIGTTOU and SIGTTIN blocking */
+#define PDROP 0x400 /* OR'd with pri to stop re-aquistion of mutex upon wakeup */
+#define PSPIN 0x800 /* OR'd with pri to require mutex in spin mode upon wakeup */
+
+#define NBPW sizeof(int) /* number of bytes per word (integer) */
+
+#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */
+#define NODEV (dev_t)(-1) /* non-existent device */
+
+/*
+ * Clustering of hardware pages on machines with ridiculously small
+ * page sizes is done here. The paging subsystem deals with units of
+ * CLSIZE pte's describing NBPG (from machine/param.h) pages each.
+ */
+#define CLBYTES (CLSIZE*NBPG)
+#define CLOFSET (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */
+#define claligned(x) ((((int)(x))&CLOFSET)==0)
+#define CLOFF CLOFSET
+#define CLSHIFT (PGSHIFT+CLSIZELOG2)
+
+#if CLSIZE == 1
+#define clbase(i) (i)
+#define clrnd(i) (i)
+#else
+/* Give the base virtual address (first of CLSIZE). */
+#define clbase(i) ((i) &~ (CLSIZE-1))
+/* Round a number of clicks up to a whole cluster. */
+#define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
+#endif
+
+#define CBLOCK 64 /* Clist block size, must be a power of 2. */
+#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */
+ /* Data chars/clist. */
+#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE)
+#define CROUND (CBLOCK - 1) /* Clist rounding. */
+
+/*
+ * File system parameters and macros.
+ *
+ * The file system is made out of blocks of at most MAXPHYS units, with
+ * smaller units (fragments) only in the last direct block. MAXBSIZE
+ * primarily determines the size of buffers in the buffer pool. It may be
+ * made larger than MAXPHYS without any effect on existing file systems;
+ * however making it smaller may make some file systems unmountable.
+ * We set this to track the value of MAX_UPL_TRANSFER_BYTES from
+ * osfmk/mach/memory_object_types.h to bound it at the maximum UPL size.
+ */
+#define MAXBSIZE (256 * 4096)
+#define MAXPHYSIO MAXPHYS
+#define MAXFRAG 8
+
+#define MAXPHYSIO_WIRED (16 * 1024 * 1024)
+
+/*
+ * MAXPATHLEN defines the longest permissable path length after expanding
+ * symbolic links. It is used to allocate a temporary buffer from the buffer
+ * pool in which to do the name expansion, hence should be a power of two,
+ * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the
+ * maximum number of symbolic links that may be expanded in a path name.
+ * It should be set high enough to allow all legitimate uses, but halt
+ * infinite loops reasonably quickly.
+ */
+#define MAXPATHLEN PATH_MAX
+#define MAXSYMLINKS 32
+
+/* Bit map related macros. */
+#define setbit(a, i) (((unsigned char *)(a))[(i)/NBBY] |= 1u<<((i)%NBBY))
+#define clrbit(a, i) (((unsigned char *)(a))[(i)/NBBY] &= ~(1u<<((i)%NBBY)))
+#define isset(a, i) (((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY)))
+#define isclr(a, i) ((((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) == 0)
+
+/* Macros for counting and rounding. */
+#ifndef howmany
+#define howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1))
+#endif
+#define roundup(x, y) ((((x) % (y)) == 0) ? \
+ (x) : ((x) + ((y) - ((x) % (y)))))
+#define powerof2(x) ((((x)-1)&(x))==0)
+
+/* Macros for min/max. */
+#ifndef MIN
+#define MIN(a, b) (((a)<(b))?(a):(b))
+#endif /* MIN */
+#ifndef MAX
+#define MAX(a, b) (((a)>(b))?(a):(b))
+#endif /* MAX */
+
+/*
+ * Scale factor for scaled integers used to count %cpu time and load avgs.
+ *
+ * The number of CPU `tick's that map to a unique `%age' can be expressed
+ * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that
+ * can be calculated (assuming 32 bits) can be closely approximated using
+ * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15).
+ *
+ * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
+ * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
+ */
+#define FSHIFT 11 /* bits to right of fixed binary point */
+#define FSCALE (1<<FSHIFT)
+
+#endif /* _SYS_PARAM_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/proc.h b/lib/libc/include/aarch64-macos-gnu/sys/proc.h
new file mode 100644
index 0000000000..1d1239ff45
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/proc.h
@@ -0,0 +1,224 @@
+/*
+ * 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, 1997 Apple Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1986, 1989, 1991, 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.
+ *
+ * @(#)proc.h 8.15 (Berkeley) 5/19/95
+ */
+
+#ifndef _SYS_PROC_H_
+#define _SYS_PROC_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/select.h> /* For struct selinfo. */
+#include <sys/queue.h>
+#include <sys/lock.h>
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/time.h>
+#include <mach/boolean.h>
+
+
+
+struct session;
+struct pgrp;
+struct proc;
+struct proc_ident;
+
+/* Exported fields for kern sysctls */
+struct extern_proc {
+ union {
+ struct {
+ struct proc *__p_forw; /* Doubly-linked run/sleep queue. */
+ struct proc *__p_back;
+ } p_st1;
+ struct timeval __p_starttime; /* process start time */
+ } p_un;
+#define p_forw p_un.p_st1.__p_forw
+#define p_back p_un.p_st1.__p_back
+#define p_starttime p_un.__p_starttime
+ struct vmspace *p_vmspace; /* Address space. */
+ struct sigacts *p_sigacts; /* Signal actions, state (PROC ONLY). */
+ int p_flag; /* P_* flags. */
+ char p_stat; /* S* process status. */
+ pid_t p_pid; /* Process identifier. */
+ pid_t p_oppid; /* Save parent pid during ptrace. XXX */
+ int p_dupfd; /* Sideways return value from fdopen. XXX */
+ /* Mach related */
+ caddr_t user_stack; /* where user stack was allocated */
+ void *exit_thread; /* XXX Which thread is exiting? */
+ int p_debugger; /* allow to debug */
+ boolean_t sigwait; /* indication to suspend */
+ /* scheduling */
+ u_int p_estcpu; /* Time averaged value of p_cpticks. */
+ int p_cpticks; /* Ticks of cpu time. */
+ fixpt_t p_pctcpu; /* %cpu for this process during p_swtime */
+ void *p_wchan; /* Sleep address. */
+ char *p_wmesg; /* Reason for sleep. */
+ u_int p_swtime; /* Time swapped in or out. */
+ u_int p_slptime; /* Time since last blocked. */
+ struct itimerval p_realtimer; /* Alarm timer. */
+ struct timeval p_rtime; /* Real time. */
+ u_quad_t p_uticks; /* Statclock hits in user mode. */
+ u_quad_t p_sticks; /* Statclock hits in system mode. */
+ u_quad_t p_iticks; /* Statclock hits processing intr. */
+ int p_traceflag; /* Kernel trace points. */
+ struct vnode *p_tracep; /* Trace to vnode. */
+ int p_siglist; /* DEPRECATED. */
+ struct vnode *p_textvp; /* Vnode of executable. */
+ int p_holdcnt; /* If non-zero, don't swap. */
+ sigset_t p_sigmask; /* DEPRECATED. */
+ sigset_t p_sigignore; /* Signals being ignored. */
+ sigset_t p_sigcatch; /* Signals being caught by user. */
+ u_char p_priority; /* Process priority. */
+ u_char p_usrpri; /* User-priority based on p_cpu and p_nice. */
+ char p_nice; /* Process "nice" value. */
+ char p_comm[MAXCOMLEN + 1];
+ struct pgrp *p_pgrp; /* Pointer to process group. */
+ struct user *p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */
+ u_short p_xstat; /* Exit status for wait; also stop signal. */
+ u_short p_acflag; /* Accounting flags. */
+ struct rusage *p_ru; /* Exit information. XXX */
+};
+
+
+/* Status values. */
+#define SIDL 1 /* Process being created by fork. */
+#define SRUN 2 /* Currently runnable. */
+#define SSLEEP 3 /* Sleeping on an address. */
+#define SSTOP 4 /* Process debugging or suspension. */
+#define SZOMB 5 /* Awaiting collection by parent. */
+
+/* These flags are kept in extern_proc.p_flag. */
+#define P_ADVLOCK 0x00000001 /* Process may hold POSIX adv. lock */
+#define P_CONTROLT 0x00000002 /* Has a controlling terminal */
+#define P_LP64 0x00000004 /* Process is LP64 */
+#define P_NOCLDSTOP 0x00000008 /* No SIGCHLD when children stop */
+
+#define P_PPWAIT 0x00000010 /* Parent waiting for chld exec/exit */
+#define P_PROFIL 0x00000020 /* Has started profiling */
+#define P_SELECT 0x00000040 /* Selecting; wakeup/waiting danger */
+#define P_CONTINUED 0x00000080 /* Process was stopped and continued */
+
+#define P_SUGID 0x00000100 /* Has set privileges since last exec */
+#define P_SYSTEM 0x00000200 /* Sys proc: no sigs, stats or swap */
+#define P_TIMEOUT 0x00000400 /* Timing out during sleep */
+#define P_TRACED 0x00000800 /* Debugged process being traced */
+
+#define P_DISABLE_ASLR 0x00001000 /* Disable address space layout randomization */
+#define P_WEXIT 0x00002000 /* Working on exiting */
+#define P_EXEC 0x00004000 /* Process called exec. */
+
+/* Should be moved to machine-dependent areas. */
+#define P_OWEUPC 0x00008000 /* Owe process an addupc() call at next ast. */
+
+#define P_AFFINITY 0x00010000 /* xxx */
+#define P_TRANSLATED 0x00020000 /* xxx */
+#define P_CLASSIC P_TRANSLATED /* xxx */
+
+#define P_DELAYIDLESLEEP 0x00040000 /* Process is marked to delay idle sleep on disk IO */
+#define P_CHECKOPENEVT 0x00080000 /* check if a vnode has the OPENEVT flag set on open */
+
+#define P_DEPENDENCY_CAPABLE 0x00100000 /* process is ok to call vfs_markdependency() */
+#define P_REBOOT 0x00200000 /* Process called reboot() */
+#define P_RESV6 0x00400000 /* used to be P_TBE */
+#define P_RESV7 0x00800000 /* (P_SIGEXC)signal exceptions */
+
+#define P_THCWD 0x01000000 /* process has thread cwd */
+#define P_RESV9 0x02000000 /* (P_VFORK)process has vfork children */
+#define P_ADOPTPERSONA 0x04000000 /* process adopted a persona (used to be P_NOATTACH) */
+#define P_RESV11 0x08000000 /* (P_INVFORK) proc in vfork */
+
+#define P_NOSHLIB 0x10000000 /* no shared libs are in use for proc */
+ /* flag set on exec */
+#define P_FORCEQUOTA 0x20000000 /* Force quota for root */
+#define P_NOCLDWAIT 0x40000000 /* No zombies when chil procs exit */
+#define P_NOREMOTEHANG 0x80000000 /* Don't hang on remote FS ops */
+
+#define P_INMEM 0 /* Obsolete: retained for compilation */
+#define P_NOSWAP 0 /* Obsolete: retained for compilation */
+#define P_PHYSIO 0 /* Obsolete: retained for compilation */
+#define P_FSTRACE 0 /* Obsolete: retained for compilation */
+#define P_SSTEP 0 /* Obsolete: retained for compilation */
+
+#define P_DIRTY_TRACK 0x00000001 /* track dirty state */
+#define P_DIRTY_ALLOW_IDLE_EXIT 0x00000002 /* process can be idle-exited when clean */
+#define P_DIRTY_DEFER 0x00000004 /* defer initial opt-in to idle-exit */
+#define P_DIRTY 0x00000008 /* process is dirty */
+#define P_DIRTY_SHUTDOWN 0x00000010 /* process is dirty during shutdown */
+#define P_DIRTY_TERMINATED 0x00000020 /* process has been marked for termination */
+#define P_DIRTY_BUSY 0x00000040 /* serialization flag */
+#define P_DIRTY_MARKED 0x00000080 /* marked dirty previously */
+#define P_DIRTY_AGING_IN_PROGRESS 0x00000100 /* aging in one of the 'aging bands' */
+#define P_DIRTY_LAUNCH_IN_PROGRESS 0x00000200 /* launch is in progress */
+#define P_DIRTY_DEFER_ALWAYS 0x00000400 /* defer going to idle-exit after every dirty->clean transition.
+ * For legacy jetsam policy only. This is the default with the other policies.*/
+
+#define P_DIRTY_IS_DIRTY (P_DIRTY | P_DIRTY_SHUTDOWN)
+#define P_DIRTY_IDLE_EXIT_ENABLED (P_DIRTY_TRACK|P_DIRTY_ALLOW_IDLE_EXIT)
+
+
+
+
+#endif /* !_SYS_PROC_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/resource.h b/lib/libc/include/aarch64-macos-gnu/sys/resource.h
new file mode 100644
index 0000000000..b8da0be04d
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/resource.h
@@ -0,0 +1,512 @@
+/*
+ * 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
+
+/* 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
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+__BEGIN_DECLS
+int getpriority(int, id_t);
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+int getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+int getrlimit(int, struct rlimit *) __DARWIN_ALIAS(getrlimit);
+int getrusage(int, struct rusage *);
+int setpriority(int, id_t, int);
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+int setiopolicy_np(int, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+int setrlimit(int, const struct rlimit *) __DARWIN_ALIAS(setrlimit);
+__END_DECLS
+
+#endif /* !_SYS_RESOURCE_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/shm.h b/lib/libc/include/aarch64-macos-gnu/sys/shm.h
new file mode 100644
index 0000000000..4c34bf4dc7
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/shm.h
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* $NetBSD: shm.h,v 1.15 1994/06/29 06:45:17 cgd Exp $ */
+
+/*
+ * Copyright (c) 1994 Adam Glass
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Adam Glass.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * As defined+described in "X/Open System Interfaces and Headers"
+ * Issue 4, p. XXX
+ */
+
+#ifndef _SYS_SHM_H_
+#define _SYS_SHM_H_
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/*
+ * [XSI] All of the symbols from <sys/ipc.h> SHALL be defined
+ * when this header is included
+ */
+#include <sys/ipc.h>
+
+/*
+ * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as
+ * described in <sys/types.h>.
+ *
+ * NOTE: The definition of the key_t type is implicit from the
+ * inclusion of <sys/ipc.h>
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_size_t.h>
+
+/*
+ * [XSI] The unsigned integer type used for the number of current attaches
+ * that MUST be able to store values at least as large as a type unsigned
+ * short.
+ */
+typedef unsigned short shmatt_t;
+
+
+/*
+ * Possible flag values which may be OR'ed into the third argument to
+ * shmat()
+ */
+#define SHM_RDONLY 010000 /* [XSI] Attach read-only (else read-write) */
+#define SHM_RND 020000 /* [XSI] Round attach address to SHMLBA */
+
+/*
+ * This value is symbolic, and generally not expected to be sed by user
+ * programs directly, although such ise is permitted by the standard. Its
+ * value in our implementation is equal to the number of bytes per page.
+ *
+ * NOTE: We DO NOT obtain this value from the appropriate system
+ * headers at this time, to avoid the resulting namespace
+ * pollution, which is why we discourages its use.
+ */
+#if __arm64__
+#define SHMLBA (16*1024) /* [XSI] Segment low boundary address multiple*/
+#else /* __arm64__ */
+#define SHMLBA 4096 /* [XSI] Segment low boundary address multiple*/
+#endif /* __arm64__ */
+
+/* "official" access mode definitions; somewhat braindead since you have
+ * to specify (SHM_* >> 3) for group and (SHM_* >> 6) for world permissions */
+#define SHM_R (IPC_R)
+#define SHM_W (IPC_W)
+
+#pragma pack(4)
+
+/*
+ * Technically, we should force all code references to the new structure
+ * definition, not in just the standards conformance case, and leave the
+ * legacy interface there for binary compatibility only. Currently, we
+ * are only forcing this for programs requesting standards conformance.
+ */
+#if __DARWIN_UNIX03 || defined(KERNEL)
+/*
+ * Structure used internally.
+ *
+ * This structure is exposed because standards dictate that it is used as
+ * the third argment to shmctl().
+ *
+ * NOTE: The field shm_internal is not meaningful in user space,
+ * and must not be used there.
+ */
+#if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE))
+struct shmid_ds
+#else
+#define shmid_ds __shmid_ds_new
+struct __shmid_ds_new
+#endif
+{
+ struct __ipc_perm_new shm_perm; /* [XSI] Operation permission value */
+ size_t shm_segsz; /* [XSI] Size of segment in bytes */
+ pid_t shm_lpid; /* [XSI] PID of last shared memory op */
+ pid_t shm_cpid; /* [XSI] PID of creator */
+ shmatt_t shm_nattch; /* [XSI] Number of current attaches */
+ time_t shm_atime; /* [XSI] Time of last shmat() */
+ time_t shm_dtime; /* [XSI] Time of last shmdt() */
+ time_t shm_ctime; /* [XSI] Time of last shmctl() change */
+ void *shm_internal; /* reserved for kernel use */
+};
+#else /* !__DARWIN_UNIX03 */
+#define shmid_ds __shmid_ds_old
+#endif /* !__DARWIN_UNIX03 */
+
+#if !__DARWIN_UNIX03
+struct __shmid_ds_old {
+ struct __ipc_perm_old shm_perm; /* [XSI] Operation permission value */
+ size_t shm_segsz; /* [XSI] Size of segment in bytes */
+ pid_t shm_lpid; /* [XSI] PID of last shared memory op */
+ pid_t shm_cpid; /* [XSI] PID of creator */
+ shmatt_t shm_nattch; /* [XSI] Number of current attaches */
+ time_t shm_atime; /* [XSI] Time of last shmat() */
+ time_t shm_dtime; /* [XSI] Time of last shmdt() */
+ time_t shm_ctime; /* [XSI] Time of last shmctl() change */
+ void *shm_internal; /* reserved for kernel use */
+};
+#endif /* !__DARWIN_UNIX03 */
+
+#pragma pack()
+
+
+__BEGIN_DECLS
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int shmsys(int, ...);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+void *shmat(int, const void *, int);
+int shmctl(int, int, struct shmid_ds *) __DARWIN_ALIAS(shmctl);
+int shmdt(const void *);
+int shmget(key_t, size_t, int);
+__END_DECLS
+
+
+#endif /* !_SYS_SHM_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/socket.h b/lib/libc/include/aarch64-macos-gnu/sys/socket.h
new file mode 100644
index 0000000000..0c6b09babe
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/socket.h
@@ -0,0 +1,741 @@
+/*
+ * 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
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/sockio.h b/lib/libc/include/aarch64-macos-gnu/sys/sockio.h
new file mode 100644
index 0000000000..9dc2ee7489
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/sockio.h
@@ -0,0 +1,180 @@
+/*
+ * 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
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/spawn.h b/lib/libc/include/aarch64-macos-gnu/sys/spawn.h
new file mode 100644
index 0000000000..aeb42a9bb1
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/spawn.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2006-2020 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * [SPN] Support for _POSIX_SPAWN
+ *
+ * This header contains information that is shared between the user space
+ * and kernel versions of the posix_spawn() code. Shared elements are all
+ * manifest constants, at the current time.
+ */
+
+#ifndef _SYS_SPAWN_H_
+#define _SYS_SPAWN_H_
+
+/*
+ * Possible bit values which may be OR'ed together and provided as the second
+ * parameter to posix_spawnattr_setflags() or implicit returned in the value of
+ * the second parameter to posix_spawnattr_getflags().
+ */
+#define POSIX_SPAWN_RESETIDS 0x0001 /* [SPN] R[UG]ID not E[UG]ID */
+#define POSIX_SPAWN_SETPGROUP 0x0002 /* [SPN] set non-parent PGID */
+#define POSIX_SPAWN_SETSIGDEF 0x0004 /* [SPN] reset sigset default */
+#define POSIX_SPAWN_SETSIGMASK 0x0008 /* [SPN] set signal mask */
+
+#if 0 /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
+#define POSIX_SPAWN_SETSCHEDPARAM 0x0010
+#define POSIX_SPAWN_SETSCHEDULER 0x0020
+#endif /* 0 */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Darwin-specific flags
+ */
+#define POSIX_SPAWN_SETEXEC 0x0040
+#define POSIX_SPAWN_START_SUSPENDED 0x0080
+#define POSIX_SPAWN_SETSID 0x0400
+#define POSIX_SPAWN_CLOEXEC_DEFAULT 0x4000
+
+#define _POSIX_SPAWN_RESLIDE 0x0800
+
+/*
+ * Possible values to be set for the process control actions on resource starvation.
+ * POSIX_SPAWN_PCONTROL_THROTTLE indicates that the process is to be throttled on starvation.
+ * POSIX_SPAWN_PCONTROL_SUSPEND indicates that the process is to be suspended on starvation.
+ * POSIX_SPAWN_PCONTROL_KILL indicates that the process is to be terminated on starvation.
+ */
+#define POSIX_SPAWN_PCONTROL_NONE 0x0000
+#define POSIX_SPAWN_PCONTROL_THROTTLE 0x0001
+#define POSIX_SPAWN_PCONTROL_SUSPEND 0x0002
+#define POSIX_SPAWN_PCONTROL_KILL 0x0003
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+#endif /* _SYS_SPAWN_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/stat.h b/lib/libc/include/aarch64-macos-gnu/sys/stat.h
new file mode 100644
index 0000000000..fb60146e5c
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/stat.h
@@ -0,0 +1,432 @@
+/*
+ * Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)stat.h 8.9 (Berkeley) 8/17/94
+ */
+
+
+#ifndef _SYS_STAT_H_
+#define _SYS_STAT_H_
+
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+/* [XSI] The timespec structure may be defined as described in <time.h> */
+#include <sys/_types/_timespec.h>
+
+/*
+ * [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+ * gid_t, off_t, and time_t types shall be defined as described in
+ * <sys/types.h>.
+ */
+#include <sys/_types/_blkcnt_t.h>
+#include <sys/_types/_blksize_t.h>
+#include <sys/_types/_dev_t.h> /* device number */
+#include <sys/_types/_ino_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_ino64_t.h>
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_nlink_t.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_time_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * XXX So deprecated, it would make your head spin
+ *
+ * The old stat structure. In fact, this is not used by the kernel at all,
+ * and should not be used by user space, and should be removed from this
+ * header file entirely (along with the unused cvtstat() prototype in
+ * vnode_internal.h).
+ */
+struct ostat {
+ __uint16_t st_dev; /* inode's device */
+ ino_t st_ino; /* inode's number */
+ mode_t st_mode; /* inode protection mode */
+ nlink_t st_nlink; /* number of hard links */
+ __uint16_t st_uid; /* user ID of the file's owner */
+ __uint16_t st_gid; /* group ID of the file's group */
+ __uint16_t st_rdev; /* device type */
+ __int32_t st_size; /* file size, in bytes */
+ struct timespec st_atimespec; /* time of last access */
+ struct timespec st_mtimespec; /* time of last data modification */
+ struct timespec st_ctimespec; /* time of last file status change */
+ __int32_t st_blksize; /* optimal blocksize for I/O */
+ __int32_t st_blocks; /* blocks allocated for file */
+ __uint32_t st_flags; /* user defined flags for file */
+ __uint32_t st_gen; /* file generation number */
+};
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+ struct timespec st_atimespec; /* time of last access */ \
+ struct timespec st_mtimespec; /* time of last data modification */ \
+ struct timespec st_ctimespec; /* time of last status change */ \
+ struct timespec st_birthtimespec; /* time of file creation(birth) */
+
+#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+ time_t st_atime; /* [XSI] Time of last access */ \
+ long st_atimensec; /* nsec of last access */ \
+ time_t st_mtime; /* [XSI] Last data modification time */ \
+ long st_mtimensec; /* last data modification nsec */ \
+ time_t st_ctime; /* [XSI] Time of last status change */ \
+ long st_ctimensec; /* nsec of last status change */ \
+ time_t st_birthtime; /* File creation time(birth) */ \
+ long st_birthtimensec; /* nsec of File creation time */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * This structure is used as the second parameter to the fstat64(),
+ * lstat64(), and stat64() functions, and for struct stat when
+ * __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+ * above, depending on whether we use struct timespec or the direct
+ * components.
+ *
+ * This is simillar to stat except for 64bit inode number
+ * number instead of 32bit ino_t and the addition of create(birth) time.
+ */
+#define __DARWIN_STRUCT_STAT64 { \
+ dev_t st_dev; /* [XSI] ID of device containing file */ \
+ mode_t st_mode; /* [XSI] Mode of file (see below) */ \
+ nlink_t st_nlink; /* [XSI] Number of hard links */ \
+ __darwin_ino64_t st_ino; /* [XSI] File serial number */ \
+ uid_t st_uid; /* [XSI] User ID of the file */ \
+ gid_t st_gid; /* [XSI] Group ID of the file */ \
+ dev_t st_rdev; /* [XSI] Device ID */ \
+ __DARWIN_STRUCT_STAT64_TIMES \
+ off_t st_size; /* [XSI] file size, in bytes */ \
+ blkcnt_t st_blocks; /* [XSI] blocks allocated for file */ \
+ blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */ \
+ __uint32_t st_flags; /* user defined flags for file */ \
+ __uint32_t st_gen; /* file generation number */ \
+ __int32_t st_lspare; /* RESERVED: DO NOT USE! */ \
+ __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */ \
+}
+
+/*
+ * [XSI] This structure is used as the second parameter to the fstat(),
+ * lstat(), and stat() functions.
+ */
+#if __DARWIN_64_BIT_INO_T
+
+struct stat __DARWIN_STRUCT_STAT64;
+
+#else /* !__DARWIN_64_BIT_INO_T */
+
+struct stat {
+ dev_t st_dev; /* [XSI] ID of device containing file */
+ ino_t st_ino; /* [XSI] File serial number */
+ mode_t st_mode; /* [XSI] Mode of file (see below) */
+ nlink_t st_nlink; /* [XSI] Number of hard links */
+ uid_t st_uid; /* [XSI] User ID of the file */
+ gid_t st_gid; /* [XSI] Group ID of the file */
+ dev_t st_rdev; /* [XSI] Device ID */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+ struct timespec st_atimespec; /* time of last access */
+ struct timespec st_mtimespec; /* time of last data modification */
+ struct timespec st_ctimespec; /* time of last status change */
+#else
+ time_t st_atime; /* [XSI] Time of last access */
+ long st_atimensec; /* nsec of last access */
+ time_t st_mtime; /* [XSI] Last data modification time */
+ long st_mtimensec; /* last data modification nsec */
+ time_t st_ctime; /* [XSI] Time of last status change */
+ long st_ctimensec; /* nsec of last status change */
+#endif
+ off_t st_size; /* [XSI] file size, in bytes */
+ blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
+ blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
+ __uint32_t st_flags; /* user defined flags for file */
+ __uint32_t st_gen; /* file generation number */
+ __int32_t st_lspare; /* RESERVED: DO NOT USE! */
+ __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
+};
+
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+
+struct stat64 __DARWIN_STRUCT_STAT64;
+
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define st_atime st_atimespec.tv_sec
+#define st_mtime st_mtimespec.tv_sec
+#define st_ctime st_ctimespec.tv_sec
+#define st_birthtime st_birthtimespec.tv_sec
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * [XSI] The following are symbolic names for the values of type mode_t. They
+ * are bitmap values.
+ */
+#include <sys/_types/_s_ifmt.h>
+
+/*
+ * [XSI] The following macros shall be provided to test whether a file is
+ * of the specified type. The value m supplied to the macros is the value
+ * of st_mode from a stat structure. The macro shall evaluate to a non-zero
+ * value if the test is true; 0 if the test is false.
+ */
+#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) /* block special */
+#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) /* char special */
+#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */
+#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* fifo or socket */
+#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* regular file */
+#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* symbolic link */
+#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) /* socket */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define S_ISWHT(m) (((m) & S_IFMT) == S_IFWHT) /* OBSOLETE: whiteout */
+#endif
+
+/*
+ * [XSI] The implementation may implement message queues, semaphores, or
+ * shared memory objects as distinct file types. The following macros
+ * shall be provided to test whether a file is of the specified type.
+ * The value of the buf argument supplied to the macros is a pointer to
+ * a stat structure. The macro shall evaluate to a non-zero value if
+ * the specified object is implemented as a distinct file type and the
+ * specified file type is contained in the stat structure referenced by
+ * buf. Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE: The current implementation does not do this, although
+ * this may change in future revisions, and co currently only
+ * provides these macros to ensure source compatability with
+ * implementations which do.
+ */
+#define S_TYPEISMQ(buf) (0) /* Test for a message queue */
+#define S_TYPEISSEM(buf) (0) /* Test for a semaphore */
+#define S_TYPEISSHM(buf) (0) /* Test for a shared memory object */
+
+/*
+ * [TYM] The implementation may implement typed memory objects as distinct
+ * file types, and the following macro shall test whether a file is of the
+ * specified type. The value of the buf argument supplied to the macros is
+ * a pointer to a stat structure. The macro shall evaluate to a non-zero
+ * value if the specified object is implemented as a distinct file type and
+ * the specified file type is contained in the stat structure referenced by
+ * buf. Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE: The current implementation does not do this, although
+ * this may change in future revisions, and co currently only
+ * provides this macro to ensure source compatability with
+ * implementations which do.
+ */
+#define S_TYPEISTMO(buf) (0) /* Test for a typed memory object */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
+ /* 7777 */
+#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
+/* 0666 */
+#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+#define S_BLKSIZE 512 /* block size used in the stat struct */
+
+/*
+ * Definitions of flags stored in file flags word.
+ *
+ * Super-user and owner changeable flags.
+ */
+#define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */
+#define UF_NODUMP 0x00000001 /* do not dump file */
+#define UF_IMMUTABLE 0x00000002 /* file may not be changed */
+#define UF_APPEND 0x00000004 /* writes to file may only append */
+#define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */
+/*
+ * The following bit is reserved for FreeBSD. It is not implemented
+ * in Mac OS X.
+ */
+/* #define UF_NOUNLINK 0x00000010 */ /* file may not be removed or renamed */
+#define UF_COMPRESSED 0x00000020 /* file is compressed (some file-systems) */
+
+/* UF_TRACKED is used for dealing with document IDs. We no longer issue
+ * notifications for deletes or renames for files which have UF_TRACKED set. */
+#define UF_TRACKED 0x00000040
+
+#define UF_DATAVAULT 0x00000080 /* entitlement required for reading */
+ /* and writing */
+
+/* Bits 0x0100 through 0x4000 are currently undefined. */
+#define UF_HIDDEN 0x00008000 /* hint that this item should not be */
+ /* displayed in a GUI */
+/*
+ * Super-user changeable flags.
+ */
+#define SF_SUPPORTED 0x009f0000 /* mask of superuser supported flags */
+#define SF_SETTABLE 0x3fff0000 /* mask of superuser changeable flags */
+#define SF_SYNTHETIC 0xc0000000 /* mask of system read-only synthetic flags */
+#define SF_ARCHIVED 0x00010000 /* file is archived */
+#define SF_IMMUTABLE 0x00020000 /* file may not be changed */
+#define SF_APPEND 0x00040000 /* writes to file may only append */
+#define SF_RESTRICTED 0x00080000 /* entitlement required for writing */
+#define SF_NOUNLINK 0x00100000 /* Item may not be removed, renamed or mounted on */
+
+/*
+ * The following two bits are reserved for FreeBSD. They are not
+ * implemented in Mac OS X.
+ */
+/* #define SF_SNAPSHOT 0x00200000 */ /* snapshot inode */
+/* NOTE: There is no SF_HIDDEN bit. */
+
+#define SF_FIRMLINK 0x00800000 /* file is a firmlink */
+
+/*
+ * Synthetic flags.
+ *
+ * These are read-only. We keep them out of SF_SUPPORTED so that
+ * attempts to set them will fail.
+ */
+#define SF_DATALESS 0x40000000 /* file is dataless object */
+
+
+#endif
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Extended flags ("EF") returned by ATTR_CMNEXT_EXT_FLAGS from getattrlist/getattrlistbulk
+ */
+#define EF_MAY_SHARE_BLOCKS 0x00000001 /* file may share blocks with another file */
+#define EF_NO_XATTRS 0x00000002 /* file has no xattrs at all */
+#define EF_IS_SYNC_ROOT 0x00000004 /* file is a sync root for iCloud */
+#define EF_IS_PURGEABLE 0x00000008 /* file is purgeable */
+#define EF_IS_SPARSE 0x00000010 /* file has at least one sparse region */
+#define EF_IS_SYNTHETIC 0x00000020 /* a synthetic directory/symlink */
+#endif
+
+
+
+__BEGIN_DECLS
+/* [XSI] */
+int chmod(const char *, mode_t) __DARWIN_ALIAS(chmod);
+int fchmod(int, mode_t) __DARWIN_ALIAS(fchmod);
+int fstat(int, struct stat *) __DARWIN_INODE64(fstat);
+int lstat(const char *, struct stat *) __DARWIN_INODE64(lstat);
+int mkdir(const char *, mode_t);
+int mkfifo(const char *, mode_t);
+int stat(const char *, struct stat *) __DARWIN_INODE64(stat);
+int mknod(const char *, mode_t, dev_t);
+mode_t umask(mode_t);
+
+#if __DARWIN_C_LEVEL >= 200809L
+int fchmodat(int, const char *, mode_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int fstatat(int, const char *, struct stat *, int) __DARWIN_INODE64(fstatat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int mkdirat(int, const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+#define UTIME_NOW -1
+#define UTIME_OMIT -2
+
+int futimens(int __fd, const struct timespec __times[2]) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+int utimensat(int __fd, const char *__path, const struct timespec __times[2],
+ int __flag) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_filesec_t.h>
+
+int chflags(const char *, __uint32_t);
+int chmodx_np(const char *, filesec_t);
+int fchflags(int, __uint32_t);
+int fchmodx_np(int, filesec_t);
+int fstatx_np(int, struct stat *, filesec_t) __DARWIN_INODE64(fstatx_np);
+int lchflags(const char *, __uint32_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int lchmod(const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int lstatx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(lstatx_np);
+int mkdirx_np(const char *, filesec_t);
+int mkfifox_np(const char *, filesec_t);
+int statx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(statx_np);
+int umaskx_np(filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+/* The following deprecated routines are simillar to stat and friends except provide struct stat64 instead of struct stat */
+int fstatx64_np(int, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int lstatx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int statx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__END_DECLS
+#endif /* !_SYS_STAT_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/sysctl.h b/lib/libc/include/aarch64-macos-gnu/sys/sysctl.h
new file mode 100644
index 0000000000..80dbee50aa
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/sysctl.h
@@ -0,0 +1,779 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Mike Karels at Berkeley Software Design, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)sysctl.h 8.1 (Berkeley) 6/2/93
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections. This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+#ifndef _SYS_SYSCTL_H_
+#define _SYS_SYSCTL_H_
+
+/*
+ * These are for the eproc structure defined below.
+ */
+#include <sys/cdefs.h>
+
+#include <sys/appleapiopts.h>
+#include <sys/time.h>
+#include <sys/ucred.h>
+#include <sys/proc.h>
+#include <sys/vm.h>
+
+
+/*
+ * Definitions for sysctl call. The sysctl call uses a hierarchical name
+ * for objects that can be examined or modified. The name is expressed as
+ * a sequence of integers. Like a file path name, the meaning of each
+ * component depends on its place in the hierarchy. The top-level and kern
+ * identifiers are defined here, and other identifiers are defined in the
+ * respective subsystem header files.
+ */
+
+#define CTL_MAXNAME 12 /* largest number of components supported */
+
+/*
+ * Each subsystem defined by sysctl defines a list of variables
+ * for that subsystem. Each name is either a node with further
+ * levels defined below it, or it is a leaf of some particular
+ * type given below. Each sysctl level defines a set of name/type
+ * pairs to be used by sysctl(1) in manipulating the subsystem.
+ *
+ * When declaring new sysctl names, use the CTLFLAG_LOCKED flag in the
+ * type to indicate that all necessary locking will be handled
+ * within the sysctl.
+ *
+ * Any sysctl defined without CTLFLAG_LOCKED is considered legacy
+ * and will be protected by a global mutex.
+ *
+ * Note: This is not optimal, so it is best to handle locking
+ * yourself, if you are able to do so. A simple design
+ * pattern for use to avoid in a single function known
+ * to potentially be in the paging path ot doing a DMA
+ * to physical memory in a user space process is:
+ *
+ * lock
+ * perform operation vs. local buffer
+ * unlock
+ * SYSCTL_OUT(rey, local buffer, length)
+ *
+ * ...this assumes you are not using a deep call graph
+ * or are unable to pass a local buffer address as a
+ * parameter into your deep call graph.
+ *
+ * Note that very large user buffers can fail the wire
+ * if to do so would require more physical pages than
+ * are available (the caller will get an ENOMEM error,
+ * see sysctl_mem_hold() for details).
+ */
+struct ctlname {
+ char *ctl_name; /* subsystem name */
+ int ctl_type; /* type of name */
+};
+
+#define CTLTYPE 0xf /* Mask for the type */
+#define CTLTYPE_NODE 1 /* name is a node */
+#define CTLTYPE_INT 2 /* name describes an integer */
+#define CTLTYPE_STRING 3 /* name describes a string */
+#define CTLTYPE_QUAD 4 /* name describes a 64-bit number */
+#define CTLTYPE_OPAQUE 5 /* name describes a structure */
+#define CTLTYPE_STRUCT CTLTYPE_OPAQUE /* name describes a structure */
+
+#define CTLFLAG_RD 0x80000000 /* Allow reads of variable */
+#define CTLFLAG_WR 0x40000000 /* Allow writes to the variable */
+#define CTLFLAG_RW (CTLFLAG_RD|CTLFLAG_WR)
+#define CTLFLAG_NOLOCK 0x20000000 /* XXX Don't Lock */
+#define CTLFLAG_ANYBODY 0x10000000 /* All users can set this var */
+#define CTLFLAG_SECURE 0x08000000 /* Permit set only if securelevel<=0 */
+#define CTLFLAG_MASKED 0x04000000 /* deprecated variable, do not display */
+#define CTLFLAG_NOAUTO 0x02000000 /* do not auto-register */
+#define CTLFLAG_KERN 0x01000000 /* valid inside the kernel */
+#define CTLFLAG_LOCKED 0x00800000 /* node will handle locking itself */
+#define CTLFLAG_OID2 0x00400000 /* struct sysctl_oid has version info */
+
+/*
+ * USE THIS instead of a hardwired number from the categories below
+ * to get dynamically assigned sysctl entries using the linker-set
+ * technology. This is the way nearly all new sysctl variables should
+ * be implemented.
+ *
+ * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
+ *
+ * Note that linker set technology will automatically register all nodes
+ * declared like this on kernel initialization, UNLESS they are defined
+ * in I/O-Kit. In this case, you have to call sysctl_register_oid()
+ * manually - just like in a KEXT.
+ */
+#define OID_AUTO (-1)
+#define OID_AUTO_START 100 /* conventional */
+
+
+#define SYSCTL_DEF_ENABLED
+
+#ifdef SYSCTL_DEF_ENABLED
+/*
+ * Top-level identifiers
+ */
+#define CTL_UNSPEC 0 /* unused */
+#define CTL_KERN 1 /* "high kernel": proc, limits */
+#define CTL_VM 2 /* virtual memory */
+#define CTL_VFS 3 /* file system, mount type is next */
+#define CTL_NET 4 /* network, see socket.h */
+#define CTL_DEBUG 5 /* debugging parameters */
+#define CTL_HW 6 /* generic cpu/io */
+#define CTL_MACHDEP 7 /* machine dependent */
+#define CTL_USER 8 /* user-level */
+#define CTL_MAXID 9 /* number of valid top-level ids */
+
+#define CTL_NAMES { \
+ { 0, 0 }, \
+ { "kern", CTLTYPE_NODE }, \
+ { "vm", CTLTYPE_NODE }, \
+ { "vfs", CTLTYPE_NODE }, \
+ { "net", CTLTYPE_NODE }, \
+ { "debug", CTLTYPE_NODE }, \
+ { "hw", CTLTYPE_NODE }, \
+ { "machdep", CTLTYPE_NODE }, \
+ { "user", CTLTYPE_NODE }, \
+}
+
+/*
+ * CTL_KERN identifiers
+ */
+#define KERN_OSTYPE 1 /* string: system version */
+#define KERN_OSRELEASE 2 /* string: system release */
+#define KERN_OSREV 3 /* int: system revision */
+#define KERN_VERSION 4 /* string: compile time info */
+#define KERN_MAXVNODES 5 /* int: max vnodes */
+#define KERN_MAXPROC 6 /* int: max processes */
+#define KERN_MAXFILES 7 /* int: max open files */
+#define KERN_ARGMAX 8 /* int: max arguments to exec */
+#define KERN_SECURELVL 9 /* int: system security level */
+#define KERN_HOSTNAME 10 /* string: hostname */
+#define KERN_HOSTID 11 /* int: host identifier */
+#define KERN_CLOCKRATE 12 /* struct: struct clockrate */
+#define KERN_VNODE 13 /* struct: vnode structures */
+#define KERN_PROC 14 /* struct: process entries */
+#define KERN_FILE 15 /* struct: file entries */
+#define KERN_PROF 16 /* node: kernel profiling info */
+#define KERN_POSIX1 17 /* int: POSIX.1 version */
+#define KERN_NGROUPS 18 /* int: # of supplemental group ids */
+#define KERN_JOB_CONTROL 19 /* int: is job control available */
+#define KERN_SAVED_IDS 20 /* int: saved set-user/group-ID */
+#define KERN_BOOTTIME 21 /* struct: time kernel was booted */
+#define KERN_NISDOMAINNAME 22 /* string: YP domain name */
+#define KERN_DOMAINNAME KERN_NISDOMAINNAME
+#define KERN_MAXPARTITIONS 23 /* int: number of partitions/disk */
+#define KERN_KDEBUG 24 /* int: kernel trace points */
+#define KERN_UPDATEINTERVAL 25 /* int: update process sleep time */
+#define KERN_OSRELDATE 26 /* int: OS release date */
+#define KERN_NTP_PLL 27 /* node: NTP PLL control */
+#define KERN_BOOTFILE 28 /* string: name of booted kernel */
+#define KERN_MAXFILESPERPROC 29 /* int: max open files per proc */
+#define KERN_MAXPROCPERUID 30 /* int: max processes per uid */
+#define KERN_DUMPDEV 31 /* dev_t: device to dump on */
+#define KERN_IPC 32 /* node: anything related to IPC */
+#define KERN_DUMMY 33 /* unused */
+#define KERN_PS_STRINGS 34 /* int: address of PS_STRINGS */
+#define KERN_USRSTACK32 35 /* int: address of USRSTACK */
+#define KERN_LOGSIGEXIT 36 /* int: do we log sigexit procs? */
+#define KERN_SYMFILE 37 /* string: kernel symbol filename */
+#define KERN_PROCARGS 38
+/* 39 was KERN_PCSAMPLES... now obsolete */
+#define KERN_NETBOOT 40 /* int: are we netbooted? 1=yes,0=no */
+/* 41 was KERN_PANICINFO : panic UI information (deprecated) */
+#define KERN_SYSV 42 /* node: System V IPC information */
+#define KERN_AFFINITY 43 /* xxx */
+#define KERN_TRANSLATE 44 /* xxx */
+#define KERN_CLASSIC KERN_TRANSLATE /* XXX backwards compat */
+#define KERN_EXEC 45 /* xxx */
+#define KERN_CLASSICHANDLER KERN_EXEC /* XXX backwards compatibility */
+#define KERN_AIOMAX 46 /* int: max aio requests */
+#define KERN_AIOPROCMAX 47 /* int: max aio requests per process */
+#define KERN_AIOTHREADS 48 /* int: max aio worker threads */
+#ifdef __APPLE_API_UNSTABLE
+#define KERN_PROCARGS2 49
+#endif /* __APPLE_API_UNSTABLE */
+#define KERN_COREFILE 50 /* string: corefile format string */
+#define KERN_COREDUMP 51 /* int: whether to coredump at all */
+#define KERN_SUGID_COREDUMP 52 /* int: whether to dump SUGID cores */
+#define KERN_PROCDELAYTERM 53 /* int: set/reset current proc for delayed termination during shutdown */
+#define KERN_SHREG_PRIVATIZABLE 54 /* int: can shared regions be privatized ? */
+/* 55 was KERN_PROC_LOW_PRI_IO... now deprecated */
+#define KERN_LOW_PRI_WINDOW 56 /* int: set/reset throttle window - milliseconds */
+#define KERN_LOW_PRI_DELAY 57 /* int: set/reset throttle delay - milliseconds */
+#define KERN_POSIX 58 /* node: posix tunables */
+#define KERN_USRSTACK64 59 /* LP64 user stack query */
+#define KERN_NX_PROTECTION 60 /* int: whether no-execute protection is enabled */
+#define KERN_TFP 61 /* Task for pid settings */
+#define KERN_PROCNAME 62 /* setup process program name(2*MAXCOMLEN) */
+#define KERN_THALTSTACK 63 /* for compat with older x86 and does nothing */
+#define KERN_SPECULATIVE_READS 64 /* int: whether speculative reads are disabled */
+#define KERN_OSVERSION 65 /* for build number i.e. 9A127 */
+#define KERN_SAFEBOOT 66 /* are we booted safe? */
+/* 67 was KERN_LCTX (login context) */
+#define KERN_RAGEVNODE 68
+#define KERN_TTY 69 /* node: tty settings */
+#define KERN_CHECKOPENEVT 70 /* spi: check the VOPENEVT flag on vnodes at open time */
+#define KERN_THREADNAME 71 /* set/get thread name */
+#define KERN_MAXID 72 /* number of valid kern ids */
+/*
+ * Don't add any more sysctls like this. Instead, use the SYSCTL_*() macros
+ * and OID_AUTO. This will have the added benefit of not having to recompile
+ * sysctl(8) to pick up your changes.
+ */
+
+
+#if defined(__LP64__)
+#define KERN_USRSTACK KERN_USRSTACK64
+#else
+#define KERN_USRSTACK KERN_USRSTACK32
+#endif
+
+
+/* KERN_RAGEVNODE types */
+#define KERN_RAGE_PROC 1
+#define KERN_RAGE_THREAD 2
+#define KERN_UNRAGE_PROC 3
+#define KERN_UNRAGE_THREAD 4
+
+/* KERN_OPENEVT types */
+#define KERN_OPENEVT_PROC 1
+#define KERN_UNOPENEVT_PROC 2
+
+/* KERN_TFP types */
+#define KERN_TFP_POLICY 1
+
+/* KERN_TFP_POLICY values . All policies allow task port for self */
+#define KERN_TFP_POLICY_DENY 0 /* Deny Mode: None allowed except privileged */
+#define KERN_TFP_POLICY_DEFAULT 2 /* Default Mode: related ones allowed and upcall authentication */
+
+/* KERN_KDEBUG types */
+#define KERN_KDEFLAGS 1
+#define KERN_KDDFLAGS 2
+#define KERN_KDENABLE 3
+#define KERN_KDSETBUF 4
+#define KERN_KDGETBUF 5
+#define KERN_KDSETUP 6
+#define KERN_KDREMOVE 7
+#define KERN_KDSETREG 8
+#define KERN_KDGETREG 9
+#define KERN_KDREADTR 10
+#define KERN_KDPIDTR 11
+#define KERN_KDTHRMAP 12
+/* Don't use 13 as it is overloaded with KERN_VNODE */
+#define KERN_KDPIDEX 14
+#define KERN_KDSETRTCDEC 15 /* obsolete */
+#define KERN_KDGETENTROPY 16 /* obsolete */
+#define KERN_KDWRITETR 17
+#define KERN_KDWRITEMAP 18
+#define KERN_KDTEST 19
+/* 20 unused */
+#define KERN_KDREADCURTHRMAP 21
+#define KERN_KDSET_TYPEFILTER 22
+#define KERN_KDBUFWAIT 23
+#define KERN_KDCPUMAP 24
+/* 25 - 26 unused */
+#define KERN_KDWRITEMAP_V3 27
+#define KERN_KDWRITETR_V3 28
+
+#define CTL_KERN_NAMES { \
+ { 0, 0 }, \
+ { "ostype", CTLTYPE_STRING }, \
+ { "osrelease", CTLTYPE_STRING }, \
+ { "osrevision", CTLTYPE_INT }, \
+ { "version", CTLTYPE_STRING }, \
+ { "maxvnodes", CTLTYPE_INT }, \
+ { "maxproc", CTLTYPE_INT }, \
+ { "maxfiles", CTLTYPE_INT }, \
+ { "argmax", CTLTYPE_INT }, \
+ { "securelevel", CTLTYPE_INT }, \
+ { "hostname", CTLTYPE_STRING }, \
+ { "hostid", CTLTYPE_INT }, \
+ { "clockrate", CTLTYPE_STRUCT }, \
+ { "vnode", CTLTYPE_STRUCT }, \
+ { "proc", CTLTYPE_STRUCT }, \
+ { "file", CTLTYPE_STRUCT }, \
+ { "profiling", CTLTYPE_NODE }, \
+ { "posix1version", CTLTYPE_INT }, \
+ { "ngroups", CTLTYPE_INT }, \
+ { "job_control", CTLTYPE_INT }, \
+ { "saved_ids", CTLTYPE_INT }, \
+ { "boottime", CTLTYPE_STRUCT }, \
+ { "nisdomainname", CTLTYPE_STRING }, \
+ { "maxpartitions", CTLTYPE_INT }, \
+ { "kdebug", CTLTYPE_INT }, \
+ { "update", CTLTYPE_INT }, \
+ { "osreldate", CTLTYPE_INT }, \
+ { "ntp_pll", CTLTYPE_NODE }, \
+ { "bootfile", CTLTYPE_STRING }, \
+ { "maxfilesperproc", CTLTYPE_INT }, \
+ { "maxprocperuid", CTLTYPE_INT }, \
+ { "dumpdev", CTLTYPE_STRUCT }, /* we lie; don't print as int */ \
+ { "ipc", CTLTYPE_NODE }, \
+ { "dummy", CTLTYPE_INT }, \
+ { "dummy", CTLTYPE_INT }, \
+ { "usrstack", CTLTYPE_INT }, \
+ { "logsigexit", CTLTYPE_INT }, \
+ { "symfile",CTLTYPE_STRING },\
+ { "procargs",CTLTYPE_STRUCT },\
+ { "dummy", CTLTYPE_INT }, /* deprecated pcsamples */ \
+ { "netboot", CTLTYPE_INT }, \
+ { "dummy", CTLTYPE_INT }, /* deprecated: panicinfo */ \
+ { "sysv", CTLTYPE_NODE }, \
+ { "dummy", CTLTYPE_INT }, \
+ { "dummy", CTLTYPE_INT }, \
+ { "exec", CTLTYPE_NODE }, \
+ { "aiomax", CTLTYPE_INT }, \
+ { "aioprocmax", CTLTYPE_INT }, \
+ { "aiothreads", CTLTYPE_INT }, \
+ { "procargs2",CTLTYPE_STRUCT }, \
+ { "corefile",CTLTYPE_STRING }, \
+ { "coredump", CTLTYPE_INT }, \
+ { "sugid_coredump", CTLTYPE_INT }, \
+ { "delayterm", CTLTYPE_INT }, \
+ { "shreg_private", CTLTYPE_INT }, \
+ { "proc_low_pri_io", CTLTYPE_INT }, \
+ { "low_pri_window", CTLTYPE_INT }, \
+ { "low_pri_delay", CTLTYPE_INT }, \
+ { "posix", CTLTYPE_NODE }, \
+ { "usrstack64", CTLTYPE_QUAD }, \
+ { "nx", CTLTYPE_INT }, \
+ { "tfp", CTLTYPE_NODE }, \
+ { "procname", CTLTYPE_STRING }, \
+ { "threadsigaltstack", CTLTYPE_INT }, \
+ { "speculative_reads_disabled", CTLTYPE_INT }, \
+ { "osversion", CTLTYPE_STRING }, \
+ { "safeboot", CTLTYPE_INT }, \
+ { "dummy", CTLTYPE_INT }, /* deprecated: lctx */ \
+ { "rage_vnode", CTLTYPE_INT }, \
+ { "tty", CTLTYPE_NODE }, \
+ { "check_openevt", CTLTYPE_INT }, \
+ { "thread_name", CTLTYPE_STRING } \
+}
+
+/*
+ * CTL_VFS identifiers
+ */
+#define CTL_VFS_NAMES { \
+ { "vfsconf", CTLTYPE_STRUCT } \
+}
+
+/*
+ * KERN_PROC subtypes
+ */
+#define KERN_PROC_ALL 0 /* everything */
+#define KERN_PROC_PID 1 /* by process id */
+#define KERN_PROC_PGRP 2 /* by process group id */
+#define KERN_PROC_SESSION 3 /* by session of pid */
+#define KERN_PROC_TTY 4 /* by controlling tty */
+#define KERN_PROC_UID 5 /* by effective uid */
+#define KERN_PROC_RUID 6 /* by real uid */
+#define KERN_PROC_LCID 7 /* by login context id */
+
+/*
+ * KERN_VFSNSPACE subtypes
+ */
+#define KERN_VFSNSPACE_HANDLE_PROC 1
+#define KERN_VFSNSPACE_UNHANDLE_PROC 2
+
+/*
+ * KERN_PROC subtype ops return arrays of augmented proc structures:
+ */
+
+struct _pcred {
+ char pc_lock[72]; /* opaque content */
+ struct ucred *pc_ucred; /* Current credentials. */
+ uid_t p_ruid; /* Real user id. */
+ uid_t p_svuid; /* Saved effective user id. */
+ gid_t p_rgid; /* Real group id. */
+ gid_t p_svgid; /* Saved effective group id. */
+ int p_refcnt; /* Number of references. */
+};
+
+struct _ucred {
+ int32_t cr_ref; /* reference count */
+ uid_t cr_uid; /* effective user id */
+ short cr_ngroups; /* number of groups */
+ gid_t cr_groups[NGROUPS]; /* groups */
+};
+
+struct kinfo_proc {
+ struct extern_proc kp_proc; /* proc structure */
+ struct eproc {
+ struct proc *e_paddr; /* address of proc */
+ struct session *e_sess; /* session pointer */
+ struct _pcred e_pcred; /* process credentials */
+ struct _ucred e_ucred; /* current credentials */
+ struct vmspace e_vm; /* address space */
+ pid_t e_ppid; /* parent process id */
+ pid_t e_pgid; /* process group id */
+ short e_jobc; /* job control counter */
+ dev_t e_tdev; /* controlling tty dev */
+ pid_t e_tpgid; /* tty process group id */
+ struct session *e_tsess; /* tty session pointer */
+#define WMESGLEN 7
+ char e_wmesg[WMESGLEN + 1]; /* wchan message */
+ segsz_t e_xsize; /* text size */
+ short e_xrssize; /* text rss */
+ short e_xccount; /* text references */
+ short e_xswrss;
+ int32_t e_flag;
+#define EPROC_CTTY 0x01 /* controlling tty vnode active */
+#define EPROC_SLEADER 0x02 /* session leader */
+#define COMAPT_MAXLOGNAME 12
+ char e_login[COMAPT_MAXLOGNAME]; /* short setlogin() name */
+ int32_t e_spare[4];
+ } kp_eproc;
+};
+
+
+
+/*
+ * KERN_IPC identifiers
+ */
+#define KIPC_MAXSOCKBUF 1 /* int: max size of a socket buffer */
+#define KIPC_SOCKBUF_WASTE 2 /* int: wastage factor in sockbuf */
+#define KIPC_SOMAXCONN 3 /* int: max length of connection q */
+#define KIPC_MAX_LINKHDR 4 /* int: max length of link header */
+#define KIPC_MAX_PROTOHDR 5 /* int: max length of network header */
+#define KIPC_MAX_HDR 6 /* int: max total length of headers */
+#define KIPC_MAX_DATALEN 7 /* int: max length of data? */
+#define KIPC_MBSTAT 8 /* struct: mbuf usage statistics */
+#define KIPC_NMBCLUSTERS 9 /* int: maximum mbuf clusters */
+#define KIPC_SOQLIMITCOMPAT 10 /* int: socket queue limit */
+
+/*
+ * CTL_VM identifiers
+ */
+#define VM_METER 1 /* struct vmmeter */
+#define VM_LOADAVG 2 /* struct loadavg */
+/*
+ * Note: "3" was skipped sometime ago and should probably remain unused
+ * to avoid any new entry from being accepted by older kernels...
+ */
+#define VM_MACHFACTOR 4 /* struct loadavg with mach factor*/
+#define VM_SWAPUSAGE 5 /* total swap usage */
+#define VM_MAXID 6 /* number of valid vm ids */
+
+#define CTL_VM_NAMES { \
+ { 0, 0 }, \
+ { "vmmeter", CTLTYPE_STRUCT }, \
+ { "loadavg", CTLTYPE_STRUCT }, \
+ { 0, 0 }, /* placeholder for "3" (see comment above) */ \
+ { "dummy", CTLTYPE_INT }, \
+ { "swapusage", CTLTYPE_STRUCT } \
+}
+
+struct xsw_usage {
+ u_int64_t xsu_total;
+ u_int64_t xsu_avail;
+ u_int64_t xsu_used;
+ u_int32_t xsu_pagesize;
+ boolean_t xsu_encrypted;
+};
+
+#ifdef __APPLE_API_PRIVATE
+/* Load average structure. Use of fixpt_t assume <sys/types.h> in scope. */
+/* XXX perhaps we should protect fixpt_t, and define it here (or discard it) */
+struct loadavg {
+ fixpt_t ldavg[3];
+ long fscale;
+};
+extern struct loadavg averunnable;
+#define LSCALE 1000 /* scaling for "fixed point" arithmetic */
+
+#endif /* __APPLE_API_PRIVATE */
+
+
+/*
+ * CTL_HW identifiers
+ */
+#define HW_MACHINE 1 /* string: machine class (deprecated: use HW_PRODUCT) */
+#define HW_MODEL 2 /* string: specific machine model (deprecated: use HW_TARGET) */
+#define HW_NCPU 3 /* int: number of cpus */
+#define HW_BYTEORDER 4 /* int: machine byte order */
+#define HW_PHYSMEM 5 /* int: total memory */
+#define HW_USERMEM 6 /* int: non-kernel memory */
+#define HW_PAGESIZE 7 /* int: software page size */
+#define HW_DISKNAMES 8 /* strings: disk drive names */
+#define HW_DISKSTATS 9 /* struct: diskstats[] */
+#define HW_EPOCH 10 /* int: 0 for Legacy, else NewWorld */
+#define HW_FLOATINGPT 11 /* int: has HW floating point? */
+#define HW_MACHINE_ARCH 12 /* string: machine architecture */
+#define HW_VECTORUNIT 13 /* int: has HW vector unit? */
+#define HW_BUS_FREQ 14 /* int: Bus Frequency */
+#define HW_CPU_FREQ 15 /* int: CPU Frequency */
+#define HW_CACHELINE 16 /* int: Cache Line Size in Bytes */
+#define HW_L1ICACHESIZE 17 /* int: L1 I Cache Size in Bytes */
+#define HW_L1DCACHESIZE 18 /* int: L1 D Cache Size in Bytes */
+#define HW_L2SETTINGS 19 /* int: L2 Cache Settings */
+#define HW_L2CACHESIZE 20 /* int: L2 Cache Size in Bytes */
+#define HW_L3SETTINGS 21 /* int: L3 Cache Settings */
+#define HW_L3CACHESIZE 22 /* int: L3 Cache Size in Bytes */
+#define HW_TB_FREQ 23 /* int: Bus Frequency */
+#define HW_MEMSIZE 24 /* uint64_t: physical ram size */
+#define HW_AVAILCPU 25 /* int: number of available CPUs */
+#define HW_TARGET 26 /* string: model identifier */
+#define HW_PRODUCT 27 /* string: product identifier */
+#define HW_MAXID 28 /* number of valid hw ids */
+
+#define CTL_HW_NAMES { \
+ { 0, 0 }, \
+ { "machine", CTLTYPE_STRING }, /* Deprecated: use hw.product */ \
+ { "model", CTLTYPE_STRING }, /* Deprecated: use hw.target */ \
+ { "ncpu", CTLTYPE_INT }, \
+ { "byteorder", CTLTYPE_INT }, \
+ { "physmem", CTLTYPE_INT }, \
+ { "usermem", CTLTYPE_INT }, \
+ { "pagesize", CTLTYPE_INT }, \
+ { "disknames", CTLTYPE_STRUCT }, \
+ { "diskstats", CTLTYPE_STRUCT }, \
+ { "epoch", CTLTYPE_INT }, \
+ { "floatingpoint", CTLTYPE_INT }, \
+ { "machinearch", CTLTYPE_STRING }, \
+ { "vectorunit", CTLTYPE_INT }, \
+ { "busfrequency", CTLTYPE_INT }, \
+ { "cpufrequency", CTLTYPE_INT }, \
+ { "cachelinesize", CTLTYPE_INT }, \
+ { "l1icachesize", CTLTYPE_INT }, \
+ { "l1dcachesize", CTLTYPE_INT }, \
+ { "l2settings", CTLTYPE_INT }, \
+ { "l2cachesize", CTLTYPE_INT }, \
+ { "l3settings", CTLTYPE_INT }, \
+ { "l3cachesize", CTLTYPE_INT }, \
+ { "tbfrequency", CTLTYPE_INT }, \
+ { "memsize", CTLTYPE_QUAD }, \
+ { "availcpu", CTLTYPE_INT }, \
+ { "target", CTLTYPE_STRING }, \
+ { "product", CTLTYPE_STRING }, \
+}
+
+/*
+ * XXX This information should be moved to the man page.
+ *
+ * These are the support HW selectors for sysctlbyname. Parameters that are byte counts or frequencies are 64 bit numbers.
+ * All other parameters are 32 bit numbers.
+ *
+ * hw.memsize - The number of bytes of physical memory in the system.
+ *
+ * hw.ncpu - The maximum number of processors that could be available this boot.
+ * Use this value for sizing of static per processor arrays; i.e. processor load statistics.
+ *
+ * hw.activecpu - The number of processors currently available for executing threads.
+ * Use this number to determine the number threads to create in SMP aware applications.
+ * This number can change when power management modes are changed.
+ *
+ * hw.physicalcpu - The number of physical processors available in the current power management mode.
+ * hw.physicalcpu_max - The maximum number of physical processors that could be available this boot
+ *
+ * hw.logicalcpu - The number of logical processors available in the current power management mode.
+ * hw.logicalcpu_max - The maximum number of logical processors that could be available this boot
+ *
+ * hw.tbfrequency - This gives the time base frequency used by the OS and is the basis of all timing services.
+ * In general is is better to use mach's or higher level timing services, but this value
+ * is needed to convert the PPC Time Base registers to real time.
+ *
+ * hw.cpufrequency - These values provide the current, min and max cpu frequency. The min and max are for
+ * hw.cpufrequency_max - all power management modes. The current frequency is the max frequency in the current mode.
+ * hw.cpufrequency_min - All frequencies are in Hz.
+ *
+ * hw.busfrequency - These values provide the current, min and max bus frequency. The min and max are for
+ * hw.busfrequency_max - all power management modes. The current frequency is the max frequency in the current mode.
+ * hw.busfrequency_min - All frequencies are in Hz.
+ *
+ * hw.cputype - These values provide the mach-o cpu type and subtype. A complete list is in <mach/machine.h>
+ * hw.cpusubtype - These values should be used to determine what processor family the running cpu is from so that
+ * the best binary can be chosen, or the best dynamic code generated. They should not be used
+ * to determine if a given processor feature is available.
+ * hw.cputhreadtype - This value will be present if the processor supports threads. Like hw.cpusubtype this selector
+ * should not be used to infer features, and only used to name the processors thread architecture.
+ * The values are defined in <mach/machine.h>
+ *
+ * hw.byteorder - Gives the byte order of the processor. 4321 for big endian, 1234 for little.
+ *
+ * hw.pagesize - Gives the size in bytes of the pages used by the processor and VM system.
+ *
+ * hw.cachelinesize - Gives the size in bytes of the processor's cache lines.
+ * This value should be use to control the strides of loops that use cache control instructions
+ * like dcbz, dcbt or dcbst.
+ *
+ * hw.l1dcachesize - These values provide the size in bytes of the L1, L2 and L3 caches. If a cache is not present
+ * hw.l1icachesize - then the selector will return and error.
+ * hw.l2cachesize -
+ * hw.l3cachesize -
+ *
+ * hw.packages - Gives the number of processor packages.
+ *
+ * These are the selectors for optional processor features for specific processors. Selectors that return errors are not support
+ * on the system. Supported features will return 1 if they are recommended or 0 if they are supported but are not expected to help .
+ * performance. Future versions of these selectors may return larger values as necessary so it is best to test for non zero.
+ *
+ * For PowerPC:
+ *
+ * hw.optional.floatingpoint - Floating Point Instructions
+ * hw.optional.altivec - AltiVec Instructions
+ * hw.optional.graphicsops - Graphics Operations
+ * hw.optional.64bitops - 64-bit Instructions
+ * hw.optional.fsqrt - HW Floating Point Square Root Instruction
+ * hw.optional.stfiwx - Store Floating Point as Integer Word Indexed Instructions
+ * hw.optional.dcba - Data Cache Block Allocate Instruction
+ * hw.optional.datastreams - Data Streams Instructions
+ * hw.optional.dcbtstreams - Data Cache Block Touch Steams Instruction Form
+ *
+ * For x86 Architecture:
+ *
+ * hw.optional.floatingpoint - Floating Point Instructions
+ * hw.optional.mmx - Original MMX vector instructions
+ * hw.optional.sse - Streaming SIMD Extensions
+ * hw.optional.sse2 - Streaming SIMD Extensions 2
+ * hw.optional.sse3 - Streaming SIMD Extensions 3
+ * hw.optional.supplementalsse3 - Supplemental Streaming SIMD Extensions 3
+ * hw.optional.x86_64 - 64-bit support
+ */
+
+
+/*
+ * CTL_USER definitions
+ */
+#define USER_CS_PATH 1 /* string: _CS_PATH */
+#define USER_BC_BASE_MAX 2 /* int: BC_BASE_MAX */
+#define USER_BC_DIM_MAX 3 /* int: BC_DIM_MAX */
+#define USER_BC_SCALE_MAX 4 /* int: BC_SCALE_MAX */
+#define USER_BC_STRING_MAX 5 /* int: BC_STRING_MAX */
+#define USER_COLL_WEIGHTS_MAX 6 /* int: COLL_WEIGHTS_MAX */
+#define USER_EXPR_NEST_MAX 7 /* int: EXPR_NEST_MAX */
+#define USER_LINE_MAX 8 /* int: LINE_MAX */
+#define USER_RE_DUP_MAX 9 /* int: RE_DUP_MAX */
+#define USER_POSIX2_VERSION 10 /* int: POSIX2_VERSION */
+#define USER_POSIX2_C_BIND 11 /* int: POSIX2_C_BIND */
+#define USER_POSIX2_C_DEV 12 /* int: POSIX2_C_DEV */
+#define USER_POSIX2_CHAR_TERM 13 /* int: POSIX2_CHAR_TERM */
+#define USER_POSIX2_FORT_DEV 14 /* int: POSIX2_FORT_DEV */
+#define USER_POSIX2_FORT_RUN 15 /* int: POSIX2_FORT_RUN */
+#define USER_POSIX2_LOCALEDEF 16 /* int: POSIX2_LOCALEDEF */
+#define USER_POSIX2_SW_DEV 17 /* int: POSIX2_SW_DEV */
+#define USER_POSIX2_UPE 18 /* int: POSIX2_UPE */
+#define USER_STREAM_MAX 19 /* int: POSIX2_STREAM_MAX */
+#define USER_TZNAME_MAX 20 /* int: POSIX2_TZNAME_MAX */
+#define USER_MAXID 21 /* number of valid user ids */
+
+#define CTL_USER_NAMES { \
+ { 0, 0 }, \
+ { "cs_path", CTLTYPE_STRING }, \
+ { "bc_base_max", CTLTYPE_INT }, \
+ { "bc_dim_max", CTLTYPE_INT }, \
+ { "bc_scale_max", CTLTYPE_INT }, \
+ { "bc_string_max", CTLTYPE_INT }, \
+ { "coll_weights_max", CTLTYPE_INT }, \
+ { "expr_nest_max", CTLTYPE_INT }, \
+ { "line_max", CTLTYPE_INT }, \
+ { "re_dup_max", CTLTYPE_INT }, \
+ { "posix2_version", CTLTYPE_INT }, \
+ { "posix2_c_bind", CTLTYPE_INT }, \
+ { "posix2_c_dev", CTLTYPE_INT }, \
+ { "posix2_char_term", CTLTYPE_INT }, \
+ { "posix2_fort_dev", CTLTYPE_INT }, \
+ { "posix2_fort_run", CTLTYPE_INT }, \
+ { "posix2_localedef", CTLTYPE_INT }, \
+ { "posix2_sw_dev", CTLTYPE_INT }, \
+ { "posix2_upe", CTLTYPE_INT }, \
+ { "stream_max", CTLTYPE_INT }, \
+ { "tzname_max", CTLTYPE_INT } \
+}
+
+
+
+/*
+ * CTL_DEBUG definitions
+ *
+ * Second level identifier specifies which debug variable.
+ * Third level identifier specifies which stucture component.
+ */
+#define CTL_DEBUG_NAME 0 /* string: variable name */
+#define CTL_DEBUG_VALUE 1 /* int: variable value */
+#define CTL_DEBUG_MAXID 20
+
+
+#if (CTL_MAXID != 9) || (KERN_MAXID != 72) || (VM_MAXID != 6) || (HW_MAXID != 28) || (USER_MAXID != 21) || (CTL_DEBUG_MAXID != 20)
+#error Use the SYSCTL_*() macros and OID_AUTO instead!
+#endif
+
+
+
+__BEGIN_DECLS
+int sysctl(int *, u_int, void *, size_t *, void *, size_t);
+int sysctlbyname(const char *, void *, size_t *, void *, size_t);
+int sysctlnametomib(const char *, int *, size_t *);
+__END_DECLS
+
+
+
+#endif /* SYSCTL_DEF_ENABLED */
+
+
+#endif /* !_SYS_SYSCTL_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/syslimits.h b/lib/libc/include/aarch64-macos-gnu/sys/syslimits.h
new file mode 100644
index 0000000000..ee8da5a411
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/syslimits.h
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* $NetBSD: syslimits.h,v 1.15 1997/06/25 00:48:09 lukem Exp $ */
+
+/*
+ * Copyright (c) 1988, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef _SYS_SYSLIMITS_H_
+#define _SYS_SYSLIMITS_H_
+
+#include <sys/cdefs.h>
+
+#if !defined(_ANSI_SOURCE)
+
+/* max bytes for an exec function */
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
+#define ARG_MAX (1024 * 1024)
+#else
+#define ARG_MAX (256 * 1024)
+#endif
+
+/*
+ * Note: CHILD_MAX *must* be less than hard_maxproc, which is set at
+ * compile time; you *cannot* set it higher than the hard limit!!
+ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CHILD_MAX 266 /* max simultaneous processes */
+#define GID_MAX 2147483647U /* max value for a gid_t (2^31-2) */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define LINK_MAX 32767 /* max file link count */
+#define MAX_CANON 1024 /* max bytes in term canon input line */
+#define MAX_INPUT 1024 /* max bytes in terminal input */
+#define NAME_MAX 255 /* max bytes in a file name */
+#define NGROUPS_MAX 16 /* max supplemental group id's */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define UID_MAX 2147483647U /* max value for a uid_t (2^31-2) */
+
+#define OPEN_MAX 10240 /* max open files per process - todo, make a config option? */
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define PATH_MAX 1024 /* max bytes in pathname */
+#define PIPE_BUF 512 /* max bytes for atomic pipe writes */
+
+#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */
+#define BC_DIM_MAX 2048 /* max array elements in bc(1) */
+#define BC_SCALE_MAX 99 /* max scale value in bc(1) */
+#define BC_STRING_MAX 1000 /* max const string length in bc(1) */
+#define CHARCLASS_NAME_MAX 14 /* max character class name size */
+#define COLL_WEIGHTS_MAX 2 /* max weights for order keyword */
+#define EQUIV_CLASS_MAX 2
+#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */
+#define LINE_MAX 2048 /* max bytes in an input line */
+#define RE_DUP_MAX 255 /* max RE's in interval notation */
+
+#if __DARWIN_UNIX03
+#define NZERO 20 /* default priority [XSI] */
+ /* = ((PRIO_MAX - PRIO_MIN) / 2) + 1 */
+ /* range: 0 - 39 [(2 * NZERO) - 1] */
+ /* 0 is not actually used */
+#else /* !__DARWIN_UNIX03 */
+#define NZERO 0 /* default priority */
+ /* range: -20 - 20 */
+ /* (PRIO_MIN - PRIO_MAX) */
+#endif /* __DARWIN_UNIX03 */
+#endif /* !_ANSI_SOURCE */
+
+#endif /* !_SYS_SYSLIMITS_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/uio.h b/lib/libc/include/aarch64-macos-gnu/sys/uio.h
new file mode 100644
index 0000000000..619a8f1786
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/uio.h
@@ -0,0 +1,111 @@
+/*
+ * 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, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)uio.h 8.5 (Berkeley) 2/22/94
+ */
+
+#ifndef _SYS_UIO_H_
+#define _SYS_UIO_H_
+
+#include <Availability.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+#include <sys/_types/_off_t.h>
+
+/*
+ * [XSI] The ssize_t and size_t types shall be defined as described
+ * in <sys/types.h>.
+ */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+
+/*
+ * [XSI] Structure whose address is passed as the second parameter to the
+ * readv(), preadv(), writev() and pwritev() functions.
+ */
+#include <sys/_types/_iovec_t.h>
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * IO direction for uio_t.
+ * UIO_READ - data moves into iovec(s) associated with uio_t
+ * UIO_WRITE - data moves out of iovec(s) associated with uio_t
+ */
+enum uio_rw { UIO_READ, UIO_WRITE };
+#endif
+
+
+
+__BEGIN_DECLS
+ssize_t readv(int, const struct iovec *, int) __DARWIN_ALIAS_C(readv);
+ssize_t writev(int, const struct iovec *, int) __DARWIN_ALIAS_C(writev);
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+
+ssize_t preadv(int, const struct iovec *, int, off_t) __DARWIN_NOCANCEL(preadv) __API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0));
+ssize_t pwritev(int, const struct iovec *, int, off_t) __DARWIN_NOCANCEL(pwritev) __API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0));
+
+#endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */
+
+__END_DECLS
+
+
+#endif /* !_SYS_UIO_H_ */ \ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos-gnu/sys/un.h b/lib/libc/include/aarch64-macos-gnu/sys/un.h
new file mode 100644
index 0000000000..305196b361
--- /dev/null
+++ b/lib/libc/include/aarch64-macos-gnu/sys/un.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)un.h 8.3 (Berkeley) 2/19/95
+ */
+
+#ifndef _SYS_UN_H_
+#define _SYS_UN_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/* [XSI] The sa_family_t type shall be defined as described in <sys/socket.h> */
+#include <sys/_types/_sa_family_t.h>
+
+/*
+ * [XSI] Definitions for UNIX IPC domain.
+ */
+struct sockaddr_un {
+ unsigned char sun_len; /* sockaddr len including null */
+ sa_family_t sun_family; /* [XSI] AF_UNIX */
+ char sun_path[104]; /* [XSI] path name (gag) */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/* Level number of get/setsockopt for local domain sockets */
+#define SOL_LOCAL 0
+
+/* Socket options. */
+#define LOCAL_PEERCRED 0x001 /* retrieve peer credentials */
+#define LOCAL_PEERPID 0x002 /* retrieve peer pid */
+#define LOCAL_PEEREPID 0x003 /* retrieve eff. peer pid */
+#define LOCAL_PEERUUID 0x004 /* retrieve peer UUID */
+#define LOCAL_PEEREUUID 0x005 /* retrieve eff. peer UUID */
+#define LOCAL_PEERTOKEN 0x006 /* retrieve peer audit token */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* actual length of an initialized sockaddr_un */
+#define SUN_LEN(su) \
+ (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+#endif /* !_SYS_UN_H_ */ \ No newline at end of file