Commit b0cbd0ad2d

Andrew Kelley <andrew@ziglang.org>
2020-11-09 06:12:18
macos libc headers: add more
these new files are generated by recursively including: sysexits.h mach/mach.h sys/attr.h sys/mount.h crt_externs.h execinfo.h all of which are depended on by LLVM libraries.
1 parent cd221b9
lib/libc/include/x86_64-macos-gnu/mach/i386/processor_info.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ *	File:	mach/i386/processor_info.h
+ *
+ *	Data structure definitions for i386 specific processor control
+ */
+
+#ifndef _MACH_I386_PROCESSOR_INFO_H_
+#define _MACH_I386_PROCESSOR_INFO_H_
+
+#endif  /* _MACH_I386_PROCESSOR_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/rpc.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_I386_RPC_H_
+#define _MACH_I386_RPC_H_
+
+#endif  /* _MACH_I386_RPC_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/processor_info.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_MACHINE_PROCESSOR_INFO_H_
+#define _MACH_MACHINE_PROCESSOR_INFO_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/processor_info.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_PROCESSOR_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/rpc.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_MACHINE_RPC_H_
+#define _MACH_MACHINE_RPC_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/rpc.h"
+#else
+#error architecture not supported
+#endif
+
+#endif  /* _MACH_MACHINE_RPC_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/vm_param.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_MACHINE_VM_PARAM_H_
+#define _MACH_MACHINE_VM_PARAM_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/vm_param.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_VM_PARAM_H_ */
lib/libc/include/x86_64-macos-gnu/mach/clock_priv.h
@@ -0,0 +1,199 @@
+#ifndef	_clock_priv_user_
+#define	_clock_priv_user_
+
+/* Module clock_priv */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	clock_priv_MSG_COUNT
+#define	clock_priv_MSG_COUNT	2
+#endif	/* clock_priv_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine clock_set_time */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_set_time
+(
+	clock_ctrl_t clock_ctrl,
+	mach_timespec_t new_time
+);
+
+/* Routine clock_set_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_set_attributes
+(
+	clock_ctrl_t clock_ctrl,
+	clock_flavor_t flavor,
+	clock_attr_t clock_attr,
+	mach_msg_type_number_t clock_attrCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__clock_priv_subsystem__defined
+#define __Request__clock_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_timespec_t new_time;
+	} __Request__clock_set_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_flavor_t flavor;
+		mach_msg_type_number_t clock_attrCnt;
+		int clock_attr[1];
+	} __Request__clock_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__clock_priv_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__clock_priv_subsystem__defined
+#define __RequestUnion__clock_priv_subsystem__defined
+union __RequestUnion__clock_priv_subsystem {
+	__Request__clock_set_time_t Request_clock_set_time;
+	__Request__clock_set_attributes_t Request_clock_set_attributes;
+};
+#endif /* !__RequestUnion__clock_priv_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__clock_priv_subsystem__defined
+#define __Reply__clock_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__clock_set_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__clock_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__clock_priv_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__clock_priv_subsystem__defined
+#define __ReplyUnion__clock_priv_subsystem__defined
+union __ReplyUnion__clock_priv_subsystem {
+	__Reply__clock_set_time_t Reply_clock_set_time;
+	__Reply__clock_set_attributes_t Reply_clock_set_attributes;
+};
+#endif /* !__RequestUnion__clock_priv_subsystem__defined */
+
+#ifndef subsystem_to_name_map_clock_priv
+#define subsystem_to_name_map_clock_priv \
+    { "clock_set_time", 1200 },\
+    { "clock_set_attributes", 1201 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _clock_priv_user_ */
lib/libc/include/x86_64-macos-gnu/mach/clock_types.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ *	File:		clock_types.h
+ *	Purpose:	Clock facility header definitions. These
+ *				definitons are needed by both kernel and
+ *				user-level software.
+ */
+
+/*
+ *	All interfaces defined here are obsolete.
+ */
+
+#ifndef _MACH_CLOCK_TYPES_H_
+#define _MACH_CLOCK_TYPES_H_
+
+#include <stdint.h>
+#include <mach/time_value.h>
+
+/*
+ * Type definitions.
+ */
+typedef int     alarm_type_t;           /* alarm time type */
+typedef int     sleep_type_t;           /* sleep time type */
+typedef int     clock_id_t;                     /* clock identification type */
+typedef int     clock_flavor_t;         /* clock flavor type */
+typedef int     *clock_attr_t;          /* clock attribute type */
+typedef int     clock_res_t;            /* clock resolution type */
+
+/*
+ * Normal time specification used by the kernel clock facility.
+ */
+struct mach_timespec {
+	unsigned int    tv_sec;                 /* seconds */
+	clock_res_t             tv_nsec;                /* nanoseconds */
+};
+typedef struct mach_timespec    mach_timespec_t;
+
+/*
+ * Reserved clock id values for default clocks.
+ */
+#define SYSTEM_CLOCK            0
+#define CALENDAR_CLOCK          1
+
+#define REALTIME_CLOCK          0
+
+/*
+ * Attribute names.
+ */
+#define CLOCK_GET_TIME_RES      1       /* get_time call resolution */
+/*							2	 * was map_time call resolution */
+#define CLOCK_ALARM_CURRES      3       /* current alarm resolution */
+#define CLOCK_ALARM_MINRES      4       /* minimum alarm resolution */
+#define CLOCK_ALARM_MAXRES      5       /* maximum alarm resolution */
+
+#define NSEC_PER_USEC   1000ull         /* nanoseconds per microsecond */
+#define USEC_PER_SEC    1000000ull      /* microseconds per second */
+#define NSEC_PER_SEC    1000000000ull   /* nanoseconds per second */
+#define NSEC_PER_MSEC   1000000ull      /* nanoseconds per millisecond */
+
+#define BAD_MACH_TIMESPEC(t)                                            \
+	((t)->tv_nsec < 0 || (t)->tv_nsec >= (long)NSEC_PER_SEC)
+
+/* t1 <=> t2, also (t1 - t2) in nsec with max of +- 1 sec */
+#define CMP_MACH_TIMESPEC(t1, t2)                                       \
+	((t1)->tv_sec > (t2)->tv_sec ? (long) +NSEC_PER_SEC :   \
+	((t1)->tv_sec < (t2)->tv_sec ? (long) -NSEC_PER_SEC :   \
+	                (t1)->tv_nsec - (t2)->tv_nsec))
+
+/* t1  += t2 */
+#define ADD_MACH_TIMESPEC(t1, t2)                                                               \
+  do {                                                                                                                  \
+	if (((t1)->tv_nsec += (t2)->tv_nsec) >= (long) NSEC_PER_SEC) {          \
+	        (t1)->tv_nsec -= (long) NSEC_PER_SEC;                                                   \
+	        (t1)->tv_sec  += 1;                                                                             \
+	}                                                                                                                       \
+	(t1)->tv_sec += (t2)->tv_sec;                                                           \
+  } while (0)
+
+/* t1  -= t2 */
+#define SUB_MACH_TIMESPEC(t1, t2)                                                               \
+  do {                                                                                                                  \
+	if (((t1)->tv_nsec -= (t2)->tv_nsec) < 0) {                                     \
+	        (t1)->tv_nsec += (long) NSEC_PER_SEC;                                                   \
+	        (t1)->tv_sec  -= 1;                                                                             \
+	}                                                                                                                       \
+	(t1)->tv_sec -= (t2)->tv_sec;                                                           \
+  } while (0)
+
+/*
+ * Alarm parameter defines.
+ */
+#define ALRMTYPE                        0xff            /* type (8-bit field)	*/
+#define TIME_ABSOLUTE           0x00            /* absolute time */
+#define TIME_RELATIVE           0x01            /* relative time */
+
+#define BAD_ALRMTYPE(t)         (((t) &~ TIME_RELATIVE) != 0)
+
+#endif /* _MACH_CLOCK_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/dyld_kernel.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2016 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_DYLIB_INFO_H_
+#define _MACH_DYLIB_INFO_H_
+
+#include <mach/boolean.h>
+#include <stdint.h>
+#include <sys/_types/_fsid_t.h>
+#include <sys/_types/_u_int32_t.h>
+#include <sys/_types/_fsobj_id_t.h>
+#include <sys/_types/_uuid_t.h>
+
+/* These definitions must be kept in sync with the ones in
+ * osfmk/mach/mach_types.defs.
+ */
+
+struct dyld_kernel_image_info {
+	uuid_t uuid;
+	fsobj_id_t fsobjid;
+	fsid_t fsid;
+	uint64_t load_addr;
+};
+
+struct dyld_kernel_process_info {
+	struct dyld_kernel_image_info cache_image_info;
+	uint64_t timestamp;         // mach_absolute_time of last time dyld change to image list
+	uint32_t imageCount;        // number of images currently loaded into process
+	uint32_t initialImageCount; // number of images statically loaded into process (before any dlopen() calls)
+	uint8_t dyldState;          // one of dyld_process_state_* values
+	boolean_t no_cache;         // process is running without a dyld cache
+	boolean_t private_cache;    // process is using a private copy of its dyld cache
+};
+
+/* typedefs so our MIG is sane */
+
+typedef struct dyld_kernel_image_info dyld_kernel_image_info_t;
+typedef struct dyld_kernel_process_info dyld_kernel_process_info_t;
+typedef dyld_kernel_image_info_t *dyld_kernel_image_info_array_t;
+
+#endif /* _MACH_DYLIB_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/error.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ * File:	mach/error.h
+ * Purpose:
+ *	error module definitions
+ *
+ */
+
+#ifndef _MACH_ERROR_H_
+#define _MACH_ERROR_H_
+
+#include <mach/kern_return.h>
+
+/*
+ *	error number layout as follows:
+ *
+ *	hi		                       lo
+ *	| system(6) | subsystem(12) | code(14) |
+ */
+
+
+#define err_none                (mach_error_t)0
+#define ERR_SUCCESS             (mach_error_t)0
+#define ERR_ROUTINE_NIL         (mach_error_fn_t)0
+
+
+#define err_system(x)           ((signed)((((unsigned)(x))&0x3f)<<26))
+#define err_sub(x)              (((x)&0xfff)<<14)
+
+#define err_get_system(err)     (((err)>>26)&0x3f)
+#define err_get_sub(err)        (((err)>>14)&0xfff)
+#define err_get_code(err)       ((err)&0x3fff)
+
+#define system_emask            (err_system(0x3f))
+#define sub_emask               (err_sub(0xfff))
+#define code_emask              (0x3fff)
+
+
+/*	major error systems	*/
+#define err_kern                err_system(0x0)         /* kernel */
+#define err_us                  err_system(0x1)         /* user space library */
+#define err_server              err_system(0x2)         /* user space servers */
+#define err_ipc                 err_system(0x3)         /* old ipc errors */
+#define err_mach_ipc            err_system(0x4)         /* mach-ipc errors */
+#define err_dipc                err_system(0x7)         /* distributed ipc */
+#define err_local               err_system(0x3e)        /* user defined errors */
+#define err_ipc_compat          err_system(0x3f)        /* (compatibility) mach-ipc errors */
+
+#define err_max_system          0x3f
+
+
+/*	unix errors get lumped into one subsystem  */
+#define unix_err(errno)         (err_kern|err_sub(3)|errno)
+
+typedef kern_return_t   mach_error_t;
+typedef mach_error_t    (* mach_error_fn_t)( void );
+
+#endif  /* _MACH_ERROR_H_ */
lib/libc/include/x86_64-macos-gnu/mach/host_info.h
@@ -0,0 +1,260 @@
+/*
+ * Copyright (c) 2000-2015 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ *	File:	mach/host_info.h
+ *
+ *	Definitions for host_info call.
+ */
+
+#ifndef _MACH_HOST_INFO_H_
+#define _MACH_HOST_INFO_H_
+
+#include <mach/message.h>
+#include <mach/vm_statistics.h>
+#include <mach/machine.h>
+#include <mach/machine/vm_types.h>
+#include <mach/time_value.h>
+
+#include <sys/cdefs.h>
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef integer_t       *host_info_t;           /* varying array of int. */
+typedef integer_t       *host_info64_t;         /* varying array of int. */
+
+#define HOST_INFO_MAX   (1024)          /* max array size */
+typedef integer_t       host_info_data_t[HOST_INFO_MAX];
+
+#define KERNEL_VERSION_MAX (512)
+typedef char    kernel_version_t[KERNEL_VERSION_MAX];
+
+#define KERNEL_BOOT_INFO_MAX (4096)
+typedef char    kernel_boot_info_t[KERNEL_BOOT_INFO_MAX];
+
+/*
+ *	Currently defined information.
+ */
+/* host_info() */
+typedef integer_t       host_flavor_t;
+#define HOST_BASIC_INFO         1       /* basic info */
+#define HOST_SCHED_INFO         3       /* scheduling info */
+#define HOST_RESOURCE_SIZES     4       /* kernel struct sizes */
+#define HOST_PRIORITY_INFO      5       /* priority information */
+#define HOST_SEMAPHORE_TRAPS    7       /* Has semaphore traps */
+#define HOST_MACH_MSG_TRAP      8       /* Has mach_msg_trap */
+#define HOST_VM_PURGABLE        9       /* purg'e'able memory info */
+#define HOST_DEBUG_INFO_INTERNAL 10     /* Used for kernel internal development tests only */
+#define HOST_CAN_HAS_DEBUGGER   11
+#define HOST_PREFERRED_USER_ARCH 12     /* Get the preferred user-space architecture */
+
+
+struct host_can_has_debugger_info {
+	boolean_t       can_has_debugger;
+};
+typedef struct host_can_has_debugger_info       host_can_has_debugger_info_data_t;
+typedef struct host_can_has_debugger_info       *host_can_has_debugger_info_t;
+#define HOST_CAN_HAS_DEBUGGER_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_can_has_debugger_info_data_t)/sizeof(integer_t)))
+
+#pragma pack(push, 4)
+
+struct host_basic_info {
+	integer_t               max_cpus;               /* max number of CPUs possible */
+	integer_t               avail_cpus;             /* number of CPUs now available */
+	natural_t               memory_size;            /* size of memory in bytes, capped at 2 GB */
+	cpu_type_t              cpu_type;               /* cpu type */
+	cpu_subtype_t           cpu_subtype;            /* cpu subtype */
+	cpu_threadtype_t        cpu_threadtype;         /* cpu threadtype */
+	integer_t               physical_cpu;           /* number of physical CPUs now available */
+	integer_t               physical_cpu_max;       /* max number of physical CPUs possible */
+	integer_t               logical_cpu;            /* number of logical cpu now available */
+	integer_t               logical_cpu_max;        /* max number of physical CPUs possible */
+	uint64_t                max_mem;                /* actual size of physical memory */
+};
+
+#pragma pack(pop)
+
+typedef struct host_basic_info  host_basic_info_data_t;
+typedef struct host_basic_info  *host_basic_info_t;
+#define HOST_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_basic_info_data_t)/sizeof(integer_t)))
+
+struct host_sched_info {
+	integer_t       min_timeout;    /* minimum timeout in milliseconds */
+	integer_t       min_quantum;    /* minimum quantum in milliseconds */
+};
+
+typedef struct host_sched_info  host_sched_info_data_t;
+typedef struct host_sched_info  *host_sched_info_t;
+#define HOST_SCHED_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_sched_info_data_t)/sizeof(integer_t)))
+
+struct kernel_resource_sizes {
+	natural_t       task;
+	natural_t       thread;
+	natural_t       port;
+	natural_t       memory_region;
+	natural_t       memory_object;
+};
+
+typedef struct kernel_resource_sizes    kernel_resource_sizes_data_t;
+typedef struct kernel_resource_sizes    *kernel_resource_sizes_t;
+#define HOST_RESOURCE_SIZES_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(kernel_resource_sizes_data_t)/sizeof(integer_t)))
+
+struct host_priority_info {
+	integer_t       kernel_priority;
+	integer_t       system_priority;
+	integer_t       server_priority;
+	integer_t       user_priority;
+	integer_t       depress_priority;
+	integer_t       idle_priority;
+	integer_t       minimum_priority;
+	integer_t       maximum_priority;
+};
+
+typedef struct host_priority_info       host_priority_info_data_t;
+typedef struct host_priority_info       *host_priority_info_t;
+#define HOST_PRIORITY_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_priority_info_data_t)/sizeof(integer_t)))
+
+/* host_statistics() */
+#define HOST_LOAD_INFO          1       /* System loading stats */
+#define HOST_VM_INFO            2       /* Virtual memory stats */
+#define HOST_CPU_LOAD_INFO      3       /* CPU load stats */
+
+/* host_statistics64() */
+#define HOST_VM_INFO64          4       /* 64-bit virtual memory stats */
+#define HOST_EXTMOD_INFO64      5       /* External modification stats */
+#define HOST_EXPIRED_TASK_INFO  6       /* Statistics for expired tasks */
+
+
+struct host_load_info {
+	integer_t       avenrun[3];     /* scaled by LOAD_SCALE */
+	integer_t       mach_factor[3]; /* scaled by LOAD_SCALE */
+};
+
+typedef struct host_load_info   host_load_info_data_t;
+typedef struct host_load_info   *host_load_info_t;
+#define HOST_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_load_info_data_t)/sizeof(integer_t)))
+
+typedef struct vm_purgeable_info        host_purgable_info_data_t;
+typedef struct vm_purgeable_info        *host_purgable_info_t;
+#define HOST_VM_PURGABLE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_purgable_info_data_t)/sizeof(integer_t)))
+
+/* in <mach/vm_statistics.h> */
+/* vm_statistics64 */
+#define HOST_VM_INFO64_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(vm_statistics64_data_t)/sizeof(integer_t)))
+
+/* size of the latest version of the structure */
+#define HOST_VM_INFO64_LATEST_COUNT HOST_VM_INFO64_COUNT
+#define HOST_VM_INFO64_REV1_COUNT HOST_VM_INFO64_LATEST_COUNT
+/* previous versions: adjust the size according to what was added each time */
+#define HOST_VM_INFO64_REV0_COUNT /* added compression and swapper info (14 ints) */ \
+	((mach_msg_type_number_t) \
+	 (HOST_VM_INFO64_REV1_COUNT - 14))
+
+/* in <mach/vm_statistics.h> */
+/* vm_extmod_statistics */
+#define HOST_EXTMOD_INFO64_COUNT ((mach_msg_type_number_t) \
+	    (sizeof(vm_extmod_statistics_data_t)/sizeof(integer_t)))
+
+/* size of the latest version of the structure */
+#define HOST_EXTMOD_INFO64_LATEST_COUNT HOST_EXTMOD_INFO64_COUNT
+
+/* vm_statistics */
+#define HOST_VM_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(vm_statistics_data_t)/sizeof(integer_t)))
+
+/* size of the latest version of the structure */
+#define HOST_VM_INFO_LATEST_COUNT HOST_VM_INFO_COUNT
+#define HOST_VM_INFO_REV2_COUNT HOST_VM_INFO_LATEST_COUNT
+/* previous versions: adjust the size according to what was added each time */
+#define HOST_VM_INFO_REV1_COUNT /* added "speculative_count" (1 int) */ \
+	((mach_msg_type_number_t) \
+	 (HOST_VM_INFO_REV2_COUNT - 1))
+#define HOST_VM_INFO_REV0_COUNT /* added "purgable" info (2 ints) */    \
+	((mach_msg_type_number_t) \
+	 (HOST_VM_INFO_REV1_COUNT - 2))
+
+struct host_cpu_load_info {             /* number of ticks while running... */
+	natural_t       cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
+};
+
+typedef struct host_cpu_load_info       host_cpu_load_info_data_t;
+typedef struct host_cpu_load_info       *host_cpu_load_info_t;
+#define HOST_CPU_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
+	        (sizeof (host_cpu_load_info_data_t) / sizeof (integer_t)))
+
+struct host_preferred_user_arch {
+	cpu_type_t      cpu_type;       /* Preferred user-space cpu type */
+	cpu_subtype_t   cpu_subtype;    /* Preferred user-space cpu subtype */
+};
+
+typedef struct host_preferred_user_arch host_preferred_user_arch_data_t;
+typedef struct host_preferred_user_arch *host_preferred_user_arch_t;
+#define HOST_PREFERRED_USER_ARCH_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(host_preferred_user_arch_data_t)/sizeof(integer_t)))
+
+
+
+
+#endif  /* _MACH_HOST_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/host_notify.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_HOST_NOTIFY_H_
+#define _MACH_HOST_NOTIFY_H_
+
+#define HOST_NOTIFY_CALENDAR_CHANGE             0
+#define HOST_NOTIFY_CALENDAR_SET                1
+#define HOST_NOTIFY_TYPE_MAX                    1
+
+#define HOST_CALENDAR_CHANGED_REPLYID   950
+#define HOST_CALENDAR_SET_REPLYID               951
+
+#endif /* _MACH_HOST_NOTIFY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/host_priv.h
@@ -0,0 +1,1163 @@
+#ifndef	_host_priv_user_
+#define	_host_priv_user_
+
+/* Module host_priv */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	host_priv_MSG_COUNT
+#define	host_priv_MSG_COUNT	26
+#endif	/* host_priv_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach/mach_types.h>
+#include <mach_debug/mach_debug_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine host_get_boot_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_boot_info
+(
+	host_priv_t host_priv,
+	kernel_boot_info_t boot_info
+);
+
+/* Routine host_reboot */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_reboot
+(
+	host_priv_t host_priv,
+	int options
+);
+
+/* Routine host_priv_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_priv_statistics
+(
+	host_priv_t host_priv,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_default_memory_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_default_memory_manager
+(
+	host_priv_t host_priv,
+	memory_object_default_t *default_manager,
+	memory_object_cluster_size_t cluster_size
+);
+
+/* Routine vm_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_wire
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_prot_t desired_access
+);
+
+/* Routine thread_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_wire
+(
+	host_priv_t host_priv,
+	thread_act_t thread,
+	boolean_t wired
+);
+
+/* Routine vm_allocate_cpm */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_allocate_cpm
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	vm_address_t *address,
+	vm_size_t size,
+	int flags
+);
+
+/* Routine host_processors */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processors
+(
+	host_priv_t host_priv,
+	processor_array_t *out_processor_list,
+	mach_msg_type_number_t *out_processor_listCnt
+);
+
+/* Routine host_get_clock_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_clock_control
+(
+	host_priv_t host_priv,
+	clock_id_t clock_id,
+	clock_ctrl_t *clock_ctrl
+);
+
+/* Routine kmod_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_create
+(
+	host_priv_t host_priv,
+	vm_address_t info,
+	kmod_t *module
+);
+
+/* Routine kmod_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_destroy
+(
+	host_priv_t host_priv,
+	kmod_t module
+);
+
+/* Routine kmod_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_control
+(
+	host_priv_t host_priv,
+	kmod_t module,
+	kmod_control_flavor_t flavor,
+	kmod_args_t *data,
+	mach_msg_type_number_t *dataCnt
+);
+
+/* Routine host_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_special_port
+(
+	host_priv_t host_priv,
+	int node,
+	int which,
+	mach_port_t *port
+);
+
+/* Routine host_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_special_port
+(
+	host_priv_t host_priv,
+	int which,
+	mach_port_t port
+);
+
+/* Routine host_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine host_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine host_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_swap_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlerss,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine mach_vm_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_wire
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	mach_vm_address_t address,
+	mach_vm_size_t size,
+	vm_prot_t desired_access
+);
+
+/* Routine host_processor_sets */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_sets
+(
+	host_priv_t host_priv,
+	processor_set_name_array_t *processor_sets,
+	mach_msg_type_number_t *processor_setsCnt
+);
+
+/* Routine host_processor_set_priv */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_set_priv
+(
+	host_priv_t host_priv,
+	processor_set_name_t set_name,
+	processor_set_t *set
+);
+
+/* Routine host_set_UNDServer */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_UNDServer
+(
+	host_priv_t host,
+	UNDServerRef server
+);
+
+/* Routine host_get_UNDServer */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_UNDServer
+(
+	host_priv_t host,
+	UNDServerRef *server
+);
+
+/* Routine kext_request */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kext_request
+(
+	host_priv_t host_priv,
+	uint32_t user_log_flags,
+	vm_offset_t request_data,
+	mach_msg_type_number_t request_dataCnt,
+	vm_offset_t *response_data,
+	mach_msg_type_number_t *response_dataCnt,
+	vm_offset_t *log_data,
+	mach_msg_type_number_t *log_dataCnt,
+	kern_return_t *op_result
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__host_priv_subsystem__defined
+#define __Request__host_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_boot_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int options;
+	} __Request__host_reboot_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_priv_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_cluster_size_t cluster_size;
+	} __Request__host_default_memory_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_prot_t desired_access;
+	} __Request__vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t thread;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t wired;
+	} __Request__thread_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		int flags;
+	} __Request__vm_allocate_cpm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_processors_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_id_t clock_id;
+	} __Request__host_get_clock_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t info;
+	} __Request__kmod_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kmod_t module;
+	} __Request__kmod_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		kmod_t module;
+		kmod_control_flavor_t flavor;
+		mach_msg_type_number_t dataCnt;
+	} __Request__kmod_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int node;
+		int which;
+	} __Request__host_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which;
+	} __Request__host_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__host_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__host_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__host_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_vm_address_t address;
+		mach_vm_size_t size;
+		vm_prot_t desired_access;
+	} __Request__mach_vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_processor_sets_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t set_name;
+		/* end of the kernel processed data */
+	} __Request__host_processor_set_priv_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t server;
+		/* end of the kernel processed data */
+	} __Request__host_set_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t request_data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		uint32_t user_log_flags;
+		mach_msg_type_number_t request_dataCnt;
+	} __Request__kext_request_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__host_priv_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__host_priv_subsystem__defined
+#define __RequestUnion__host_priv_subsystem__defined
+union __RequestUnion__host_priv_subsystem {
+	__Request__host_get_boot_info_t Request_host_get_boot_info;
+	__Request__host_reboot_t Request_host_reboot;
+	__Request__host_priv_statistics_t Request_host_priv_statistics;
+	__Request__host_default_memory_manager_t Request_host_default_memory_manager;
+	__Request__vm_wire_t Request_vm_wire;
+	__Request__thread_wire_t Request_thread_wire;
+	__Request__vm_allocate_cpm_t Request_vm_allocate_cpm;
+	__Request__host_processors_t Request_host_processors;
+	__Request__host_get_clock_control_t Request_host_get_clock_control;
+	__Request__kmod_create_t Request_kmod_create;
+	__Request__kmod_destroy_t Request_kmod_destroy;
+	__Request__kmod_control_t Request_kmod_control;
+	__Request__host_get_special_port_t Request_host_get_special_port;
+	__Request__host_set_special_port_t Request_host_set_special_port;
+	__Request__host_set_exception_ports_t Request_host_set_exception_ports;
+	__Request__host_get_exception_ports_t Request_host_get_exception_ports;
+	__Request__host_swap_exception_ports_t Request_host_swap_exception_ports;
+	__Request__mach_vm_wire_t Request_mach_vm_wire;
+	__Request__host_processor_sets_t Request_host_processor_sets;
+	__Request__host_processor_set_priv_t Request_host_processor_set_priv;
+	__Request__host_set_UNDServer_t Request_host_set_UNDServer;
+	__Request__host_get_UNDServer_t Request_host_get_UNDServer;
+	__Request__kext_request_t Request_kext_request;
+};
+#endif /* !__RequestUnion__host_priv_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__host_priv_subsystem__defined
+#define __Reply__host_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t boot_infoOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t boot_infoCnt;
+		char boot_info[4096];
+	} __Reply__host_get_boot_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_reboot_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_priv_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_manager;
+		/* end of the kernel processed data */
+	} __Reply__host_default_memory_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_allocate_cpm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t out_processor_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t out_processor_listCnt;
+	} __Reply__host_processors_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t clock_ctrl;
+		/* end of the kernel processed data */
+	} __Reply__host_get_clock_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		kmod_t module;
+	} __Reply__kmod_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__kmod_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dataCnt;
+	} __Reply__kmod_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+	} __Reply__host_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__host_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlerss[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__host_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t processor_sets;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_setsCnt;
+	} __Reply__host_processor_sets_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t set;
+		/* end of the kernel processed data */
+	} __Reply__host_processor_set_priv_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t server;
+		/* end of the kernel processed data */
+	} __Reply__host_get_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t response_data;
+		mach_msg_ool_descriptor_t log_data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t response_dataCnt;
+		mach_msg_type_number_t log_dataCnt;
+		kern_return_t op_result;
+	} __Reply__kext_request_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__host_priv_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__host_priv_subsystem__defined
+#define __ReplyUnion__host_priv_subsystem__defined
+union __ReplyUnion__host_priv_subsystem {
+	__Reply__host_get_boot_info_t Reply_host_get_boot_info;
+	__Reply__host_reboot_t Reply_host_reboot;
+	__Reply__host_priv_statistics_t Reply_host_priv_statistics;
+	__Reply__host_default_memory_manager_t Reply_host_default_memory_manager;
+	__Reply__vm_wire_t Reply_vm_wire;
+	__Reply__thread_wire_t Reply_thread_wire;
+	__Reply__vm_allocate_cpm_t Reply_vm_allocate_cpm;
+	__Reply__host_processors_t Reply_host_processors;
+	__Reply__host_get_clock_control_t Reply_host_get_clock_control;
+	__Reply__kmod_create_t Reply_kmod_create;
+	__Reply__kmod_destroy_t Reply_kmod_destroy;
+	__Reply__kmod_control_t Reply_kmod_control;
+	__Reply__host_get_special_port_t Reply_host_get_special_port;
+	__Reply__host_set_special_port_t Reply_host_set_special_port;
+	__Reply__host_set_exception_ports_t Reply_host_set_exception_ports;
+	__Reply__host_get_exception_ports_t Reply_host_get_exception_ports;
+	__Reply__host_swap_exception_ports_t Reply_host_swap_exception_ports;
+	__Reply__mach_vm_wire_t Reply_mach_vm_wire;
+	__Reply__host_processor_sets_t Reply_host_processor_sets;
+	__Reply__host_processor_set_priv_t Reply_host_processor_set_priv;
+	__Reply__host_set_UNDServer_t Reply_host_set_UNDServer;
+	__Reply__host_get_UNDServer_t Reply_host_get_UNDServer;
+	__Reply__kext_request_t Reply_kext_request;
+};
+#endif /* !__RequestUnion__host_priv_subsystem__defined */
+
+#ifndef subsystem_to_name_map_host_priv
+#define subsystem_to_name_map_host_priv \
+    { "host_get_boot_info", 400 },\
+    { "host_reboot", 401 },\
+    { "host_priv_statistics", 402 },\
+    { "host_default_memory_manager", 403 },\
+    { "vm_wire", 404 },\
+    { "thread_wire", 405 },\
+    { "vm_allocate_cpm", 406 },\
+    { "host_processors", 407 },\
+    { "host_get_clock_control", 408 },\
+    { "kmod_create", 409 },\
+    { "kmod_destroy", 410 },\
+    { "kmod_control", 411 },\
+    { "host_get_special_port", 412 },\
+    { "host_set_special_port", 413 },\
+    { "host_set_exception_ports", 414 },\
+    { "host_get_exception_ports", 415 },\
+    { "host_swap_exception_ports", 416 },\
+    { "mach_vm_wire", 418 },\
+    { "host_processor_sets", 419 },\
+    { "host_processor_set_priv", 420 },\
+    { "host_set_UNDServer", 423 },\
+    { "host_get_UNDServer", 424 },\
+    { "kext_request", 425 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _host_priv_user_ */
lib/libc/include/x86_64-macos-gnu/mach/host_security.h
@@ -0,0 +1,221 @@
+#ifndef	_host_security_user_
+#define	_host_security_user_
+
+/* Module host_security */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	host_security_MSG_COUNT
+#define	host_security_MSG_COUNT	2
+#endif	/* host_security_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine host_security_create_task_token */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_security_create_task_token
+(
+	host_security_t host_security,
+	task_t parent_task,
+	security_token_t sec_token,
+	audit_token_t audit_token,
+	host_t host,
+	ledger_array_t ledgers,
+	mach_msg_type_number_t ledgersCnt,
+	boolean_t inherit_memory,
+	task_t *child_task
+);
+
+/* Routine host_security_set_task_token */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_security_set_task_token
+(
+	host_security_t host_security,
+	task_t target_task,
+	security_token_t sec_token,
+	audit_token_t audit_token,
+	host_t host
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__host_security_subsystem__defined
+#define __Request__host_security_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_task;
+		mach_msg_port_descriptor_t host;
+		mach_msg_ool_ports_descriptor_t ledgers;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		security_token_t sec_token;
+		audit_token_t audit_token;
+		mach_msg_type_number_t ledgersCnt;
+		boolean_t inherit_memory;
+	} __Request__host_security_create_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t target_task;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		security_token_t sec_token;
+		audit_token_t audit_token;
+	} __Request__host_security_set_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__host_security_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__host_security_subsystem__defined
+#define __RequestUnion__host_security_subsystem__defined
+union __RequestUnion__host_security_subsystem {
+	__Request__host_security_create_task_token_t Request_host_security_create_task_token;
+	__Request__host_security_set_task_token_t Request_host_security_set_task_token;
+};
+#endif /* !__RequestUnion__host_security_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__host_security_subsystem__defined
+#define __Reply__host_security_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_task;
+		/* end of the kernel processed data */
+	} __Reply__host_security_create_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_security_set_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__host_security_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__host_security_subsystem__defined
+#define __ReplyUnion__host_security_subsystem__defined
+union __ReplyUnion__host_security_subsystem {
+	__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;
+	__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;
+};
+#endif /* !__RequestUnion__host_security_subsystem__defined */
+
+#ifndef subsystem_to_name_map_host_security
+#define subsystem_to_name_map_host_security \
+    { "host_security_create_task_token", 600 },\
+    { "host_security_set_task_token", 601 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _host_security_user_ */
lib/libc/include/x86_64-macos-gnu/mach/host_special_ports.h
@@ -0,0 +1,281 @@
+/*
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/host_special_ports.h
+ *
+ *	Defines codes for access to host-wide special ports.
+ */
+
+#ifndef _MACH_HOST_SPECIAL_PORTS_H_
+#define _MACH_HOST_SPECIAL_PORTS_H_
+
+/*
+ * Cannot be set or gotten from user space
+ */
+#define HOST_SECURITY_PORT               0
+
+#define HOST_MIN_SPECIAL_PORT            HOST_SECURITY_PORT
+
+/*
+ * Always provided by kernel (cannot be set from user-space).
+ */
+#define HOST_PORT                        1
+#define HOST_PRIV_PORT                   2
+#define HOST_IO_MASTER_PORT              3
+#define HOST_MAX_SPECIAL_KERNEL_PORT     7 /* room to grow */
+
+#define HOST_LAST_SPECIAL_KERNEL_PORT    HOST_IO_MASTER_PORT
+
+/*
+ * Not provided by kernel
+ */
+#define HOST_DYNAMIC_PAGER_PORT         (1 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AUDIT_CONTROL_PORT         (2 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_USER_NOTIFICATION_PORT     (3 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AUTOMOUNTD_PORT            (4 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_LOCKD_PORT                 (5 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_KTRACE_BACKGROUND_PORT     (6 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SEATBELT_PORT              (7 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_KEXTD_PORT                 (8 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_LAUNCHCTL_PORT             (9 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_UNFREED_PORT               (10 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AMFID_PORT                 (11 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_GSSD_PORT                  (12 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_TELEMETRY_PORT             (13 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_ATM_NOTIFICATION_PORT      (14 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_COALITION_PORT             (15 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SYSDIAGNOSE_PORT           (16 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_XPC_EXCEPTION_PORT         (17 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_CONTAINERD_PORT            (18 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_NODE_PORT                  (19 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_RESOURCE_NOTIFY_PORT       (20 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_CLOSURED_PORT              (21 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SYSPOLICYD_PORT            (22 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_FILECOORDINATIOND_PORT     (23 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_FAIRPLAYD_PORT             (24 + HOST_MAX_SPECIAL_KERNEL_PORT)
+
+#define HOST_MAX_SPECIAL_PORT           HOST_FAIRPLAYD_PORT
+/* MAX = last since rdar://35861175 */
+
+/* obsolete name */
+#define HOST_CHUD_PORT HOST_LAUNCHCTL_PORT
+
+/*
+ * Special node identifier to always represent the local node.
+ */
+#define HOST_LOCAL_NODE                  -1
+
+/*
+ * Definitions for ease of use.
+ *
+ * In the get call, the host parameter can be any host, but will generally
+ * be the local node host port. In the set call, the host must the per-node
+ * host port for the node being affected.
+ */
+#define host_get_host_port(host, port)  \
+	(host_get_special_port((host),  \
+	HOST_LOCAL_NODE, HOST_PORT, (port)))
+#define host_set_host_port(host, port) (KERN_INVALID_ARGUMENT)
+
+#define host_get_host_priv_port(host, port)     \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_PRIV_PORT, (port)))
+#define host_set_host_priv_port(host, port) (KERN_INVALID_ARGUMENT)
+
+#define host_get_io_master_port(host, port)     \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_IO_MASTER_PORT, (port)))
+#define host_set_io_master_port(host, port) (KERN_INVALID_ARGUMENT)
+
+/*
+ * User-settable special ports.
+ */
+#define host_get_dynamic_pager_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_DYNAMIC_PAGER_PORT, (port)))
+#define host_set_dynamic_pager_port(host, port) \
+	(host_set_special_port((host), HOST_DYNAMIC_PAGER_PORT, (port)))
+
+#define host_get_audit_control_port(host, port) \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_AUDIT_CONTROL_PORT, (port)))
+#define host_set_audit_control_port(host, port) \
+	(host_set_special_port((host), HOST_AUDIT_CONTROL_PORT, (port)))
+
+#define host_get_user_notification_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_USER_NOTIFICATION_PORT, (port)))
+#define host_set_user_notification_port(host, port)     \
+	(host_set_special_port((host), HOST_USER_NOTIFICATION_PORT, (port)))
+
+#define host_get_automountd_port(host, port)    \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_AUTOMOUNTD_PORT, (port)))
+#define host_set_automountd_port(host, port)    \
+	(host_set_special_port((host), HOST_AUTOMOUNTD_PORT, (port)))
+
+#define host_get_lockd_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_LOCKD_PORT, (port)))
+#define host_set_lockd_port(host, port) \
+	(host_set_special_port((host), HOST_LOCKD_PORT, (port)))
+
+#define host_get_ktrace_background_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_KTRACE_BACKGROUND_PORT, (port)))
+#define host_set_ktrace_background_port(host, port)     \
+	(host_set_special_port((host), HOST_KTRACE_BACKGROUND_PORT, (port)))
+
+#define host_get_kextd_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_KEXTD_PORT, (port)))
+#define host_set_kextd_port(host, port) \
+	(host_set_special_port((host), HOST_KEXTD_PORT, (port)))
+
+#define host_get_launchctl_port(host, port) \
+	(host_get_special_port((host), HOST_LOCAL_NODE, HOST_LAUNCHCTL_PORT, \
+	(port)))
+#define host_set_launchctl_port(host, port) \
+	(host_set_special_port((host), HOST_LAUNCHCTL_PORT, (port)))
+
+#define host_get_chud_port(host, port) host_get_launchctl_port(host, port)
+#define host_set_chud_port(host, port) host_set_launchctl_port(host, port)
+
+#define host_get_unfreed_port(host, port)       \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_UNFREED_PORT, (port)))
+#define host_set_unfreed_port(host, port)       \
+	(host_set_special_port((host), HOST_UNFREED_PORT, (port)))
+
+#define host_get_amfid_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_AMFID_PORT, (port)))
+#define host_set_amfid_port(host, port) \
+	(host_set_special_port((host), HOST_AMFID_PORT, (port)))
+
+#define host_get_gssd_port(host, port)  \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_GSSD_PORT, (port)))
+#define host_set_gssd_port(host, port)  \
+	(host_set_special_port((host), HOST_GSSD_PORT, (port)))
+
+#define host_get_telemetry_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_TELEMETRY_PORT, (port)))
+#define host_set_telemetry_port(host, port)     \
+	(host_set_special_port((host), HOST_TELEMETRY_PORT, (port)))
+
+#define host_get_atm_notification_port(host, port)      \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_ATM_NOTIFICATION_PORT, (port)))
+#define host_set_atm_notification_port(host, port)      \
+	(host_set_special_port((host), HOST_ATM_NOTIFICATION_PORT, (port)))
+
+#define host_get_coalition_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_COALITION_PORT, (port)))
+#define host_set_coalition_port(host, port)     \
+	(host_set_special_port((host), HOST_COALITION_PORT, (port)))
+
+#define host_get_sysdiagnose_port(host, port)   \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_SYSDIAGNOSE_PORT, (port)))
+#define host_set_sysdiagnose_port(host, port)   \
+	(host_set_special_port((host), HOST_SYSDIAGNOSE_PORT, (port)))
+
+#define host_get_container_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_CONTAINERD_PORT, (port)))
+#define host_set_container_port(host, port)     \
+	(host_set_special_port((host), HOST_CONTAINERD_PORT, (port)))
+
+#define host_get_node_port(host, port)  \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_NODE_PORT, (port)))
+#define host_set_node_port(host, port)  \
+	(host_set_special_port((host), HOST_NODE_PORT, (port)))
+
+#define host_get_closured_port(host, port)      \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_CLOSURED_PORT, (port)))
+#define host_set_closured_port(host, port)      \
+	(host_set_special_port((host), HOST_CLOSURED_PORT, (port)))
+
+#define host_get_syspolicyd_port(host, port)    \
+	(host_get_special_port((host),                          \
+	HOST_LOCAL_NODE, HOST_SYSPOLICYD_PORT, (port)))
+#define host_set_syspolicyd_port(host, port)    \
+	(host_set_special_port((host), HOST_SYSPOLICYD_PORT, (port)))
+
+#define host_get_filecoordinationd_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_FILECOORDINATIOND_PORT, (port)))
+#define host_set_filecoordinationd_port(host, port)     \
+	(host_set_special_port((host), HOST_FILECOORDINATIOND_PORT, (port)))
+
+#define host_get_fairplayd_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_FAIRPLAYD_PORT, (port)))
+#define host_set_fairplayd_port(host, port)     \
+	(host_set_special_port((host), HOST_FAIRPLAYD_PORT, (port)))
+
+/* HOST_RESOURCE_NOTIFY_PORT doesn't #defines these conveniences.
+ *  All lookups go through send_resource_violation()
+ */
+
+#endif  /* _MACH_HOST_SPECIAL_PORTS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/kmod.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * 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    _MACH_KMOD_H_
+#define    _MACH_KMOD_H_
+
+#include <mach/kern_return.h>
+#include <mach/mach_types.h>
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+#if PRAGMA_MARK
+#pragma mark Basic macros & typedefs
+#endif
+/***********************************************************************
+* Basic macros & typedefs
+***********************************************************************/
+#define KMOD_MAX_NAME    64
+
+#define KMOD_RETURN_SUCCESS    KERN_SUCCESS
+#define KMOD_RETURN_FAILURE    KERN_FAILURE
+
+typedef int kmod_t;
+
+struct  kmod_info;
+typedef kern_return_t kmod_start_func_t(struct kmod_info * ki, void * data);
+typedef kern_return_t kmod_stop_func_t(struct kmod_info * ki, void * data);
+
+#if PRAGMA_MARK
+#pragma mark Structure definitions
+#endif
+/***********************************************************************
+* Structure definitions
+*
+* All structures must be #pragma pack(4).
+***********************************************************************/
+#pragma pack(push, 4)
+
+/* Run-time struct only; never saved to a file */
+typedef struct kmod_reference {
+	struct kmod_reference * next;
+	struct kmod_info      * info;
+} kmod_reference_t;
+
+/***********************************************************************
+* Warning: Any changes to the kmod_info structure affect the
+* KMOD_..._DECL macros below.
+***********************************************************************/
+
+/* The kmod_info_t structure is only safe to use inside the running
+ * kernel.  If you need to work with a kmod_info_t structure outside
+ * the kernel, please use the compatibility definitions below.
+ */
+typedef struct kmod_info {
+	struct kmod_info  * next;
+	int32_t             info_version;       // version of this structure
+	uint32_t            id;
+	char                name[KMOD_MAX_NAME];
+	char                version[KMOD_MAX_NAME];
+	int32_t             reference_count;    // # linkage refs to this
+	kmod_reference_t  * reference_list;     // who this refs (links on)
+	vm_address_t        address;            // starting address
+	vm_size_t           size;               // total size
+	vm_size_t           hdr_size;           // unwired hdr size
+	kmod_start_func_t * start;
+	kmod_stop_func_t  * stop;
+} kmod_info_t;
+
+/* A compatibility definition of kmod_info_t for 32-bit kexts.
+ */
+typedef struct kmod_info_32_v1 {
+	uint32_t            next_addr;
+	int32_t             info_version;
+	uint32_t            id;
+	uint8_t             name[KMOD_MAX_NAME];
+	uint8_t             version[KMOD_MAX_NAME];
+	int32_t             reference_count;
+	uint32_t            reference_list_addr;
+	uint32_t            address;
+	uint32_t            size;
+	uint32_t            hdr_size;
+	uint32_t            start_addr;
+	uint32_t            stop_addr;
+} kmod_info_32_v1_t;
+
+/* A compatibility definition of kmod_info_t for 64-bit kexts.
+ */
+typedef struct kmod_info_64_v1 {
+	uint64_t            next_addr;
+	int32_t             info_version;
+	uint32_t            id;
+	uint8_t             name[KMOD_MAX_NAME];
+	uint8_t             version[KMOD_MAX_NAME];
+	int32_t             reference_count;
+	uint64_t            reference_list_addr;
+	uint64_t            address;
+	uint64_t            size;
+	uint64_t            hdr_size;
+	uint64_t            start_addr;
+	uint64_t            stop_addr;
+} kmod_info_64_v1_t;
+
+#pragma pack(pop)
+
+#if PRAGMA_MARK
+#pragma mark Kmod structure declaration macros
+#endif
+/***********************************************************************
+* Kmod structure declaration macros
+***********************************************************************/
+#define KMOD_INFO_NAME       kmod_info
+#define KMOD_INFO_VERSION    1
+
+#define KMOD_DECL(name, version)                                  \
+    static kmod_start_func_t name ## _module_start;               \
+    static kmod_stop_func_t  name ## _module_stop;                \
+    kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U,      \
+	               { #name }, { version }, -1, 0, 0, 0, 0,    \
+	                   name ## _module_start,                 \
+	                   name ## _module_stop };
+
+#define KMOD_EXPLICIT_DECL(name, version, start, stop)            \
+    kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U,      \
+	               { #name }, { version }, -1, 0, 0, 0, 0,    \
+	                   start, stop };
+
+#if PRAGMA_MARK
+#pragma mark Kernel private declarations
+#endif
+/***********************************************************************
+* Kernel private declarations.
+***********************************************************************/
+
+
+#if PRAGMA_MARK
+#pragma mark Obsolete kmod stuff
+#endif
+/***********************************************************************
+* These 3 should be dropped but they're referenced by MIG declarations.
+***********************************************************************/
+typedef void * kmod_args_t;
+typedef int kmod_control_flavor_t;
+typedef kmod_info_t * kmod_info_array_t;
+
+__END_DECLS
+
+#endif    /* _MACH_KMOD_H_ */
lib/libc/include/x86_64-macos-gnu/mach/lock_set.h
@@ -0,0 +1,350 @@
+#ifndef	_lock_set_user_
+#define	_lock_set_user_
+
+/* Module lock_set */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	lock_set_MSG_COUNT
+#define	lock_set_MSG_COUNT	6
+#endif	/* lock_set_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine lock_acquire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_acquire
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+/* Routine lock_release */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_release
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+/* Routine lock_try */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_try
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+/* Routine lock_make_stable */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_make_stable
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+/* Routine lock_handoff */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_handoff
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+/* Routine lock_handoff_accept */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_handoff_accept
+(
+	lock_set_t lock_set,
+	int lock_id
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__lock_set_subsystem__defined
+#define __Request__lock_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_acquire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_release_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_try_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_make_stable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_handoff_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int lock_id;
+	} __Request__lock_handoff_accept_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__lock_set_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__lock_set_subsystem__defined
+#define __RequestUnion__lock_set_subsystem__defined
+union __RequestUnion__lock_set_subsystem {
+	__Request__lock_acquire_t Request_lock_acquire;
+	__Request__lock_release_t Request_lock_release;
+	__Request__lock_try_t Request_lock_try;
+	__Request__lock_make_stable_t Request_lock_make_stable;
+	__Request__lock_handoff_t Request_lock_handoff;
+	__Request__lock_handoff_accept_t Request_lock_handoff_accept;
+};
+#endif /* !__RequestUnion__lock_set_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__lock_set_subsystem__defined
+#define __Reply__lock_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_acquire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_release_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_try_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_make_stable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_handoff_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_handoff_accept_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__lock_set_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__lock_set_subsystem__defined
+#define __ReplyUnion__lock_set_subsystem__defined
+union __ReplyUnion__lock_set_subsystem {
+	__Reply__lock_acquire_t Reply_lock_acquire;
+	__Reply__lock_release_t Reply_lock_release;
+	__Reply__lock_try_t Reply_lock_try;
+	__Reply__lock_make_stable_t Reply_lock_make_stable;
+	__Reply__lock_handoff_t Reply_lock_handoff;
+	__Reply__lock_handoff_accept_t Reply_lock_handoff_accept;
+};
+#endif /* !__RequestUnion__lock_set_subsystem__defined */
+
+#ifndef subsystem_to_name_map_lock_set
+#define subsystem_to_name_map_lock_set \
+    { "lock_acquire", 617000 },\
+    { "lock_release", 617001 },\
+    { "lock_try", 617002 },\
+    { "lock_make_stable", 617003 },\
+    { "lock_handoff", 617004 },\
+    { "lock_handoff_accept", 617005 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _lock_set_user_ */
lib/libc/include/x86_64-macos-gnu/mach/mach.h
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 1999-2014 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ *  Includes all the types that a normal user
+ *  of Mach programs should need
+ */
+
+#ifndef _MACH_H_
+#define _MACH_H_
+
+#define __MACH30__
+#define MACH_IPC_FLAVOR UNTYPED
+
+#include <mach/std_types.h>
+#include <mach/mach_types.h>
+#include <mach/mach_interface.h>
+#include <mach/mach_port.h>
+#include <mach/mach_init.h>
+#include <mach/mach_host.h>
+#include <mach/thread_switch.h>
+
+#include <mach/rpc.h>           /* for compatibility only */
+#include <mach/mig.h>
+
+#include <mach/mig_errors.h>
+#include <mach/mach_error.h>
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+/*
+ * Standard prototypes
+ */
+extern void                     panic_init(mach_port_t);
+extern void                     panic(const char *, ...);
+
+extern void                     safe_gets(char *,
+    char *,
+    int);
+
+extern void                     slot_name(cpu_type_t,
+    cpu_subtype_t,
+    char **,
+    char **);
+
+extern void                     mig_reply_setup(mach_msg_header_t *,
+    mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern void                     mach_msg_destroy(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_receive(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_send(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server_once(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server_importance(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+/*
+ * Prototypes for compatibility
+ */
+extern kern_return_t    clock_get_res(mach_port_t,
+    clock_res_t *);
+extern kern_return_t    clock_set_res(mach_port_t,
+    clock_res_t);
+
+extern kern_return_t    clock_sleep(mach_port_t,
+    int,
+    mach_timespec_t,
+    mach_timespec_t *);
+
+/*!
+ * @group voucher_mach_msg Prototypes
+ */
+
+#define VOUCHER_MACH_MSG_API_VERSION 20140205
+
+/*!
+ * @typedef voucher_mach_msg_state_t
+ *
+ * @abstract
+ * Opaque object encapsulating state changed by voucher_mach_msg_adopt().
+ */
+typedef struct voucher_mach_msg_state_s *voucher_mach_msg_state_t;
+
+/*!
+ * @const VOUCHER_MACH_MSG_STATE_UNCHANGED
+ *
+ * @discussion
+ * Constant indicating no state change occurred.
+ */
+#define VOUCHER_MACH_MSG_STATE_UNCHANGED ((voucher_mach_msg_state_t)~0ul)
+
+/*!
+ * @function voucher_mach_msg_set
+ *
+ * @abstract
+ * Change specified message header to contain current mach voucher with a
+ * COPY_SEND disposition.
+ * Does not change message if it already has non-zero MACH_MSGH_BITS_VOUCHER.
+ *
+ * @discussion
+ * Borrows reference to current thread voucher so message should be sent
+ * immediately (without intervening calls that might change that voucher).
+ *
+ * @param msg
+ * The message to modify.
+ *
+ * @result
+ * True if header was changed.
+ */
+extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_clear
+ *
+ * @abstract
+ * Removes changes made to specified message header by voucher_mach_msg_set()
+ * and any mach_msg() send operations (successful or not).
+ * If the message is not needed further, mach_msg_destroy() should be called
+ * instead.
+ *
+ * @discussion
+ * Not intended to be called if voucher_mach_msg_set() returned false.
+ * Releases reference to message mach voucher if an extra reference was
+ * acquired due to an unsuccessful send operation (pseudo-receive).
+ *
+ * @param msg
+ * The message to modify.
+ */
+extern void voucher_mach_msg_clear(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_adopt
+ *
+ * @abstract
+ * Adopt the voucher contained in the specified message on the current thread
+ * and return the previous thread voucher state.
+ *
+ * @discussion
+ * Ownership of the mach voucher in the message is transferred to the current
+ * thread and the message header voucher fields are cleared.
+ *
+ * @param msg
+ * The message to query and modify.
+ *
+ * @result
+ * The previous thread voucher state or VOUCHER_MACH_MSG_STATE_UNCHANGED if no
+ * state change occurred.
+ */
+extern voucher_mach_msg_state_t voucher_mach_msg_adopt(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_revert
+ *
+ * @abstract
+ * Restore thread voucher state previously modified by voucher_mach_msg_adopt().
+ *
+ * @discussion
+ * Current thread voucher reference is released.
+ * No change to thread voucher state if passed VOUCHER_MACH_MSG_STATE_UNCHANGED.
+ *
+ * @param state
+ * The thread voucher state to restore.
+ */
+
+extern void voucher_mach_msg_revert(voucher_mach_msg_state_t state);
+
+__END_DECLS
+
+#endif  /* _MACH_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_error.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie the
+ * rights to redistribute these changes.
+ */
+
+/*
+ *	File:	mach_error.h
+ *	Author:	Douglas Orr, Carnegie Mellon University
+ *	Date:	Mar. 1988
+ *
+ *	Definitions of routines in mach_error.c
+ */
+
+#ifndef _MACH_ERROR_
+#define _MACH_ERROR_    1
+
+#include <mach/error.h>
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+char            *mach_error_string(
+/*
+ *	Returns a string appropriate to the error argument given
+ */
+	mach_error_t error_value
+	);
+
+void            mach_error(
+/*
+ *	Prints an appropriate message on the standard error stream
+ */
+	const char      *str,
+	mach_error_t    error_value
+	);
+
+char            *mach_error_type(
+/*
+ *	Returns a string with the error system, subsystem and code
+ */
+	mach_error_t    error_value
+	);
+__END_DECLS
+
+#endif  /* _MACH_ERROR_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_host.h
@@ -0,0 +1,1295 @@
+#ifndef	_mach_host_user_
+#define	_mach_host_user_
+
+/* Module mach_host */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	mach_host_MSG_COUNT
+#define	mach_host_MSG_COUNT	35
+#endif	/* mach_host_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach/mach_types.h>
+#include <mach_debug/mach_debug_types.h>
+#include <mach/mach_init.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine host_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_info
+(
+	host_t host,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_kernel_version */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_kernel_version
+(
+	host_t host,
+	kernel_version_t kernel_version
+);
+
+/* Routine _host_page_size */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t _host_page_size
+(
+	host_t host,
+	vm_size_t *out_page_size
+);
+
+/* Routine mach_memory_object_memory_entry */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_object_memory_entry
+(
+	host_t host,
+	boolean_t internal,
+	vm_size_t size,
+	vm_prot_t permission,
+	memory_object_t pager,
+	mach_port_t *entry_handle
+);
+
+/* Routine host_processor_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_info
+(
+	host_t host,
+	processor_flavor_t flavor,
+	natural_t *out_processor_count,
+	processor_info_array_t *out_processor_info,
+	mach_msg_type_number_t *out_processor_infoCnt
+);
+
+/* Routine host_get_io_master */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_io_master
+(
+	host_t host,
+	io_master_t *io_master
+);
+
+/* Routine host_get_clock_service */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_clock_service
+(
+	host_t host,
+	clock_id_t clock_id,
+	clock_serv_t *clock_serv
+);
+
+/* Routine kmod_get_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_get_info
+(
+	host_t host,
+	kmod_args_t *modules,
+	mach_msg_type_number_t *modulesCnt
+);
+
+/* Routine host_virtual_physical_table_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_virtual_physical_table_info
+(
+	host_t host,
+	hash_info_bucket_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine processor_set_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_default
+(
+	host_t host,
+	processor_set_name_t *default_set
+);
+
+/* Routine processor_set_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_create
+(
+	host_t host,
+	processor_set_t *new_set,
+	processor_set_name_t *new_name
+);
+
+/* Routine mach_memory_object_memory_entry_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_object_memory_entry_64
+(
+	host_t host,
+	boolean_t internal,
+	memory_object_size_t size,
+	vm_prot_t permission,
+	memory_object_t pager,
+	mach_port_t *entry_handle
+);
+
+/* Routine host_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_statistics
+(
+	host_t host_priv,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_request_notification */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_request_notification
+(
+	host_t host,
+	host_flavor_t notify_type,
+	mach_port_t notify_port
+);
+
+/* Routine host_lockgroup_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_lockgroup_info
+(
+	host_t host,
+	lockgroup_info_array_t *lockgroup_info,
+	mach_msg_type_number_t *lockgroup_infoCnt
+);
+
+/* Routine host_statistics64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_statistics64
+(
+	host_t host_priv,
+	host_flavor_t flavor,
+	host_info64_t host_info64_out,
+	mach_msg_type_number_t *host_info64_outCnt
+);
+
+/* Routine mach_zone_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_zone_info
+(
+	host_priv_t host,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine host_create_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_create_mach_voucher
+(
+	host_t host,
+	mach_voucher_attr_raw_recipe_array_t recipes,
+	mach_msg_type_number_t recipesCnt,
+	ipc_voucher_t *voucher
+);
+
+/* Routine host_register_mach_voucher_attr_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_register_mach_voucher_attr_manager
+(
+	host_t host,
+	mach_voucher_attr_manager_t attr_manager,
+	mach_voucher_attr_value_handle_t default_value,
+	mach_voucher_attr_key_t *new_key,
+	ipc_voucher_attr_control_t *new_attr_control
+);
+
+/* Routine host_register_well_known_mach_voucher_attr_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_register_well_known_mach_voucher_attr_manager
+(
+	host_t host,
+	mach_voucher_attr_manager_t attr_manager,
+	mach_voucher_attr_value_handle_t default_value,
+	mach_voucher_attr_key_t key,
+	ipc_voucher_attr_control_t *new_attr_control
+);
+
+/* Routine host_set_atm_diagnostic_flag */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_set_atm_diagnostic_flag
+(
+	host_t host,
+	uint32_t diagnostic_flag
+);
+
+/* Routine host_get_atm_diagnostic_flag */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t host_get_atm_diagnostic_flag
+(
+	host_t host,
+	uint32_t *diagnostic_flag
+);
+
+/* Routine mach_memory_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_info
+(
+	host_priv_t host,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt,
+	mach_memory_info_array_t *memory_info,
+	mach_msg_type_number_t *memory_infoCnt
+);
+
+/* Routine host_set_multiuser_config_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_multiuser_config_flags
+(
+	host_priv_t host_priv,
+	uint32_t multiuser_flags
+);
+
+/* Routine host_get_multiuser_config_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_multiuser_config_flags
+(
+	host_t host,
+	uint32_t *multiuser_flags
+);
+
+/* Routine host_check_multiuser_mode */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_check_multiuser_mode
+(
+	host_t host,
+	uint32_t *multiuser_mode
+);
+
+/* Routine mach_zone_info_for_zone */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_zone_info_for_zone
+(
+	host_priv_t host,
+	mach_zone_name_t name,
+	mach_zone_info_t *info
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__mach_host_subsystem__defined
+#define __Request__mach_host_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_kernel_version_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request___host_page_size_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t internal;
+		vm_size_t size;
+		vm_prot_t permission;
+	} __Request__mach_memory_object_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_flavor_t flavor;
+	} __Request__host_processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_io_master_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_id_t clock_id;
+	} __Request__host_get_clock_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__kmod_get_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_virtual_physical_table_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t internal;
+		memory_object_size_t size;
+		vm_prot_t permission;
+	} __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t notify_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		host_flavor_t notify_type;
+	} __Request__host_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_lockgroup_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info64_outCnt;
+	} __Request__host_statistics64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_msg_type_number_t recipesCnt;
+		uint8_t recipes[5120];
+	} __Request__host_create_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t attr_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_value_handle_t default_value;
+	} __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t attr_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_value_handle_t default_value;
+		mach_voucher_attr_key_t key;
+	} __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint32_t diagnostic_flag;
+	} __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_memory_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint32_t multiuser_flags;
+	} __Request__host_set_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_check_multiuser_mode_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_zone_name_t name;
+	} __Request__mach_zone_info_for_zone_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__mach_host_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__mach_host_subsystem__defined
+#define __RequestUnion__mach_host_subsystem__defined
+union __RequestUnion__mach_host_subsystem {
+	__Request__host_info_t Request_host_info;
+	__Request__host_kernel_version_t Request_host_kernel_version;
+	__Request___host_page_size_t Request__host_page_size;
+	__Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;
+	__Request__host_processor_info_t Request_host_processor_info;
+	__Request__host_get_io_master_t Request_host_get_io_master;
+	__Request__host_get_clock_service_t Request_host_get_clock_service;
+	__Request__kmod_get_info_t Request_kmod_get_info;
+	__Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;
+	__Request__processor_set_default_t Request_processor_set_default;
+	__Request__processor_set_create_t Request_processor_set_create;
+	__Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;
+	__Request__host_statistics_t Request_host_statistics;
+	__Request__host_request_notification_t Request_host_request_notification;
+	__Request__host_lockgroup_info_t Request_host_lockgroup_info;
+	__Request__host_statistics64_t Request_host_statistics64;
+	__Request__mach_zone_info_t Request_mach_zone_info;
+	__Request__host_create_mach_voucher_t Request_host_create_mach_voucher;
+	__Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;
+	__Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;
+	__Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;
+	__Request__host_get_atm_diagnostic_flag_t Request_host_get_atm_diagnostic_flag;
+	__Request__mach_memory_info_t Request_mach_memory_info;
+	__Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;
+	__Request__host_get_multiuser_config_flags_t Request_host_get_multiuser_config_flags;
+	__Request__host_check_multiuser_mode_t Request_host_check_multiuser_mode;
+	__Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;
+};
+#endif /* !__RequestUnion__mach_host_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__mach_host_subsystem__defined
+#define __Reply__mach_host_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t kernel_versionCnt;
+		char kernel_version[512];
+	} __Reply__host_kernel_version_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_size_t out_page_size;
+	} __Reply___host_page_size_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t entry_handle;
+		/* end of the kernel processed data */
+	} __Reply__mach_memory_object_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t out_processor_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		natural_t out_processor_count;
+		mach_msg_type_number_t out_processor_infoCnt;
+	} __Reply__host_processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t io_master;
+		/* end of the kernel processed data */
+	} __Reply__host_get_io_master_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t clock_serv;
+		/* end of the kernel processed data */
+	} __Reply__host_get_clock_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t modules;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t modulesCnt;
+	} __Reply__kmod_get_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__host_virtual_physical_table_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_set;
+		/* end of the kernel processed data */
+	} __Reply__processor_set_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		mach_msg_port_descriptor_t new_name;
+		/* end of the kernel processed data */
+	} __Reply__processor_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t entry_handle;
+		/* end of the kernel processed data */
+	} __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t lockgroup_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t lockgroup_infoCnt;
+	} __Reply__host_lockgroup_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info64_outCnt;
+		integer_t host_info64_out[256];
+	} __Reply__host_statistics64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__mach_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__host_create_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_attr_control;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_key_t new_key;
+	} __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_attr_control;
+		/* end of the kernel processed data */
+	} __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t diagnostic_flag;
+	} __Reply__host_get_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		mach_msg_ool_descriptor_t memory_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+		mach_msg_type_number_t memory_infoCnt;
+	} __Reply__mach_memory_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t multiuser_flags;
+	} __Reply__host_get_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t multiuser_mode;
+	} __Reply__host_check_multiuser_mode_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_zone_info_t info;
+	} __Reply__mach_zone_info_for_zone_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__mach_host_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__mach_host_subsystem__defined
+#define __ReplyUnion__mach_host_subsystem__defined
+union __ReplyUnion__mach_host_subsystem {
+	__Reply__host_info_t Reply_host_info;
+	__Reply__host_kernel_version_t Reply_host_kernel_version;
+	__Reply___host_page_size_t Reply__host_page_size;
+	__Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;
+	__Reply__host_processor_info_t Reply_host_processor_info;
+	__Reply__host_get_io_master_t Reply_host_get_io_master;
+	__Reply__host_get_clock_service_t Reply_host_get_clock_service;
+	__Reply__kmod_get_info_t Reply_kmod_get_info;
+	__Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;
+	__Reply__processor_set_default_t Reply_processor_set_default;
+	__Reply__processor_set_create_t Reply_processor_set_create;
+	__Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;
+	__Reply__host_statistics_t Reply_host_statistics;
+	__Reply__host_request_notification_t Reply_host_request_notification;
+	__Reply__host_lockgroup_info_t Reply_host_lockgroup_info;
+	__Reply__host_statistics64_t Reply_host_statistics64;
+	__Reply__mach_zone_info_t Reply_mach_zone_info;
+	__Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;
+	__Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;
+	__Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;
+	__Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;
+	__Reply__host_get_atm_diagnostic_flag_t Reply_host_get_atm_diagnostic_flag;
+	__Reply__mach_memory_info_t Reply_mach_memory_info;
+	__Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;
+	__Reply__host_get_multiuser_config_flags_t Reply_host_get_multiuser_config_flags;
+	__Reply__host_check_multiuser_mode_t Reply_host_check_multiuser_mode;
+	__Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;
+};
+#endif /* !__RequestUnion__mach_host_subsystem__defined */
+
+#ifndef subsystem_to_name_map_mach_host
+#define subsystem_to_name_map_mach_host \
+    { "host_info", 200 },\
+    { "host_kernel_version", 201 },\
+    { "_host_page_size", 202 },\
+    { "mach_memory_object_memory_entry", 203 },\
+    { "host_processor_info", 204 },\
+    { "host_get_io_master", 205 },\
+    { "host_get_clock_service", 206 },\
+    { "kmod_get_info", 207 },\
+    { "host_virtual_physical_table_info", 209 },\
+    { "processor_set_default", 213 },\
+    { "processor_set_create", 214 },\
+    { "mach_memory_object_memory_entry_64", 215 },\
+    { "host_statistics", 216 },\
+    { "host_request_notification", 217 },\
+    { "host_lockgroup_info", 218 },\
+    { "host_statistics64", 219 },\
+    { "mach_zone_info", 220 },\
+    { "host_create_mach_voucher", 222 },\
+    { "host_register_mach_voucher_attr_manager", 223 },\
+    { "host_register_well_known_mach_voucher_attr_manager", 224 },\
+    { "host_set_atm_diagnostic_flag", 225 },\
+    { "host_get_atm_diagnostic_flag", 226 },\
+    { "mach_memory_info", 227 },\
+    { "host_set_multiuser_config_flags", 228 },\
+    { "host_get_multiuser_config_flags", 229 },\
+    { "host_check_multiuser_mode", 230 },\
+    { "mach_zone_info_for_zone", 231 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _mach_host_user_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_init.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ *	Items provided by the Mach environment initialization.
+ */
+
+#ifndef _MACH_INIT_
+#define _MACH_INIT_     1
+
+#include <mach/mach_types.h>
+#include <mach/vm_page_size.h>
+#include <stdarg.h>
+
+#include <sys/cdefs.h>
+
+/*
+ *	Kernel-related ports; how a task/thread controls itself
+ */
+
+__BEGIN_DECLS
+extern mach_port_t mach_host_self(void);
+extern mach_port_t mach_thread_self(void);
+extern kern_return_t host_page_size(host_t, vm_size_t *);
+
+extern mach_port_t      mach_task_self_;
+#define mach_task_self() mach_task_self_
+#define current_task()  mach_task_self()
+
+__END_DECLS
+#include <mach/mach_traps.h>
+__BEGIN_DECLS
+
+/*
+ *	Other important ports in the Mach user environment
+ */
+
+extern  mach_port_t     bootstrap_port;
+
+/*
+ *	Where these ports occur in the "mach_ports_register"
+ *	collection... only servers or the runtime library need know.
+ */
+
+#define NAME_SERVER_SLOT        0
+#define ENVIRONMENT_SLOT        1
+#define SERVICE_SLOT            2
+
+#define MACH_PORTS_SLOTS_USED   3
+
+/*
+ *	fprintf_stderr uses vprintf_stderr_func to produce
+ *	error messages, this can be overridden by a user
+ *	application to point to a user-specified output function
+ */
+extern int (*vprintf_stderr_func)(const char *format, va_list ap);
+
+__END_DECLS
+
+#endif  /* _MACH_INIT_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_interface.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (C) Apple Computer 1998
+ * ALL Rights Reserved
+ */
+/*
+ * This file represents the interfaces that used to come
+ * from creating the user headers from the mach.defs file.
+ * Because mach.defs was decomposed, this file now just
+ * wraps up all the new interface headers generated from
+ * each of the new .defs resulting from that decomposition.
+ */
+#ifndef _MACH_INTERFACE_H_
+#define _MACH_INTERFACE_H_
+
+#include <mach/clock_priv.h>
+#include <mach/host_priv.h>
+#include <mach/host_security.h>
+#include <mach/lock_set.h>
+#include <mach/processor.h>
+#include <mach/processor_set.h>
+#include <mach/semaphore.h>
+#include <mach/task.h>
+#include <mach/thread_act.h>
+#include <mach/vm_map.h>
+
+#endif /* _MACH_INTERFACE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_port.h
@@ -0,0 +1,1808 @@
+#ifndef	_mach_port_user_
+#define	_mach_port_user_
+
+/* Module mach_port */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	mach_port_MSG_COUNT
+#define	mach_port_MSG_COUNT	40
+#endif	/* mach_port_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach_debug/mach_debug_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine mach_port_names */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_names
+(
+	ipc_space_t task,
+	mach_port_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_port_type_array_t *types,
+	mach_msg_type_number_t *typesCnt
+);
+
+/* Routine mach_port_type */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_type
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_type_t *ptype
+);
+
+/* Routine mach_port_rename */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_rename
+(
+	ipc_space_t task,
+	mach_port_name_t old_name,
+	mach_port_name_t new_name
+);
+
+/* Routine mach_port_allocate_name */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t mach_port_allocate_name
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_allocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_destroy
+(
+	ipc_space_t task,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_deallocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_deallocate
+(
+	ipc_space_t task,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_get_refs */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_refs
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_right_t right,
+	mach_port_urefs_t *refs
+);
+
+/* Routine mach_port_mod_refs */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_mod_refs
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_right_t right,
+	mach_port_delta_t delta
+);
+
+/* Routine mach_port_peek */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_peek
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_trailer_type_t trailer_type,
+	mach_port_seqno_t *request_seqnop,
+	mach_msg_size_t *msg_sizep,
+	mach_msg_id_t *msg_idp,
+	mach_msg_trailer_info_t trailer_infop,
+	mach_msg_type_number_t *trailer_infopCnt
+);
+
+/* Routine mach_port_set_mscount */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_mscount
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_mscount_t mscount
+);
+
+/* Routine mach_port_get_set_status */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_set_status
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	mach_port_name_array_t *members,
+	mach_msg_type_number_t *membersCnt
+);
+
+/* Routine mach_port_move_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_move_member
+(
+	ipc_space_t task,
+	mach_port_name_t member,
+	mach_port_name_t after
+);
+
+/* Routine mach_port_request_notification */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_request_notification
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_id_t msgid,
+	mach_port_mscount_t sync,
+	mach_port_t notify,
+	mach_msg_type_name_t notifyPoly,
+	mach_port_t *previous
+);
+
+/* Routine mach_port_insert_right */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_insert_right
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_t poly,
+	mach_msg_type_name_t polyPoly
+);
+
+/* Routine mach_port_extract_right */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_extract_right
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_type_name_t msgt_name,
+	mach_port_t *poly,
+	mach_msg_type_name_t *polyPoly
+);
+
+/* Routine mach_port_set_seqno */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_seqno
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_seqno_t seqno
+);
+
+/* Routine mach_port_get_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_attributes
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t port_info_out,
+	mach_msg_type_number_t *port_info_outCnt
+);
+
+/* Routine mach_port_set_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_attributes
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t port_info,
+	mach_msg_type_number_t port_infoCnt
+);
+
+/* Routine mach_port_allocate_qos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate_qos
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_qos_t *qos,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_allocate_full */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate_full
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_t proto,
+	mach_port_qos_t *qos,
+	mach_port_name_t *name
+);
+
+/* Routine task_set_port_space */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_port_space
+(
+	ipc_space_t task,
+	int table_entries
+);
+
+/* Routine mach_port_get_srights */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_srights
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_rights_t *srights
+);
+
+/* Routine mach_port_space_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_space_info
+(
+	ipc_space_inspect_t task,
+	ipc_info_space_t *space_info,
+	ipc_info_name_array_t *table_info,
+	mach_msg_type_number_t *table_infoCnt,
+	ipc_info_tree_name_array_t *tree_info,
+	mach_msg_type_number_t *tree_infoCnt
+);
+
+/* Routine mach_port_dnrequest_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_dnrequest_info
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	unsigned *dnr_total,
+	unsigned *dnr_used
+);
+
+/* Routine mach_port_kernel_object */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kernel_object
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	unsigned *object_type,
+	unsigned *object_addr
+);
+
+/* Routine mach_port_insert_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_insert_member
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_name_t pset
+);
+
+/* Routine mach_port_extract_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_extract_member
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_name_t pset
+);
+
+/* Routine mach_port_get_context */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_context
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	mach_port_context_t *context
+);
+
+/* Routine mach_port_set_context */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_context
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t context
+);
+
+/* Routine mach_port_kobject */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kobject
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	natural_t *object_type,
+	mach_vm_address_t *object_addr
+);
+
+/* Routine mach_port_construct */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_construct
+(
+	ipc_space_t task,
+	mach_port_options_ptr_t options,
+	mach_port_context_t context,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_destruct */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_destruct
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_delta_t srdelta,
+	mach_port_context_t guard
+);
+
+/* Routine mach_port_guard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_guard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard,
+	boolean_t strict
+);
+
+/* Routine mach_port_unguard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_unguard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard
+);
+
+/* Routine mach_port_space_basic_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_space_basic_info
+(
+	ipc_space_inspect_t task,
+	ipc_info_space_basic_t *basic_info
+);
+
+/* Routine mach_port_guard_with_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_guard_with_flags
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard,
+	uint64_t flags
+);
+
+/* Routine mach_port_swap_guard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_swap_guard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t old_guard,
+	mach_port_context_t new_guard
+);
+
+/* Routine mach_port_kobject_description */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kobject_description
+(
+	ipc_space_inspect_t task,
+	mach_port_name_t name,
+	natural_t *object_type,
+	mach_vm_address_t *object_addr,
+	kobject_description_t description
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__mach_port_subsystem__defined
+#define __Request__mach_port_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_names_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_type_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t old_name;
+		mach_port_name_t new_name;
+	} __Request__mach_port_rename_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_name_t name;
+	} __Request__mach_port_allocate_name_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+	} __Request__mach_port_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_right_t right;
+	} __Request__mach_port_get_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_right_t right;
+		mach_port_delta_t delta;
+	} __Request__mach_port_mod_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_trailer_type_t trailer_type;
+		mach_port_seqno_t request_seqnop;
+		mach_msg_type_number_t trailer_infopCnt;
+	} __Request__mach_port_peek_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_mscount_t mscount;
+	} __Request__mach_port_set_mscount_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_set_status_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t member;
+		mach_port_name_t after;
+	} __Request__mach_port_move_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t notify;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_id_t msgid;
+		mach_port_mscount_t sync;
+	} __Request__mach_port_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t poly;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_insert_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_type_name_t msgt_name;
+	} __Request__mach_port_extract_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_seqno_t seqno;
+	} __Request__mach_port_set_seqno_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_flavor_t flavor;
+		mach_msg_type_number_t port_info_outCnt;
+	} __Request__mach_port_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_flavor_t flavor;
+		mach_msg_type_number_t port_infoCnt;
+		integer_t port_info[17];
+	} __Request__mach_port_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_qos_t qos;
+	} __Request__mach_port_allocate_qos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t proto;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Request__mach_port_allocate_full_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int table_entries;
+	} __Request__task_set_port_space_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_srights_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_space_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_dnrequest_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kernel_object_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_name_t pset;
+	} __Request__mach_port_insert_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_name_t pset;
+	} __Request__mach_port_extract_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t context;
+	} __Request__mach_port_set_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kobject_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t options;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_context_t context;
+	} __Request__mach_port_construct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_delta_t srdelta;
+		mach_port_context_t guard;
+	} __Request__mach_port_destruct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+		boolean_t strict;
+	} __Request__mach_port_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+	} __Request__mach_port_unguard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_space_basic_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+		uint64_t flags;
+	} __Request__mach_port_guard_with_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t old_guard;
+		mach_port_context_t new_guard;
+	} __Request__mach_port_swap_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kobject_description_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__mach_port_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__mach_port_subsystem__defined
+#define __RequestUnion__mach_port_subsystem__defined
+union __RequestUnion__mach_port_subsystem {
+	__Request__mach_port_names_t Request_mach_port_names;
+	__Request__mach_port_type_t Request_mach_port_type;
+	__Request__mach_port_rename_t Request_mach_port_rename;
+	__Request__mach_port_allocate_name_t Request_mach_port_allocate_name;
+	__Request__mach_port_allocate_t Request_mach_port_allocate;
+	__Request__mach_port_destroy_t Request_mach_port_destroy;
+	__Request__mach_port_deallocate_t Request_mach_port_deallocate;
+	__Request__mach_port_get_refs_t Request_mach_port_get_refs;
+	__Request__mach_port_mod_refs_t Request_mach_port_mod_refs;
+	__Request__mach_port_peek_t Request_mach_port_peek;
+	__Request__mach_port_set_mscount_t Request_mach_port_set_mscount;
+	__Request__mach_port_get_set_status_t Request_mach_port_get_set_status;
+	__Request__mach_port_move_member_t Request_mach_port_move_member;
+	__Request__mach_port_request_notification_t Request_mach_port_request_notification;
+	__Request__mach_port_insert_right_t Request_mach_port_insert_right;
+	__Request__mach_port_extract_right_t Request_mach_port_extract_right;
+	__Request__mach_port_set_seqno_t Request_mach_port_set_seqno;
+	__Request__mach_port_get_attributes_t Request_mach_port_get_attributes;
+	__Request__mach_port_set_attributes_t Request_mach_port_set_attributes;
+	__Request__mach_port_allocate_qos_t Request_mach_port_allocate_qos;
+	__Request__mach_port_allocate_full_t Request_mach_port_allocate_full;
+	__Request__task_set_port_space_t Request_task_set_port_space;
+	__Request__mach_port_get_srights_t Request_mach_port_get_srights;
+	__Request__mach_port_space_info_t Request_mach_port_space_info;
+	__Request__mach_port_dnrequest_info_t Request_mach_port_dnrequest_info;
+	__Request__mach_port_kernel_object_t Request_mach_port_kernel_object;
+	__Request__mach_port_insert_member_t Request_mach_port_insert_member;
+	__Request__mach_port_extract_member_t Request_mach_port_extract_member;
+	__Request__mach_port_get_context_t Request_mach_port_get_context;
+	__Request__mach_port_set_context_t Request_mach_port_set_context;
+	__Request__mach_port_kobject_t Request_mach_port_kobject;
+	__Request__mach_port_construct_t Request_mach_port_construct;
+	__Request__mach_port_destruct_t Request_mach_port_destruct;
+	__Request__mach_port_guard_t Request_mach_port_guard;
+	__Request__mach_port_unguard_t Request_mach_port_unguard;
+	__Request__mach_port_space_basic_info_t Request_mach_port_space_basic_info;
+	__Request__mach_port_guard_with_flags_t Request_mach_port_guard_with_flags;
+	__Request__mach_port_swap_guard_t Request_mach_port_swap_guard;
+	__Request__mach_port_kobject_description_t Request_mach_port_kobject_description;
+};
+#endif /* !__RequestUnion__mach_port_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__mach_port_subsystem__defined
+#define __Reply__mach_port_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t types;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t typesCnt;
+	} __Reply__mach_port_names_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_type_t ptype;
+	} __Reply__mach_port_type_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_rename_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_allocate_name_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_urefs_t refs;
+	} __Reply__mach_port_get_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_mod_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_seqno_t request_seqnop;
+		mach_msg_size_t msg_sizep;
+		mach_msg_id_t msg_idp;
+		mach_msg_type_number_t trailer_infopCnt;
+		char trailer_infop[68];
+	} __Reply__mach_port_peek_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_mscount_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t members;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t membersCnt;
+	} __Reply__mach_port_get_set_status_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_move_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t previous;
+		/* end of the kernel processed data */
+	} __Reply__mach_port_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_insert_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t poly;
+		/* end of the kernel processed data */
+	} __Reply__mach_port_extract_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_seqno_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t port_info_outCnt;
+		integer_t port_info_out[17];
+	} __Reply__mach_port_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_qos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_full_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_port_space_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_rights_t srights;
+	} __Reply__mach_port_get_srights_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t table_info;
+		mach_msg_ool_descriptor_t tree_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		ipc_info_space_t space_info;
+		mach_msg_type_number_t table_infoCnt;
+		mach_msg_type_number_t tree_infoCnt;
+	} __Reply__mach_port_space_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned dnr_total;
+		unsigned dnr_used;
+	} __Reply__mach_port_dnrequest_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned object_type;
+		unsigned object_addr;
+	} __Reply__mach_port_kernel_object_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_insert_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_extract_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_context_t context;
+	} __Reply__mach_port_get_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		natural_t object_type;
+		mach_vm_address_t object_addr;
+	} __Reply__mach_port_kobject_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_name_t name;
+	} __Reply__mach_port_construct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_destruct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_unguard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		ipc_info_space_basic_t basic_info;
+	} __Reply__mach_port_space_basic_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_guard_with_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_swap_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		natural_t object_type;
+		mach_vm_address_t object_addr;
+		mach_msg_type_number_t descriptionOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t descriptionCnt;
+		char description[512];
+	} __Reply__mach_port_kobject_description_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__mach_port_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__mach_port_subsystem__defined
+#define __ReplyUnion__mach_port_subsystem__defined
+union __ReplyUnion__mach_port_subsystem {
+	__Reply__mach_port_names_t Reply_mach_port_names;
+	__Reply__mach_port_type_t Reply_mach_port_type;
+	__Reply__mach_port_rename_t Reply_mach_port_rename;
+	__Reply__mach_port_allocate_name_t Reply_mach_port_allocate_name;
+	__Reply__mach_port_allocate_t Reply_mach_port_allocate;
+	__Reply__mach_port_destroy_t Reply_mach_port_destroy;
+	__Reply__mach_port_deallocate_t Reply_mach_port_deallocate;
+	__Reply__mach_port_get_refs_t Reply_mach_port_get_refs;
+	__Reply__mach_port_mod_refs_t Reply_mach_port_mod_refs;
+	__Reply__mach_port_peek_t Reply_mach_port_peek;
+	__Reply__mach_port_set_mscount_t Reply_mach_port_set_mscount;
+	__Reply__mach_port_get_set_status_t Reply_mach_port_get_set_status;
+	__Reply__mach_port_move_member_t Reply_mach_port_move_member;
+	__Reply__mach_port_request_notification_t Reply_mach_port_request_notification;
+	__Reply__mach_port_insert_right_t Reply_mach_port_insert_right;
+	__Reply__mach_port_extract_right_t Reply_mach_port_extract_right;
+	__Reply__mach_port_set_seqno_t Reply_mach_port_set_seqno;
+	__Reply__mach_port_get_attributes_t Reply_mach_port_get_attributes;
+	__Reply__mach_port_set_attributes_t Reply_mach_port_set_attributes;
+	__Reply__mach_port_allocate_qos_t Reply_mach_port_allocate_qos;
+	__Reply__mach_port_allocate_full_t Reply_mach_port_allocate_full;
+	__Reply__task_set_port_space_t Reply_task_set_port_space;
+	__Reply__mach_port_get_srights_t Reply_mach_port_get_srights;
+	__Reply__mach_port_space_info_t Reply_mach_port_space_info;
+	__Reply__mach_port_dnrequest_info_t Reply_mach_port_dnrequest_info;
+	__Reply__mach_port_kernel_object_t Reply_mach_port_kernel_object;
+	__Reply__mach_port_insert_member_t Reply_mach_port_insert_member;
+	__Reply__mach_port_extract_member_t Reply_mach_port_extract_member;
+	__Reply__mach_port_get_context_t Reply_mach_port_get_context;
+	__Reply__mach_port_set_context_t Reply_mach_port_set_context;
+	__Reply__mach_port_kobject_t Reply_mach_port_kobject;
+	__Reply__mach_port_construct_t Reply_mach_port_construct;
+	__Reply__mach_port_destruct_t Reply_mach_port_destruct;
+	__Reply__mach_port_guard_t Reply_mach_port_guard;
+	__Reply__mach_port_unguard_t Reply_mach_port_unguard;
+	__Reply__mach_port_space_basic_info_t Reply_mach_port_space_basic_info;
+	__Reply__mach_port_guard_with_flags_t Reply_mach_port_guard_with_flags;
+	__Reply__mach_port_swap_guard_t Reply_mach_port_swap_guard;
+	__Reply__mach_port_kobject_description_t Reply_mach_port_kobject_description;
+};
+#endif /* !__RequestUnion__mach_port_subsystem__defined */
+
+#ifndef subsystem_to_name_map_mach_port
+#define subsystem_to_name_map_mach_port \
+    { "mach_port_names", 3200 },\
+    { "mach_port_type", 3201 },\
+    { "mach_port_rename", 3202 },\
+    { "mach_port_allocate_name", 3203 },\
+    { "mach_port_allocate", 3204 },\
+    { "mach_port_destroy", 3205 },\
+    { "mach_port_deallocate", 3206 },\
+    { "mach_port_get_refs", 3207 },\
+    { "mach_port_mod_refs", 3208 },\
+    { "mach_port_peek", 3209 },\
+    { "mach_port_set_mscount", 3210 },\
+    { "mach_port_get_set_status", 3211 },\
+    { "mach_port_move_member", 3212 },\
+    { "mach_port_request_notification", 3213 },\
+    { "mach_port_insert_right", 3214 },\
+    { "mach_port_extract_right", 3215 },\
+    { "mach_port_set_seqno", 3216 },\
+    { "mach_port_get_attributes", 3217 },\
+    { "mach_port_set_attributes", 3218 },\
+    { "mach_port_allocate_qos", 3219 },\
+    { "mach_port_allocate_full", 3220 },\
+    { "task_set_port_space", 3221 },\
+    { "mach_port_get_srights", 3222 },\
+    { "mach_port_space_info", 3223 },\
+    { "mach_port_dnrequest_info", 3224 },\
+    { "mach_port_kernel_object", 3225 },\
+    { "mach_port_insert_member", 3226 },\
+    { "mach_port_extract_member", 3227 },\
+    { "mach_port_get_context", 3228 },\
+    { "mach_port_set_context", 3229 },\
+    { "mach_port_kobject", 3230 },\
+    { "mach_port_construct", 3231 },\
+    { "mach_port_destruct", 3232 },\
+    { "mach_port_guard", 3233 },\
+    { "mach_port_unguard", 3234 },\
+    { "mach_port_space_basic_info", 3235 },\
+    { "mach_port_guard_with_flags", 3237 },\
+    { "mach_port_swap_guard", 3238 },\
+    { "mach_port_kobject_description", 3239 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _mach_port_user_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_traps.h
@@ -0,0 +1,303 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	Definitions of general Mach system traps.
+ *
+ *	These are the definitions as seen from user-space.
+ *	The kernel definitions are in <mach/syscall_sw.h>.
+ *	Kernel RPC functions are defined in <mach/mach_interface.h>.
+ */
+
+#ifndef _MACH_MACH_TRAPS_H_
+#define _MACH_MACH_TRAPS_H_
+
+#include <stdint.h>
+
+#include <mach/std_types.h>
+#include <mach/mach_types.h>
+#include <mach/kern_return.h>
+#include <mach/port.h>
+#include <mach/vm_types.h>
+#include <mach/clock_types.h>
+
+#include <machine/endian.h>
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+
+
+extern kern_return_t clock_sleep_trap(
+	mach_port_name_t clock_name,
+	sleep_type_t sleep_type,
+	int sleep_sec,
+	int sleep_nsec,
+	mach_timespec_t *wakeup_time);
+
+extern kern_return_t _kernelrpc_mach_vm_allocate_trap(
+	mach_port_name_t target,
+	mach_vm_offset_t *addr,
+	mach_vm_size_t size,
+	int flags);
+
+extern kern_return_t _kernelrpc_mach_vm_deallocate_trap(
+	mach_port_name_t target,
+	mach_vm_address_t address,
+	mach_vm_size_t size
+	);
+
+extern kern_return_t _kernelrpc_mach_vm_protect_trap(
+	mach_port_name_t target,
+	mach_vm_address_t address,
+	mach_vm_size_t size,
+	boolean_t set_maximum,
+	vm_prot_t new_protection
+	);
+
+extern kern_return_t _kernelrpc_mach_vm_map_trap(
+	mach_port_name_t target,
+	mach_vm_offset_t *address,
+	mach_vm_size_t size,
+	mach_vm_offset_t mask,
+	int flags,
+	vm_prot_t cur_protection
+	);
+
+extern kern_return_t _kernelrpc_mach_vm_purgable_control_trap(
+	mach_port_name_t target,
+	mach_vm_offset_t address,
+	vm_purgable_t control,
+	int *state);
+
+extern kern_return_t _kernelrpc_mach_port_allocate_trap(
+	mach_port_name_t target,
+	mach_port_right_t right,
+	mach_port_name_t *name
+	);
+
+
+extern kern_return_t _kernelrpc_mach_port_destroy_trap(
+	mach_port_name_t target,
+	mach_port_name_t name
+	);
+
+extern kern_return_t _kernelrpc_mach_port_deallocate_trap(
+	mach_port_name_t target,
+	mach_port_name_t name
+	);
+
+extern kern_return_t _kernelrpc_mach_port_mod_refs_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_right_t right,
+	mach_port_delta_t delta
+	);
+
+extern kern_return_t _kernelrpc_mach_port_move_member_trap(
+	mach_port_name_t target,
+	mach_port_name_t member,
+	mach_port_name_t after
+	);
+
+extern kern_return_t _kernelrpc_mach_port_insert_right_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_name_t poly,
+	mach_msg_type_name_t polyPoly
+	);
+
+extern kern_return_t _kernelrpc_mach_port_get_attributes_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t port_info_out,
+	mach_msg_type_number_t *port_info_outCnt
+	);
+
+extern kern_return_t _kernelrpc_mach_port_insert_member_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_name_t pset
+	);
+
+extern kern_return_t _kernelrpc_mach_port_extract_member_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_name_t pset
+	);
+
+extern kern_return_t _kernelrpc_mach_port_construct_trap(
+	mach_port_name_t target,
+	mach_port_options_t *options,
+	uint64_t context,
+	mach_port_name_t *name
+	);
+
+extern kern_return_t _kernelrpc_mach_port_destruct_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	mach_port_delta_t srdelta,
+	uint64_t guard
+	);
+
+extern kern_return_t _kernelrpc_mach_port_guard_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	uint64_t guard,
+	boolean_t strict
+	);
+
+extern kern_return_t _kernelrpc_mach_port_unguard_trap(
+	mach_port_name_t target,
+	mach_port_name_t name,
+	uint64_t guard
+	);
+
+extern kern_return_t mach_generate_activity_id(
+	mach_port_name_t target,
+	int count,
+	uint64_t *activity_id
+	);
+
+extern kern_return_t macx_swapon(
+	uint64_t filename,
+	int flags,
+	int size,
+	int priority);
+
+extern kern_return_t macx_swapoff(
+	uint64_t filename,
+	int flags);
+
+extern kern_return_t macx_triggers(
+	int hi_water,
+	int low_water,
+	int flags,
+	mach_port_t alert_port);
+
+extern kern_return_t macx_backing_store_suspend(
+	boolean_t suspend);
+
+extern kern_return_t macx_backing_store_recovery(
+	int pid);
+
+extern boolean_t swtch_pri(int pri);
+
+extern boolean_t swtch(void);
+
+extern kern_return_t thread_switch(
+	mach_port_name_t thread_name,
+	int option,
+	mach_msg_timeout_t option_time);
+
+extern mach_port_name_t task_self_trap(void);
+
+extern kern_return_t host_create_mach_voucher_trap(
+	mach_port_name_t host,
+	mach_voucher_attr_raw_recipe_array_t recipes,
+	int recipes_size,
+	mach_port_name_t *voucher);
+
+extern kern_return_t mach_voucher_extract_attr_recipe_trap(
+	mach_port_name_t voucher_name,
+	mach_voucher_attr_key_t key,
+	mach_voucher_attr_raw_recipe_t recipe,
+	mach_msg_type_number_t *recipe_size);
+
+extern kern_return_t _kernelrpc_mach_port_type_trap(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_type_t *ptype);
+
+extern kern_return_t _kernelrpc_mach_port_request_notification_trap(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_id_t msgid,
+	mach_port_mscount_t sync,
+	mach_port_name_t notify,
+	mach_msg_type_name_t notifyPoly,
+	mach_port_name_t *previous);
+
+/*
+ *	Obsolete interfaces.
+ */
+
+extern kern_return_t task_for_pid(
+	mach_port_name_t target_tport,
+	int pid,
+	mach_port_name_t *t);
+
+extern kern_return_t task_name_for_pid(
+	mach_port_name_t target_tport,
+	int pid,
+	mach_port_name_t *tn);
+
+extern kern_return_t pid_for_task(
+	mach_port_name_t t,
+	int *x);
+
+extern kern_return_t debug_control_port_for_pid(
+	mach_port_name_t target_tport,
+	int pid,
+	mach_port_name_t *t);
+
+
+__END_DECLS
+
+#endif  /* _MACH_MACH_TRAPS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_types.h
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+/*
+ *	File:	mach/mach_types.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *	Date:	1986
+ *
+ *	Mach external interface definitions.
+ *
+ */
+
+#ifndef _MACH_MACH_TYPES_H_
+#define _MACH_MACH_TYPES_H_
+
+#include <stdint.h>
+
+#include <sys/cdefs.h>
+
+#include <mach/host_info.h>
+#include <mach/host_notify.h>
+#include <mach/host_special_ports.h>
+#include <mach/machine.h>
+#include <mach/machine/vm_types.h>
+#include <mach/memory_object_types.h>
+#include <mach/message.h>
+#include <mach/exception_types.h>
+#include <mach/port.h>
+#include <mach/mach_voucher_types.h>
+#include <mach/processor_info.h>
+#include <mach/task_info.h>
+#include <mach/task_inspect.h>
+#include <mach/task_policy.h>
+#include <mach/task_special_ports.h>
+#include <mach/thread_info.h>
+#include <mach/thread_policy.h>
+#include <mach/thread_special_ports.h>
+#include <mach/thread_status.h>
+#include <mach/time_value.h>
+#include <mach/clock_types.h>
+#include <mach/vm_attributes.h>
+#include <mach/vm_inherit.h>
+#include <mach/vm_purgable.h>
+#include <mach/vm_behavior.h>
+#include <mach/vm_prot.h>
+#include <mach/vm_statistics.h>
+#include <mach/vm_sync.h>
+#include <mach/vm_types.h>
+#include <mach/vm_region.h>
+#include <mach/kmod.h>
+#include <mach/dyld_kernel.h>
+
+
+/*
+ * If we are not in the kernel, then these will all be represented by
+ * ports at user-space.
+ */
+typedef mach_port_t             task_t;
+typedef mach_port_t             task_name_t;
+typedef mach_port_t             task_inspect_t;
+typedef mach_port_t             task_suspension_token_t;
+typedef mach_port_t             thread_t;
+typedef mach_port_t             thread_act_t;
+typedef mach_port_t             thread_inspect_t;
+typedef mach_port_t             ipc_space_t;
+typedef mach_port_t             ipc_space_inspect_t;
+typedef mach_port_t             coalition_t;
+typedef mach_port_t             host_t;
+typedef mach_port_t             host_priv_t;
+typedef mach_port_t             host_security_t;
+typedef mach_port_t             processor_t;
+typedef mach_port_t             processor_set_t;
+typedef mach_port_t             processor_set_control_t;
+typedef mach_port_t             semaphore_t;
+typedef mach_port_t             lock_set_t;
+typedef mach_port_t             ledger_t;
+typedef mach_port_t             alarm_t;
+typedef mach_port_t             clock_serv_t;
+typedef mach_port_t             clock_ctrl_t;
+typedef mach_port_t             arcade_register_t;
+typedef mach_port_t             suid_cred_t;
+
+
+/*
+ * These aren't really unique types.  They are just called
+ * out as unique types at one point in history.  So we list
+ * them here for compatibility.
+ */
+typedef processor_set_t         processor_set_name_t;
+
+/*
+ * These types are just hard-coded as ports
+ */
+typedef mach_port_t             clock_reply_t;
+typedef mach_port_t             bootstrap_t;
+typedef mach_port_t             mem_entry_name_port_t;
+typedef mach_port_t             exception_handler_t;
+typedef exception_handler_t     *exception_handler_array_t;
+typedef mach_port_t             vm_task_entry_t;
+typedef mach_port_t             io_master_t;
+typedef mach_port_t             UNDServerRef;
+
+/*
+ * Mig doesn't translate the components of an array.
+ * For example, Mig won't use the thread_t translations
+ * to translate a thread_array_t argument.  So, these definitions
+ * are not completely accurate at the moment for other kernel
+ * components.
+ */
+typedef task_t                  *task_array_t;
+typedef thread_t                *thread_array_t;
+typedef processor_set_t         *processor_set_array_t;
+typedef processor_set_t         *processor_set_name_array_t;
+typedef processor_t             *processor_array_t;
+typedef thread_act_t            *thread_act_array_t;
+typedef ledger_t                *ledger_array_t;
+
+/*
+ * However the real mach_types got declared, we also have to declare
+ * types with "port" in the name for compatability with the way OSF
+ * had declared the user interfaces at one point.  Someday these should
+ * go away.
+ */
+typedef task_t                  task_port_t;
+typedef task_array_t            task_port_array_t;
+typedef thread_t                thread_port_t;
+typedef thread_array_t          thread_port_array_t;
+typedef ipc_space_t             ipc_space_port_t;
+typedef host_t                  host_name_t;
+typedef host_t                  host_name_port_t;
+typedef processor_set_t         processor_set_port_t;
+typedef processor_set_t         processor_set_name_port_t;
+typedef processor_set_array_t   processor_set_name_port_array_t;
+typedef processor_set_t         processor_set_control_port_t;
+typedef processor_t             processor_port_t;
+typedef processor_array_t       processor_port_array_t;
+typedef thread_act_t            thread_act_port_t;
+typedef thread_act_array_t      thread_act_port_array_t;
+typedef semaphore_t             semaphore_port_t;
+typedef lock_set_t              lock_set_port_t;
+typedef ledger_t                ledger_port_t;
+typedef ledger_array_t          ledger_port_array_t;
+typedef alarm_t                 alarm_port_t;
+typedef clock_serv_t            clock_serv_port_t;
+typedef clock_ctrl_t            clock_ctrl_port_t;
+typedef exception_handler_t     exception_port_t;
+typedef exception_handler_array_t exception_port_arrary_t;
+typedef char vfs_path_t[4096];
+typedef char nspace_path_t[1024]; /* 1024 == PATH_MAX */
+typedef char suid_cred_path_t[1024];
+typedef uint32_t suid_cred_uid_t;
+
+#define TASK_NULL               ((task_t) 0)
+#define TASK_NAME_NULL          ((task_name_t) 0)
+#define TASK_INSPECT_NULL               ((task_inspect_t) 0)
+#define THREAD_NULL             ((thread_t) 0)
+#define THREAD_INSPECT_NULL     ((thread_inspect_t) 0)
+#define TID_NULL                ((uint64_t) 0)
+#define THR_ACT_NULL            ((thread_act_t) 0)
+#define IPC_SPACE_NULL          ((ipc_space_t) 0)
+#define IPC_SPACE_INSPECT_NULL  ((ipc_space_inspect_t) 0)
+#define COALITION_NULL          ((coalition_t) 0)
+#define HOST_NULL               ((host_t) 0)
+#define HOST_PRIV_NULL          ((host_priv_t) 0)
+#define HOST_SECURITY_NULL      ((host_security_t) 0)
+#define PROCESSOR_SET_NULL      ((processor_set_t) 0)
+#define PROCESSOR_NULL          ((processor_t) 0)
+#define SEMAPHORE_NULL          ((semaphore_t) 0)
+#define LOCK_SET_NULL           ((lock_set_t) 0)
+#define LEDGER_NULL             ((ledger_t) 0)
+#define ALARM_NULL              ((alarm_t) 0)
+#define CLOCK_NULL              ((clock_t) 0)
+#define UND_SERVER_NULL         ((UNDServerRef) 0)
+#define ARCADE_REG_NULL         ((arcade_register_t) 0)
+#define SUID_CRED_NULL         ((suid_cred_t) 0)
+
+/* DEPRECATED */
+typedef natural_t       ledger_item_t;
+#define LEDGER_ITEM_INFINITY    ((ledger_item_t) (~0))
+
+typedef int64_t                 ledger_amount_t;
+#define LEDGER_LIMIT_INFINITY   ((ledger_amount_t)((1ULL << 63) - 1))
+
+typedef mach_vm_offset_t        *emulation_vector_t;
+typedef char                    *user_subsystem_t;
+
+typedef char                    *labelstr_t;
+/*
+ *	Backwards compatibility, for those programs written
+ *	before mach/{std,mach}_types.{defs,h} were set up.
+ */
+#include <mach/std_types.h>
+
+#endif  /* _MACH_MACH_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mach_voucher_types.h
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2013 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_VOUCHER_TYPES_H_
+#define _MACH_VOUCHER_TYPES_H_
+
+#include <mach/std_types.h>
+#include <mach/port.h>
+
+/*
+ * Mach Voucher - an immutable collection of attribute value handles.
+ *
+ * The mach voucher is such that it can be passed between processes
+ * as a Mach port send right (by convention in the mach_msg_header_tโ€™s
+ * msgh_voucher field).
+ *
+ * You may construct a new mach voucher by passing a construction
+ * recipe to host_create_mach_voucher().  The construction recipe supports
+ * generic commands for copying, removing, and redeeming attribute value
+ * handles from previous vouchers, or running attribute-mananger-specific
+ * commands within the recipe.
+ *
+ * Once the set of attribute value handles is constructed and returned,
+ * that set will not change for the life of the voucher (just because the
+ * attribute value handle itself doesn't change, the value the handle refers
+ * to is free to change at will).
+ */
+typedef mach_port_t             mach_voucher_t;
+#define MACH_VOUCHER_NULL       ((mach_voucher_t) 0)
+
+typedef mach_port_name_t        mach_voucher_name_t;
+#define MACH_VOUCHER_NAME_NULL  ((mach_voucher_name_t) 0)
+
+typedef mach_voucher_name_t     *mach_voucher_name_array_t;
+#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)
+
+/*
+ * This type changes appearance between user-space and kernel.  It is
+ * a port at user-space and a reference to an ipc_voucher structure in-kernel.
+ */
+typedef mach_voucher_t          ipc_voucher_t;
+#define IPC_VOUCHER_NULL        ((ipc_voucher_t) 0)
+
+/*
+ * mach_voucher_selector_t - A means of specifying which thread/task value to extract -
+ *  the current voucher set at this level, or a voucher representing
+ * the full [layered] effective value for the task/thread.
+ */
+typedef uint32_t mach_voucher_selector_t;
+#define MACH_VOUCHER_SELECTOR_CURRENT           ((mach_voucher_selector_t)0)
+#define MACH_VOUCHER_SELECTOR_EFFECTIVE         ((mach_voucher_selector_t)1)
+
+
+/*
+ * mach_voucher_attr_key_t - The key used to identify a particular managed resource or
+ * to select the specific resource managerโ€™s data associated
+ * with a given voucher.
+ */
+typedef uint32_t mach_voucher_attr_key_t;
+typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t;
+
+#define MACH_VOUCHER_ATTR_KEY_ALL               ((mach_voucher_attr_key_t)~0)
+#define MACH_VOUCHER_ATTR_KEY_NONE              ((mach_voucher_attr_key_t)0)
+
+/* other well-known-keys will be added here */
+#define MACH_VOUCHER_ATTR_KEY_ATM               ((mach_voucher_attr_key_t)1)
+#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE        ((mach_voucher_attr_key_t)2)
+#define MACH_VOUCHER_ATTR_KEY_BANK              ((mach_voucher_attr_key_t)3)
+#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY       ((mach_voucher_attr_key_t)4)
+
+#define MACH_VOUCHER_ATTR_KEY_USER_DATA         ((mach_voucher_attr_key_t)7)
+#define MACH_VOUCHER_ATTR_KEY_BITS              MACH_VOUCHER_ATTR_KEY_USER_DATA /* deprecated */
+#define MACH_VOUCHER_ATTR_KEY_TEST              ((mach_voucher_attr_key_t)8)
+
+#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN    MACH_VOUCHER_ATTR_KEY_TEST
+
+/*
+ * mach_voucher_attr_content_t
+ *
+ * Data passed to a resource manager for modifying an attribute
+ * value or returned from the resource manager in response to a
+ * request to externalize the current value for that attribute.
+ */
+typedef uint8_t *mach_voucher_attr_content_t;
+typedef uint32_t mach_voucher_attr_content_size_t;
+
+/*
+ * mach_voucher_attr_command_t - The private verbs implemented by each voucher
+ * attribute manager via mach_voucher_attr_command().
+ */
+typedef uint32_t mach_voucher_attr_command_t;
+
+/*
+ * mach_voucher_attr_recipe_command_t
+ *
+ * The verbs used to create/morph a voucher attribute value.
+ * We define some system-wide commands here - related to creation, and transport of
+ * vouchers and attributes.  Additional commands can be defined by, and supported by,
+ * individual attribute resource managers.
+ */
+typedef uint32_t mach_voucher_attr_recipe_command_t;
+typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t;
+
+#define MACH_VOUCHER_ATTR_NOOP                  ((mach_voucher_attr_recipe_command_t)0)
+#define MACH_VOUCHER_ATTR_COPY                  ((mach_voucher_attr_recipe_command_t)1)
+#define MACH_VOUCHER_ATTR_REMOVE                ((mach_voucher_attr_recipe_command_t)2)
+#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE      ((mach_voucher_attr_recipe_command_t)3)
+#define MACH_VOUCHER_ATTR_AUTO_REDEEM           ((mach_voucher_attr_recipe_command_t)4)
+#define MACH_VOUCHER_ATTR_SEND_PREPROCESS       ((mach_voucher_attr_recipe_command_t)5)
+
+/* redeem is on its way out? */
+#define MACH_VOUCHER_ATTR_REDEEM                ((mach_voucher_attr_recipe_command_t)10)
+
+/* recipe command(s) for importance attribute manager */
+#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF       ((mach_voucher_attr_recipe_command_t)200)
+
+/* recipe command(s) for bit-store attribute manager */
+#define MACH_VOUCHER_ATTR_USER_DATA_STORE       ((mach_voucher_attr_recipe_command_t)211)
+#define MACH_VOUCHER_ATTR_BITS_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE /* deprecated */
+
+/* recipe command(s) for test attribute manager */
+#define MACH_VOUCHER_ATTR_TEST_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE
+
+/*
+ * mach_voucher_attr_recipe_t
+ *
+ * An element in a recipe list to create a voucher.
+ */
+#pragma pack(push, 1)
+
+typedef struct mach_voucher_attr_recipe_data {
+	mach_voucher_attr_key_t                 key;
+	mach_voucher_attr_recipe_command_t      command;
+	mach_voucher_name_t                     previous_voucher;
+	mach_voucher_attr_content_size_t        content_size;
+	uint8_t                                 content[];
+} mach_voucher_attr_recipe_data_t;
+typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t;
+typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t;
+
+/* Make the above palatable to MIG */
+typedef uint8_t *mach_voucher_attr_raw_recipe_t;
+typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t;
+typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t;
+typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t;
+
+#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE   5120
+#define MACH_VOUCHER_TRAP_STACK_LIMIT                 256
+
+#pragma pack(pop)
+
+/*
+ * VOUCHER ATTRIBUTE MANAGER Writer types
+ */
+
+/*
+ * mach_voucher_attr_manager_t
+ *
+ * A handle through which the mach voucher mechanism communicates with the voucher
+ * attribute manager for a given attribute key.
+ */
+typedef mach_port_t                     mach_voucher_attr_manager_t;
+#define MACH_VOUCHER_ATTR_MANAGER_NULL  ((mach_voucher_attr_manager_t) 0)
+
+/*
+ * mach_voucher_attr_control_t
+ *
+ * A handle provided to the voucher attribute manager for a given attribute key
+ * through which it makes inquiries or control operations of the mach voucher mechanism.
+ */
+typedef mach_port_t                     mach_voucher_attr_control_t;
+#define MACH_VOUCHER_ATTR_CONTROL_NULL  ((mach_voucher_attr_control_t) 0)
+
+/*
+ * These types are different in-kernel vs user-space.  They are ports in user-space,
+ * pointers to opaque structs in most of the kernel, and pointers to known struct
+ * types in the Mach portion of the kernel.
+ */
+typedef mach_port_t             ipc_voucher_attr_manager_t;
+typedef mach_port_t             ipc_voucher_attr_control_t;
+#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)
+#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)
+
+/*
+ * mach_voucher_attr_value_handle_t
+ *
+ * The private handle that the voucher attribute manager provides to
+ * the mach voucher mechanism to represent a given attr content/value.
+ */
+typedef uint64_t mach_voucher_attr_value_handle_t;
+typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t;
+
+typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t;
+#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED      ((mach_voucher_attr_value_handle_array_size_t)4)
+
+typedef uint32_t mach_voucher_attr_value_reference_t;
+typedef uint32_t mach_voucher_attr_value_flags_t;
+#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE      ((mach_voucher_attr_value_flags_t)0)
+#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST   ((mach_voucher_attr_value_flags_t)1)
+
+/* USE - TBD */
+typedef uint32_t mach_voucher_attr_control_flags_t;
+#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE    ((mach_voucher_attr_control_flags_t)0)
+
+/*
+ * Commands and types for the IPC Importance Attribute Manager
+ *
+ * These are the valid mach_voucher_attr_command() options with the
+ * MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
+ */
+#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL       1  /* Add some number of external refs (not supported) */
+#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL      2  /* Drop some number of external refs */
+typedef uint32_t mach_voucher_attr_importance_refs;
+
+/*
+ * Activity id Generation defines
+ */
+#define MACH_ACTIVITY_ID_COUNT_MAX 16
+
+#endif  /* _MACH_VOUCHER_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/memory_object_types.h
@@ -0,0 +1,299 @@
+/*
+ * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	memory_object.h
+ *	Author:	Michael Wayne Young
+ *
+ *	External memory management interface definition.
+ */
+
+#ifndef _MACH_MEMORY_OBJECT_TYPES_H_
+#define _MACH_MEMORY_OBJECT_TYPES_H_
+
+/*
+ *	User-visible types used in the external memory
+ *	management interface:
+ */
+
+#include <mach/port.h>
+#include <mach/message.h>
+#include <mach/vm_prot.h>
+#include <mach/vm_sync.h>
+#include <mach/vm_types.h>
+#include <mach/machine/vm_types.h>
+
+#include <sys/cdefs.h>
+
+#define VM_64_BIT_DATA_OBJECTS
+
+typedef unsigned long long      memory_object_offset_t;
+typedef unsigned long long      memory_object_size_t;
+typedef natural_t               memory_object_cluster_size_t;
+typedef natural_t *             memory_object_fault_info_t;
+
+typedef unsigned long long      vm_object_id_t;
+
+
+/*
+ * Temporary until real EMMI version gets re-implemented
+ */
+
+
+typedef mach_port_t     memory_object_t;
+typedef mach_port_t     memory_object_control_t;
+
+
+typedef memory_object_t *memory_object_array_t;
+/* A memory object ... */
+/*  Used by the kernel to retrieve */
+/*  or store data */
+
+typedef mach_port_t     memory_object_name_t;
+/* Used to describe the memory ... */
+/*  object in vm_regions() calls */
+
+typedef mach_port_t     memory_object_default_t;
+/* Registered with the host ... */
+/*  for creating new internal objects */
+
+#define MEMORY_OBJECT_NULL              ((memory_object_t) 0)
+#define MEMORY_OBJECT_CONTROL_NULL      ((memory_object_control_t) 0)
+#define MEMORY_OBJECT_NAME_NULL         ((memory_object_name_t) 0)
+#define MEMORY_OBJECT_DEFAULT_NULL      ((memory_object_default_t) 0)
+
+
+typedef int             memory_object_copy_strategy_t;
+/* How memory manager handles copy: */
+#define         MEMORY_OBJECT_COPY_NONE         0
+/* ... No special support */
+#define         MEMORY_OBJECT_COPY_CALL         1
+/* ... Make call on memory manager */
+#define         MEMORY_OBJECT_COPY_DELAY        2
+/* ... Memory manager doesn't
+ *     change data externally.
+ */
+#define         MEMORY_OBJECT_COPY_TEMPORARY    3
+/* ... Memory manager doesn't
+ *     change data externally, and
+ *     doesn't need to see changes.
+ */
+#define         MEMORY_OBJECT_COPY_SYMMETRIC    4
+/* ... Memory manager doesn't
+ *     change data externally,
+ *     doesn't need to see changes,
+ *     and object will not be
+ *     multiply mapped.
+ *
+ *     XXX
+ *     Not yet safe for non-kernel use.
+ */
+
+#define         MEMORY_OBJECT_COPY_INVALID      5
+/* ...	An invalid copy strategy,
+ *	for external objects which
+ *	have not been initialized.
+ *	Allows copy_strategy to be
+ *	examined without also
+ *	examining pager_ready and
+ *	internal.
+ */
+
+typedef int             memory_object_return_t;
+/* Which pages to return to manager
+ *  this time (lock_request) */
+#define         MEMORY_OBJECT_RETURN_NONE       0
+/* ... don't return any. */
+#define         MEMORY_OBJECT_RETURN_DIRTY      1
+/* ... only dirty pages. */
+#define         MEMORY_OBJECT_RETURN_ALL        2
+/* ... dirty and precious pages. */
+#define         MEMORY_OBJECT_RETURN_ANYTHING   3
+/* ... any resident page. */
+
+/*
+ *	Data lock request flags
+ */
+
+#define         MEMORY_OBJECT_DATA_FLUSH        0x1
+#define         MEMORY_OBJECT_DATA_NO_CHANGE    0x2
+#define         MEMORY_OBJECT_DATA_PURGE        0x4
+#define         MEMORY_OBJECT_COPY_SYNC         0x8
+#define         MEMORY_OBJECT_DATA_SYNC         0x10
+#define         MEMORY_OBJECT_IO_SYNC           0x20
+#define         MEMORY_OBJECT_DATA_FLUSH_ALL    0x40
+
+/*
+ *	Types for the memory object flavor interfaces
+ */
+
+#define MEMORY_OBJECT_INFO_MAX      (1024)
+typedef int     *memory_object_info_t;
+typedef int      memory_object_flavor_t;
+typedef int      memory_object_info_data_t[MEMORY_OBJECT_INFO_MAX];
+
+
+#define MEMORY_OBJECT_PERFORMANCE_INFO  11
+#define MEMORY_OBJECT_ATTRIBUTE_INFO    14
+#define MEMORY_OBJECT_BEHAVIOR_INFO     15
+
+
+struct memory_object_perf_info {
+	memory_object_cluster_size_t    cluster_size;
+	boolean_t                       may_cache;
+};
+
+struct memory_object_attr_info {
+	memory_object_copy_strategy_t   copy_strategy;
+	memory_object_cluster_size_t    cluster_size;
+	boolean_t                       may_cache_object;
+	boolean_t                       temporary;
+};
+
+struct memory_object_behave_info {
+	memory_object_copy_strategy_t   copy_strategy;
+	boolean_t                       temporary;
+	boolean_t                       invalidate;
+	boolean_t                       silent_overwrite;
+	boolean_t                       advisory_pageout;
+};
+
+
+typedef struct memory_object_behave_info *memory_object_behave_info_t;
+typedef struct memory_object_behave_info memory_object_behave_info_data_t;
+
+typedef struct memory_object_perf_info  *memory_object_perf_info_t;
+typedef struct memory_object_perf_info  memory_object_perf_info_data_t;
+
+typedef struct memory_object_attr_info  *memory_object_attr_info_t;
+typedef struct memory_object_attr_info  memory_object_attr_info_data_t;
+
+#define MEMORY_OBJECT_BEHAVE_INFO_COUNT ((mach_msg_type_number_t)       \
+	        (sizeof(memory_object_behave_info_data_t)/sizeof(int)))
+#define MEMORY_OBJECT_PERF_INFO_COUNT   ((mach_msg_type_number_t)       \
+	        (sizeof(memory_object_perf_info_data_t)/sizeof(int)))
+#define MEMORY_OBJECT_ATTR_INFO_COUNT   ((mach_msg_type_number_t)       \
+	        (sizeof(memory_object_attr_info_data_t)/sizeof(int)))
+
+#define invalid_memory_object_flavor(f)                                 \
+	(f != MEMORY_OBJECT_ATTRIBUTE_INFO &&                           \
+	 f != MEMORY_OBJECT_PERFORMANCE_INFO &&                         \
+	 f != OLD_MEMORY_OBJECT_BEHAVIOR_INFO &&                        \
+	 f != MEMORY_OBJECT_BEHAVIOR_INFO &&                            \
+	 f != OLD_MEMORY_OBJECT_ATTRIBUTE_INFO)
+
+
+/*
+ * Used to support options on memory_object_release_name call
+ */
+#define MEMORY_OBJECT_TERMINATE_IDLE    0x1
+#define MEMORY_OBJECT_RESPECT_CACHE     0x2
+#define MEMORY_OBJECT_RELEASE_NO_OP     0x4
+
+
+/* named entry processor mapping options */
+/* enumerated */
+#define MAP_MEM_NOOP                      0
+#define MAP_MEM_COPYBACK                  1
+#define MAP_MEM_IO                        2
+#define MAP_MEM_WTHRU                     3
+#define MAP_MEM_WCOMB                     4       /* Write combining mode */
+                                                  /* aka store gather     */
+#define MAP_MEM_INNERWBACK                5
+#define MAP_MEM_POSTED                    6
+#define MAP_MEM_RT                        7
+#define MAP_MEM_POSTED_REORDERED          8
+#define MAP_MEM_POSTED_COMBINED_REORDERED 9
+
+#define GET_MAP_MEM(flags)      \
+	((((unsigned int)(flags)) >> 24) & 0xFF)
+
+#define SET_MAP_MEM(caching, flags)     \
+	((flags) = ((((unsigned int)(caching)) << 24) \
+	                & 0xFF000000) | ((flags) & 0xFFFFFF));
+
+/* leave room for vm_prot bits (0xFF ?) */
+#define MAP_MEM_LEDGER_TAGGED        0x002000 /* object owned by a specific task and ledger */
+#define MAP_MEM_PURGABLE_KERNEL_ONLY 0x004000 /* volatility controlled by kernel */
+#define MAP_MEM_GRAB_SECLUDED   0x008000 /* can grab secluded pages */
+#define MAP_MEM_ONLY            0x010000 /* change processor caching  */
+#define MAP_MEM_NAMED_CREATE    0x020000 /* create extant object      */
+#define MAP_MEM_PURGABLE        0x040000 /* create a purgable VM object */
+#define MAP_MEM_NAMED_REUSE     0x080000 /* reuse provided entry if identical */
+#define MAP_MEM_USE_DATA_ADDR   0x100000 /* preserve address of data, rather than base of page */
+#define MAP_MEM_VM_COPY         0x200000 /* make a copy of a VM range */
+#define MAP_MEM_VM_SHARE        0x400000 /* extract a VM range for remap */
+#define MAP_MEM_4K_DATA_ADDR    0x800000 /* preserve 4K aligned address of data */
+
+#define MAP_MEM_FLAGS_MASK 0x00FFFF00
+#define MAP_MEM_FLAGS_USER (                               \
+	MAP_MEM_PURGABLE_KERNEL_ONLY |                     \
+	MAP_MEM_GRAB_SECLUDED |                            \
+	MAP_MEM_ONLY |                                     \
+	MAP_MEM_NAMED_CREATE |                             \
+	MAP_MEM_PURGABLE |                                 \
+	MAP_MEM_NAMED_REUSE |                              \
+	MAP_MEM_USE_DATA_ADDR |                            \
+	MAP_MEM_VM_COPY |                                  \
+	MAP_MEM_VM_SHARE |                                 \
+	MAP_MEM_LEDGER_TAGGED |                            \
+	MAP_MEM_4K_DATA_ADDR)
+#define MAP_MEM_FLAGS_ALL (                     \
+	MAP_MEM_FLAGS_USER)
+
+
+#endif  /* _MACH_MEMORY_OBJECT_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mig.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+/*
+ * Mach MIG Subsystem Interfaces
+ */
+
+#ifndef _MACH_MIG_H_
+#define _MACH_MIG_H_
+
+#include <stdint.h>
+#include <mach/port.h>
+#include <mach/message.h>
+#include <mach/vm_types.h>
+
+#include <sys/cdefs.h>
+
+#if defined(MACH_KERNEL)
+
+#if !defined(__MigTypeCheck)
+/* Turn MIG type checking on by default for kernel */
+#define __MigTypeCheck 1
+#endif
+
+#define __MigKernelSpecificCode 1
+#define _MIG_KERNEL_SPECIFIC_CODE_ 1
+
+#elif !defined(__MigTypeCheck)
+
+#if defined(TypeCheck)
+/* use legacy setting (temporary) */
+#define __MigTypeCheck TypeCheck
+#else
+/* default MIG type checking on */
+#define __MigTypeCheck 1
+#endif
+
+#endif /* !defined(MACH_KERNEL) && !defined(__MigTypeCheck) */
+
+/*
+ * Pack MIG message structs.
+ * This is an indicator of the need to view shared structs in a
+ * binary-compatible format - and MIG message structs are no different.
+ */
+#define __MigPackStructs 1
+
+/*
+ * Definition for MIG-generated server stub routines.  These routines
+ * unpack the request message, call the server procedure, and pack the
+ * reply message.
+ */
+typedef void    (*mig_stub_routine_t) (mach_msg_header_t *InHeadP,
+    mach_msg_header_t *OutHeadP);
+
+typedef mig_stub_routine_t mig_routine_t;
+
+/*
+ * Definition for MIG-generated server routine.  This routine takes a
+ * message, and returns the appropriate stub function for handling that
+ * message.
+ */
+typedef mig_routine_t (*mig_server_routine_t) (mach_msg_header_t *InHeadP);
+
+/*
+ * Generic definition for implementation routines.  These routines do
+ * the real work associated with this request.  This generic type is
+ * used for keeping the pointers in the subsystem array.
+ */
+typedef kern_return_t   (*mig_impl_routine_t)(void);
+
+typedef mach_msg_type_descriptor_t routine_arg_descriptor;
+typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;
+typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;
+
+#define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)
+
+struct routine_descriptor {
+	mig_impl_routine_t      impl_routine;   /* Server work func pointer   */
+	mig_stub_routine_t      stub_routine;   /* Unmarshalling func pointer */
+	unsigned int            argc;                   /* Number of argument words   */
+	unsigned int            descr_count;    /* Number complex descriptors */
+	routine_arg_descriptor_t
+	    arg_descr;                                                  /* pointer to descriptor array*/
+	unsigned int            max_reply_msg;  /* Max size for reply msg     */
+};
+typedef struct routine_descriptor *routine_descriptor_t;
+
+typedef struct routine_descriptor mig_routine_descriptor;
+typedef mig_routine_descriptor *mig_routine_descriptor_t;
+
+#define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)
+
+typedef struct mig_subsystem {
+	mig_server_routine_t server;            /* pointer to demux routine	*/
+	mach_msg_id_t            start;                 /* Min routine number	    */
+	mach_msg_id_t            end;                   /* Max routine number + 1   */
+	mach_msg_size_t          maxsize;               /* Max reply message size   */
+	vm_address_t             reserved;              /* reserved for MIG use	    */
+	mig_routine_descriptor
+	    routine[1];                                         /* Routine descriptor array */
+} *mig_subsystem_t;
+
+#define MIG_SUBSYSTEM_NULL              ((mig_subsystem_t)0)
+
+typedef struct mig_symtab {
+	char                            *ms_routine_name;
+	int                                     ms_routine_number;
+	void                            (*ms_routine)(void);    /* Since the functions in the
+	                                                         * symbol table have unknown
+	                                                         * signatures, this is the best
+	                                                         * we can do...
+	                                                         */
+} mig_symtab_t;
+
+/*
+ * A compiler attribute for annotating all MIG server routines and other
+ * functions that should behave similarly.  Allows the compiler to perform
+ * additional static bug-finding over them.
+ */
+#if __has_attribute(mig_server_routine)
+#define MIG_SERVER_ROUTINE __attribute__((mig_server_routine))
+#else
+#define MIG_SERVER_ROUTINE
+#endif
+
+
+__BEGIN_DECLS
+
+/* Client side reply port allocate */
+extern mach_port_t mig_get_reply_port(void);
+
+/* Client side reply port deallocate */
+extern void mig_dealloc_reply_port(mach_port_t reply_port);
+
+/* Client side reply port "deallocation" */
+extern void mig_put_reply_port(mach_port_t reply_port);
+
+/* Bounded string copy */
+extern int mig_strncpy(char     *dest, const char *src, int     len);
+extern int mig_strncpy_zerofill(char    *dest, const char *src, int     len);
+
+
+/* Allocate memory for out-of-line mig structures */
+extern void mig_allocate(vm_address_t *, vm_size_t);
+
+/* Deallocate memory used for out-of-line mig structures */
+extern void mig_deallocate(vm_address_t, vm_size_t);
+
+
+__END_DECLS
+
+#endif  /* _MACH_MIG_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mig_errors.h
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ * Mach Interface Generator errors
+ *
+ */
+
+#ifndef _MACH_MIG_ERRORS_H_
+#define _MACH_MIG_ERRORS_H_
+
+#include <mach/mig.h>
+#include <mach/ndr.h>
+#include <mach/message.h>
+#include <mach/kern_return.h>
+
+#include <sys/cdefs.h>
+
+/*
+ *	These error codes should be specified as system 4, subsytem 2.
+ *	But alas backwards compatibility makes that impossible.
+ *	The problem is old clients of new servers (eg, the kernel)
+ *	which get strange large error codes when there is a Mig problem
+ *	in the server.  Unfortunately, the IPC system doesn't have
+ *	the knowledge to convert the codes in this situation.
+ */
+
+#define MIG_TYPE_ERROR          -300    /* client type check failure */
+#define MIG_REPLY_MISMATCH      -301    /* wrong reply message ID */
+#define MIG_REMOTE_ERROR        -302    /* server detected error */
+#define MIG_BAD_ID              -303    /* bad request message ID */
+#define MIG_BAD_ARGUMENTS       -304    /* server type check failure */
+#define MIG_NO_REPLY            -305    /* no reply should be send */
+#define MIG_EXCEPTION           -306    /* server raised exception */
+#define MIG_ARRAY_TOO_LARGE     -307    /* array not large enough */
+#define MIG_SERVER_DIED         -308    /* server died */
+#define MIG_TRAILER_ERROR       -309    /* trailer has an unknown format */
+
+/*
+ *	Whenever MIG detects an error, it sends back a generic
+ *	mig_reply_error_t format message.  Clients must accept
+ *	these in addition to the expected reply message format.
+ */
+#pragma pack(4)
+typedef struct {
+	mach_msg_header_t       Head;
+	NDR_record_t            NDR;
+	kern_return_t           RetCode;
+} mig_reply_error_t;
+#pragma pack()
+
+
+__BEGIN_DECLS
+
+#if !defined(__NDR_convert__mig_reply_error_t__defined)
+#define __NDR_convert__mig_reply_error_t__defined
+
+static __inline__ void
+__NDR_convert__mig_reply_error_t(__unused mig_reply_error_t *x)
+{
+#if defined(__NDR_convert__int_rep__kern_return_t__defined)
+	if (x->NDR.int_rep != NDR_record.int_rep) {
+		__NDR_convert__int_rep__kern_return_t(&x->RetCode, x->NDR.int_rep);
+	}
+#endif /* __NDR_convert__int_rep__kern_return_t__defined */
+}
+#endif /* !defined(__NDR_convert__mig_reply_error_t__defined) */
+
+__END_DECLS
+
+#endif  /* _MACH_MIG_ERRORS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/mig_strncpy_zerofill_support.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2017 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+//This dummy header file is created for mig to check when to call mig_strncpy_zerofill.
+//Mig checks if this file is available to include and knows that Libsyscall has the new mig_strncpy_zerofill symbols to link to.
+//Do not delete this file, mig will stop calling mig_strncpy_zerofill.
+
+#ifndef __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
+#define __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
+
+#endif // __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
lib/libc/include/x86_64-macos-gnu/mach/ndr.h
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_NDR_H_
+#define _MACH_NDR_H_
+
+#include <stdint.h>
+#include <sys/cdefs.h>
+#include <libkern/OSByteOrder.h>
+
+
+typedef struct {
+	unsigned char       mig_vers;
+	unsigned char       if_vers;
+	unsigned char       reserved1;
+	unsigned char       mig_encoding;
+	unsigned char       int_rep;
+	unsigned char       char_rep;
+	unsigned char       float_rep;
+	unsigned char       reserved2;
+} NDR_record_t;
+
+/*
+ * MIG supported protocols for Network Data Representation
+ */
+#define  NDR_PROTOCOL_2_0      0
+
+/*
+ * NDR 2.0 format flag type definition and values.
+ */
+#define  NDR_INT_BIG_ENDIAN    0
+#define  NDR_INT_LITTLE_ENDIAN 1
+#define  NDR_FLOAT_IEEE        0
+#define  NDR_FLOAT_VAX         1
+#define  NDR_FLOAT_CRAY        2
+#define  NDR_FLOAT_IBM         3
+#define  NDR_CHAR_ASCII        0
+#define  NDR_CHAR_EBCDIC       1
+
+extern NDR_record_t NDR_record;
+
+/* NDR conversion off by default */
+
+#if !defined(__NDR_convert__)
+#define __NDR_convert__ 0
+#endif /* !defined(__NDR_convert__) */
+
+#ifndef __NDR_convert__int_rep__
+#define __NDR_convert__int_rep__ __NDR_convert__
+#endif /* __NDR_convert__int_rep__ */
+
+#ifndef __NDR_convert__char_rep__
+#define __NDR_convert__char_rep__ 0
+#endif /* __NDR_convert__char_rep__ */
+
+#ifndef __NDR_convert__float_rep__
+#define __NDR_convert__float_rep__ 0
+#endif /* __NDR_convert__float_rep__ */
+
+#if __NDR_convert__
+
+#define __NDR_convert__NOOP             do ; while (0)
+#define __NDR_convert__UNKNOWN(s)       __NDR_convert__NOOP
+#define __NDR_convert__SINGLE(a, f, r)  do { r((a), (f)); } while (0)
+#define __NDR_convert__ARRAY(a, f, c, r) \
+	do { int __i__, __C__ = (c); \
+	for (__i__ = 0; __i__ < __C__; __i__++) \
+	r(&(a)[__i__], f); } while (0)
+#define __NDR_convert__2DARRAY(a, f, s, c, r) \
+	do { int __i__, __C__ = (c), __S__ = (s); \
+	for (__i__ = 0; __i__ < __C__; __i__++) \
+	r(&(a)[__i__ * __S__], f, __S__); } while (0)
+
+#if __NDR_convert__int_rep__
+
+#define __NDR_READSWAP_assign(a, rs)    do { *(a) = rs(a); } while (0)
+
+#define __NDR_READSWAP__uint16_t(a)     OSReadSwapInt16((void *)a, 0)
+#define __NDR_READSWAP__int16_t(a)      (int16_t)OSReadSwapInt16((void *)a, 0)
+#define __NDR_READSWAP__uint32_t(a)     OSReadSwapInt32((void *)a, 0)
+#define __NDR_READSWAP__int32_t(a)      (int32_t)OSReadSwapInt32((void *)a, 0)
+#define __NDR_READSWAP__uint64_t(a)     OSReadSwapInt64((void *)a, 0)
+#define __NDR_READSWAP__int64_t(a)      (int64_t)OSReadSwapInt64((void *)a, 0)
+
+__BEGIN_DECLS
+
+static __inline__ float
+__NDR_READSWAP__float(float *argp)
+{
+	union {
+		float sv;
+		uint32_t ull;
+	} result;
+	result.ull = __NDR_READSWAP__uint32_t((uint32_t *)argp);
+	return result.sv;
+}
+
+static __inline__ double
+__NDR_READSWAP__double(double *argp)
+{
+	union {
+		double sv;
+		uint64_t ull;
+	} result;
+	result.ull = __NDR_READSWAP__uint64_t((uint64_t *)argp);
+	return result.sv;
+}
+
+__END_DECLS
+
+#define __NDR_convert__int_rep__int16_t__defined
+#define __NDR_convert__int_rep__int16_t(v, f)            \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__int16_t)
+
+#define __NDR_convert__int_rep__uint16_t__defined
+#define __NDR_convert__int_rep__uint16_t(v, f)           \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint16_t)
+
+#define __NDR_convert__int_rep__int32_t__defined
+#define __NDR_convert__int_rep__int32_t(v, f)            \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__int32_t)
+
+#define __NDR_convert__int_rep__uint32_t__defined
+#define __NDR_convert__int_rep__uint32_t(v, f)           \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint32_t)
+
+#define __NDR_convert__int_rep__int64_t__defined
+#define __NDR_convert__int_rep__int64_t(v, f)            \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__int64_t)
+
+#define __NDR_convert__int_rep__uint64_t__defined
+#define __NDR_convert__int_rep__uint64_t(v, f)           \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint64_t)
+
+#define __NDR_convert__int_rep__float__defined
+#define __NDR_convert__int_rep__float(v, f)              \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__float)
+
+#define __NDR_convert__int_rep__double__defined
+#define __NDR_convert__int_rep__double(v, f)             \
+	__NDR_READSWAP_assign(v, __NDR_READSWAP__double)
+
+#define __NDR_convert__int_rep__boolean_t__defined
+#define __NDR_convert__int_rep__boolean_t(v, f)         \
+	__NDR_convert__int_rep__int32_t(v,f)
+
+#define __NDR_convert__int_rep__kern_return_t__defined
+#define __NDR_convert__int_rep__kern_return_t(v, f)      \
+	__NDR_convert__int_rep__int32_t(v,f)
+
+#define __NDR_convert__int_rep__mach_port_name_t__defined
+#define __NDR_convert__int_rep__mach_port_name_t(v, f)   \
+	__NDR_convert__int_rep__uint32_t(v,f)
+
+#define __NDR_convert__int_rep__mach_msg_type_number_t__defined
+#define __NDR_convert__int_rep__mach_msg_type_number_t(v, f) \
+	__NDR_convert__int_rep__uint32_t(v,f)
+
+#endif /* __NDR_convert__int_rep__ */
+
+#if __NDR_convert__char_rep__
+
+#warning  NDR character representation conversions not implemented yet!
+#define __NDR_convert__char_rep__char(v, f)      __NDR_convert__NOOP
+#define __NDR_convert__char_rep__string(v, f, l)  __NDR_convert__NOOP
+
+#endif /* __NDR_convert__char_rep__ */
+
+#if __NDR_convert__float_rep__
+
+#warning  NDR floating point representation conversions not implemented yet!
+#define __NDR_convert__float_rep__float(v, f)    __NDR_convert__NOOP
+#define __NDR_convert__float_rep__double(v, f)   __NDR_convert__NOOP
+
+#endif /* __NDR_convert__float_rep__ */
+
+#endif /* __NDR_convert__ */
+
+#endif /* _MACH_NDR_H_ */
lib/libc/include/x86_64-macos-gnu/mach/notify.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/notify.h
+ *
+ *	Kernel notification message definitions.
+ */
+
+#ifndef _MACH_NOTIFY_H_
+#define _MACH_NOTIFY_H_
+
+#include <mach/port.h>
+#include <mach/message.h>
+#include <mach/ndr.h>
+
+/*
+ *  An alternative specification of the notification interface
+ *  may be found in mach/notify.defs.
+ */
+
+#define MACH_NOTIFY_FIRST               0100
+#define MACH_NOTIFY_PORT_DELETED        (MACH_NOTIFY_FIRST + 001)
+/* A send or send-once right was deleted. */
+#define MACH_NOTIFY_SEND_POSSIBLE       (MACH_NOTIFY_FIRST + 002)
+/* Now possible to send using specified right */
+#define MACH_NOTIFY_PORT_DESTROYED      (MACH_NOTIFY_FIRST + 005)
+/* A receive right was (would have been) deallocated */
+#define MACH_NOTIFY_NO_SENDERS          (MACH_NOTIFY_FIRST + 006)
+/* Receive right has no extant send rights */
+#define MACH_NOTIFY_SEND_ONCE           (MACH_NOTIFY_FIRST + 007)
+/* An extant send-once right died */
+#define MACH_NOTIFY_DEAD_NAME           (MACH_NOTIFY_FIRST + 010)
+/* Send or send-once right died, leaving a dead-name */
+#define MACH_NOTIFY_LAST                (MACH_NOTIFY_FIRST + 015)
+
+typedef mach_port_t notify_port_t;
+
+/*
+ * Hard-coded message structures for receiving Mach port notification
+ * messages.  However, they are not actual large enough to receive
+ * the largest trailers current exported by Mach IPC (so they cannot
+ * be used for space allocations in situations using these new larger
+ * trailers).  Instead, the MIG-generated server routines (and
+ * related prototypes should be used).
+ */
+typedef struct {
+	mach_msg_header_t   not_header;
+	NDR_record_t        NDR;
+	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
+	mach_msg_format_0_trailer_t trailer;
+} mach_port_deleted_notification_t;
+
+typedef struct {
+	mach_msg_header_t   not_header;
+	NDR_record_t        NDR;
+	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
+	mach_msg_format_0_trailer_t trailer;
+} mach_send_possible_notification_t;
+
+typedef struct {
+	mach_msg_header_t   not_header;
+	mach_msg_body_t     not_body;
+	mach_msg_port_descriptor_t not_port;/* MACH_MSG_TYPE_PORT_RECEIVE */
+	mach_msg_format_0_trailer_t trailer;
+} mach_port_destroyed_notification_t;
+
+typedef struct {
+	mach_msg_header_t   not_header;
+	NDR_record_t        NDR;
+	mach_msg_type_number_t not_count;
+	mach_msg_format_0_trailer_t trailer;
+} mach_no_senders_notification_t;
+
+typedef struct {
+	mach_msg_header_t   not_header;
+	mach_msg_format_0_trailer_t trailer;
+} mach_send_once_notification_t;
+
+typedef struct {
+	mach_msg_header_t   not_header;
+	NDR_record_t        NDR;
+	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
+	mach_msg_format_0_trailer_t trailer;
+} mach_dead_name_notification_t;
+
+#endif  /* _MACH_NOTIFY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/policy.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_POLICY_H_
+#define _MACH_POLICY_H_
+
+/*
+ *	mach/policy.h
+ *
+ *	Definitions for scheduing policy.
+ */
+
+/*
+ *  All interfaces defined here are obsolete.
+ */
+
+#include <mach/boolean.h>
+#include <mach/message.h>
+#include <mach/vm_types.h>
+
+/*
+ *	Old scheduling control interface
+ */
+typedef int                             policy_t;
+typedef integer_t                       *policy_info_t;
+typedef integer_t                       *policy_base_t;
+typedef integer_t                       *policy_limit_t;
+
+/*
+ *	Policy definitions.  Policies should be powers of 2,
+ *	but cannot be or'd together other than to test for a
+ *	policy 'class'.
+ */
+#define POLICY_NULL             0       /* none			*/
+#define POLICY_TIMESHARE        1       /* timesharing		*/
+#define POLICY_RR               2       /* fixed round robin	*/
+#define POLICY_FIFO             4       /* fixed fifo		*/
+
+#define __NEW_SCHEDULING_FRAMEWORK__
+
+/*
+ *	Check if policy is of 'class' fixed-priority.
+ */
+#define POLICYCLASS_FIXEDPRI    (POLICY_RR | POLICY_FIFO)
+
+/*
+ *	Check if policy is valid.
+ */
+#define invalid_policy(policy)                  \
+	((policy) != POLICY_TIMESHARE &&        \
+	 (policy) != POLICY_RR &&               \
+	 (policy) != POLICY_FIFO)
+
+
+/*
+ *      Types for TIMESHARE policy
+ */
+struct policy_timeshare_base {
+	integer_t               base_priority;
+};
+struct policy_timeshare_limit {
+	integer_t               max_priority;
+};
+struct policy_timeshare_info {
+	integer_t               max_priority;
+	integer_t               base_priority;
+	integer_t               cur_priority;
+	boolean_t               depressed;
+	integer_t               depress_priority;
+};
+
+typedef struct policy_timeshare_base    *policy_timeshare_base_t;
+typedef struct policy_timeshare_limit   *policy_timeshare_limit_t;
+typedef struct policy_timeshare_info    *policy_timeshare_info_t;
+
+typedef struct policy_timeshare_base    policy_timeshare_base_data_t;
+typedef struct policy_timeshare_limit   policy_timeshare_limit_data_t;
+typedef struct policy_timeshare_info    policy_timeshare_info_data_t;
+
+
+#define POLICY_TIMESHARE_BASE_COUNT     ((mach_msg_type_number_t) \
+	(sizeof(struct policy_timeshare_base)/sizeof(integer_t)))
+#define POLICY_TIMESHARE_LIMIT_COUNT    ((mach_msg_type_number_t) \
+	(sizeof(struct policy_timeshare_limit)/sizeof(integer_t)))
+#define POLICY_TIMESHARE_INFO_COUNT     ((mach_msg_type_number_t) \
+	(sizeof(struct policy_timeshare_info)/sizeof(integer_t)))
+
+
+/*
+ *	Types for the ROUND ROBIN (RR) policy
+ */
+struct policy_rr_base {
+	integer_t               base_priority;
+	integer_t               quantum;
+};
+struct policy_rr_limit {
+	integer_t               max_priority;
+};
+struct policy_rr_info {
+	integer_t               max_priority;
+	integer_t               base_priority;
+	integer_t               quantum;
+	boolean_t               depressed;
+	integer_t               depress_priority;
+};
+
+typedef struct policy_rr_base           *policy_rr_base_t;
+typedef struct policy_rr_limit          *policy_rr_limit_t;
+typedef struct policy_rr_info           *policy_rr_info_t;
+
+typedef struct policy_rr_base           policy_rr_base_data_t;
+typedef struct policy_rr_limit          policy_rr_limit_data_t;
+typedef struct policy_rr_info           policy_rr_info_data_t;
+
+#define POLICY_RR_BASE_COUNT    ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_rr_base)/sizeof(integer_t)))
+#define POLICY_RR_LIMIT_COUNT   ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_rr_limit)/sizeof(integer_t)))
+#define POLICY_RR_INFO_COUNT    ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_rr_info)/sizeof(integer_t)))
+
+
+/*
+ *      Types for the FIRST-IN-FIRST-OUT (FIFO) policy
+ */
+struct policy_fifo_base {
+	integer_t               base_priority;
+};
+struct policy_fifo_limit {
+	integer_t               max_priority;
+};
+struct policy_fifo_info {
+	integer_t               max_priority;
+	integer_t               base_priority;
+	boolean_t               depressed;
+	integer_t               depress_priority;
+};
+
+typedef struct policy_fifo_base         *policy_fifo_base_t;
+typedef struct policy_fifo_limit        *policy_fifo_limit_t;
+typedef struct policy_fifo_info         *policy_fifo_info_t;
+
+typedef struct policy_fifo_base         policy_fifo_base_data_t;
+typedef struct policy_fifo_limit        policy_fifo_limit_data_t;
+typedef struct policy_fifo_info         policy_fifo_info_data_t;
+
+#define POLICY_FIFO_BASE_COUNT  ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_fifo_base)/sizeof(integer_t)))
+#define POLICY_FIFO_LIMIT_COUNT ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_fifo_limit)/sizeof(integer_t)))
+#define POLICY_FIFO_INFO_COUNT  ((mach_msg_type_number_t)       \
+	(sizeof(struct policy_fifo_info)/sizeof(integer_t)))
+
+/*
+ *      Aggregate policy types
+ */
+
+struct policy_bases {
+	policy_timeshare_base_data_t    ts;
+	policy_rr_base_data_t           rr;
+	policy_fifo_base_data_t         fifo;
+};
+
+struct policy_limits {
+	policy_timeshare_limit_data_t   ts;
+	policy_rr_limit_data_t          rr;
+	policy_fifo_limit_data_t        fifo;
+};
+
+struct policy_infos {
+	policy_timeshare_info_data_t    ts;
+	policy_rr_info_data_t           rr;
+	policy_fifo_info_data_t         fifo;
+};
+
+typedef struct policy_bases             policy_base_data_t;
+typedef struct policy_limits            policy_limit_data_t;
+typedef struct policy_infos             policy_info_data_t;
+
+#endif  /* _MACH_POLICY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/processor.h
@@ -0,0 +1,360 @@
+#ifndef	_processor_user_
+#define	_processor_user_
+
+/* Module processor */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	processor_MSG_COUNT
+#define	processor_MSG_COUNT	6
+#endif	/* processor_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine processor_start */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_start
+(
+	processor_t processor
+);
+
+/* Routine processor_exit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_exit
+(
+	processor_t processor
+);
+
+/* Routine processor_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_info
+(
+	processor_t processor,
+	processor_flavor_t flavor,
+	host_t *host,
+	processor_info_t processor_info_out,
+	mach_msg_type_number_t *processor_info_outCnt
+);
+
+/* Routine processor_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_control
+(
+	processor_t processor,
+	processor_info_t processor_cmd,
+	mach_msg_type_number_t processor_cmdCnt
+);
+
+/* Routine processor_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_assign
+(
+	processor_t processor,
+	processor_set_t new_set,
+	boolean_t wait
+);
+
+/* Routine processor_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_get_assignment
+(
+	processor_t processor,
+	processor_set_name_t *assigned_set
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__processor_subsystem__defined
+#define __Request__processor_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_start_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_exit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_flavor_t flavor;
+		mach_msg_type_number_t processor_info_outCnt;
+	} __Request__processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_cmdCnt;
+		integer_t processor_cmd[20];
+	} __Request__processor_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t wait;
+	} __Request__processor_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__processor_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__processor_subsystem__defined
+#define __RequestUnion__processor_subsystem__defined
+union __RequestUnion__processor_subsystem {
+	__Request__processor_start_t Request_processor_start;
+	__Request__processor_exit_t Request_processor_exit;
+	__Request__processor_info_t Request_processor_info;
+	__Request__processor_control_t Request_processor_control;
+	__Request__processor_assign_t Request_processor_assign;
+	__Request__processor_get_assignment_t Request_processor_get_assignment;
+};
+#endif /* !__RequestUnion__processor_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__processor_subsystem__defined
+#define __Reply__processor_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_start_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_exit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_info_outCnt;
+		integer_t processor_info_out[20];
+	} __Reply__processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__processor_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__processor_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__processor_subsystem__defined
+#define __ReplyUnion__processor_subsystem__defined
+union __ReplyUnion__processor_subsystem {
+	__Reply__processor_start_t Reply_processor_start;
+	__Reply__processor_exit_t Reply_processor_exit;
+	__Reply__processor_info_t Reply_processor_info;
+	__Reply__processor_control_t Reply_processor_control;
+	__Reply__processor_assign_t Reply_processor_assign;
+	__Reply__processor_get_assignment_t Reply_processor_get_assignment;
+};
+#endif /* !__RequestUnion__processor_subsystem__defined */
+
+#ifndef subsystem_to_name_map_processor
+#define subsystem_to_name_map_processor \
+    { "processor_start", 3000 },\
+    { "processor_exit", 3001 },\
+    { "processor_info", 3002 },\
+    { "processor_control", 3003 },\
+    { "processor_assign", 3004 },\
+    { "processor_get_assignment", 3005 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _processor_user_ */
lib/libc/include/x86_64-macos-gnu/mach/processor_info.h
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	mach/processor_info.h
+ *	Author:	David L. Black
+ *	Date:	1988
+ *
+ *	Data structure definitions for processor_info, processor_set_info
+ */
+
+#ifndef _MACH_PROCESSOR_INFO_H_
+#define _MACH_PROCESSOR_INFO_H_
+
+#include <mach/message.h>
+#include <mach/machine.h>
+#include <mach/machine/processor_info.h>
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef integer_t       *processor_info_t;      /* varying array of int. */
+typedef integer_t       *processor_info_array_t;  /* varying array of int */
+
+#define PROCESSOR_INFO_MAX      (1024)  /* max array size */
+typedef integer_t       processor_info_data_t[PROCESSOR_INFO_MAX];
+
+
+typedef integer_t       *processor_set_info_t;  /* varying array of int. */
+
+#define PROCESSOR_SET_INFO_MAX  (1024)  /* max array size */
+typedef integer_t       processor_set_info_data_t[PROCESSOR_SET_INFO_MAX];
+
+/*
+ *	Currently defined information.
+ */
+typedef int     processor_flavor_t;
+#define PROCESSOR_BASIC_INFO    1               /* basic information */
+#define PROCESSOR_CPU_LOAD_INFO 2       /* cpu load information */
+#define PROCESSOR_PM_REGS_INFO  0x10000001      /* performance monitor register info */
+#define PROCESSOR_TEMPERATURE   0x10000002      /* Processor core temperature */
+
+struct processor_basic_info {
+	cpu_type_t      cpu_type;       /* type of cpu */
+	cpu_subtype_t   cpu_subtype;    /* subtype of cpu */
+	boolean_t       running;        /* is processor running */
+	int             slot_num;       /* slot number */
+	boolean_t       is_master;      /* is this the master processor */
+};
+
+typedef struct processor_basic_info     processor_basic_info_data_t;
+typedef struct processor_basic_info     *processor_basic_info_t;
+#define PROCESSOR_BASIC_INFO_COUNT      ((mach_msg_type_number_t) \
+	        (sizeof(processor_basic_info_data_t)/sizeof(natural_t)))
+
+struct processor_cpu_load_info {             /* number of ticks while running... */
+	unsigned int    cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
+};
+
+typedef struct processor_cpu_load_info  processor_cpu_load_info_data_t;
+typedef struct processor_cpu_load_info  *processor_cpu_load_info_t;
+#define PROCESSOR_CPU_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(processor_cpu_load_info_data_t)/sizeof(natural_t)))
+
+/*
+ *	Scaling factor for load_average, mach_factor.
+ */
+#define LOAD_SCALE      1000
+
+typedef int     processor_set_flavor_t;
+#define PROCESSOR_SET_BASIC_INFO        5       /* basic information */
+
+struct processor_set_basic_info {
+	int             processor_count;        /* How many processors */
+	int             default_policy;         /* When others not enabled */
+};
+
+typedef struct processor_set_basic_info processor_set_basic_info_data_t;
+typedef struct processor_set_basic_info *processor_set_basic_info_t;
+#define PROCESSOR_SET_BASIC_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(processor_set_basic_info_data_t)/sizeof(natural_t)))
+
+#define PROCESSOR_SET_LOAD_INFO         4       /* scheduling statistics */
+
+struct processor_set_load_info {
+	int             task_count;             /* How many tasks */
+	int             thread_count;           /* How many threads */
+	integer_t       load_average;           /* Scaled */
+	integer_t       mach_factor;            /* Scaled */
+};
+
+typedef struct processor_set_load_info processor_set_load_info_data_t;
+typedef struct processor_set_load_info *processor_set_load_info_t;
+#define PROCESSOR_SET_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(processor_set_load_info_data_t)/sizeof(natural_t)))
+
+
+#endif  /* _MACH_PROCESSOR_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/processor_set.h
@@ -0,0 +1,540 @@
+#ifndef	_processor_set_user_
+#define	_processor_set_user_
+
+/* Module processor_set */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	processor_set_MSG_COUNT
+#define	processor_set_MSG_COUNT	10
+#endif	/* processor_set_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine processor_set_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_statistics
+(
+	processor_set_name_t pset,
+	processor_set_flavor_t flavor,
+	processor_set_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+/* Routine processor_set_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_destroy
+(
+	processor_set_t set
+);
+
+/* Routine processor_set_max_priority */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_max_priority
+(
+	processor_set_t processor_set,
+	int max_priority,
+	boolean_t change_threads
+);
+
+/* Routine processor_set_policy_enable */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_enable
+(
+	processor_set_t processor_set,
+	int policy
+);
+
+/* Routine processor_set_policy_disable */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_disable
+(
+	processor_set_t processor_set,
+	int policy,
+	boolean_t change_threads
+);
+
+/* Routine processor_set_tasks */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_tasks
+(
+	processor_set_t processor_set,
+	task_array_t *task_list,
+	mach_msg_type_number_t *task_listCnt
+);
+
+/* Routine processor_set_threads */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_threads
+(
+	processor_set_t processor_set,
+	thread_act_array_t *thread_list,
+	mach_msg_type_number_t *thread_listCnt
+);
+
+/* Routine processor_set_policy_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_control
+(
+	processor_set_t pset,
+	processor_set_flavor_t flavor,
+	processor_set_info_t policy_info,
+	mach_msg_type_number_t policy_infoCnt,
+	boolean_t change
+);
+
+/* Routine processor_set_stack_usage */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_stack_usage
+(
+	processor_set_t pset,
+	unsigned *ltotal,
+	vm_size_t *space,
+	vm_size_t *resident,
+	vm_size_t *maxusage,
+	vm_offset_t *maxstack
+);
+
+/* Routine processor_set_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_info
+(
+	processor_set_name_t set_name,
+	int flavor,
+	host_t *host,
+	processor_set_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__processor_set_subsystem__defined
+#define __Request__processor_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_set_flavor_t flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__processor_set_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int max_priority;
+		boolean_t change_threads;
+	} __Request__processor_set_max_priority_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+	} __Request__processor_set_policy_enable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+		boolean_t change_threads;
+	} __Request__processor_set_policy_disable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_tasks_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_set_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[5];
+		boolean_t change;
+	} __Request__processor_set_policy_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_stack_usage_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__processor_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__processor_set_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__processor_set_subsystem__defined
+#define __RequestUnion__processor_set_subsystem__defined
+union __RequestUnion__processor_set_subsystem {
+	__Request__processor_set_statistics_t Request_processor_set_statistics;
+	__Request__processor_set_destroy_t Request_processor_set_destroy;
+	__Request__processor_set_max_priority_t Request_processor_set_max_priority;
+	__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
+	__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
+	__Request__processor_set_tasks_t Request_processor_set_tasks;
+	__Request__processor_set_threads_t Request_processor_set_threads;
+	__Request__processor_set_policy_control_t Request_processor_set_policy_control;
+	__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
+	__Request__processor_set_info_t Request_processor_set_info;
+};
+#endif /* !__RequestUnion__processor_set_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__processor_set_subsystem__defined
+#define __Reply__processor_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[5];
+	} __Reply__processor_set_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_max_priority_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_enable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_disable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t task_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t task_listCnt;
+	} __Reply__processor_set_tasks_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t thread_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t thread_listCnt;
+	} __Reply__processor_set_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned ltotal;
+		vm_size_t space;
+		vm_size_t resident;
+		vm_size_t maxusage;
+		vm_offset_t maxstack;
+	} __Reply__processor_set_stack_usage_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[5];
+	} __Reply__processor_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__processor_set_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__processor_set_subsystem__defined
+#define __ReplyUnion__processor_set_subsystem__defined
+union __ReplyUnion__processor_set_subsystem {
+	__Reply__processor_set_statistics_t Reply_processor_set_statistics;
+	__Reply__processor_set_destroy_t Reply_processor_set_destroy;
+	__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
+	__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
+	__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
+	__Reply__processor_set_tasks_t Reply_processor_set_tasks;
+	__Reply__processor_set_threads_t Reply_processor_set_threads;
+	__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
+	__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
+	__Reply__processor_set_info_t Reply_processor_set_info;
+};
+#endif /* !__RequestUnion__processor_set_subsystem__defined */
+
+#ifndef subsystem_to_name_map_processor_set
+#define subsystem_to_name_map_processor_set \
+    { "processor_set_statistics", 4000 },\
+    { "processor_set_destroy", 4001 },\
+    { "processor_set_max_priority", 4002 },\
+    { "processor_set_policy_enable", 4003 },\
+    { "processor_set_policy_disable", 4004 },\
+    { "processor_set_tasks", 4005 },\
+    { "processor_set_threads", 4006 },\
+    { "processor_set_policy_control", 4007 },\
+    { "processor_set_stack_usage", 4008 },\
+    { "processor_set_info", 4009 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _processor_set_user_ */
lib/libc/include/x86_64-macos-gnu/mach/rpc.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+/*
+ * Mach RPC Subsystem Interfaces
+ */
+
+#ifndef _MACH_RPC_H_
+#define _MACH_RPC_H_
+
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/port.h>
+#include <mach/vm_types.h>
+
+#include <mach/mig.h>
+#include <mach/mig_errors.h>
+#include <mach/machine/rpc.h>
+#include <mach/thread_status.h>
+
+/*
+ * These are the types for RPC-specific variants of the MIG routine
+ * descriptor and subsystem data types.
+ *
+ * THIS IS ONLY FOR COMPATIBILITY.  WE WILL NOT BE IMPLEMENTING THIS.
+ */
+
+/*
+ * Basic mach rpc types.
+ */
+typedef unsigned int    routine_arg_type;
+typedef unsigned int    routine_arg_offset;
+typedef unsigned int    routine_arg_size;
+
+/*
+ * Definitions for a signature's argument and routine descriptor's.
+ */
+struct rpc_routine_arg_descriptor {
+	routine_arg_type        type;      /* Port, Array, etc. */
+	routine_arg_size        size;      /* element size in bytes */
+	routine_arg_size        count;     /* number of elements */
+	routine_arg_offset      offset;    /* Offset in list of routine args */
+};
+typedef struct rpc_routine_arg_descriptor *rpc_routine_arg_descriptor_t;
+
+struct rpc_routine_descriptor {
+	mig_impl_routine_t      impl_routine;   /* Server work func pointer   */
+	mig_stub_routine_t      stub_routine;   /* Unmarshalling func pointer */
+	unsigned int            argc;           /* Number of argument words   */
+	unsigned int            descr_count;    /* Number of complex argument */
+	                                        /* descriptors                */
+	rpc_routine_arg_descriptor_t
+	    arg_descr;                          /* Pointer to beginning of    */
+	                                        /* the arg_descr array        */
+	unsigned int            max_reply_msg;  /* Max size for reply msg     */
+};
+typedef struct rpc_routine_descriptor *rpc_routine_descriptor_t;
+
+#define RPC_DESCR_SIZE(x) ((x)->descr_count * \
+	                        sizeof(struct rpc_routine_arg_descriptor))
+
+struct rpc_signature {
+	struct rpc_routine_descriptor rd;
+	struct rpc_routine_arg_descriptor rad[1];
+};
+
+#define RPC_SIGBUF_SIZE 8
+
+/*
+ *	A subsystem describes a set of server routines that can be invoked by
+ *	mach_rpc() on the ports that are registered with the subsystem.  For
+ *	each routine, the routine number is given, along with the
+ *	address of the implementation function in the server and a
+ *	description of the arguments of the routine (it's "signature").
+ *
+ *	This structure definition is only a template for what is really a
+ *	variable-length structure (generated by MIG for each subsystem).
+ *	The actual structures do not always have one entry in the routine
+ *	array, and also have a varying number of entries in the arg_descr
+ *	array.  Each routine has an array of zero or more arg descriptors
+ *	one for each complex arg.  These arrays are all catenated together
+ *	to form the arg_descr field of the subsystem struct.  The
+ *	arg_descr field of each routine entry points to a unique sub-sequence
+ *	within this catenated array.  The goal is to keep everything
+ *	contiguous.
+ */
+struct rpc_subsystem {
+	void            *reserved;      /* Reserved for system use */
+
+	mach_msg_id_t   start;          /* Min routine number */
+	mach_msg_id_t   end;            /* Max routine number + 1 */
+	unsigned int    maxsize;        /* Max mach_msg size */
+	vm_address_t    base_addr;      /* Address of this struct in user */
+
+	struct rpc_routine_descriptor   /* Array of routine descriptors */
+	    routine[1                   /* Actually, (start-end+1) */
+	];
+
+	struct rpc_routine_arg_descriptor
+	    arg_descriptor[1               /* Actually, the sum of the descr_ */
+	];                                 /* count fields for all routines   */
+};
+typedef struct rpc_subsystem  *rpc_subsystem_t;
+
+#define RPC_SUBSYSTEM_NULL      ((rpc_subsystem_t) 0)
+
+#endif  /* _MACH_RPC_H_ */
lib/libc/include/x86_64-macos-gnu/mach/semaphore.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_SEMAPHORE_H_
+#define _MACH_SEMAPHORE_H_
+
+#include <mach/port.h>
+#include <mach/mach_types.h>
+#include <mach/kern_return.h>
+#include <mach/sync_policy.h>
+
+/*
+ *	Forward Declarations
+ *
+ *	The semaphore creation and deallocation routines are
+ *	defined with the Mach task APIs in <mach/task.h>.
+ *
+ *      kern_return_t	semaphore_create(task_t task,
+ *                                       semaphore_t *new_semaphore,
+ *					 sync_policy_t policy,
+ *					 int value);
+ *
+ *	kern_return_t	semaphore_destroy(task_t task,
+ *					  semaphore_t semaphore);
+ */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+extern  kern_return_t   semaphore_signal(semaphore_t semaphore);
+extern  kern_return_t   semaphore_signal_all(semaphore_t semaphore);
+
+extern  kern_return_t   semaphore_wait(semaphore_t semaphore);
+
+
+extern  kern_return_t   semaphore_timedwait(semaphore_t semaphore,
+    mach_timespec_t wait_time);
+
+extern  kern_return_t   semaphore_timedwait_signal(semaphore_t wait_semaphore,
+    semaphore_t signal_semaphore,
+    mach_timespec_t wait_time);
+
+extern  kern_return_t   semaphore_wait_signal(semaphore_t wait_semaphore,
+    semaphore_t signal_semaphore);
+
+extern  kern_return_t   semaphore_signal_thread(semaphore_t semaphore,
+    thread_t thread);
+
+
+__END_DECLS
+
+
+#endif  /* _MACH_SEMAPHORE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/std_types.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	Mach standard external interface type definitions.
+ *
+ */
+
+#ifndef _MACH_STD_TYPES_H_
+#define _MACH_STD_TYPES_H_
+
+#include <stdint.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/port.h>
+#include <mach/vm_types.h>
+
+#include <sys/_types.h>
+#include <sys/_types/_uuid_t.h>
+
+#endif  /* _MACH_STD_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/sync_policy.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_SYNC_POLICY_H_
+#define _MACH_SYNC_POLICY_H_
+
+typedef int sync_policy_t;
+
+/*
+ *	These options define the wait ordering of the synchronizers
+ */
+#define SYNC_POLICY_FIFO                0x0
+#define SYNC_POLICY_FIXED_PRIORITY      0x1
+#define SYNC_POLICY_REVERSED            0x2
+#define SYNC_POLICY_ORDER_MASK          0x3
+#define SYNC_POLICY_LIFO                (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
+
+
+#define SYNC_POLICY_MAX                 0x7
+
+#endif  /* _MACH_SYNC_POLICY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/task.h
@@ -0,0 +1,2523 @@
+#ifndef	_task_user_
+#define	_task_user_
+
+/* Module task */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	task_MSG_COUNT
+#define	task_MSG_COUNT	55
+#endif	/* task_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach_debug/mach_debug_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine task_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_create
+(
+	task_t target_task,
+	ledger_array_t ledgers,
+	mach_msg_type_number_t ledgersCnt,
+	boolean_t inherit_memory,
+	task_t *child_task
+);
+
+/* Routine task_terminate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_terminate
+(
+	task_t target_task
+);
+
+/* Routine task_threads */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_threads
+(
+	task_inspect_t target_task,
+	thread_act_array_t *act_list,
+	mach_msg_type_number_t *act_listCnt
+);
+
+/* Routine mach_ports_register */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t mach_ports_register
+(
+	task_t target_task,
+	mach_port_array_t init_port_set,
+	mach_msg_type_number_t init_port_setCnt
+);
+
+/* Routine mach_ports_lookup */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t mach_ports_lookup
+(
+	task_t target_task,
+	mach_port_array_t *init_port_set,
+	mach_msg_type_number_t *init_port_setCnt
+);
+
+/* Routine task_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_info
+(
+	task_name_t target_task,
+	task_flavor_t flavor,
+	task_info_t task_info_out,
+	mach_msg_type_number_t *task_info_outCnt
+);
+
+/* Routine task_set_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_info
+(
+	task_t target_task,
+	task_flavor_t flavor,
+	task_info_t task_info_in,
+	mach_msg_type_number_t task_info_inCnt
+);
+
+/* Routine task_suspend */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_suspend
+(
+	task_t target_task
+);
+
+/* Routine task_resume */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_resume
+(
+	task_t target_task
+);
+
+/* Routine task_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_get_special_port
+(
+	task_inspect_t task,
+	int which_port,
+	mach_port_t *special_port
+);
+
+/* Routine task_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_special_port
+(
+	task_t task,
+	int which_port,
+	mach_port_t special_port
+);
+
+/* Routine thread_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_create
+(
+	task_t parent_task,
+	thread_act_t *child_act
+);
+
+/* Routine thread_create_running */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_create_running
+(
+	task_t parent_task,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt,
+	thread_act_t *child_act
+);
+
+/* Routine task_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_exception_ports
+(
+	task_t task,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine task_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_get_exception_ports
+(
+	task_inspect_t task,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine task_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_swap_exception_ports
+(
+	task_t task,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlerss,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine lock_set_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_set_create
+(
+	task_t task,
+	lock_set_t *new_lock_set,
+	int n_ulocks,
+	int policy
+);
+
+/* Routine lock_set_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_set_destroy
+(
+	task_t task,
+	lock_set_t lock_set
+);
+
+/* Routine semaphore_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t semaphore_create
+(
+	task_t task,
+	semaphore_t *semaphore,
+	int policy,
+	int value
+);
+
+/* Routine semaphore_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t semaphore_destroy
+(
+	task_t task,
+	semaphore_t semaphore
+);
+
+/* Routine task_policy_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_policy_set
+(
+	task_t task,
+	task_policy_flavor_t flavor,
+	task_policy_t policy_info,
+	mach_msg_type_number_t policy_infoCnt
+);
+
+/* Routine task_policy_get */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_policy_get
+(
+	task_t task,
+	task_policy_flavor_t flavor,
+	task_policy_t policy_info,
+	mach_msg_type_number_t *policy_infoCnt,
+	boolean_t *get_default
+);
+
+/* Routine task_sample */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_sample
+(
+	task_t task,
+	mach_port_t reply
+);
+
+/* Routine task_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_policy
+(
+	task_t task,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	boolean_t set_limit,
+	boolean_t change
+);
+
+/* Routine task_set_emulation */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_emulation
+(
+	task_t target_port,
+	vm_address_t routine_entry_pt,
+	int routine_number
+);
+
+/* Routine task_get_emulation_vector */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_emulation_vector
+(
+	task_t task,
+	int *vector_start,
+	emulation_vector_t *emulation_vector,
+	mach_msg_type_number_t *emulation_vectorCnt
+);
+
+/* Routine task_set_emulation_vector */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_emulation_vector
+(
+	task_t task,
+	int vector_start,
+	emulation_vector_t emulation_vector,
+	mach_msg_type_number_t emulation_vectorCnt
+);
+
+/* Routine task_set_ras_pc */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_ras_pc
+(
+	task_t target_task,
+	vm_address_t basepc,
+	vm_address_t boundspc
+);
+
+/* Routine task_zone_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_zone_info
+(
+	task_t target_task,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	task_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine task_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_assign
+(
+	task_t task,
+	processor_set_t new_set,
+	boolean_t assign_threads
+);
+
+/* Routine task_assign_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_assign_default
+(
+	task_t task,
+	boolean_t assign_threads
+);
+
+/* Routine task_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_assignment
+(
+	task_t task,
+	processor_set_name_t *assigned_set
+);
+
+/* Routine task_set_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_policy
+(
+	task_t task,
+	processor_set_t pset,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	policy_limit_t limit,
+	mach_msg_type_number_t limitCnt,
+	boolean_t change
+);
+
+/* Routine task_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_get_state
+(
+	task_t task,
+	thread_state_flavor_t flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine task_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_state
+(
+	task_t task,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine task_set_phys_footprint_limit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_phys_footprint_limit
+(
+	task_t task,
+	int new_limit,
+	int *old_limit
+);
+
+/* Routine task_suspend2 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_suspend2
+(
+	task_t target_task,
+	task_suspension_token_t *suspend_token
+);
+
+/* Routine task_resume2 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_resume2
+(
+	task_suspension_token_t suspend_token
+);
+
+/* Routine task_purgable_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_purgable_info
+(
+	task_t task,
+	task_purgable_info_t *stats
+);
+
+/* Routine task_get_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_get_mach_voucher
+(
+	task_t task,
+	mach_voucher_selector_t which,
+	ipc_voucher_t *voucher
+);
+
+/* Routine task_set_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_set_mach_voucher
+(
+	task_t task,
+	ipc_voucher_t voucher
+);
+
+/* Routine task_swap_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_swap_mach_voucher
+(
+	task_t task,
+	ipc_voucher_t new_voucher,
+	ipc_voucher_t *old_voucher
+);
+
+/* Routine task_generate_corpse */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_generate_corpse
+(
+	task_t task,
+	mach_port_t *corpse_task_port
+);
+
+/* Routine task_map_corpse_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_map_corpse_info
+(
+	task_t task,
+	task_t corspe_task,
+	vm_address_t *kcd_addr_begin,
+	uint32_t *kcd_size
+);
+
+/* Routine task_register_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_image_infos
+(
+	task_t task,
+	dyld_kernel_image_info_array_t dyld_images,
+	mach_msg_type_number_t dyld_imagesCnt
+);
+
+/* Routine task_unregister_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_unregister_dyld_image_infos
+(
+	task_t task,
+	dyld_kernel_image_info_array_t dyld_images,
+	mach_msg_type_number_t dyld_imagesCnt
+);
+
+/* Routine task_get_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_dyld_image_infos
+(
+	task_inspect_t task,
+	dyld_kernel_image_info_array_t *dyld_images,
+	mach_msg_type_number_t *dyld_imagesCnt
+);
+
+/* Routine task_register_dyld_shared_cache_image_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_shared_cache_image_info
+(
+	task_t task,
+	dyld_kernel_image_info_t dyld_cache_image,
+	boolean_t no_cache,
+	boolean_t private_cache
+);
+
+/* Routine task_register_dyld_set_dyld_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_set_dyld_state
+(
+	task_t task,
+	uint8_t dyld_state
+);
+
+/* Routine task_register_dyld_get_process_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_get_process_state
+(
+	task_t task,
+	dyld_kernel_process_info_t *dyld_process_state
+);
+
+/* Routine task_map_corpse_info_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_map_corpse_info_64
+(
+	task_t task,
+	task_t corspe_task,
+	mach_vm_address_t *kcd_addr_begin,
+	mach_vm_size_t *kcd_size
+);
+
+/* Routine task_inspect */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_inspect
+(
+	task_inspect_t task,
+	task_inspect_flavor_t flavor,
+	task_inspect_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+/* Routine task_get_exc_guard_behavior */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_exc_guard_behavior
+(
+	task_inspect_t task,
+	task_exc_guard_behavior_t *behavior
+);
+
+/* Routine task_set_exc_guard_behavior */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_exc_guard_behavior
+(
+	task_t task,
+	task_exc_guard_behavior_t behavior
+);
+
+/* Routine task_create_suid_cred */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_create_suid_cred
+(
+	task_t task,
+	suid_cred_path_t path,
+	suid_cred_uid_t uid,
+	suid_cred_t *delegation
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__task_subsystem__defined
+#define __Request__task_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t ledgers;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t ledgersCnt;
+		boolean_t inherit_memory;
+	} __Request__task_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t init_port_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t init_port_setCnt;
+	} __Request__mach_ports_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_ports_lookup_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_flavor_t flavor;
+		mach_msg_type_number_t task_info_outCnt;
+	} __Request__task_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_flavor_t flavor;
+		mach_msg_type_number_t task_info_inCnt;
+		integer_t task_info_in[87];
+	} __Request__task_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__task_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__task_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[614];
+	} __Request__thread_create_running_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__task_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__task_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__task_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int n_ulocks;
+		int policy;
+	} __Request__lock_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t lock_set;
+		/* end of the kernel processed data */
+	} __Request__lock_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+		int value;
+	} __Request__semaphore_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t semaphore;
+		/* end of the kernel processed data */
+	} __Request__semaphore_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+	} __Request__task_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		boolean_t get_default;
+	} __Request__task_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t reply;
+		/* end of the kernel processed data */
+	} __Request__task_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		boolean_t set_limit;
+		boolean_t change;
+	} __Request__task_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t routine_entry_pt;
+		int routine_number;
+	} __Request__task_set_emulation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t emulation_vector;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int vector_start;
+		mach_msg_type_number_t emulation_vectorCnt;
+	} __Request__task_set_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t basepc;
+		vm_address_t boundspc;
+	} __Request__task_set_ras_pc_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t assign_threads;
+	} __Request__task_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t assign_threads;
+	} __Request__task_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pset;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		mach_msg_type_number_t limitCnt;
+		integer_t limit[1];
+		boolean_t change;
+	} __Request__task_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__task_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[614];
+	} __Request__task_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int new_limit;
+	} __Request__task_set_phys_footprint_limit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_suspend2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_resume2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_purgable_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_voucher_selector_t which;
+	} __Request__task_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Request__task_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_voucher;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Request__task_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_generate_corpse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corspe_task;
+		/* end of the kernel processed data */
+	} __Request__task_map_corpse_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Request__task_register_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Request__task_unregister_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		dyld_kernel_image_info_t dyld_cache_image;
+		boolean_t no_cache;
+		boolean_t private_cache;
+	} __Request__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint8_t dyld_state;
+		char dyld_statePad[3];
+	} __Request__task_register_dyld_set_dyld_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_register_dyld_get_process_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corspe_task;
+		/* end of the kernel processed data */
+	} __Request__task_map_corpse_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_inspect_flavor_t flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__task_inspect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_exc_guard_behavior_t behavior;
+	} __Request__task_set_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_msg_type_number_t pathOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t pathCnt;
+		char path[1024];
+		suid_cred_uid_t uid;
+	} __Request__task_create_suid_cred_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__task_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__task_subsystem__defined
+#define __RequestUnion__task_subsystem__defined
+union __RequestUnion__task_subsystem {
+	__Request__task_create_t Request_task_create;
+	__Request__task_terminate_t Request_task_terminate;
+	__Request__task_threads_t Request_task_threads;
+	__Request__mach_ports_register_t Request_mach_ports_register;
+	__Request__mach_ports_lookup_t Request_mach_ports_lookup;
+	__Request__task_info_t Request_task_info;
+	__Request__task_set_info_t Request_task_set_info;
+	__Request__task_suspend_t Request_task_suspend;
+	__Request__task_resume_t Request_task_resume;
+	__Request__task_get_special_port_t Request_task_get_special_port;
+	__Request__task_set_special_port_t Request_task_set_special_port;
+	__Request__thread_create_t Request_thread_create;
+	__Request__thread_create_running_t Request_thread_create_running;
+	__Request__task_set_exception_ports_t Request_task_set_exception_ports;
+	__Request__task_get_exception_ports_t Request_task_get_exception_ports;
+	__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;
+	__Request__lock_set_create_t Request_lock_set_create;
+	__Request__lock_set_destroy_t Request_lock_set_destroy;
+	__Request__semaphore_create_t Request_semaphore_create;
+	__Request__semaphore_destroy_t Request_semaphore_destroy;
+	__Request__task_policy_set_t Request_task_policy_set;
+	__Request__task_policy_get_t Request_task_policy_get;
+	__Request__task_sample_t Request_task_sample;
+	__Request__task_policy_t Request_task_policy;
+	__Request__task_set_emulation_t Request_task_set_emulation;
+	__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;
+	__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;
+	__Request__task_set_ras_pc_t Request_task_set_ras_pc;
+	__Request__task_zone_info_t Request_task_zone_info;
+	__Request__task_assign_t Request_task_assign;
+	__Request__task_assign_default_t Request_task_assign_default;
+	__Request__task_get_assignment_t Request_task_get_assignment;
+	__Request__task_set_policy_t Request_task_set_policy;
+	__Request__task_get_state_t Request_task_get_state;
+	__Request__task_set_state_t Request_task_set_state;
+	__Request__task_set_phys_footprint_limit_t Request_task_set_phys_footprint_limit;
+	__Request__task_suspend2_t Request_task_suspend2;
+	__Request__task_resume2_t Request_task_resume2;
+	__Request__task_purgable_info_t Request_task_purgable_info;
+	__Request__task_get_mach_voucher_t Request_task_get_mach_voucher;
+	__Request__task_set_mach_voucher_t Request_task_set_mach_voucher;
+	__Request__task_swap_mach_voucher_t Request_task_swap_mach_voucher;
+	__Request__task_generate_corpse_t Request_task_generate_corpse;
+	__Request__task_map_corpse_info_t Request_task_map_corpse_info;
+	__Request__task_register_dyld_image_infos_t Request_task_register_dyld_image_infos;
+	__Request__task_unregister_dyld_image_infos_t Request_task_unregister_dyld_image_infos;
+	__Request__task_get_dyld_image_infos_t Request_task_get_dyld_image_infos;
+	__Request__task_register_dyld_shared_cache_image_info_t Request_task_register_dyld_shared_cache_image_info;
+	__Request__task_register_dyld_set_dyld_state_t Request_task_register_dyld_set_dyld_state;
+	__Request__task_register_dyld_get_process_state_t Request_task_register_dyld_get_process_state;
+	__Request__task_map_corpse_info_64_t Request_task_map_corpse_info_64;
+	__Request__task_inspect_t Request_task_inspect;
+	__Request__task_get_exc_guard_behavior_t Request_task_get_exc_guard_behavior;
+	__Request__task_set_exc_guard_behavior_t Request_task_set_exc_guard_behavior;
+	__Request__task_create_suid_cred_t Request_task_create_suid_cred;
+};
+#endif /* !__RequestUnion__task_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__task_subsystem__defined
+#define __Reply__task_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_task;
+		/* end of the kernel processed data */
+	} __Reply__task_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t act_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t act_listCnt;
+	} __Reply__task_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_ports_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t init_port_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t init_port_setCnt;
+	} __Reply__mach_ports_lookup_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t task_info_outCnt;
+		integer_t task_info_out[87];
+	} __Reply__task_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+	} __Reply__task_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_act;
+		/* end of the kernel processed data */
+	} __Reply__thread_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_act;
+		/* end of the kernel processed data */
+	} __Reply__thread_create_running_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__task_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlerss[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__task_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_lock_set;
+		/* end of the kernel processed data */
+	} __Reply__lock_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t semaphore;
+		/* end of the kernel processed data */
+	} __Reply__semaphore_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__semaphore_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+		boolean_t get_default;
+	} __Reply__task_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_emulation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t emulation_vector;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int vector_start;
+		mach_msg_type_number_t emulation_vectorCnt;
+	} __Reply__task_get_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_ras_pc_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__task_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__task_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[614];
+	} __Reply__task_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		int old_limit;
+	} __Reply__task_set_phys_footprint_limit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t suspend_token;
+		/* end of the kernel processed data */
+	} __Reply__task_suspend2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_resume2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		task_purgable_info_t stats;
+	} __Reply__task_purgable_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__task_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Reply__task_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corpse_task_port;
+		/* end of the kernel processed data */
+	} __Reply__task_generate_corpse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t kcd_addr_begin;
+		uint32_t kcd_size;
+	} __Reply__task_map_corpse_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_unregister_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Reply__task_get_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_set_dyld_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		dyld_kernel_process_info_t dyld_process_state;
+	} __Reply__task_register_dyld_get_process_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_vm_address_t kcd_addr_begin;
+		mach_vm_size_t kcd_size;
+	} __Reply__task_map_corpse_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[4];
+	} __Reply__task_inspect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		task_exc_guard_behavior_t behavior;
+	} __Reply__task_get_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t delegation;
+		/* end of the kernel processed data */
+	} __Reply__task_create_suid_cred_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__task_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__task_subsystem__defined
+#define __ReplyUnion__task_subsystem__defined
+union __ReplyUnion__task_subsystem {
+	__Reply__task_create_t Reply_task_create;
+	__Reply__task_terminate_t Reply_task_terminate;
+	__Reply__task_threads_t Reply_task_threads;
+	__Reply__mach_ports_register_t Reply_mach_ports_register;
+	__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;
+	__Reply__task_info_t Reply_task_info;
+	__Reply__task_set_info_t Reply_task_set_info;
+	__Reply__task_suspend_t Reply_task_suspend;
+	__Reply__task_resume_t Reply_task_resume;
+	__Reply__task_get_special_port_t Reply_task_get_special_port;
+	__Reply__task_set_special_port_t Reply_task_set_special_port;
+	__Reply__thread_create_t Reply_thread_create;
+	__Reply__thread_create_running_t Reply_thread_create_running;
+	__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;
+	__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;
+	__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;
+	__Reply__lock_set_create_t Reply_lock_set_create;
+	__Reply__lock_set_destroy_t Reply_lock_set_destroy;
+	__Reply__semaphore_create_t Reply_semaphore_create;
+	__Reply__semaphore_destroy_t Reply_semaphore_destroy;
+	__Reply__task_policy_set_t Reply_task_policy_set;
+	__Reply__task_policy_get_t Reply_task_policy_get;
+	__Reply__task_sample_t Reply_task_sample;
+	__Reply__task_policy_t Reply_task_policy;
+	__Reply__task_set_emulation_t Reply_task_set_emulation;
+	__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;
+	__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;
+	__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;
+	__Reply__task_zone_info_t Reply_task_zone_info;
+	__Reply__task_assign_t Reply_task_assign;
+	__Reply__task_assign_default_t Reply_task_assign_default;
+	__Reply__task_get_assignment_t Reply_task_get_assignment;
+	__Reply__task_set_policy_t Reply_task_set_policy;
+	__Reply__task_get_state_t Reply_task_get_state;
+	__Reply__task_set_state_t Reply_task_set_state;
+	__Reply__task_set_phys_footprint_limit_t Reply_task_set_phys_footprint_limit;
+	__Reply__task_suspend2_t Reply_task_suspend2;
+	__Reply__task_resume2_t Reply_task_resume2;
+	__Reply__task_purgable_info_t Reply_task_purgable_info;
+	__Reply__task_get_mach_voucher_t Reply_task_get_mach_voucher;
+	__Reply__task_set_mach_voucher_t Reply_task_set_mach_voucher;
+	__Reply__task_swap_mach_voucher_t Reply_task_swap_mach_voucher;
+	__Reply__task_generate_corpse_t Reply_task_generate_corpse;
+	__Reply__task_map_corpse_info_t Reply_task_map_corpse_info;
+	__Reply__task_register_dyld_image_infos_t Reply_task_register_dyld_image_infos;
+	__Reply__task_unregister_dyld_image_infos_t Reply_task_unregister_dyld_image_infos;
+	__Reply__task_get_dyld_image_infos_t Reply_task_get_dyld_image_infos;
+	__Reply__task_register_dyld_shared_cache_image_info_t Reply_task_register_dyld_shared_cache_image_info;
+	__Reply__task_register_dyld_set_dyld_state_t Reply_task_register_dyld_set_dyld_state;
+	__Reply__task_register_dyld_get_process_state_t Reply_task_register_dyld_get_process_state;
+	__Reply__task_map_corpse_info_64_t Reply_task_map_corpse_info_64;
+	__Reply__task_inspect_t Reply_task_inspect;
+	__Reply__task_get_exc_guard_behavior_t Reply_task_get_exc_guard_behavior;
+	__Reply__task_set_exc_guard_behavior_t Reply_task_set_exc_guard_behavior;
+	__Reply__task_create_suid_cred_t Reply_task_create_suid_cred;
+};
+#endif /* !__RequestUnion__task_subsystem__defined */
+
+#ifndef subsystem_to_name_map_task
+#define subsystem_to_name_map_task \
+    { "task_create", 3400 },\
+    { "task_terminate", 3401 },\
+    { "task_threads", 3402 },\
+    { "mach_ports_register", 3403 },\
+    { "mach_ports_lookup", 3404 },\
+    { "task_info", 3405 },\
+    { "task_set_info", 3406 },\
+    { "task_suspend", 3407 },\
+    { "task_resume", 3408 },\
+    { "task_get_special_port", 3409 },\
+    { "task_set_special_port", 3410 },\
+    { "thread_create", 3411 },\
+    { "thread_create_running", 3412 },\
+    { "task_set_exception_ports", 3413 },\
+    { "task_get_exception_ports", 3414 },\
+    { "task_swap_exception_ports", 3415 },\
+    { "lock_set_create", 3416 },\
+    { "lock_set_destroy", 3417 },\
+    { "semaphore_create", 3418 },\
+    { "semaphore_destroy", 3419 },\
+    { "task_policy_set", 3420 },\
+    { "task_policy_get", 3421 },\
+    { "task_sample", 3422 },\
+    { "task_policy", 3423 },\
+    { "task_set_emulation", 3424 },\
+    { "task_get_emulation_vector", 3425 },\
+    { "task_set_emulation_vector", 3426 },\
+    { "task_set_ras_pc", 3427 },\
+    { "task_zone_info", 3428 },\
+    { "task_assign", 3429 },\
+    { "task_assign_default", 3430 },\
+    { "task_get_assignment", 3431 },\
+    { "task_set_policy", 3432 },\
+    { "task_get_state", 3433 },\
+    { "task_set_state", 3434 },\
+    { "task_set_phys_footprint_limit", 3435 },\
+    { "task_suspend2", 3436 },\
+    { "task_resume2", 3437 },\
+    { "task_purgable_info", 3438 },\
+    { "task_get_mach_voucher", 3439 },\
+    { "task_set_mach_voucher", 3440 },\
+    { "task_swap_mach_voucher", 3441 },\
+    { "task_generate_corpse", 3442 },\
+    { "task_map_corpse_info", 3443 },\
+    { "task_register_dyld_image_infos", 3444 },\
+    { "task_unregister_dyld_image_infos", 3445 },\
+    { "task_get_dyld_image_infos", 3446 },\
+    { "task_register_dyld_shared_cache_image_info", 3447 },\
+    { "task_register_dyld_set_dyld_state", 3448 },\
+    { "task_register_dyld_get_process_state", 3449 },\
+    { "task_map_corpse_info_64", 3450 },\
+    { "task_inspect", 3451 },\
+    { "task_get_exc_guard_behavior", 3452 },\
+    { "task_set_exc_guard_behavior", 3453 },\
+    { "task_create_suid_cred", 3454 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _task_user_ */
lib/libc/include/x86_64-macos-gnu/mach/task_info.h
@@ -0,0 +1,478 @@
+/*
+ * Copyright (c) 2000-2007, 2015 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ *	Machine-independent task information structures and definitions.
+ *
+ *	The definitions in this file are exported to the user.  The kernel
+ *	will translate its internal data structures to these structures
+ *	as appropriate.
+ *
+ */
+
+#ifndef _MACH_TASK_INFO_H_
+#define _MACH_TASK_INFO_H_
+
+#include <mach/message.h>
+#include <mach/machine/vm_types.h>
+#include <mach/time_value.h>
+#include <mach/policy.h>
+#include <mach/vm_statistics.h> /* for vm_extmod_statistics_data_t */
+#include <Availability.h>
+
+#include <sys/cdefs.h>
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef natural_t       task_flavor_t;
+typedef integer_t       *task_info_t;           /* varying array of int */
+
+/* Deprecated, use per structure _data_t's instead */
+#define TASK_INFO_MAX   (1024)          /* maximum array size */
+typedef integer_t       task_info_data_t[TASK_INFO_MAX];
+
+/*
+ *	Currently defined information structures.
+ */
+
+#pragma pack(push, 4)
+
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+#define TASK_BASIC_INFO_32      4       /* basic information */
+#define TASK_BASIC2_INFO_32      6
+
+struct task_basic_info_32 {
+	integer_t       suspend_count;  /* suspend count for task */
+	natural_t       virtual_size;   /* virtual memory size (bytes) */
+	natural_t       resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+typedef struct task_basic_info_32       task_basic_info_32_data_t;
+typedef struct task_basic_info_32       *task_basic_info_32_t;
+#define TASK_BASIC_INFO_32_COUNT   \
+	        (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
+
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+struct task_basic_info_64 {
+	integer_t       suspend_count;  /* suspend count for task */
+	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+typedef struct task_basic_info_64       task_basic_info_64_data_t;
+typedef struct task_basic_info_64       *task_basic_info_64_t;
+
+#define TASK_BASIC_INFO_64      5       /* 64-bit capable basic info */
+#define TASK_BASIC_INFO_64_COUNT   \
+	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
+
+
+/* localized structure - cannot be safely passed between tasks of differing sizes */
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+struct task_basic_info {
+	integer_t       suspend_count;  /* suspend count for task */
+	vm_size_t       virtual_size;   /* virtual memory size (bytes) */
+	vm_size_t       resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+
+typedef struct task_basic_info          task_basic_info_data_t;
+typedef struct task_basic_info          *task_basic_info_t;
+#define TASK_BASIC_INFO_COUNT   \
+	        (sizeof(task_basic_info_data_t) / sizeof(natural_t))
+#if !defined(__LP64__)
+#define TASK_BASIC_INFO TASK_BASIC_INFO_32
+#else
+#define TASK_BASIC_INFO TASK_BASIC_INFO_64
+#endif
+
+
+
+#define TASK_EVENTS_INFO        2       /* various event counts */
+
+struct task_events_info {
+	integer_t       faults;         /* number of page faults */
+	integer_t       pageins;        /* number of actual pageins */
+	integer_t       cow_faults;     /* number of copy-on-write faults */
+	integer_t       messages_sent;  /* number of messages sent */
+	integer_t       messages_received; /* number of messages received */
+	integer_t       syscalls_mach;  /* number of mach system calls */
+	integer_t       syscalls_unix;  /* number of unix system calls */
+	integer_t       csw;            /* number of context switches */
+};
+typedef struct task_events_info         task_events_info_data_t;
+typedef struct task_events_info         *task_events_info_t;
+#define TASK_EVENTS_INFO_COUNT          ((mach_msg_type_number_t) \
+	        (sizeof(task_events_info_data_t) / sizeof(natural_t)))
+
+#define TASK_THREAD_TIMES_INFO  3       /* total times for live threads -
+	                                 *  only accurate if suspended */
+
+struct task_thread_times_info {
+	time_value_t    user_time;      /* total user run time for
+	                                 *  live threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  live threads */
+};
+
+typedef struct task_thread_times_info   task_thread_times_info_data_t;
+typedef struct task_thread_times_info   *task_thread_times_info_t;
+#define TASK_THREAD_TIMES_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
+
+#define TASK_ABSOLUTETIME_INFO  1
+
+struct task_absolutetime_info {
+	uint64_t                total_user;
+	uint64_t                total_system;
+	uint64_t                threads_user;   /* existing threads only */
+	uint64_t                threads_system;
+};
+
+typedef struct task_absolutetime_info   task_absolutetime_info_data_t;
+typedef struct task_absolutetime_info   *task_absolutetime_info_t;
+#define TASK_ABSOLUTETIME_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
+
+#define TASK_KERNELMEMORY_INFO  7
+
+struct task_kernelmemory_info {
+	uint64_t                total_palloc;   /* private kernel mem alloc'ed */
+	uint64_t                total_pfree;    /* private kernel mem freed */
+	uint64_t                total_salloc;   /* shared kernel mem alloc'ed */
+	uint64_t                total_sfree;    /* shared kernel mem freed */
+};
+
+typedef struct task_kernelmemory_info   task_kernelmemory_info_data_t;
+typedef struct task_kernelmemory_info   *task_kernelmemory_info_t;
+#define TASK_KERNELMEMORY_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
+
+#define TASK_SECURITY_TOKEN             13
+#define TASK_SECURITY_TOKEN_COUNT       ((mach_msg_type_number_t) \
+	        (sizeof(security_token_t) / sizeof(natural_t)))
+
+#define TASK_AUDIT_TOKEN                15
+#define TASK_AUDIT_TOKEN_COUNT  \
+	        (sizeof(audit_token_t) / sizeof(natural_t))
+
+
+#define TASK_AFFINITY_TAG_INFO          16      /* This is experimental. */
+
+struct task_affinity_tag_info {
+	integer_t               set_count;
+	integer_t               min;
+	integer_t               max;
+	integer_t               task_count;
+};
+typedef struct task_affinity_tag_info   task_affinity_tag_info_data_t;
+typedef struct task_affinity_tag_info   *task_affinity_tag_info_t;
+#define TASK_AFFINITY_TAG_INFO_COUNT    \
+	        (sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
+
+#define TASK_DYLD_INFO                  17
+
+struct task_dyld_info {
+	mach_vm_address_t       all_image_info_addr;
+	mach_vm_size_t          all_image_info_size;
+	integer_t               all_image_info_format;
+};
+typedef struct task_dyld_info   task_dyld_info_data_t;
+typedef struct task_dyld_info   *task_dyld_info_t;
+#define TASK_DYLD_INFO_COUNT    \
+	        (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
+#define TASK_DYLD_ALL_IMAGE_INFO_32     0       /* format value */
+#define TASK_DYLD_ALL_IMAGE_INFO_64     1       /* format value */
+
+
+#define TASK_EXTMOD_INFO                        19
+
+struct task_extmod_info {
+	unsigned char   task_uuid[16];
+	vm_extmod_statistics_data_t             extmod_statistics;
+};
+typedef struct task_extmod_info task_extmod_info_data_t;
+typedef struct task_extmod_info *task_extmod_info_t;
+#define TASK_EXTMOD_INFO_COUNT  \
+	        (sizeof(task_extmod_info_data_t) / sizeof(natural_t))
+
+
+#define MACH_TASK_BASIC_INFO     20         /* always 64-bit basic info */
+struct mach_task_basic_info {
+	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
+	mach_vm_size_t  resident_size_max;  /* maximum resident memory size (bytes) */
+	time_value_t    user_time;          /* total user run time for
+	                                     *  terminated threads */
+	time_value_t    system_time;        /* total system run time for
+	                                     *  terminated threads */
+	policy_t        policy;             /* default policy for new threads */
+	integer_t       suspend_count;      /* suspend count for task */
+};
+typedef struct mach_task_basic_info       mach_task_basic_info_data_t;
+typedef struct mach_task_basic_info       *mach_task_basic_info_t;
+#define MACH_TASK_BASIC_INFO_COUNT   \
+	        (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
+
+
+#define TASK_POWER_INFO 21
+
+struct task_power_info {
+	uint64_t                total_user;
+	uint64_t                total_system;
+	uint64_t                task_interrupt_wakeups;
+	uint64_t                task_platform_idle_wakeups;
+	uint64_t                task_timer_wakeups_bin_1;
+	uint64_t                task_timer_wakeups_bin_2;
+};
+
+typedef struct task_power_info  task_power_info_data_t;
+typedef struct task_power_info  *task_power_info_t;
+#define TASK_POWER_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof (task_power_info_data_t) / sizeof (natural_t)))
+
+
+
+#define TASK_VM_INFO            22
+#define TASK_VM_INFO_PURGEABLE  23
+struct task_vm_info {
+	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
+	integer_t       region_count;       /* number of memory regions */
+	integer_t       page_size;
+	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
+	mach_vm_size_t  resident_size_peak; /* peak resident size (bytes) */
+
+	mach_vm_size_t  device;
+	mach_vm_size_t  device_peak;
+	mach_vm_size_t  internal;
+	mach_vm_size_t  internal_peak;
+	mach_vm_size_t  external;
+	mach_vm_size_t  external_peak;
+	mach_vm_size_t  reusable;
+	mach_vm_size_t  reusable_peak;
+	mach_vm_size_t  purgeable_volatile_pmap;
+	mach_vm_size_t  purgeable_volatile_resident;
+	mach_vm_size_t  purgeable_volatile_virtual;
+	mach_vm_size_t  compressed;
+	mach_vm_size_t  compressed_peak;
+	mach_vm_size_t  compressed_lifetime;
+
+	/* added for rev1 */
+	mach_vm_size_t  phys_footprint;
+
+	/* added for rev2 */
+	mach_vm_address_t       min_address;
+	mach_vm_address_t       max_address;
+
+	/* added for rev3 */
+	int64_t ledger_phys_footprint_peak;
+	int64_t ledger_purgeable_nonvolatile;
+	int64_t ledger_purgeable_novolatile_compressed;
+	int64_t ledger_purgeable_volatile;
+	int64_t ledger_purgeable_volatile_compressed;
+	int64_t ledger_tag_network_nonvolatile;
+	int64_t ledger_tag_network_nonvolatile_compressed;
+	int64_t ledger_tag_network_volatile;
+	int64_t ledger_tag_network_volatile_compressed;
+	int64_t ledger_tag_media_footprint;
+	int64_t ledger_tag_media_footprint_compressed;
+	int64_t ledger_tag_media_nofootprint;
+	int64_t ledger_tag_media_nofootprint_compressed;
+	int64_t ledger_tag_graphics_footprint;
+	int64_t ledger_tag_graphics_footprint_compressed;
+	int64_t ledger_tag_graphics_nofootprint;
+	int64_t ledger_tag_graphics_nofootprint_compressed;
+	int64_t ledger_tag_neural_footprint;
+	int64_t ledger_tag_neural_footprint_compressed;
+	int64_t ledger_tag_neural_nofootprint;
+	int64_t ledger_tag_neural_nofootprint_compressed;
+
+	/* added for rev4 */
+	uint64_t limit_bytes_remaining;
+
+	/* added for rev5 */
+	integer_t decompressions;
+};
+typedef struct task_vm_info     task_vm_info_data_t;
+typedef struct task_vm_info     *task_vm_info_t;
+#define TASK_VM_INFO_COUNT      ((mach_msg_type_number_t) \
+	        (sizeof (task_vm_info_data_t) / sizeof (natural_t)))
+#define TASK_VM_INFO_REV5_COUNT TASK_VM_INFO_COUNT
+#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
+#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
+#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
+#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
+#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
+
+typedef struct vm_purgeable_info        task_purgable_info_t;
+
+
+#define TASK_TRACE_MEMORY_INFO  24
+struct task_trace_memory_info {
+	uint64_t  user_memory_address;  /* address of start of trace memory buffer */
+	uint64_t  buffer_size;                  /* size of buffer in bytes */
+	uint64_t  mailbox_array_size;   /* size of mailbox area in bytes */
+};
+typedef struct task_trace_memory_info task_trace_memory_info_data_t;
+typedef struct task_trace_memory_info * task_trace_memory_info_t;
+#define TASK_TRACE_MEMORY_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
+
+#define TASK_WAIT_STATE_INFO  25    /* deprecated. */
+struct task_wait_state_info {
+	uint64_t  total_wait_state_time;        /* Time that all threads past and present have been in a wait state */
+	uint64_t  total_wait_sfi_state_time;    /* Time that threads have been in SFI wait (should be a subset of total wait state time */
+	uint32_t  _reserved[4];
+};
+typedef struct task_wait_state_info task_wait_state_info_data_t;
+typedef struct task_wait_state_info * task_wait_state_info_t;
+#define TASK_WAIT_STATE_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
+
+#define TASK_POWER_INFO_V2      26
+
+typedef struct {
+	uint64_t                task_gpu_utilisation;
+	uint64_t                task_gpu_stat_reserved0;
+	uint64_t                task_gpu_stat_reserved1;
+	uint64_t                task_gpu_stat_reserved2;
+} gpu_energy_data;
+
+typedef gpu_energy_data *gpu_energy_data_t;
+struct task_power_info_v2 {
+	task_power_info_data_t  cpu_energy;
+	gpu_energy_data gpu_energy;
+	uint64_t                task_ptime;
+	uint64_t                task_pset_switches;
+};
+
+typedef struct task_power_info_v2       task_power_info_v2_data_t;
+typedef struct task_power_info_v2       *task_power_info_v2_t;
+#define TASK_POWER_INFO_V2_COUNT_OLD    \
+	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
+#define TASK_POWER_INFO_V2_COUNT        \
+	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
+
+#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
+
+
+#define TASK_FLAGS_INFO  28                     /* return t_flags field */
+struct task_flags_info {
+	uint32_t        flags;                          /* task flags */
+};
+typedef struct task_flags_info task_flags_info_data_t;
+typedef struct task_flags_info * task_flags_info_t;
+#define TASK_FLAGS_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_flags_info_data_t) / sizeof (natural_t)))
+
+#define TF_LP64         0x00000001 /* task has 64-bit addressing */
+#define TF_64B_DATA     0x00000002 /* task has 64-bit data registers */
+
+#define TASK_DEBUG_INFO_INTERNAL    29 /* Used for kernel internal development tests. */
+
+
+/*
+ * Type to control EXC_GUARD delivery options for a task
+ * via task_get/set_exc_guard_behavior interface(s).
+ */
+typedef uint32_t task_exc_guard_behavior_t;
+
+/* EXC_GUARD optional delivery settings on a per-task basis */
+#define TASK_EXC_GUARD_VM_DELIVER            0x01 /* Deliver virtual memory EXC_GUARD exceptions */
+#define TASK_EXC_GUARD_VM_ONCE               0x02 /* Deliver them only once */
+#define TASK_EXC_GUARD_VM_CORPSE             0x04 /* Deliver them via a forked corpse */
+#define TASK_EXC_GUARD_VM_FATAL              0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
+#define TASK_EXC_GUARD_VM_ALL                0x0f
+
+#define TASK_EXC_GUARD_MP_DELIVER            0x10 /* Deliver mach port EXC_GUARD exceptions */
+#define TASK_EXC_GUARD_MP_ONCE               0x20 /* Deliver them only once */
+#define TASK_EXC_GUARD_MP_CORPSE             0x40 /* Deliver them via a forked corpse */
+#define TASK_EXC_GUARD_MP_FATAL              0x80 /* mach port EXC_GUARD delivery is fatal */
+#define TASK_EXC_GUARD_MP_ALL                0xf0
+
+#define TASK_EXC_GUARD_ALL                   0xff /* All optional deliver settings */
+
+
+/*
+ * Obsolete interfaces.
+ */
+
+#define TASK_SCHED_TIMESHARE_INFO       10
+#define TASK_SCHED_RR_INFO              11
+#define TASK_SCHED_FIFO_INFO            12
+
+#define TASK_SCHED_INFO                 14
+
+#pragma pack(pop)
+
+#endif  /* _MACH_TASK_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/task_inspect.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2017 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef MACH_TASK_INSPECT_H
+#define MACH_TASK_INSPECT_H
+
+/*
+ * XXX These interfaces are still in development -- they are subject to change
+ * without notice.
+ */
+
+typedef natural_t task_inspect_flavor_t;
+
+enum task_inspect_flavor {
+	TASK_INSPECT_BASIC_COUNTS = 1,
+};
+
+struct task_inspect_basic_counts {
+	uint64_t instructions;
+	uint64_t cycles;
+};
+#define TASK_INSPECT_BASIC_COUNTS_COUNT \
+	(sizeof(struct task_inspect_basic_counts) / sizeof(natural_t))
+typedef struct task_inspect_basic_counts task_inspect_basic_counts_data_t;
+typedef struct task_inspect_basic_counts *task_inspect_basic_counts_t;
+
+typedef integer_t *task_inspect_info_t;
+
+#endif /* !defined(MACH_TASK_INSPECT_H) */
lib/libc/include/x86_64-macos-gnu/mach/task_policy.h
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_TASK_POLICY_H_
+#define _MACH_TASK_POLICY_H_
+
+#include <mach/mach_types.h>
+
+/*
+ * These are the calls for accessing the policy parameters
+ * of a particular task.
+ *
+ * The extra 'get_default' parameter to the second call is
+ * IN/OUT as follows:
+ * 1) if asserted on the way in it indicates that the default
+ * values should be returned, not the ones currently set, in
+ * this case 'get_default' will always be asserted on return;
+ * 2) if unasserted on the way in, the current settings are
+ * desired and if still unasserted on return, then the info
+ * returned reflects the current settings, otherwise if
+ * 'get_default' returns asserted, it means that there are no
+ * current settings due to other parameters taking precedence,
+ * and the default ones are being returned instead.
+ */
+
+typedef natural_t       task_policy_flavor_t;
+typedef integer_t       *task_policy_t;
+
+/*
+ *  kern_return_t	task_policy_set(
+ *                                       task_t					task,
+ *                                       task_policy_flavor_t	flavor,
+ *                                       task_policy_t			policy_info,
+ *                                       mach_msg_type_number_t	count);
+ *
+ *  kern_return_t	task_policy_get(
+ *                                       task_t					task,
+ *                                       task_policy_flavor_t	flavor,
+ *                                       task_policy_t			policy_info,
+ *                                       mach_msg_type_number_t	*count,
+ *                                       boolean_t				*get_default);
+ */
+
+/*
+ * Defined flavors.
+ */
+/*
+ * TASK_CATEGORY_POLICY:
+ *
+ * This provides information to the kernel about the role
+ * of the task in the system.
+ *
+ * Parameters:
+ *
+ * role: Enumerated as follows:
+ *
+ * TASK_UNSPECIFIED is the default, since the role is not
+ * inherited from the parent.
+ *
+ * TASK_FOREGROUND_APPLICATION should be assigned when the
+ * task is a normal UI application in the foreground from
+ * the HI point of view.
+ * **N.B. There may be more than one of these at a given time.
+ *
+ * TASK_BACKGROUND_APPLICATION should be assigned when the
+ * task is a normal UI application in the background from
+ * the HI point of view.
+ *
+ * TASK_CONTROL_APPLICATION should be assigned to the unique
+ * UI application which implements the pop-up application dialog.
+ * There can only be one task at a time with this designation,
+ * which is assigned FCFS.
+ *
+ * TASK_GRAPHICS_SERVER should be assigned to the graphics
+ * management (window) server.  There can only be one task at
+ * a time with this designation, which is assigned FCFS.
+ */
+
+#define TASK_CATEGORY_POLICY            1
+
+#define TASK_SUPPRESSION_POLICY         3
+#define TASK_POLICY_STATE               4
+#define TASK_BASE_QOS_POLICY            8
+#define TASK_OVERRIDE_QOS_POLICY        9
+#define TASK_BASE_LATENCY_QOS_POLICY    10
+#define TASK_BASE_THROUGHPUT_QOS_POLICY 11
+
+
+enum task_role {
+	TASK_RENICED                    = -1,
+	TASK_UNSPECIFIED                = 0,
+	TASK_FOREGROUND_APPLICATION     = 1,
+	TASK_BACKGROUND_APPLICATION     = 2,
+	TASK_CONTROL_APPLICATION        = 3,
+	TASK_GRAPHICS_SERVER            = 4,
+	TASK_THROTTLE_APPLICATION       = 5,
+	TASK_NONUI_APPLICATION          = 6,
+	TASK_DEFAULT_APPLICATION        = 7,
+	TASK_DARWINBG_APPLICATION       = 8,
+};
+
+typedef integer_t       task_role_t;
+
+struct task_category_policy {
+	task_role_t             role;
+};
+
+typedef struct task_category_policy             task_category_policy_data_t;
+typedef struct task_category_policy             *task_category_policy_t;
+
+#define TASK_CATEGORY_POLICY_COUNT      ((mach_msg_type_number_t) \
+	(sizeof (task_category_policy_data_t) / sizeof (integer_t)))
+
+
+enum task_latency_qos {
+	LATENCY_QOS_TIER_UNSPECIFIED = 0x0,
+	LATENCY_QOS_TIER_0 = ((0xFF << 16) | 1),
+	LATENCY_QOS_TIER_1 = ((0xFF << 16) | 2),
+	LATENCY_QOS_TIER_2 = ((0xFF << 16) | 3),
+	LATENCY_QOS_TIER_3 = ((0xFF << 16) | 4),
+	LATENCY_QOS_TIER_4 = ((0xFF << 16) | 5),
+	LATENCY_QOS_TIER_5 = ((0xFF << 16) | 6)
+};
+typedef integer_t       task_latency_qos_t;
+enum task_throughput_qos {
+	THROUGHPUT_QOS_TIER_UNSPECIFIED = 0x0,
+	THROUGHPUT_QOS_TIER_0 = ((0xFE << 16) | 1),
+	THROUGHPUT_QOS_TIER_1 = ((0xFE << 16) | 2),
+	THROUGHPUT_QOS_TIER_2 = ((0xFE << 16) | 3),
+	THROUGHPUT_QOS_TIER_3 = ((0xFE << 16) | 4),
+	THROUGHPUT_QOS_TIER_4 = ((0xFE << 16) | 5),
+	THROUGHPUT_QOS_TIER_5 = ((0xFE << 16) | 6),
+};
+
+#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3
+#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3
+
+typedef integer_t       task_throughput_qos_t;
+
+struct task_qos_policy {
+	task_latency_qos_t task_latency_qos_tier;
+	task_throughput_qos_t task_throughput_qos_tier;
+};
+
+typedef struct task_qos_policy *task_qos_policy_t;
+#define TASK_QOS_POLICY_COUNT   ((mach_msg_type_number_t) \
+	(sizeof (struct task_qos_policy) / sizeof (integer_t)))
+
+/* These should be removed - they belong in proc_info.h */
+#define PROC_FLAG_DARWINBG           0x8000    /* process in darwin background */
+#define PROC_FLAG_EXT_DARWINBG           0x10000   /* process in darwin background - external enforcement */
+#define PROC_FLAG_IOS_APPLEDAEMON    0x20000   /* process is apple ios daemon */
+#define PROC_FLAG_IOS_IMPPROMOTION   0x80000   /* process is apple ios daemon */
+#define PROC_FLAG_ADAPTIVE           0x100000  /* Process is adaptive */
+#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000  /* Process is adaptive, and is currently important */
+#define PROC_FLAG_IMPORTANCE_DONOR   0x400000  /* Process is marked as an importance donor */
+#define PROC_FLAG_SUPPRESSED         0x800000  /* Process is suppressed */
+#define PROC_FLAG_APPLICATION        0x1000000 /* Process is an application */
+#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION /* Process is an application */
+
+
+
+
+#endif  /* _MACH_TASK_POLICY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/task_special_ports.h
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2000-2010 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/task_special_ports.h
+ *
+ *	Defines codes for special_purpose task ports.  These are NOT
+ *	port identifiers - they are only used for the task_get_special_port
+ *	and task_set_special_port routines.
+ *
+ */
+
+#ifndef _MACH_TASK_SPECIAL_PORTS_H_
+#define _MACH_TASK_SPECIAL_PORTS_H_
+
+typedef int     task_special_port_t;
+
+#define TASK_KERNEL_PORT        1       /* Represents task to the outside
+	                                 *  world.*/
+
+#define TASK_HOST_PORT          2       /* The host (priv) port for task.  */
+
+#define TASK_NAME_PORT          3       /* the name (unpriv) port for task */
+
+#define TASK_BOOTSTRAP_PORT     4       /* Bootstrap environment for task. */
+
+/*
+ * Evolving and likely to change.
+ */
+
+#define TASK_SEATBELT_PORT      7       /* Seatbelt compiler/DEM port for task. */
+
+/* PORT 8 was the GSSD TASK PORT which transformed to a host port */
+
+#define TASK_ACCESS_PORT        9       /* Permission check for task_for_pid. */
+
+#define TASK_DEBUG_CONTROL_PORT 10      /* debug control port */
+
+#define TASK_RESOURCE_NOTIFY_PORT   11  /* overrides host special RN port */
+
+#define TASK_MAX_SPECIAL_PORT TASK_RESOURCE_NOTIFY_PORT
+
+/*
+ *	Definitions for ease of use
+ */
+
+#define task_get_kernel_port(task, port)        \
+	        (task_get_special_port((task), TASK_KERNEL_PORT, (port)))
+
+#define task_set_kernel_port(task, port)        \
+	        (task_set_special_port((task), TASK_KERNEL_PORT, (port)))
+
+#define task_get_host_port(task, port)          \
+	        (task_get_special_port((task), TASK_HOST_PORT, (port)))
+
+#define task_set_host_port(task, port)  \
+	        (task_set_special_port((task), TASK_HOST_PORT, (port)))
+
+#define task_get_bootstrap_port(task, port)     \
+	        (task_get_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
+
+#define task_get_debug_control_port(task, port) \
+	        (task_get_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
+
+#define task_set_bootstrap_port(task, port)     \
+	        (task_set_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
+
+#define task_get_task_access_port(task, port)   \
+	        (task_get_special_port((task), TASK_ACCESS_PORT, (port)))
+
+#define task_set_task_access_port(task, port)   \
+	        (task_set_special_port((task), TASK_ACCESS_PORT, (port)))
+
+#define task_set_task_debug_control_port(task, port) \
+	        (task_set_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
+
+
+#endif  /* _MACH_TASK_SPECIAL_PORTS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_act.h
@@ -0,0 +1,1336 @@
+#ifndef	_thread_act_user_
+#define	_thread_act_user_
+
+/* Module thread_act */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	thread_act_MSG_COUNT
+#define	thread_act_MSG_COUNT	28
+#endif	/* thread_act_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine thread_terminate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_terminate
+(
+	thread_act_t target_act
+);
+
+/* Routine act_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t act_get_state
+(
+	thread_act_t target_act,
+	int flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine act_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t act_set_state
+(
+	thread_act_t target_act,
+	int flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine thread_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_get_state
+(
+	thread_act_t target_act,
+	thread_state_flavor_t flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine thread_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_set_state
+(
+	thread_act_t target_act,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine thread_suspend */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_suspend
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_resume */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_resume
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_abort */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_abort
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_abort_safely */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_abort_safely
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_depress_abort */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_depress_abort
+(
+	thread_act_t thread
+);
+
+/* Routine thread_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_get_special_port
+(
+	thread_act_t thr_act,
+	int which_port,
+	mach_port_t *special_port
+);
+
+/* Routine thread_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_set_special_port
+(
+	thread_act_t thr_act,
+	int which_port,
+	mach_port_t special_port
+);
+
+/* Routine thread_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_info
+(
+	thread_inspect_t target_act,
+	thread_flavor_t flavor,
+	thread_info_t thread_info_out,
+	mach_msg_type_number_t *thread_info_outCnt
+);
+
+/* Routine thread_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_set_exception_ports
+(
+	thread_act_t thread,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine thread_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_get_exception_ports
+(
+	thread_inspect_t thread,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine thread_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_swap_exception_ports
+(
+	thread_act_t thread,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine thread_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy
+(
+	thread_act_t thr_act,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	boolean_t set_limit
+);
+
+/* Routine thread_policy_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy_set
+(
+	thread_act_t thread,
+	thread_policy_flavor_t flavor,
+	thread_policy_t policy_info,
+	mach_msg_type_number_t policy_infoCnt
+);
+
+/* Routine thread_policy_get */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy_get
+(
+	thread_inspect_t thread,
+	thread_policy_flavor_t flavor,
+	thread_policy_t policy_info,
+	mach_msg_type_number_t *policy_infoCnt,
+	boolean_t *get_default
+);
+
+/* Routine thread_sample */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_sample
+(
+	thread_act_t thread,
+	mach_port_t reply
+);
+
+/* Routine etap_trace_thread */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t etap_trace_thread
+(
+	thread_act_t target_act,
+	boolean_t trace_status
+);
+
+/* Routine thread_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_assign
+(
+	thread_act_t thread,
+	processor_set_t new_set
+);
+
+/* Routine thread_assign_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_assign_default
+(
+	thread_act_t thread
+);
+
+/* Routine thread_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_get_assignment
+(
+	thread_act_t thread,
+	processor_set_name_t *assigned_set
+);
+
+/* Routine thread_set_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_set_policy
+(
+	thread_act_t thr_act,
+	processor_set_t pset,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	policy_limit_t limit,
+	mach_msg_type_number_t limitCnt
+);
+
+/* Routine thread_get_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_get_mach_voucher
+(
+	thread_act_t thr_act,
+	mach_voucher_selector_t which,
+	ipc_voucher_t *voucher
+);
+
+/* Routine thread_set_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_set_mach_voucher
+(
+	thread_act_t thr_act,
+	ipc_voucher_t voucher
+);
+
+/* Routine thread_swap_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t thread_swap_mach_voucher
+(
+	thread_act_t thr_act,
+	ipc_voucher_t new_voucher,
+	ipc_voucher_t *old_voucher
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__thread_act_subsystem__defined
+#define __Request__thread_act_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__act_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[614];
+	} __Request__act_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__thread_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[614];
+	} __Request__thread_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_abort_safely_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_depress_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__thread_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__thread_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_flavor_t flavor;
+		mach_msg_type_number_t thread_info_outCnt;
+	} __Request__thread_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__thread_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__thread_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__thread_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		boolean_t set_limit;
+	} __Request__thread_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+	} __Request__thread_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		boolean_t get_default;
+	} __Request__thread_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t reply;
+		/* end of the kernel processed data */
+	} __Request__thread_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t trace_status;
+	} __Request__etap_trace_thread_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+	} __Request__thread_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pset;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		mach_msg_type_number_t limitCnt;
+		integer_t limit[1];
+	} __Request__thread_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_voucher_selector_t which;
+	} __Request__thread_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Request__thread_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_voucher;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Request__thread_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__thread_act_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__thread_act_subsystem__defined
+#define __RequestUnion__thread_act_subsystem__defined
+union __RequestUnion__thread_act_subsystem {
+	__Request__thread_terminate_t Request_thread_terminate;
+	__Request__act_get_state_t Request_act_get_state;
+	__Request__act_set_state_t Request_act_set_state;
+	__Request__thread_get_state_t Request_thread_get_state;
+	__Request__thread_set_state_t Request_thread_set_state;
+	__Request__thread_suspend_t Request_thread_suspend;
+	__Request__thread_resume_t Request_thread_resume;
+	__Request__thread_abort_t Request_thread_abort;
+	__Request__thread_abort_safely_t Request_thread_abort_safely;
+	__Request__thread_depress_abort_t Request_thread_depress_abort;
+	__Request__thread_get_special_port_t Request_thread_get_special_port;
+	__Request__thread_set_special_port_t Request_thread_set_special_port;
+	__Request__thread_info_t Request_thread_info;
+	__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;
+	__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;
+	__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;
+	__Request__thread_policy_t Request_thread_policy;
+	__Request__thread_policy_set_t Request_thread_policy_set;
+	__Request__thread_policy_get_t Request_thread_policy_get;
+	__Request__thread_sample_t Request_thread_sample;
+	__Request__etap_trace_thread_t Request_etap_trace_thread;
+	__Request__thread_assign_t Request_thread_assign;
+	__Request__thread_assign_default_t Request_thread_assign_default;
+	__Request__thread_get_assignment_t Request_thread_get_assignment;
+	__Request__thread_set_policy_t Request_thread_set_policy;
+	__Request__thread_get_mach_voucher_t Request_thread_get_mach_voucher;
+	__Request__thread_set_mach_voucher_t Request_thread_set_mach_voucher;
+	__Request__thread_swap_mach_voucher_t Request_thread_swap_mach_voucher;
+};
+#endif /* !__RequestUnion__thread_act_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__thread_act_subsystem__defined
+#define __Reply__thread_act_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[614];
+	} __Reply__act_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__act_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[614];
+	} __Reply__thread_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_abort_safely_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_depress_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t thread_info_outCnt;
+		integer_t thread_info_out[32];
+	} __Reply__thread_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__thread_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__thread_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+		boolean_t get_default;
+	} __Reply__thread_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__etap_trace_thread_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Reply__thread_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__thread_act_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__thread_act_subsystem__defined
+#define __ReplyUnion__thread_act_subsystem__defined
+union __ReplyUnion__thread_act_subsystem {
+	__Reply__thread_terminate_t Reply_thread_terminate;
+	__Reply__act_get_state_t Reply_act_get_state;
+	__Reply__act_set_state_t Reply_act_set_state;
+	__Reply__thread_get_state_t Reply_thread_get_state;
+	__Reply__thread_set_state_t Reply_thread_set_state;
+	__Reply__thread_suspend_t Reply_thread_suspend;
+	__Reply__thread_resume_t Reply_thread_resume;
+	__Reply__thread_abort_t Reply_thread_abort;
+	__Reply__thread_abort_safely_t Reply_thread_abort_safely;
+	__Reply__thread_depress_abort_t Reply_thread_depress_abort;
+	__Reply__thread_get_special_port_t Reply_thread_get_special_port;
+	__Reply__thread_set_special_port_t Reply_thread_set_special_port;
+	__Reply__thread_info_t Reply_thread_info;
+	__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;
+	__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;
+	__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;
+	__Reply__thread_policy_t Reply_thread_policy;
+	__Reply__thread_policy_set_t Reply_thread_policy_set;
+	__Reply__thread_policy_get_t Reply_thread_policy_get;
+	__Reply__thread_sample_t Reply_thread_sample;
+	__Reply__etap_trace_thread_t Reply_etap_trace_thread;
+	__Reply__thread_assign_t Reply_thread_assign;
+	__Reply__thread_assign_default_t Reply_thread_assign_default;
+	__Reply__thread_get_assignment_t Reply_thread_get_assignment;
+	__Reply__thread_set_policy_t Reply_thread_set_policy;
+	__Reply__thread_get_mach_voucher_t Reply_thread_get_mach_voucher;
+	__Reply__thread_set_mach_voucher_t Reply_thread_set_mach_voucher;
+	__Reply__thread_swap_mach_voucher_t Reply_thread_swap_mach_voucher;
+};
+#endif /* !__RequestUnion__thread_act_subsystem__defined */
+
+#ifndef subsystem_to_name_map_thread_act
+#define subsystem_to_name_map_thread_act \
+    { "thread_terminate", 3600 },\
+    { "act_get_state", 3601 },\
+    { "act_set_state", 3602 },\
+    { "thread_get_state", 3603 },\
+    { "thread_set_state", 3604 },\
+    { "thread_suspend", 3605 },\
+    { "thread_resume", 3606 },\
+    { "thread_abort", 3607 },\
+    { "thread_abort_safely", 3608 },\
+    { "thread_depress_abort", 3609 },\
+    { "thread_get_special_port", 3610 },\
+    { "thread_set_special_port", 3611 },\
+    { "thread_info", 3612 },\
+    { "thread_set_exception_ports", 3613 },\
+    { "thread_get_exception_ports", 3614 },\
+    { "thread_swap_exception_ports", 3615 },\
+    { "thread_policy", 3616 },\
+    { "thread_policy_set", 3617 },\
+    { "thread_policy_get", 3618 },\
+    { "thread_sample", 3619 },\
+    { "etap_trace_thread", 3620 },\
+    { "thread_assign", 3621 },\
+    { "thread_assign_default", 3622 },\
+    { "thread_get_assignment", 3623 },\
+    { "thread_set_policy", 3624 },\
+    { "thread_get_mach_voucher", 3625 },\
+    { "thread_set_mach_voucher", 3626 },\
+    { "thread_swap_mach_voucher", 3627 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _thread_act_user_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_info.h
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2000-2005, 2015 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/thread_info
+ *
+ *	Thread information structure and definitions.
+ *
+ *	The defintions in this file are exported to the user.  The kernel
+ *	will translate its internal data structures to these structures
+ *	as appropriate.
+ *
+ */
+
+#ifndef _MACH_THREAD_INFO_H_
+#define _MACH_THREAD_INFO_H_
+
+#include <mach/boolean.h>
+#include <mach/policy.h>
+#include <mach/time_value.h>
+#include <mach/message.h>
+#include <mach/machine/vm_types.h>
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef natural_t       thread_flavor_t;
+typedef integer_t       *thread_info_t;         /* varying array of int */
+
+#define THREAD_INFO_MAX         (32)    /* maximum array size */
+typedef integer_t       thread_info_data_t[THREAD_INFO_MAX];
+
+/*
+ *	Currently defined information.
+ */
+#define THREAD_BASIC_INFO               3     /* basic information */
+
+struct thread_basic_info {
+	time_value_t    user_time;      /* user run time */
+	time_value_t    system_time;    /* system run time */
+	integer_t       cpu_usage;      /* scaled cpu usage percentage */
+	policy_t        policy;         /* scheduling policy in effect */
+	integer_t       run_state;      /* run state (see below) */
+	integer_t       flags;          /* various flags (see below) */
+	integer_t       suspend_count;  /* suspend count for thread */
+	integer_t       sleep_time;     /* number of seconds that thread
+	                                 *  has been sleeping */
+};
+
+typedef struct thread_basic_info  thread_basic_info_data_t;
+typedef struct thread_basic_info  *thread_basic_info_t;
+#define THREAD_BASIC_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(thread_basic_info_data_t) / sizeof(natural_t)))
+
+#define THREAD_IDENTIFIER_INFO          4     /* thread id and other information */
+
+struct thread_identifier_info {
+	uint64_t        thread_id;      /* system-wide unique 64-bit thread id */
+	uint64_t        thread_handle;  /* handle to be used by libproc */
+	uint64_t        dispatch_qaddr; /* libdispatch queue address */
+};
+
+typedef struct thread_identifier_info  thread_identifier_info_data_t;
+typedef struct thread_identifier_info  *thread_identifier_info_t;
+#define THREAD_IDENTIFIER_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(thread_identifier_info_data_t) / sizeof(natural_t)))
+
+/*
+ *	Scale factor for usage field.
+ */
+
+#define TH_USAGE_SCALE  1000
+
+/*
+ *	Thread run states (state field).
+ */
+
+#define TH_STATE_RUNNING        1       /* thread is running normally */
+#define TH_STATE_STOPPED        2       /* thread is stopped */
+#define TH_STATE_WAITING        3       /* thread is waiting normally */
+#define TH_STATE_UNINTERRUPTIBLE 4      /* thread is in an uninterruptible
+	                                 *  wait */
+#define TH_STATE_HALTED         5       /* thread is halted at a
+	                                 *  clean point */
+
+/*
+ *	Thread flags (flags field).
+ */
+#define TH_FLAGS_SWAPPED        0x1     /* thread is swapped out */
+#define TH_FLAGS_IDLE           0x2     /* thread is an idle thread */
+#define TH_FLAGS_GLOBAL_FORCED_IDLE     0x4     /* thread performs global forced idle */
+
+/*
+ *  Thread extended info (returns same info as proc_pidinfo(...,PROC_PIDTHREADINFO,...)
+ */
+#define THREAD_EXTENDED_INFO 5
+#define MAXTHREADNAMESIZE 64
+struct thread_extended_info {           // same as proc_threadinfo (from proc_info.h) & proc_threadinfo_internal (from bsd_taskinfo.h)
+	uint64_t                pth_user_time;          /* user run time */
+	uint64_t                pth_system_time;        /* system run time */
+	int32_t                 pth_cpu_usage;          /* scaled cpu usage percentage */
+	int32_t                 pth_policy;                     /* scheduling policy in effect */
+	int32_t                 pth_run_state;          /* run state (see below) */
+	int32_t                 pth_flags;              /* various flags (see below) */
+	int32_t                 pth_sleep_time;         /* number of seconds that thread */
+	int32_t                 pth_curpri;                     /* cur priority*/
+	int32_t                 pth_priority;           /*  priority*/
+	int32_t                 pth_maxpriority;        /* max priority*/
+	char                    pth_name[MAXTHREADNAMESIZE];    /* thread name, if any */
+};
+typedef struct thread_extended_info thread_extended_info_data_t;
+typedef struct thread_extended_info * thread_extended_info_t;
+#define THREAD_EXTENDED_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(thread_extended_info_data_t) / sizeof (natural_t)))
+
+#define THREAD_DEBUG_INFO_INTERNAL 6    /* for kernel development internal info */
+
+
+#define IO_NUM_PRIORITIES       4
+
+#define UPDATE_IO_STATS(info, size)                             \
+{                                                               \
+	info.count++;                                           \
+	info.size += size;                                      \
+}
+
+#define UPDATE_IO_STATS_ATOMIC(info, io_size)                   \
+{                                                               \
+	OSIncrementAtomic64((SInt64 *)&(info.count));           \
+	OSAddAtomic64(io_size, (SInt64 *)&(info.size));         \
+}
+
+struct io_stat_entry {
+	uint64_t        count;
+	uint64_t        size;
+};
+
+struct io_stat_info {
+	struct io_stat_entry    disk_reads;
+	struct io_stat_entry    io_priority[IO_NUM_PRIORITIES];
+	struct io_stat_entry    paging;
+	struct io_stat_entry    metadata;
+	struct io_stat_entry    total_io;
+};
+
+typedef struct io_stat_info *io_stat_info_t;
+
+
+/*
+ * Obsolete interfaces.
+ */
+
+#define THREAD_SCHED_TIMESHARE_INFO     10
+#define THREAD_SCHED_RR_INFO            11
+#define THREAD_SCHED_FIFO_INFO          12
+
+#endif  /* _MACH_THREAD_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_policy.h
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_THREAD_POLICY_H_
+#define _MACH_THREAD_POLICY_H_
+
+#include <mach/mach_types.h>
+
+/*
+ * These are the calls for accessing the policy parameters
+ * of a particular thread.
+ *
+ * The extra 'get_default' parameter to the second call is
+ * IN/OUT as follows:
+ * 1) if asserted on the way in it indicates that the default
+ * values should be returned, not the ones currently set, in
+ * this case 'get_default' will always be asserted on return;
+ * 2) if unasserted on the way in, the current settings are
+ * desired and if still unasserted on return, then the info
+ * returned reflects the current settings, otherwise if
+ * 'get_default' returns asserted, it means that there are no
+ * current settings due to other parameters taking precedence,
+ * and the default ones are being returned instead.
+ */
+
+typedef natural_t       thread_policy_flavor_t;
+typedef integer_t       *thread_policy_t;
+
+/*
+ *  kern_return_t	thread_policy_set(
+ *                                       thread_t					thread,
+ *                                       thread_policy_flavor_t		flavor,
+ *                                       thread_policy_t				policy_info,
+ *                                       mach_msg_type_number_t		count);
+ *
+ *  kern_return_t	thread_policy_get(
+ *                                       thread_t					thread,
+ *                                       thread_policy_flavor_t		flavor,
+ *                                       thread_policy_t				policy_info,
+ *                                       mach_msg_type_number_t		*count,
+ *                                       boolean_t					*get_default);
+ */
+
+/*
+ * Defined flavors.
+ */
+/*
+ * THREAD_STANDARD_POLICY:
+ *
+ * This is the standard (fair) scheduling mode, assigned to new
+ * threads.  The thread will be given processor time in a manner
+ * which apportions approximately equal share to long running
+ * computations.
+ *
+ * Parameters:
+ *	[none]
+ */
+
+#define THREAD_STANDARD_POLICY                  1
+
+struct thread_standard_policy {
+	natural_t               no_data;
+};
+
+typedef struct thread_standard_policy   thread_standard_policy_data_t;
+typedef struct thread_standard_policy   *thread_standard_policy_t;
+
+#define THREAD_STANDARD_POLICY_COUNT    0
+
+/*
+ * THREAD_EXTENDED_POLICY:
+ *
+ * Extended form of THREAD_STANDARD_POLICY, which supplies a
+ * hint indicating whether this is a long running computation.
+ *
+ * Parameters:
+ *
+ * timeshare: TRUE (the default) results in identical scheduling
+ * behavior as THREAD_STANDARD_POLICY.
+ */
+
+#define THREAD_EXTENDED_POLICY                  1
+
+struct thread_extended_policy {
+	boolean_t               timeshare;
+};
+
+typedef struct thread_extended_policy   thread_extended_policy_data_t;
+typedef struct thread_extended_policy   *thread_extended_policy_t;
+
+#define THREAD_EXTENDED_POLICY_COUNT    ((mach_msg_type_number_t) \
+	(sizeof (thread_extended_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_TIME_CONSTRAINT_POLICY:
+ *
+ * This scheduling mode is for threads which have real time
+ * constraints on their execution.
+ *
+ * Parameters:
+ *
+ * period: This is the nominal amount of time between separate
+ * processing arrivals, specified in absolute time units.  A
+ * value of 0 indicates that there is no inherent periodicity in
+ * the computation.
+ *
+ * computation: This is the nominal amount of computation
+ * time needed during a separate processing arrival, specified
+ * in absolute time units.
+ *
+ * constraint: This is the maximum amount of real time that
+ * may elapse from the start of a separate processing arrival
+ * to the end of computation for logically correct functioning,
+ * specified in absolute time units.  Must be (>= computation).
+ * Note that latency = (constraint - computation).
+ *
+ * preemptible: This indicates that the computation may be
+ * interrupted, subject to the constraint specified above.
+ */
+
+#define THREAD_TIME_CONSTRAINT_POLICY   2
+
+struct thread_time_constraint_policy {
+	uint32_t                period;
+	uint32_t                computation;
+	uint32_t                constraint;
+	boolean_t               preemptible;
+};
+
+typedef struct thread_time_constraint_policy    \
+        thread_time_constraint_policy_data_t;
+typedef struct thread_time_constraint_policy    \
+        *thread_time_constraint_policy_t;
+
+#define THREAD_TIME_CONSTRAINT_POLICY_COUNT     ((mach_msg_type_number_t) \
+	(sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_PRECEDENCE_POLICY:
+ *
+ * This may be used to indicate the relative value of the
+ * computation compared to the other threads in the task.
+ *
+ * Parameters:
+ *
+ * importance: The importance is specified as a signed value.
+ */
+
+#define THREAD_PRECEDENCE_POLICY                3
+
+struct thread_precedence_policy {
+	integer_t               importance;
+};
+
+typedef struct thread_precedence_policy         thread_precedence_policy_data_t;
+typedef struct thread_precedence_policy         *thread_precedence_policy_t;
+
+#define THREAD_PRECEDENCE_POLICY_COUNT  ((mach_msg_type_number_t) \
+	(sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_AFFINITY_POLICY:
+ *
+ * This policy is experimental.
+ * This may be used to express affinity relationships
+ * between threads in the task. Threads with the same affinity tag will
+ * be scheduled to share an L2 cache if possible. That is, affinity tags
+ * are a hint to the scheduler for thread placement.
+ *
+ * The namespace of affinity tags is generally local to one task. However,
+ * a child task created after the assignment of affinity tags by its parent
+ * will share that namespace. In particular, a family of forked processes
+ * may be created with a shared affinity namespace.
+ *
+ * Parameters:
+ * tag: The affinity set identifier.
+ */
+
+#define THREAD_AFFINITY_POLICY          4
+
+struct thread_affinity_policy {
+	integer_t       affinity_tag;
+};
+
+#define THREAD_AFFINITY_TAG_NULL                0
+
+typedef struct thread_affinity_policy           thread_affinity_policy_data_t;
+typedef struct thread_affinity_policy           *thread_affinity_policy_t;
+
+#define THREAD_AFFINITY_POLICY_COUNT    ((mach_msg_type_number_t) \
+	(sizeof (thread_affinity_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_BACKGROUND_POLICY:
+ */
+
+#define THREAD_BACKGROUND_POLICY        5
+
+struct thread_background_policy {
+	integer_t       priority;
+};
+
+#define THREAD_BACKGROUND_POLICY_DARWIN_BG 0x1000
+
+typedef struct thread_background_policy         thread_background_policy_data_t;
+typedef struct thread_background_policy         *thread_background_policy_t;
+
+#define THREAD_BACKGROUND_POLICY_COUNT  ((mach_msg_type_number_t) \
+	(sizeof (thread_background_policy_data_t) / sizeof (integer_t)))
+
+
+#define THREAD_LATENCY_QOS_POLICY       7
+typedef integer_t       thread_latency_qos_t;
+
+struct thread_latency_qos_policy {
+	thread_latency_qos_t thread_latency_qos_tier;
+};
+
+typedef struct thread_latency_qos_policy        thread_latency_qos_policy_data_t;
+typedef struct thread_latency_qos_policy        *thread_latency_qos_policy_t;
+
+#define THREAD_LATENCY_QOS_POLICY_COUNT ((mach_msg_type_number_t)       \
+	    (sizeof (thread_latency_qos_policy_data_t) / sizeof (integer_t)))
+
+#define THREAD_THROUGHPUT_QOS_POLICY    8
+typedef integer_t       thread_throughput_qos_t;
+
+struct thread_throughput_qos_policy {
+	thread_throughput_qos_t thread_throughput_qos_tier;
+};
+
+typedef struct thread_throughput_qos_policy     thread_throughput_qos_policy_data_t;
+typedef struct thread_throughput_qos_policy     *thread_throughput_qos_policy_t;
+
+#define THREAD_THROUGHPUT_QOS_POLICY_COUNT      ((mach_msg_type_number_t) \
+	    (sizeof (thread_throughput_qos_policy_data_t) / sizeof (integer_t)))
+
+
+
+
+#endif  /* _MACH_THREAD_POLICY_H_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_special_ports.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/thread_special_ports.h
+ *
+ *	Defines codes for special_purpose thread ports.  These are NOT
+ *	port identifiers - they are only used for the thread_get_special_port
+ *	and thread_set_special_port routines.
+ *
+ */
+
+#ifndef _MACH_THREAD_SPECIAL_PORTS_H_
+#define _MACH_THREAD_SPECIAL_PORTS_H_
+
+#define THREAD_KERNEL_PORT      1       /* Represents the thread to the outside
+	                                 *  world.*/
+
+/*
+ *	Definitions for ease of use
+ */
+
+#define thread_get_kernel_port(thread, port)    \
+	        (thread_get_special_port((thread), THREAD_KERNEL_PORT, (port)))
+
+#define thread_set_kernel_port(thread, port)    \
+	        (thread_set_special_port((thread), THREAD_KERNEL_PORT, (port)))
+
+#endif  /* _MACH_THREAD_SPECIAL_PORTS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_switch.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_THREAD_SWITCH_H_
+#define _MACH_THREAD_SWITCH_H_
+
+#include <mach/mach_types.h>
+#include <mach/kern_return.h>
+#include <mach/message.h>
+#include <mach/mach_traps.h>
+
+/*
+ *	Constant definitions for thread_switch trap.
+ */
+
+#define SWITCH_OPTION_NONE                      0
+#define SWITCH_OPTION_DEPRESS           1
+#define SWITCH_OPTION_WAIT                      2
+
+#define valid_switch_option(opt)        (0 <= (opt) && (opt) <= 5)
+
+#endif  /* _MACH_THREAD_SWITCH_H_ */
lib/libc/include/x86_64-macos-gnu/mach/time_value.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+#ifndef _MACH_TIME_VALUE_H_
+#define _MACH_TIME_VALUE_H_
+
+#include <mach/machine/vm_types.h>
+
+/*
+ *	Time value returned by kernel.
+ */
+
+struct time_value {
+	integer_t seconds;
+	integer_t microseconds;
+};
+
+typedef struct time_value       time_value_t;
+
+/*
+ *	Macros to manipulate time values.  Assume that time values
+ *	are normalized (microseconds <= 999999).
+ */
+#define TIME_MICROS_MAX (1000000)
+
+#define time_value_add_usec(val, micros)        {       \
+	if (((val)->microseconds += (micros))           \
+	        >= TIME_MICROS_MAX) {                   \
+	    (val)->microseconds -= TIME_MICROS_MAX;     \
+	    (val)->seconds++;                           \
+	}                                               \
+}
+
+#define time_value_add(result, addend)          {               \
+	(result)->microseconds += (addend)->microseconds;       \
+	(result)->seconds += (addend)->seconds;                 \
+	if ((result)->microseconds >= TIME_MICROS_MAX) {        \
+	    (result)->microseconds -= TIME_MICROS_MAX;          \
+	    (result)->seconds++;                                \
+	}                                                       \
+}
+
+#endif  /* _MACH_TIME_VALUE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_attributes.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_attributes.h
+ *	Author:	Alessandro Forin
+ *
+ *	Virtual memory attributes definitions.
+ *
+ *	These definitions are in addition to the machine-independent
+ *	ones (e.g. protection), and are only selectively supported
+ *	on specific machine architectures.
+ *
+ */
+
+#ifndef _MACH_VM_ATTRIBUTES_H_
+#define _MACH_VM_ATTRIBUTES_H_
+
+/*
+ *	Types of machine-dependent attributes
+ */
+typedef unsigned int    vm_machine_attribute_t;
+
+#define MATTR_CACHE             1       /* cachability */
+#define MATTR_MIGRATE           2       /* migrability */
+#define MATTR_REPLICATE         4       /* replicability */
+
+/*
+ *	Values for the above, e.g. operations on attribute
+ */
+typedef int             vm_machine_attribute_val_t;
+
+#define MATTR_VAL_OFF           0       /* (generic) turn attribute off */
+#define MATTR_VAL_ON            1       /* (generic) turn attribute on */
+#define MATTR_VAL_GET           2       /* (generic) return current value */
+
+#define MATTR_VAL_CACHE_FLUSH   6       /* flush from all caches */
+#define MATTR_VAL_DCACHE_FLUSH  7       /* flush from data caches */
+#define MATTR_VAL_ICACHE_FLUSH  8       /* flush from instruction caches */
+#define MATTR_VAL_CACHE_SYNC    9       /* sync I+D caches */
+#define MATTR_VAL_CACHE_SYNC    9       /* sync I+D caches */
+
+#define MATTR_VAL_GET_INFO      10      /* get page info (stats) */
+
+#endif  /* _MACH_VM_ATTRIBUTES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_behavior.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ *	File:	mach/vm_behavior.h
+ *
+ *	Virtual memory map behavior definitions.
+ *
+ */
+
+#ifndef _MACH_VM_BEHAVIOR_H_
+#define _MACH_VM_BEHAVIOR_H_
+
+/*
+ *	Types defined:
+ *
+ *	vm_behavior_t	behavior codes.
+ */
+
+typedef int             vm_behavior_t;
+
+/*
+ *	Enumeration of valid values for vm_behavior_t.
+ *	These describe expected page reference behavior for
+ *	for a given range of virtual memory.  For implementation
+ *	details see vm/vm_fault.c
+ */
+
+
+/*
+ * The following behaviors affect the memory region's future behavior
+ * and are stored in the VM map entry data structure.
+ */
+#define VM_BEHAVIOR_DEFAULT     ((vm_behavior_t) 0)     /* default */
+#define VM_BEHAVIOR_RANDOM      ((vm_behavior_t) 1)     /* random */
+#define VM_BEHAVIOR_SEQUENTIAL  ((vm_behavior_t) 2)     /* forward sequential */
+#define VM_BEHAVIOR_RSEQNTL     ((vm_behavior_t) 3)     /* reverse sequential */
+
+/*
+ * The following "behaviors" affect the memory region only at the time of the
+ * call and are not stored in the VM map entry.
+ */
+#define VM_BEHAVIOR_WILLNEED    ((vm_behavior_t) 4)     /* will need in near future */
+#define VM_BEHAVIOR_DONTNEED    ((vm_behavior_t) 5)     /* dont need in near future */
+#define VM_BEHAVIOR_FREE        ((vm_behavior_t) 6)     /* free memory without write-back */
+#define VM_BEHAVIOR_ZERO_WIRED_PAGES    ((vm_behavior_t) 7)     /* zero out the wired pages of an entry if it is being deleted without unwiring them first */
+#define VM_BEHAVIOR_REUSABLE    ((vm_behavior_t) 8)
+#define VM_BEHAVIOR_REUSE       ((vm_behavior_t) 9)
+#define VM_BEHAVIOR_CAN_REUSE   ((vm_behavior_t) 10)
+#define VM_BEHAVIOR_PAGEOUT     ((vm_behavior_t) 11)
+
+#endif  /*_MACH_VM_BEHAVIOR_H_*/
lib/libc/include/x86_64-macos-gnu/mach/vm_inherit.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_inherit.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *
+ *	Virtual memory map inheritance definitions.
+ *
+ */
+
+#ifndef _MACH_VM_INHERIT_H_
+#define _MACH_VM_INHERIT_H_
+
+/*
+ *	Types defined:
+ *
+ *	vm_inherit_t	inheritance codes.
+ */
+
+typedef unsigned int            vm_inherit_t;   /* might want to change this */
+
+/*
+ *	Enumeration of valid values for vm_inherit_t.
+ */
+
+#define VM_INHERIT_SHARE        ((vm_inherit_t) 0)      /* share with child */
+#define VM_INHERIT_COPY         ((vm_inherit_t) 1)      /* copy into child */
+#define VM_INHERIT_NONE         ((vm_inherit_t) 2)      /* absent from child */
+#define VM_INHERIT_DONATE_COPY  ((vm_inherit_t) 3)      /* copy and delete */
+
+#define VM_INHERIT_DEFAULT      VM_INHERIT_COPY
+#define VM_INHERIT_LAST_VALID VM_INHERIT_NONE
+
+#endif  /* _MACH_VM_INHERIT_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_map.h
@@ -0,0 +1,1440 @@
+#ifndef	_vm_map_user_
+#define	_vm_map_user_
+
+/* Module vm_map */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            *name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	vm_map_MSG_COUNT
+#define	vm_map_MSG_COUNT	32
+#endif	/* vm_map_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include <mach_debug/mach_debug_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine vm_region */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	vm_region_flavor_t flavor,
+	vm_region_info_t info,
+	mach_msg_type_number_t *infoCnt,
+	mach_port_t *object_name
+);
+
+/* Routine vm_allocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_allocate
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	int flags
+);
+
+/* Routine vm_deallocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_deallocate
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size
+);
+
+/* Routine vm_protect */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_protect
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	boolean_t set_maximum,
+	vm_prot_t new_protection
+);
+
+/* Routine vm_inherit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_inherit
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_inherit_t new_inheritance
+);
+
+/* Routine vm_read */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_offset_t *data,
+	mach_msg_type_number_t *dataCnt
+);
+
+/* Routine vm_read_list */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read_list
+(
+	vm_map_t target_task,
+	vm_read_entry_t data_list,
+	natural_t count
+);
+
+/* Routine vm_write */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_write
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_offset_t data,
+	mach_msg_type_number_t dataCnt
+);
+
+/* Routine vm_copy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_copy
+(
+	vm_map_t target_task,
+	vm_address_t source_address,
+	vm_size_t size,
+	vm_address_t dest_address
+);
+
+/* Routine vm_read_overwrite */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read_overwrite
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_address_t data,
+	vm_size_t *outsize
+);
+
+/* Routine vm_msync */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_msync
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_sync_t sync_flags
+);
+
+/* Routine vm_behavior_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_behavior_set
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_behavior_t new_behavior
+);
+
+/* Routine vm_map */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	mem_entry_name_port_t object,
+	vm_offset_t offset,
+	boolean_t copy,
+	vm_prot_t cur_protection,
+	vm_prot_t max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine vm_machine_attribute */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_machine_attribute
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_machine_attribute_t attribute,
+	vm_machine_attribute_val_t *value
+);
+
+/* Routine vm_remap */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_remap
+(
+	vm_map_t target_task,
+	vm_address_t *target_address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	vm_map_t src_task,
+	vm_address_t src_address,
+	boolean_t copy,
+	vm_prot_t *cur_protection,
+	vm_prot_t *max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine task_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+__TVOS_PROHIBITED
+kern_return_t task_wire
+(
+	vm_map_t target_task,
+	boolean_t must_wire
+);
+
+/* Routine mach_make_memory_entry */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_make_memory_entry
+(
+	vm_map_t target_task,
+	vm_size_t *size,
+	vm_offset_t offset,
+	vm_prot_t permission,
+	mem_entry_name_port_t *object_handle,
+	mem_entry_name_port_t parent_entry
+);
+
+/* Routine vm_map_page_query */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_page_query
+(
+	vm_map_t target_map,
+	vm_offset_t offset,
+	integer_t *disposition,
+	integer_t *ref_count
+);
+
+/* Routine mach_vm_region_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_region_info
+(
+	vm_map_t task,
+	vm_address_t address,
+	vm_info_region_t *region,
+	vm_info_object_array_t *objects,
+	mach_msg_type_number_t *objectsCnt
+);
+
+/* Routine vm_mapped_pages_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_mapped_pages_info
+(
+	vm_map_t task,
+	page_address_array_t *pages,
+	mach_msg_type_number_t *pagesCnt
+);
+
+/* Routine vm_region_recurse */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_recurse
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	natural_t *nesting_depth,
+	vm_region_recurse_info_t info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine vm_region_recurse_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_recurse_64
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	natural_t *nesting_depth,
+	vm_region_recurse_info_t info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine mach_vm_region_info_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_region_info_64
+(
+	vm_map_t task,
+	vm_address_t address,
+	vm_info_region_64_t *region,
+	vm_info_object_array_t *objects,
+	mach_msg_type_number_t *objectsCnt
+);
+
+/* Routine vm_region_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_64
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	vm_region_flavor_t flavor,
+	vm_region_info_t info,
+	mach_msg_type_number_t *infoCnt,
+	mach_port_t *object_name
+);
+
+/* Routine mach_make_memory_entry_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_make_memory_entry_64
+(
+	vm_map_t target_task,
+	memory_object_size_t *size,
+	memory_object_offset_t offset,
+	vm_prot_t permission,
+	mach_port_t *object_handle,
+	mem_entry_name_port_t parent_entry
+);
+
+/* Routine vm_map_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_64
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	mem_entry_name_port_t object,
+	memory_object_offset_t offset,
+	boolean_t copy,
+	vm_prot_t cur_protection,
+	vm_prot_t max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine vm_purgable_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_purgable_control
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_purgable_t control,
+	int *state
+);
+
+/* Routine vm_map_exec_lockdown */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_exec_lockdown
+(
+	vm_map_t target_task
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__vm_map_subsystem__defined
+#define __Request__vm_map_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_region_flavor_t flavor;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		int flags;
+	} __Request__vm_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+	} __Request__vm_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		boolean_t set_maximum;
+		vm_prot_t new_protection;
+	} __Request__vm_protect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_inherit_t new_inheritance;
+	} __Request__vm_inherit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+	} __Request__vm_read_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_read_entry_t data_list;
+		natural_t count;
+	} __Request__vm_read_list_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		mach_msg_type_number_t dataCnt;
+	} __Request__vm_write_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t source_address;
+		vm_size_t size;
+		vm_address_t dest_address;
+	} __Request__vm_copy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t data;
+	} __Request__vm_read_overwrite_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_sync_t sync_flags;
+	} __Request__vm_msync_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_behavior_t new_behavior;
+	} __Request__vm_behavior_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		vm_offset_t offset;
+		boolean_t copy;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+		vm_inherit_t inheritance;
+	} __Request__vm_map_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_machine_attribute_t attribute;
+		vm_machine_attribute_val_t value;
+	} __Request__vm_machine_attribute_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t src_task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t target_address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		vm_address_t src_address;
+		boolean_t copy;
+		vm_inherit_t inheritance;
+	} __Request__vm_remap_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t must_wire;
+	} __Request__task_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_entry;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_size_t size;
+		vm_offset_t offset;
+		vm_prot_t permission;
+	} __Request__mach_make_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_offset_t offset;
+	} __Request__vm_map_page_query_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+	} __Request__mach_vm_region_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__vm_mapped_pages_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_recurse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_recurse_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+	} __Request__mach_vm_region_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_region_flavor_t flavor;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_entry;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_size_t size;
+		memory_object_offset_t offset;
+		vm_prot_t permission;
+	} __Request__mach_make_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		memory_object_offset_t offset;
+		boolean_t copy;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+		vm_inherit_t inheritance;
+	} __Request__vm_map_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_purgable_t control;
+		int state;
+	} __Request__vm_purgable_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__vm_map_exec_lockdown_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__vm_map_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__vm_map_subsystem__defined
+#define __RequestUnion__vm_map_subsystem__defined
+union __RequestUnion__vm_map_subsystem {
+	__Request__vm_region_t Request_vm_region;
+	__Request__vm_allocate_t Request_vm_allocate;
+	__Request__vm_deallocate_t Request_vm_deallocate;
+	__Request__vm_protect_t Request_vm_protect;
+	__Request__vm_inherit_t Request_vm_inherit;
+	__Request__vm_read_t Request_vm_read;
+	__Request__vm_read_list_t Request_vm_read_list;
+	__Request__vm_write_t Request_vm_write;
+	__Request__vm_copy_t Request_vm_copy;
+	__Request__vm_read_overwrite_t Request_vm_read_overwrite;
+	__Request__vm_msync_t Request_vm_msync;
+	__Request__vm_behavior_set_t Request_vm_behavior_set;
+	__Request__vm_map_t Request_vm_map;
+	__Request__vm_machine_attribute_t Request_vm_machine_attribute;
+	__Request__vm_remap_t Request_vm_remap;
+	__Request__task_wire_t Request_task_wire;
+	__Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
+	__Request__vm_map_page_query_t Request_vm_map_page_query;
+	__Request__mach_vm_region_info_t Request_mach_vm_region_info;
+	__Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
+	__Request__vm_region_recurse_t Request_vm_region_recurse;
+	__Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
+	__Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
+	__Request__vm_region_64_t Request_vm_region_64;
+	__Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
+	__Request__vm_map_64_t Request_vm_map_64;
+	__Request__vm_purgable_control_t Request_vm_purgable_control;
+	__Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
+};
+#endif /* !__RequestUnion__vm_map_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__vm_map_subsystem__defined
+#define __Reply__vm_map_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_name;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		mach_msg_type_number_t infoCnt;
+		int info[10];
+	} __Reply__vm_region_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_protect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_inherit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dataCnt;
+	} __Reply__vm_read_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_read_entry_t data_list;
+	} __Reply__vm_read_list_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_write_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_copy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_size_t outsize;
+	} __Reply__vm_read_overwrite_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_msync_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_behavior_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_map_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_machine_attribute_val_t value;
+	} __Reply__vm_machine_attribute_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t target_address;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+	} __Reply__vm_remap_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_handle;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_size_t size;
+	} __Reply__mach_make_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		integer_t disposition;
+		integer_t ref_count;
+	} __Reply__vm_map_page_query_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t objects;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_info_region_t region;
+		mach_msg_type_number_t objectsCnt;
+	} __Reply__mach_vm_region_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t pages;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t pagesCnt;
+	} __Reply__vm_mapped_pages_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+		vm_size_t size;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+		int info[19];
+	} __Reply__vm_region_recurse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+		vm_size_t size;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+		int info[19];
+	} __Reply__vm_region_recurse_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t objects;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_info_region_64_t region;
+		mach_msg_type_number_t objectsCnt;
+	} __Reply__mach_vm_region_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_name;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		mach_msg_type_number_t infoCnt;
+		int info[10];
+	} __Reply__vm_region_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_handle;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_size_t size;
+	} __Reply__mach_make_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_map_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		int state;
+	} __Reply__vm_purgable_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_map_exec_lockdown_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__vm_map_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__vm_map_subsystem__defined
+#define __ReplyUnion__vm_map_subsystem__defined
+union __ReplyUnion__vm_map_subsystem {
+	__Reply__vm_region_t Reply_vm_region;
+	__Reply__vm_allocate_t Reply_vm_allocate;
+	__Reply__vm_deallocate_t Reply_vm_deallocate;
+	__Reply__vm_protect_t Reply_vm_protect;
+	__Reply__vm_inherit_t Reply_vm_inherit;
+	__Reply__vm_read_t Reply_vm_read;
+	__Reply__vm_read_list_t Reply_vm_read_list;
+	__Reply__vm_write_t Reply_vm_write;
+	__Reply__vm_copy_t Reply_vm_copy;
+	__Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
+	__Reply__vm_msync_t Reply_vm_msync;
+	__Reply__vm_behavior_set_t Reply_vm_behavior_set;
+	__Reply__vm_map_t Reply_vm_map;
+	__Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
+	__Reply__vm_remap_t Reply_vm_remap;
+	__Reply__task_wire_t Reply_task_wire;
+	__Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
+	__Reply__vm_map_page_query_t Reply_vm_map_page_query;
+	__Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
+	__Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
+	__Reply__vm_region_recurse_t Reply_vm_region_recurse;
+	__Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
+	__Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
+	__Reply__vm_region_64_t Reply_vm_region_64;
+	__Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
+	__Reply__vm_map_64_t Reply_vm_map_64;
+	__Reply__vm_purgable_control_t Reply_vm_purgable_control;
+	__Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
+};
+#endif /* !__RequestUnion__vm_map_subsystem__defined */
+
+#ifndef subsystem_to_name_map_vm_map
+#define subsystem_to_name_map_vm_map \
+    { "vm_region", 3800 },\
+    { "vm_allocate", 3801 },\
+    { "vm_deallocate", 3802 },\
+    { "vm_protect", 3803 },\
+    { "vm_inherit", 3804 },\
+    { "vm_read", 3805 },\
+    { "vm_read_list", 3806 },\
+    { "vm_write", 3807 },\
+    { "vm_copy", 3808 },\
+    { "vm_read_overwrite", 3809 },\
+    { "vm_msync", 3810 },\
+    { "vm_behavior_set", 3811 },\
+    { "vm_map", 3812 },\
+    { "vm_machine_attribute", 3813 },\
+    { "vm_remap", 3814 },\
+    { "task_wire", 3815 },\
+    { "mach_make_memory_entry", 3816 },\
+    { "vm_map_page_query", 3817 },\
+    { "mach_vm_region_info", 3818 },\
+    { "vm_mapped_pages_info", 3819 },\
+    { "vm_region_recurse", 3821 },\
+    { "vm_region_recurse_64", 3822 },\
+    { "mach_vm_region_info_64", 3823 },\
+    { "vm_region_64", 3824 },\
+    { "mach_make_memory_entry_64", 3825 },\
+    { "vm_map_64", 3826 },\
+    { "vm_purgable_control", 3830 },\
+    { "vm_map_exec_lockdown", 3831 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _vm_map_user_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_page_size.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _VM_PAGE_SIZE_H_
+#define _VM_PAGE_SIZE_H_
+
+#include <Availability.h>
+#include <mach/mach_types.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/*
+ *	Globally interesting numbers.
+ *	These macros assume vm_page_size is a power-of-2.
+ */
+extern  vm_size_t       vm_page_size;
+extern  vm_size_t       vm_page_mask;
+extern  int             vm_page_shift;
+
+/*
+ *	These macros assume vm_page_size is a power-of-2.
+ */
+#define trunc_page(x)   ((x) & (~(vm_page_size - 1)))
+#define round_page(x)   trunc_page((x) + (vm_page_size - 1))
+
+/*
+ *	Page-size rounding macros for the fixed-width VM types.
+ */
+#define mach_vm_trunc_page(x) ((mach_vm_offset_t)(x) & ~((signed)vm_page_mask))
+#define mach_vm_round_page(x) (((mach_vm_offset_t)(x) + vm_page_mask) & ~((signed)vm_page_mask))
+
+
+extern  vm_size_t       vm_kernel_page_size     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
+extern  vm_size_t       vm_kernel_page_mask     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
+extern  int             vm_kernel_page_shift    __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
+
+#define trunc_page_kernel(x)   ((x) & (~vm_kernel_page_mask))
+#define round_page_kernel(x)   trunc_page_kernel((x) + vm_kernel_page_mask)
+
+__END_DECLS
+
+#endif
lib/libc/include/x86_64-macos-gnu/mach/vm_purgable.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * Virtual memory map purgeable object definitions.
+ * Objects that will be needed in the future (forward cached objects) should be queued LIFO.
+ * Objects that have been used and are cached for reuse (backward cached) should be queued FIFO.
+ * Every user of purgeable memory is entitled to using the highest volatile group (7).
+ * Only if a client wants some of its objects to definitely be purged earlier, it can put those in
+ * another group. This could be used to make all FIFO objects (in the lower group) go away before
+ * any LIFO objects (in the higher group) go away.
+ * Objects that should not get any chance to stay around can be marked as "obsolete". They will
+ * be emptied before any other objects or pages are reclaimed. Obsolete objects are not emptied
+ * in any particular order.
+ * 'purgeable' is recognized as the correct spelling. For historical reasons, definitions
+ * in this file are spelled 'purgable'.
+ */
+
+#ifndef _MACH_VM_PURGABLE_H_
+#define _MACH_VM_PURGABLE_H_
+
+/*
+ *	Types defined:
+ *
+ *	vm_purgable_t	purgeable object control codes.
+ */
+
+typedef int     vm_purgable_t;
+
+/*
+ *	Enumeration of valid values for vm_purgable_t.
+ */
+#define VM_PURGABLE_SET_STATE   ((vm_purgable_t) 0)     /* set state of purgeable object */
+#define VM_PURGABLE_GET_STATE   ((vm_purgable_t) 1)     /* get state of purgeable object */
+#define VM_PURGABLE_PURGE_ALL   ((vm_purgable_t) 2)     /* purge all volatile objects now */
+#define VM_PURGABLE_SET_STATE_FROM_KERNEL ((vm_purgable_t) 3) /* set state from kernel */
+
+/*
+ * Purgeable state:
+ *
+ *  31 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0
+ * +-----+--+-----+--+----+-+-+---+---+---+
+ * |     |NA|DEBUG|  | GRP| |B|ORD|   |STA|
+ * +-----+--+-----+--+----+-+-+---+---+---+
+ * " ": unused (i.e. reserved)
+ * STA: purgeable state
+ *      see: VM_PURGABLE_NONVOLATILE=0 to VM_PURGABLE_DENY=3
+ * ORD: order
+ *      see:VM_VOLATILE_ORDER_*
+ * B: behavior
+ *      see: VM_PURGABLE_BEHAVIOR_*
+ * GRP: group
+ *      see: VM_VOLATILE_GROUP_*
+ * DEBUG: debug
+ *      see: VM_PURGABLE_DEBUG_*
+ * NA: no aging
+ *      see: VM_PURGABLE_NO_AGING*
+ */
+
+#define VM_PURGABLE_NO_AGING_SHIFT      16
+#define VM_PURGABLE_NO_AGING_MASK       (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
+#define VM_PURGABLE_NO_AGING            (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
+
+#define VM_PURGABLE_DEBUG_SHIFT 12
+#define VM_PURGABLE_DEBUG_MASK  (0x3 << VM_PURGABLE_DEBUG_SHIFT)
+#define VM_PURGABLE_DEBUG_EMPTY (0x1 << VM_PURGABLE_DEBUG_SHIFT)
+#define VM_PURGABLE_DEBUG_FAULT (0x2 << VM_PURGABLE_DEBUG_SHIFT)
+
+/*
+ * Volatile memory ordering groups (group zero objects are purged before group 1, etc...
+ * It is implementation dependent as to whether these groups are global or per-address space.
+ * (for the moment, they are global).
+ */
+#define VM_VOLATILE_GROUP_SHIFT         8
+#define VM_VOLATILE_GROUP_MASK          (7 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_DEFAULT   VM_VOLATILE_GROUP_0
+
+#define VM_VOLATILE_GROUP_0                     (0 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_1                     (1 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_2                     (2 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_3                     (3 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_4                     (4 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_5                     (5 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_6                     (6 << VM_VOLATILE_GROUP_SHIFT)
+#define VM_VOLATILE_GROUP_7                     (7 << VM_VOLATILE_GROUP_SHIFT)
+
+/*
+ * Purgeable behavior
+ * Within the same group, FIFO objects will be emptied before objects that are added later.
+ * LIFO objects will be emptied after objects that are added later.
+ * - Input only, not returned on state queries.
+ */
+#define VM_PURGABLE_BEHAVIOR_SHIFT  6
+#define VM_PURGABLE_BEHAVIOR_MASK   (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
+#define VM_PURGABLE_BEHAVIOR_FIFO   (0 << VM_PURGABLE_BEHAVIOR_SHIFT)
+#define VM_PURGABLE_BEHAVIOR_LIFO   (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
+
+/*
+ * Obsolete object.
+ * Disregard volatile group, and put object into obsolete queue instead, so it is the next object
+ * to be purged.
+ * - Input only, not returned on state queries.
+ */
+#define VM_PURGABLE_ORDERING_SHIFT              5
+#define VM_PURGABLE_ORDERING_MASK               (1 << VM_PURGABLE_ORDERING_SHIFT)
+#define VM_PURGABLE_ORDERING_OBSOLETE   (1 << VM_PURGABLE_ORDERING_SHIFT)
+#define VM_PURGABLE_ORDERING_NORMAL             (0 << VM_PURGABLE_ORDERING_SHIFT)
+
+
+/*
+ * Obsolete parameter - do not use
+ */
+#define VM_VOLATILE_ORDER_SHIFT                 4
+#define VM_VOLATILE_ORDER_MASK                  (1 << VM_VOLATILE_ORDER_SHIFT)
+#define VM_VOLATILE_MAKE_FIRST_IN_GROUP (1 << VM_VOLATILE_ORDER_SHIFT)
+#define VM_VOLATILE_MAKE_LAST_IN_GROUP  (0 << VM_VOLATILE_ORDER_SHIFT)
+
+/*
+ * Valid states of a purgeable object.
+ */
+#define VM_PURGABLE_STATE_MIN   0               /* minimum purgeable object state value */
+#define VM_PURGABLE_STATE_MAX   3               /* maximum purgeable object state value */
+#define VM_PURGABLE_STATE_MASK  3               /* mask to separate state from group */
+
+#define VM_PURGABLE_NONVOLATILE 0               /* purgeable object is non-volatile */
+#define VM_PURGABLE_VOLATILE    1               /* purgeable object is volatile */
+#define VM_PURGABLE_EMPTY       2               /* purgeable object is volatile and empty */
+#define VM_PURGABLE_DENY        3               /* (mark) object not purgeable */
+
+#define VM_PURGABLE_ALL_MASKS   (VM_PURGABLE_STATE_MASK | \
+	                         VM_VOLATILE_ORDER_MASK | \
+	                         VM_PURGABLE_ORDERING_MASK | \
+	                         VM_PURGABLE_BEHAVIOR_MASK | \
+	                         VM_VOLATILE_GROUP_MASK | \
+	                         VM_PURGABLE_DEBUG_MASK | \
+	                         VM_PURGABLE_NO_AGING_MASK)
+#endif  /* _MACH_VM_PURGABLE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_region.h
@@ -0,0 +1,349 @@
+/*
+ * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ *	File:	mach/vm_region.h
+ *
+ *	Define the attributes of a task's memory region
+ *
+ */
+
+#ifndef _MACH_VM_REGION_H_
+#define _MACH_VM_REGION_H_
+
+#include <mach/boolean.h>
+#include <mach/vm_prot.h>
+#include <mach/vm_inherit.h>
+#include <mach/vm_behavior.h>
+#include <mach/vm_types.h>
+#include <mach/message.h>
+#include <mach/machine/vm_param.h>
+#include <mach/machine/vm_types.h>
+#include <mach/memory_object_types.h>
+
+#include <sys/cdefs.h>
+
+#pragma pack(push, 4)
+
+// LP64todo: all the current tools are 32bit, obviously never worked for 64b
+// so probably should be a real 32b ID vs. ptr.
+// Current users just check for equality
+typedef uint32_t vm32_object_id_t;
+
+/*
+ *	Types defined:
+ *
+ *	vm_region_info_t	memory region attributes
+ */
+
+#define VM_REGION_INFO_MAX      (1024)
+typedef int     *vm_region_info_t;
+typedef int     *vm_region_info_64_t;
+typedef int     *vm_region_recurse_info_t;
+typedef int     *vm_region_recurse_info_64_t;
+typedef int      vm_region_flavor_t;
+typedef int      vm_region_info_data_t[VM_REGION_INFO_MAX];
+
+#define VM_REGION_BASIC_INFO_64         9
+struct vm_region_basic_info_64 {
+	vm_prot_t               protection;
+	vm_prot_t               max_protection;
+	vm_inherit_t            inheritance;
+	boolean_t               shared;
+	boolean_t               reserved;
+	memory_object_offset_t  offset;
+	vm_behavior_t           behavior;
+	unsigned short          user_wired_count;
+};
+typedef struct vm_region_basic_info_64          *vm_region_basic_info_64_t;
+typedef struct vm_region_basic_info_64           vm_region_basic_info_data_64_t;
+
+#define VM_REGION_BASIC_INFO_COUNT_64   ((mach_msg_type_number_t) \
+	(sizeof(vm_region_basic_info_data_64_t)/sizeof(int)))
+
+/*
+ * Passing VM_REGION_BASIC_INFO to vm_region_64
+ * automatically converts it to a VM_REGION_BASIC_INFO_64.
+ * Please use that explicitly instead.
+ */
+#define VM_REGION_BASIC_INFO            10
+
+/*
+ * This is the legacy basic info structure.  It is
+ * deprecated because it passes only a 32-bit memory object
+ * offset back - too small for many larger objects (e.g. files).
+ */
+struct vm_region_basic_info {
+	vm_prot_t               protection;
+	vm_prot_t               max_protection;
+	vm_inherit_t            inheritance;
+	boolean_t               shared;
+	boolean_t               reserved;
+	uint32_t                offset; /* too small for a real offset */
+	vm_behavior_t           behavior;
+	unsigned short          user_wired_count;
+};
+
+typedef struct vm_region_basic_info             *vm_region_basic_info_t;
+typedef struct vm_region_basic_info              vm_region_basic_info_data_t;
+
+#define VM_REGION_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
+	(sizeof(vm_region_basic_info_data_t)/sizeof(int)))
+
+#define SM_COW             1
+#define SM_PRIVATE         2
+#define SM_EMPTY           3
+#define SM_SHARED          4
+#define SM_TRUESHARED      5
+#define SM_PRIVATE_ALIASED 6
+#define SM_SHARED_ALIASED  7
+#define SM_LARGE_PAGE      8
+
+/*
+ * For submap info,  the SM flags above are overlayed when a submap
+ * is encountered.  The field denotes whether or not machine level mapping
+ * information is being shared.  PTE's etc.  When such sharing is taking
+ * place the value returned is SM_TRUESHARED otherwise SM_PRIVATE is passed
+ * back.
+ */
+
+
+
+
+#define VM_REGION_EXTENDED_INFO 13
+struct vm_region_extended_info {
+	vm_prot_t               protection;
+	unsigned int            user_tag;
+	unsigned int            pages_resident;
+	unsigned int            pages_shared_now_private;
+	unsigned int            pages_swapped_out;
+	unsigned int            pages_dirtied;
+	unsigned int            ref_count;
+	unsigned short          shadow_depth;
+	unsigned char           external_pager;
+	unsigned char           share_mode;
+	unsigned int            pages_reusable;
+};
+typedef struct vm_region_extended_info          *vm_region_extended_info_t;
+typedef struct vm_region_extended_info           vm_region_extended_info_data_t;
+#define VM_REGION_EXTENDED_INFO_COUNT                   \
+	((mach_msg_type_number_t)                       \
+	 (sizeof (vm_region_extended_info_data_t) / sizeof (natural_t)))
+
+
+
+
+#define VM_REGION_TOP_INFO      12
+
+struct vm_region_top_info {
+	unsigned int            obj_id;
+	unsigned int            ref_count;
+	unsigned int            private_pages_resident;
+	unsigned int            shared_pages_resident;
+	unsigned char           share_mode;
+};
+
+typedef struct vm_region_top_info               *vm_region_top_info_t;
+typedef struct vm_region_top_info                vm_region_top_info_data_t;
+
+#define VM_REGION_TOP_INFO_COUNT                                        \
+	((mach_msg_type_number_t)                                       \
+	 (sizeof(vm_region_top_info_data_t) / sizeof(natural_t)))
+
+
+
+/*
+ * vm_region_submap_info will return information on a submap or object.
+ * The user supplies a nesting level on the call.  When a walk of the
+ * user's map is done and a submap is encountered, the nesting count is
+ * checked. If the nesting count is greater than 1 the submap is entered and
+ * the offset relative to the address in the base map is examined.  If the
+ * nesting count is zero, the information on the submap is returned.
+ * The caller may thus learn about a submap and its contents by judicious
+ * choice of the base map address and nesting count.  The nesting count
+ * allows penetration of recursively mapped submaps.  If a submap is
+ * encountered as a mapped entry of another submap, the caller may bump
+ * the nesting count and call vm_region_recurse again on the target address
+ * range.  The "is_submap" field tells the caller whether or not a submap
+ * has been encountered.
+ *
+ * Object only fields are filled in through a walking of the object shadow
+ * chain (where one is present), and a walking of the resident page queue.
+ *
+ */
+
+struct vm_region_submap_info {
+	vm_prot_t               protection;     /* present access protection */
+	vm_prot_t               max_protection; /* max avail through vm_prot */
+	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
+	uint32_t                offset;         /* offset into object/map */
+	unsigned int            user_tag;       /* user tag on map entry */
+	unsigned int            pages_resident; /* only valid for objects */
+	unsigned int            pages_shared_now_private; /* only for objects */
+	unsigned int            pages_swapped_out; /* only for objects */
+	unsigned int            pages_dirtied;   /* only for objects */
+	unsigned int            ref_count;       /* obj/map mappers, etc */
+	unsigned short          shadow_depth;   /* only for obj */
+	unsigned char           external_pager;  /* only for obj */
+	unsigned char           share_mode;     /* see enumeration */
+	boolean_t               is_submap;      /* submap vs obj */
+	vm_behavior_t           behavior;       /* access behavior hint */
+	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
+	unsigned short          user_wired_count;
+};
+
+typedef struct vm_region_submap_info            *vm_region_submap_info_t;
+typedef struct vm_region_submap_info             vm_region_submap_info_data_t;
+
+#define VM_REGION_SUBMAP_INFO_COUNT                                     \
+	((mach_msg_type_number_t)                                       \
+	 (sizeof(vm_region_submap_info_data_t) / sizeof(natural_t)))
+
+struct vm_region_submap_info_64 {
+	vm_prot_t               protection;     /* present access protection */
+	vm_prot_t               max_protection; /* max avail through vm_prot */
+	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
+	memory_object_offset_t  offset;         /* offset into object/map */
+	unsigned int            user_tag;       /* user tag on map entry */
+	unsigned int            pages_resident; /* only valid for objects */
+	unsigned int            pages_shared_now_private; /* only for objects */
+	unsigned int            pages_swapped_out; /* only for objects */
+	unsigned int            pages_dirtied;   /* only for objects */
+	unsigned int            ref_count;       /* obj/map mappers, etc */
+	unsigned short          shadow_depth;   /* only for obj */
+	unsigned char           external_pager;  /* only for obj */
+	unsigned char           share_mode;     /* see enumeration */
+	boolean_t               is_submap;      /* submap vs obj */
+	vm_behavior_t           behavior;       /* access behavior hint */
+	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
+	unsigned short          user_wired_count;
+	unsigned int            pages_reusable;
+	vm_object_id_t          object_id_full;
+};
+
+typedef struct vm_region_submap_info_64         *vm_region_submap_info_64_t;
+typedef struct vm_region_submap_info_64          vm_region_submap_info_data_64_t;
+
+#define VM_REGION_SUBMAP_INFO_V2_SIZE   \
+	(sizeof (vm_region_submap_info_data_64_t))
+#define VM_REGION_SUBMAP_INFO_V1_SIZE   \
+	(VM_REGION_SUBMAP_INFO_V2_SIZE - \
+	 sizeof (vm_object_id_t) /* object_id_full */ )
+#define VM_REGION_SUBMAP_INFO_V0_SIZE   \
+	(VM_REGION_SUBMAP_INFO_V1_SIZE - \
+	 sizeof (unsigned int) /* pages_reusable */ )
+
+#define VM_REGION_SUBMAP_INFO_V2_COUNT_64 \
+	((mach_msg_type_number_t) \
+	 (VM_REGION_SUBMAP_INFO_V2_SIZE / sizeof (natural_t)))
+#define VM_REGION_SUBMAP_INFO_V1_COUNT_64 \
+	((mach_msg_type_number_t) \
+	 (VM_REGION_SUBMAP_INFO_V1_SIZE / sizeof (natural_t)))
+#define VM_REGION_SUBMAP_INFO_V0_COUNT_64 \
+	((mach_msg_type_number_t) \
+	 (VM_REGION_SUBMAP_INFO_V0_SIZE / sizeof (natural_t)))
+
+/* set this to the latest version */
+#define VM_REGION_SUBMAP_INFO_COUNT_64          VM_REGION_SUBMAP_INFO_V2_COUNT_64
+
+struct vm_region_submap_short_info_64 {
+	vm_prot_t               protection;     /* present access protection */
+	vm_prot_t               max_protection; /* max avail through vm_prot */
+	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
+	memory_object_offset_t  offset;         /* offset into object/map */
+	unsigned int            user_tag;       /* user tag on map entry */
+	unsigned int            ref_count;       /* obj/map mappers, etc */
+	unsigned short          shadow_depth;   /* only for obj */
+	unsigned char           external_pager;  /* only for obj */
+	unsigned char           share_mode;     /* see enumeration */
+	boolean_t               is_submap;      /* submap vs obj */
+	vm_behavior_t           behavior;       /* access behavior hint */
+	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
+	unsigned short          user_wired_count;
+};
+
+typedef struct vm_region_submap_short_info_64   *vm_region_submap_short_info_64_t;
+typedef struct vm_region_submap_short_info_64    vm_region_submap_short_info_data_64_t;
+
+#define VM_REGION_SUBMAP_SHORT_INFO_COUNT_64                            \
+	((mach_msg_type_number_t)                                       \
+	 (sizeof (vm_region_submap_short_info_data_64_t) / sizeof (natural_t)))
+
+struct mach_vm_read_entry {
+	mach_vm_address_t address;
+	mach_vm_size_t size;
+};
+
+struct vm_read_entry {
+	vm_address_t    address;
+	vm_size_t       size;
+};
+
+#ifdef VM32_SUPPORT
+struct vm32_read_entry {
+	vm32_address_t  address;
+	vm32_size_t     size;
+};
+#endif
+
+
+#define VM_MAP_ENTRY_MAX  (256)
+
+typedef struct mach_vm_read_entry       mach_vm_read_entry_t[VM_MAP_ENTRY_MAX];
+typedef struct vm_read_entry            vm_read_entry_t[VM_MAP_ENTRY_MAX];
+#ifdef VM32_SUPPORT
+typedef struct vm32_read_entry          vm32_read_entry_t[VM_MAP_ENTRY_MAX];
+#endif
+
+#pragma pack(pop)
+
+
+#define VM_PAGE_INFO_MAX
+typedef int *vm_page_info_t;
+typedef int vm_page_info_data_t[VM_PAGE_INFO_MAX];
+typedef int vm_page_info_flavor_t;
+
+#define VM_PAGE_INFO_BASIC              1
+struct vm_page_info_basic {
+	int                     disposition;
+	int                     ref_count;
+	vm_object_id_t          object_id;
+	memory_object_offset_t  offset;
+	int                     depth;
+	int                     __pad; /* pad to 64-bit boundary */
+};
+typedef struct vm_page_info_basic               *vm_page_info_basic_t;
+typedef struct vm_page_info_basic               vm_page_info_basic_data_t;
+
+#define VM_PAGE_INFO_BASIC_COUNT        ((mach_msg_type_number_t) \
+	(sizeof(vm_page_info_basic_data_t)/sizeof(int)))
+
+
+#endif  /*_MACH_VM_REGION_H_*/
lib/libc/include/x86_64-macos-gnu/mach/vm_statistics.h
@@ -0,0 +1,523 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_statistics.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young, David Golub
+ *
+ *	Virtual memory statistics structure.
+ *
+ */
+
+#ifndef _MACH_VM_STATISTICS_H_
+#define _MACH_VM_STATISTICS_H_
+
+#include <mach/machine/vm_types.h>
+
+
+/*
+ * vm_statistics
+ *
+ * History:
+ *	rev0 -  original structure.
+ *	rev1 -  added purgable info (purgable_count and purges).
+ *	rev2 -  added speculative_count.
+ *
+ * Note: you cannot add any new fields to this structure. Add them below in
+ *       vm_statistics64.
+ */
+
+struct vm_statistics {
+	natural_t       free_count;             /* # of pages free */
+	natural_t       active_count;           /* # of pages active */
+	natural_t       inactive_count;         /* # of pages inactive */
+	natural_t       wire_count;             /* # of pages wired down */
+	natural_t       zero_fill_count;        /* # of zero fill pages */
+	natural_t       reactivations;          /* # of pages reactivated */
+	natural_t       pageins;                /* # of pageins */
+	natural_t       pageouts;               /* # of pageouts */
+	natural_t       faults;                 /* # of faults */
+	natural_t       cow_faults;             /* # of copy-on-writes */
+	natural_t       lookups;                /* object cache lookups */
+	natural_t       hits;                   /* object cache hits */
+
+	/* added for rev1 */
+	natural_t       purgeable_count;        /* # of pages purgeable */
+	natural_t       purges;                 /* # of pages purged */
+
+	/* added for rev2 */
+	/*
+	 * NB: speculative pages are already accounted for in "free_count",
+	 * so "speculative_count" is the number of "free" pages that are
+	 * used to hold data that was read speculatively from disk but
+	 * haven't actually been used by anyone so far.
+	 */
+	natural_t       speculative_count;      /* # of pages speculative */
+};
+
+/* Used by all architectures */
+typedef struct vm_statistics    *vm_statistics_t;
+typedef struct vm_statistics    vm_statistics_data_t;
+
+/*
+ * vm_statistics64
+ *
+ * History:
+ *	rev0 -  original structure.
+ *	rev1 -  added purgable info (purgable_count and purges).
+ *	rev2 -  added speculative_count.
+ *	   ----
+ *	rev3 -  changed name to vm_statistics64.
+ *		changed some fields in structure to 64-bit on
+ *		arm, i386 and x86_64 architectures.
+ *	rev4 -  require 64-bit alignment for efficient access
+ *		in the kernel. No change to reported data.
+ *
+ */
+
+struct vm_statistics64 {
+	natural_t       free_count;             /* # of pages free */
+	natural_t       active_count;           /* # of pages active */
+	natural_t       inactive_count;         /* # of pages inactive */
+	natural_t       wire_count;             /* # of pages wired down */
+	uint64_t        zero_fill_count;        /* # of zero fill pages */
+	uint64_t        reactivations;          /* # of pages reactivated */
+	uint64_t        pageins;                /* # of pageins */
+	uint64_t        pageouts;               /* # of pageouts */
+	uint64_t        faults;                 /* # of faults */
+	uint64_t        cow_faults;             /* # of copy-on-writes */
+	uint64_t        lookups;                /* object cache lookups */
+	uint64_t        hits;                   /* object cache hits */
+	uint64_t        purges;                 /* # of pages purged */
+	natural_t       purgeable_count;        /* # of pages purgeable */
+	/*
+	 * NB: speculative pages are already accounted for in "free_count",
+	 * so "speculative_count" is the number of "free" pages that are
+	 * used to hold data that was read speculatively from disk but
+	 * haven't actually been used by anyone so far.
+	 */
+	natural_t       speculative_count;      /* # of pages speculative */
+
+	/* added for rev1 */
+	uint64_t        decompressions;         /* # of pages decompressed */
+	uint64_t        compressions;           /* # of pages compressed */
+	uint64_t        swapins;                /* # of pages swapped in (via compression segments) */
+	uint64_t        swapouts;               /* # of pages swapped out (via compression segments) */
+	natural_t       compressor_page_count;  /* # of pages used by the compressed pager to hold all the compressed data */
+	natural_t       throttled_count;        /* # of pages throttled */
+	natural_t       external_page_count;    /* # of pages that are file-backed (non-swap) */
+	natural_t       internal_page_count;    /* # of pages that are anonymous */
+	uint64_t        total_uncompressed_pages_in_compressor; /* # of pages (uncompressed) held within the compressor. */
+} __attribute__((aligned(8)));
+
+typedef struct vm_statistics64  *vm_statistics64_t;
+typedef struct vm_statistics64  vm_statistics64_data_t;
+
+/*
+ * VM_STATISTICS_TRUNCATE_TO_32_BIT
+ *
+ * This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
+ * vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
+ */
+#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
+
+/*
+ * vm_extmod_statistics
+ *
+ * Structure to record modifications to a task by an
+ * external agent.
+ *
+ * History:
+ *	rev0 -  original structure.
+ */
+
+struct vm_extmod_statistics {
+	int64_t task_for_pid_count;                     /* # of times task port was looked up */
+	int64_t task_for_pid_caller_count;      /* # of times this task called task_for_pid */
+	int64_t thread_creation_count;          /* # of threads created in task */
+	int64_t thread_creation_caller_count;   /* # of threads created by task */
+	int64_t thread_set_state_count;         /* # of register state sets in task */
+	int64_t thread_set_state_caller_count;  /* # of register state sets by task */
+} __attribute__((aligned(8)));
+
+typedef struct vm_extmod_statistics *vm_extmod_statistics_t;
+typedef struct vm_extmod_statistics vm_extmod_statistics_data_t;
+
+typedef struct vm_purgeable_stat {
+	uint64_t        count;
+	uint64_t        size;
+}vm_purgeable_stat_t;
+
+struct vm_purgeable_info {
+	vm_purgeable_stat_t fifo_data[8];
+	vm_purgeable_stat_t obsolete_data;
+	vm_purgeable_stat_t lifo_data[8];
+};
+
+typedef struct vm_purgeable_info        *vm_purgeable_info_t;
+
+/* included for the vm_map_page_query call */
+
+#define VM_PAGE_QUERY_PAGE_PRESENT      0x1
+#define VM_PAGE_QUERY_PAGE_FICTITIOUS   0x2
+#define VM_PAGE_QUERY_PAGE_REF          0x4
+#define VM_PAGE_QUERY_PAGE_DIRTY        0x8
+#define VM_PAGE_QUERY_PAGE_PAGED_OUT    0x10
+#define VM_PAGE_QUERY_PAGE_COPIED       0x20
+#define VM_PAGE_QUERY_PAGE_SPECULATIVE  0x40
+#define VM_PAGE_QUERY_PAGE_EXTERNAL     0x80
+#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
+#define VM_PAGE_QUERY_PAGE_CS_TAINTED   0x200
+#define VM_PAGE_QUERY_PAGE_CS_NX        0x400
+#define VM_PAGE_QUERY_PAGE_REUSABLE     0x800
+
+
+/*
+ * VM allocation flags:
+ *
+ * VM_FLAGS_FIXED
+ *      (really the absence of VM_FLAGS_ANYWHERE)
+ *	Allocate new VM region at the specified virtual address, if possible.
+ *
+ * VM_FLAGS_ANYWHERE
+ *	Allocate new VM region anywhere it would fit in the address space.
+ *
+ * VM_FLAGS_PURGABLE
+ *	Create a purgable VM object for that new VM region.
+ *
+ * VM_FLAGS_4GB_CHUNK
+ *	The new VM region will be chunked up into 4GB sized pieces.
+ *
+ * VM_FLAGS_NO_PMAP_CHECK
+ *	(for DEBUG kernel config only, ignored for other configs)
+ *	Do not check that there is no stale pmap mapping for the new VM region.
+ *	This is useful for kernel memory allocations at bootstrap when building
+ *	the initial kernel address space while some memory is already in use.
+ *
+ * VM_FLAGS_OVERWRITE
+ *	The new VM region can replace existing VM regions if necessary
+ *	(to be used in combination with VM_FLAGS_FIXED).
+ *
+ * VM_FLAGS_NO_CACHE
+ *	Pages brought in to this VM region are placed on the speculative
+ *	queue instead of the active queue.  In other words, they are not
+ *	cached so that they will be stolen first if memory runs low.
+ */
+
+#define VM_FLAGS_FIXED          0x0000
+#define VM_FLAGS_ANYWHERE       0x0001
+#define VM_FLAGS_PURGABLE       0x0002
+#define VM_FLAGS_4GB_CHUNK      0x0004
+#define VM_FLAGS_RANDOM_ADDR    0x0008
+#define VM_FLAGS_NO_CACHE       0x0010
+#define VM_FLAGS_RESILIENT_CODESIGN     0x0020
+#define VM_FLAGS_RESILIENT_MEDIA        0x0040
+#define VM_FLAGS_OVERWRITE      0x4000  /* delete any existing mappings first */
+/*
+ * VM_FLAGS_SUPERPAGE_MASK
+ *	3 bits that specify whether large pages should be used instead of
+ *	base pages (!=0), as well as the requested page size.
+ */
+#define VM_FLAGS_SUPERPAGE_MASK 0x70000 /* bits 0x10000, 0x20000, 0x40000 */
+#define VM_FLAGS_RETURN_DATA_ADDR       0x100000 /* Return address of target data, rather than base of page */
+#define VM_FLAGS_RETURN_4K_DATA_ADDR    0x800000 /* Return 4K aligned address of target data */
+#define VM_FLAGS_ALIAS_MASK     0xFF000000
+#define VM_GET_FLAGS_ALIAS(flags, alias)                        \
+	        (alias) = ((flags) & VM_FLAGS_ALIAS_MASK) >> 24
+#define VM_SET_FLAGS_ALIAS(flags, alias)                        \
+	        (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) |   \
+	        (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
+
+/* These are the flags that we accept from user-space */
+#define VM_FLAGS_USER_ALLOCATE  (VM_FLAGS_FIXED |               \
+	                         VM_FLAGS_ANYWHERE |            \
+	                         VM_FLAGS_PURGABLE |            \
+	                         VM_FLAGS_4GB_CHUNK |           \
+	                         VM_FLAGS_RANDOM_ADDR |         \
+	                         VM_FLAGS_NO_CACHE |            \
+	                         VM_FLAGS_OVERWRITE |           \
+	                         VM_FLAGS_SUPERPAGE_MASK |      \
+	                         VM_FLAGS_ALIAS_MASK)
+#define VM_FLAGS_USER_MAP       (VM_FLAGS_USER_ALLOCATE |       \
+	                         VM_FLAGS_RETURN_4K_DATA_ADDR | \
+	                         VM_FLAGS_RETURN_DATA_ADDR)
+#define VM_FLAGS_USER_REMAP     (VM_FLAGS_FIXED |               \
+	                         VM_FLAGS_ANYWHERE |            \
+	                         VM_FLAGS_RANDOM_ADDR |         \
+	                         VM_FLAGS_OVERWRITE|            \
+	                         VM_FLAGS_RETURN_DATA_ADDR |    \
+	                         VM_FLAGS_RESILIENT_CODESIGN |  \
+	                         VM_FLAGS_RESILIENT_MEDIA)
+
+#define VM_FLAGS_SUPERPAGE_SHIFT 16
+#define SUPERPAGE_NONE                  0       /* no superpages, if all bits are 0 */
+#define SUPERPAGE_SIZE_ANY              1
+#define VM_FLAGS_SUPERPAGE_NONE     (SUPERPAGE_NONE     << VM_FLAGS_SUPERPAGE_SHIFT)
+#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
+#define SUPERPAGE_SIZE_2MB              2
+#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<<VM_FLAGS_SUPERPAGE_SHIFT)
+
+/*
+ * EXC_GUARD definitions for virtual memory.
+ */
+#define GUARD_TYPE_VIRT_MEMORY  0x5
+
+/* Reasons for exception for virtual memory */
+enum virtual_memory_guard_exception_codes {
+	kGUARD_EXC_DEALLOC_GAP  = 1u << 0
+};
+
+
+/* current accounting postmark */
+#define __VM_LEDGER_ACCOUNTING_POSTMARK 2019032600
+
+/* discrete values: */
+#define VM_LEDGER_TAG_NONE      0x00000000
+#define VM_LEDGER_TAG_DEFAULT   0x00000001
+#define VM_LEDGER_TAG_NETWORK   0x00000002
+#define VM_LEDGER_TAG_MEDIA     0x00000003
+#define VM_LEDGER_TAG_GRAPHICS  0x00000004
+#define VM_LEDGER_TAG_NEURAL    0x00000005
+#define VM_LEDGER_TAG_MAX       0x00000005
+/* individual bits: */
+#define VM_LEDGER_FLAG_NO_FOOTPRINT     0x00000001
+#define VM_LEDGER_FLAGS (VM_LEDGER_FLAG_NO_FOOTPRINT)
+
+
+#define VM_MEMORY_MALLOC 1
+#define VM_MEMORY_MALLOC_SMALL 2
+#define VM_MEMORY_MALLOC_LARGE 3
+#define VM_MEMORY_MALLOC_HUGE 4
+#define VM_MEMORY_SBRK 5// uninteresting -- no one should call
+#define VM_MEMORY_REALLOC 6
+#define VM_MEMORY_MALLOC_TINY 7
+#define VM_MEMORY_MALLOC_LARGE_REUSABLE 8
+#define VM_MEMORY_MALLOC_LARGE_REUSED 9
+
+#define VM_MEMORY_ANALYSIS_TOOL 10
+
+#define VM_MEMORY_MALLOC_NANO 11
+#define VM_MEMORY_MALLOC_MEDIUM 12
+
+#define VM_MEMORY_MACH_MSG 20
+#define VM_MEMORY_IOKIT 21
+#define VM_MEMORY_STACK  30
+#define VM_MEMORY_GUARD  31
+#define VM_MEMORY_SHARED_PMAP 32
+/* memory containing a dylib */
+#define VM_MEMORY_DYLIB 33
+#define VM_MEMORY_OBJC_DISPATCHERS 34
+
+/* Was a nested pmap (VM_MEMORY_SHARED_PMAP) which has now been unnested */
+#define VM_MEMORY_UNSHARED_PMAP 35
+
+
+// Placeholders for now -- as we analyze the libraries and find how they
+// use memory, we can make these labels more specific.
+#define VM_MEMORY_APPKIT 40
+#define VM_MEMORY_FOUNDATION 41
+#define VM_MEMORY_COREGRAPHICS 42
+#define VM_MEMORY_CORESERVICES 43
+#define VM_MEMORY_CARBON VM_MEMORY_CORESERVICES
+#define VM_MEMORY_JAVA 44
+#define VM_MEMORY_COREDATA 45
+#define VM_MEMORY_COREDATA_OBJECTIDS 46
+#define VM_MEMORY_ATS 50
+#define VM_MEMORY_LAYERKIT 51
+#define VM_MEMORY_CGIMAGE 52
+#define VM_MEMORY_TCMALLOC 53
+
+/* private raster data (i.e. layers, some images, QGL allocator) */
+#define VM_MEMORY_COREGRAPHICS_DATA     54
+
+/* shared image and font caches */
+#define VM_MEMORY_COREGRAPHICS_SHARED   55
+
+/* Memory used for virtual framebuffers, shadowing buffers, etc... */
+#define VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS     56
+
+/* Window backing stores, custom shadow data, and compressed backing stores */
+#define VM_MEMORY_COREGRAPHICS_BACKINGSTORES    57
+
+/* x-alloc'd memory */
+#define VM_MEMORY_COREGRAPHICS_XALLOC 58
+
+/* catch-all for other uses, such as the read-only shared data page */
+#define VM_MEMORY_COREGRAPHICS_MISC VM_MEMORY_COREGRAPHICS
+
+/* memory allocated by the dynamic loader for itself */
+#define VM_MEMORY_DYLD 60
+/* malloc'd memory created by dyld */
+#define VM_MEMORY_DYLD_MALLOC 61
+
+/* Used for sqlite page cache */
+#define VM_MEMORY_SQLITE 62
+
+/* JavaScriptCore heaps */
+#define VM_MEMORY_JAVASCRIPT_CORE 63
+#define VM_MEMORY_WEBASSEMBLY VM_MEMORY_JAVASCRIPT_CORE
+/* memory allocated for the JIT */
+#define VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR 64
+#define VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE 65
+
+/* memory allocated for GLSL */
+#define VM_MEMORY_GLSL  66
+
+/* memory allocated for OpenCL.framework */
+#define VM_MEMORY_OPENCL    67
+
+/* memory allocated for QuartzCore.framework */
+#define VM_MEMORY_COREIMAGE 68
+
+/* memory allocated for WebCore Purgeable Buffers */
+#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69
+
+/* ImageIO memory */
+#define VM_MEMORY_IMAGEIO       70
+
+/* CoreProfile memory */
+#define VM_MEMORY_COREPROFILE   71
+
+/* assetsd / MobileSlideShow memory */
+#define VM_MEMORY_ASSETSD       72
+
+/* libsystem_kernel os_once_alloc */
+#define VM_MEMORY_OS_ALLOC_ONCE 73
+
+/* libdispatch internal allocator */
+#define VM_MEMORY_LIBDISPATCH 74
+
+/* Accelerate.framework image backing stores */
+#define VM_MEMORY_ACCELERATE 75
+
+/* CoreUI image block data */
+#define VM_MEMORY_COREUI 76
+
+/* CoreUI image file */
+#define VM_MEMORY_COREUIFILE 77
+
+/* Genealogy buffers */
+#define VM_MEMORY_GENEALOGY 78
+
+/* RawCamera VM allocated memory */
+#define VM_MEMORY_RAWCAMERA 79
+
+/* corpse info for dead process */
+#define VM_MEMORY_CORPSEINFO 80
+
+/* Apple System Logger (ASL) messages */
+#define VM_MEMORY_ASL 81
+
+/* Swift runtime */
+#define VM_MEMORY_SWIFT_RUNTIME 82
+
+/* Swift metadata */
+#define VM_MEMORY_SWIFT_METADATA 83
+
+/* DHMM data */
+#define VM_MEMORY_DHMM 84
+
+
+/* memory allocated by SceneKit.framework */
+#define VM_MEMORY_SCENEKIT 86
+
+/* memory allocated by skywalk networking */
+#define VM_MEMORY_SKYWALK 87
+
+#define VM_MEMORY_IOSURFACE 88
+
+#define VM_MEMORY_LIBNETWORK 89
+
+#define VM_MEMORY_AUDIO 90
+
+#define VM_MEMORY_VIDEOBITSTREAM 91
+
+/* memory allocated by CoreMedia */
+#define VM_MEMORY_CM_XPC 92
+
+#define VM_MEMORY_CM_RPC 93
+
+#define VM_MEMORY_CM_MEMORYPOOL 94
+
+#define VM_MEMORY_CM_READCACHE 95
+
+#define VM_MEMORY_CM_CRABS 96
+
+/* memory allocated for QuickLookThumbnailing */
+#define VM_MEMORY_QUICKLOOK_THUMBNAILS 97
+
+/* memory allocated by Accounts framework */
+#define VM_MEMORY_ACCOUNTS 98
+
+/* memory allocated by Sanitizer runtime libraries */
+#define VM_MEMORY_SANITIZER 99
+
+/* Differentiate memory needed by GPU drivers and frameworks from generic IOKit allocations */
+#define VM_MEMORY_IOACCELERATOR 100
+
+/* memory allocated by CoreMedia for global image registration of frames */
+#define VM_MEMORY_CM_REGWARP 101
+
+/* Reserve 240-255 for application */
+#define VM_MEMORY_APPLICATION_SPECIFIC_1 240
+#define VM_MEMORY_APPLICATION_SPECIFIC_16 255
+
+#define VM_MAKE_TAG(tag) ((tag) << 24)
+
+
+
+#endif  /* _MACH_VM_STATISTICS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_sync.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ *	File:	mach/vm_sync.h
+ *
+ *	Virtual memory synchronisation definitions.
+ *
+ */
+
+#ifndef _MACH_VM_SYNC_H_
+#define _MACH_VM_SYNC_H_
+
+typedef unsigned                vm_sync_t;
+
+/*
+ *	Synchronization flags, defined as bits within the vm_sync_t type
+ */
+
+#define VM_SYNC_ASYNCHRONOUS    ((vm_sync_t) 0x01)
+#define VM_SYNC_SYNCHRONOUS     ((vm_sync_t) 0x02)
+#define VM_SYNC_INVALIDATE      ((vm_sync_t) 0x04)
+#define VM_SYNC_KILLPAGES       ((vm_sync_t) 0x08)
+#define VM_SYNC_DEACTIVATE      ((vm_sync_t) 0x10)
+#define VM_SYNC_CONTIGUOUS      ((vm_sync_t) 0x20)
+#define VM_SYNC_REUSABLEPAGES   ((vm_sync_t) 0x40)
+
+#endif  /* _MACH_VM_SYNC_H_ */
lib/libc/include/x86_64-macos-gnu/mach/vm_types.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ *
+ */
+#ifndef _MACH_VM_TYPES_H_
+#define _MACH_VM_TYPES_H_
+
+#include <mach/port.h>
+#include <mach/machine/vm_types.h>
+
+#include <stdint.h>
+
+typedef vm_offset_t             pointer_t;
+typedef vm_offset_t             vm_address_t;
+
+/*
+ * We use addr64_t for 64-bit addresses that are used on both
+ * 32 and 64-bit machines.  On PPC, they are passed and returned as
+ * two adjacent 32-bit GPRs.  We use addr64_t in places where
+ * common code must be useable both on 32 and 64-bit machines.
+ */
+typedef uint64_t addr64_t;              /* Basic effective address */
+
+/*
+ * We use reg64_t for addresses that are 32 bits on a 32-bit
+ * machine, and 64 bits on a 64-bit machine, but are always
+ * passed and returned in a single GPR on PPC.  This type
+ * cannot be used in generic 32-bit c, since on a 64-bit
+ * machine the upper half of the register will be ignored
+ * by the c compiler in 32-bit mode.  In c, we can only use the
+ * type in prototypes of functions that are written in and called
+ * from assembly language.  This type is basically a comment.
+ */
+typedef uint32_t        reg64_t;
+
+/*
+ * To minimize the use of 64-bit fields, we keep some physical
+ * addresses (that are page aligned) as 32-bit page numbers.
+ * This limits the physical address space to 16TB of RAM.
+ */
+typedef uint32_t ppnum_t;               /* Physical page number */
+#define PPNUM_MAX UINT32_MAX
+
+
+
+typedef mach_port_t             vm_map_t;
+
+
+#define VM_MAP_NULL             ((vm_map_t) 0)
+
+/*
+ * Evolving definitions, likely to change.
+ */
+
+typedef uint64_t                vm_object_offset_t;
+typedef uint64_t                vm_object_size_t;
+
+
+
+
+typedef mach_port_t             upl_t;
+typedef mach_port_t             vm_named_entry_t;
+
+
+#define UPL_NULL                ((upl_t) 0)
+#define VM_NAMED_ENTRY_NULL     ((vm_named_entry_t) 0)
+
+#endif  /* _MACH_VM_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/hash_info.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_DEBUG_HASH_INFO_H_
+#define _MACH_DEBUG_HASH_INFO_H_
+
+#include <mach/machine/vm_types.h> /* natural_t */
+
+/*
+ *	Remember to update the mig type definitions
+ *	in mach_debug_types.defs when adding/removing fields.
+ */
+
+typedef struct hash_info_bucket {
+	natural_t       hib_count;      /* number of records in bucket */
+} hash_info_bucket_t;
+
+typedef hash_info_bucket_t *hash_info_bucket_array_t;
+
+#endif  /* _MACH_DEBUG_HASH_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/ipc_info.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach_debug/ipc_info.h
+ *	Author:	Rich Draves
+ *	Date:	March, 1990
+ *
+ *	Definitions for the IPC debugging interface.
+ */
+
+#ifndef _MACH_DEBUG_IPC_INFO_H_
+#define _MACH_DEBUG_IPC_INFO_H_
+
+#include <mach/boolean.h>
+#include <mach/port.h>
+#include <mach/machine/vm_types.h>
+
+/*
+ *	Remember to update the mig type definitions
+ *	in mach_debug_types.defs when adding/removing fields.
+ */
+
+typedef struct ipc_info_space {
+	natural_t iis_genno_mask;       /* generation number mask */
+	natural_t iis_table_size;       /* size of table */
+	natural_t iis_table_next;       /* next possible size of table */
+	natural_t iis_tree_size;        /* size of tree (UNUSED) */
+	natural_t iis_tree_small;       /* # of small entries in tree (UNUSED) */
+	natural_t iis_tree_hash;        /* # of hashed entries in tree (UNUSED) */
+} ipc_info_space_t;
+
+typedef struct ipc_info_space_basic {
+	natural_t iisb_genno_mask;      /* generation number mask */
+	natural_t iisb_table_size;      /* size of table */
+	natural_t iisb_table_next;      /* next possible size of table */
+	natural_t iisb_table_inuse;     /* number of entries in use */
+	natural_t iisb_reserved[2];     /* future expansion */
+} ipc_info_space_basic_t;
+
+typedef struct ipc_info_name {
+	mach_port_name_t iin_name;              /* port name, including gen number */
+/*boolean_t*/ integer_t iin_collision;   /* collision at this entry? */
+	mach_port_type_t iin_type;      /* straight port type */
+	mach_port_urefs_t iin_urefs;    /* user-references */
+	natural_t iin_object;           /* object pointer/identifier */
+	natural_t iin_next;             /* marequest/next in free list */
+	natural_t iin_hash;             /* hash index */
+} ipc_info_name_t;
+
+typedef ipc_info_name_t *ipc_info_name_array_t;
+
+/* UNUSED */
+typedef struct ipc_info_tree_name {
+	ipc_info_name_t iitn_name;
+	mach_port_name_t iitn_lchild;   /* name of left child */
+	mach_port_name_t iitn_rchild;   /* name of right child */
+} ipc_info_tree_name_t;
+
+typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t;
+
+#endif  /* _MACH_DEBUG_IPC_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/lockgroup_info.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ *	File:	mach/lockgroup_info.h
+ *
+ *	Definitions for host_lockgroup_info call.
+ */
+
+#ifndef _MACH_DEBUG_LOCKGROUP_INFO_H_
+#define _MACH_DEBUG_LOCKGROUP_INFO_H_
+
+#include <mach/mach_types.h>
+
+#define LOCKGROUP_MAX_NAME      64
+
+#define LOCKGROUP_ATTR_STAT     0x01ULL
+
+typedef struct lockgroup_info {
+	char            lockgroup_name[LOCKGROUP_MAX_NAME];
+	uint64_t        lockgroup_attr;
+	uint64_t        lock_spin_cnt;
+	uint64_t        lock_spin_util_cnt;
+	uint64_t        lock_spin_held_cnt;
+	uint64_t        lock_spin_miss_cnt;
+	uint64_t        lock_spin_held_max;
+	uint64_t        lock_spin_held_cum;
+	uint64_t        lock_mtx_cnt;
+	uint64_t        lock_mtx_util_cnt;
+	uint64_t        lock_mtx_held_cnt;
+	uint64_t        lock_mtx_miss_cnt;
+	uint64_t        lock_mtx_wait_cnt;
+	uint64_t        lock_mtx_held_max;
+	uint64_t        lock_mtx_held_cum;
+	uint64_t        lock_mtx_wait_max;
+	uint64_t        lock_mtx_wait_cum;
+	uint64_t        lock_rw_cnt;
+	uint64_t        lock_rw_util_cnt;
+	uint64_t        lock_rw_held_cnt;
+	uint64_t        lock_rw_miss_cnt;
+	uint64_t        lock_rw_wait_cnt;
+	uint64_t        lock_rw_held_max;
+	uint64_t        lock_rw_held_cum;
+	uint64_t        lock_rw_wait_max;
+	uint64_t        lock_rw_wait_cum;
+} lockgroup_info_t;
+
+typedef lockgroup_info_t *lockgroup_info_array_t;
+
+#endif  /* _MACH_DEBUG_LOCKGROUP_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/mach_debug_types.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	Mach kernel debugging interface type declarations
+ */
+
+#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_H_
+#define _MACH_DEBUG_MACH_DEBUG_TYPES_H_
+
+#include <mach_debug/ipc_info.h>
+#include <mach_debug/vm_info.h>
+#include <mach_debug/zone_info.h>
+#include <mach_debug/page_info.h>
+#include <mach_debug/hash_info.h>
+#include <mach_debug/lockgroup_info.h>
+
+#define MACH_CORE_FILEHEADER_SIGNATURE  0x0063614d20646152ULL
+#define MACH_CORE_FILEHEADER_MAXFILES 16
+#define MACH_CORE_FILEHEADER_NAMELEN 16
+
+typedef char    symtab_name_t[32];
+
+struct mach_core_details {
+	uint64_t gzip_offset;
+	uint64_t gzip_length;
+	char core_name[MACH_CORE_FILEHEADER_NAMELEN];
+};
+
+struct mach_core_fileheader {
+	uint64_t signature;
+	uint64_t log_offset;
+	uint64_t log_length;
+	uint64_t num_files;
+	struct mach_core_details files[MACH_CORE_FILEHEADER_MAXFILES];
+};
+
+#define KOBJECT_DESCRIPTION_LENGTH      512
+typedef char kobject_description_t[KOBJECT_DESCRIPTION_LENGTH];
+
+#endif  /* _MACH_DEBUG_MACH_DEBUG_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/page_info.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+#ifndef MACH_DEBUG_PAGE_INFO_H
+#define MACH_DEBUG_PAGE_INFO_H
+
+#include <mach/machine/vm_types.h>
+
+typedef vm_offset_t     *page_address_array_t;
+#endif  /* MACH_DEBUG_PAGE_INFO_H */
lib/libc/include/x86_64-macos-gnu/mach_debug/vm_info.h
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ *	File:	mach_debug/vm_info.h
+ *	Author:	Rich Draves
+ *	Date:	March, 1990
+ *
+ *	Definitions for the VM debugging interface.
+ */
+
+#ifndef _MACH_DEBUG_VM_INFO_H_
+#define _MACH_DEBUG_VM_INFO_H_
+
+#include <mach/boolean.h>
+#include <mach/machine/vm_types.h>
+#include <mach/vm_inherit.h>
+#include <mach/vm_prot.h>
+#include <mach/memory_object_types.h>
+
+#pragma pack(4)
+
+/*
+ *	Remember to update the mig type definitions
+ *	in mach_debug_types.defs when adding/removing fields.
+ */
+typedef struct mach_vm_info_region {
+	mach_vm_offset_t vir_start;     /* start of region */
+	mach_vm_offset_t vir_end;       /* end of region */
+	mach_vm_offset_t vir_object;    /* the mapped object(kernal addr) */
+	memory_object_offset_t vir_offset;      /* offset into object */
+	boolean_t vir_needs_copy;       /* does object need to be copied? */
+	vm_prot_t vir_protection;       /* protection code */
+	vm_prot_t vir_max_protection;   /* maximum protection */
+	vm_inherit_t vir_inheritance;   /* inheritance */
+	natural_t vir_wired_count;      /* number of times wired */
+	natural_t vir_user_wired_count; /* number of times user has wired */
+} mach_vm_info_region_t;
+
+typedef struct vm_info_region_64 {
+	natural_t vir_start;            /* start of region */
+	natural_t vir_end;              /* end of region */
+	natural_t vir_object;           /* the mapped object */
+	memory_object_offset_t vir_offset;      /* offset into object */
+	boolean_t vir_needs_copy;       /* does object need to be copied? */
+	vm_prot_t vir_protection;       /* protection code */
+	vm_prot_t vir_max_protection;   /* maximum protection */
+	vm_inherit_t vir_inheritance;   /* inheritance */
+	natural_t vir_wired_count;      /* number of times wired */
+	natural_t vir_user_wired_count; /* number of times user has wired */
+} vm_info_region_64_t;
+
+typedef struct vm_info_region {
+	natural_t vir_start;            /* start of region */
+	natural_t vir_end;              /* end of region */
+	natural_t vir_object;           /* the mapped object */
+	natural_t vir_offset;           /* offset into object */
+	boolean_t vir_needs_copy;       /* does object need to be copied? */
+	vm_prot_t vir_protection;       /* protection code */
+	vm_prot_t vir_max_protection;   /* maximum protection */
+	vm_inherit_t vir_inheritance;   /* inheritance */
+	natural_t vir_wired_count;      /* number of times wired */
+	natural_t vir_user_wired_count; /* number of times user has wired */
+} vm_info_region_t;
+
+
+typedef struct vm_info_object {
+	natural_t vio_object;           /* this object */
+	natural_t vio_size;             /* object size (valid if internal - but too small) */
+	unsigned int vio_ref_count;     /* number of references */
+	unsigned int vio_resident_page_count; /* number of resident pages */
+	unsigned int vio_absent_count;  /* number requested but not filled */
+	natural_t vio_copy;             /* copy object */
+	natural_t vio_shadow;           /* shadow object */
+	natural_t vio_shadow_offset;    /* offset into shadow object */
+	natural_t vio_paging_offset;    /* offset into memory object */
+	memory_object_copy_strategy_t vio_copy_strategy;
+	/* how to handle data copy */
+	vm_offset_t vio_last_alloc;     /* offset of last allocation */
+	/* many random attributes */
+	unsigned int vio_paging_in_progress;
+	boolean_t vio_pager_created;
+	boolean_t vio_pager_initialized;
+	boolean_t vio_pager_ready;
+	boolean_t vio_can_persist;
+	boolean_t vio_internal;
+	boolean_t vio_temporary;
+	boolean_t vio_alive;
+	boolean_t vio_purgable;
+	boolean_t vio_purgable_volatile;
+} vm_info_object_t;
+
+typedef vm_info_object_t *vm_info_object_array_t;
+
+#pragma pack()
+
+#endif  /* _MACH_DEBUG_VM_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/mach_debug/zone_info.h
@@ -0,0 +1,201 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_DEBUG_ZONE_INFO_H_
+#define _MACH_DEBUG_ZONE_INFO_H_
+
+#include <mach/boolean.h>
+#include <mach/machine/vm_types.h>
+
+/*
+ *	Legacy definitions for host_zone_info().  This interface, and
+ *	these definitions have been deprecated in favor of the new
+ *	mach_zone_info() inteface and types below.
+ */
+
+#define ZONE_NAME_MAX_LEN               80
+
+typedef struct zone_name {
+	char            zn_name[ZONE_NAME_MAX_LEN];
+} zone_name_t;
+
+typedef zone_name_t *zone_name_array_t;
+
+
+typedef struct zone_info {
+	integer_t       zi_count;       /* Number of elements used now */
+	vm_size_t       zi_cur_size;    /* current memory utilization */
+	vm_size_t       zi_max_size;    /* how large can this zone grow */
+	vm_size_t       zi_elem_size;   /* size of an element */
+	vm_size_t       zi_alloc_size;  /* size used for more memory */
+	integer_t       zi_pageable;    /* zone pageable? */
+	integer_t       zi_sleepable;   /* sleep if empty? */
+	integer_t       zi_exhaustible; /* merely return if empty? */
+	integer_t       zi_collectable; /* garbage collect elements? */
+} zone_info_t;
+
+typedef zone_info_t *zone_info_array_t;
+
+
+/*
+ *	Remember to update the mig type definitions
+ *	in mach_debug_types.defs when adding/removing fields.
+ */
+
+#define MACH_ZONE_NAME_MAX_LEN          80
+
+typedef struct mach_zone_name {
+	char            mzn_name[ZONE_NAME_MAX_LEN];
+} mach_zone_name_t;
+
+typedef mach_zone_name_t *mach_zone_name_array_t;
+
+typedef struct mach_zone_info_data {
+	uint64_t        mzi_count;      /* count of elements in use */
+	uint64_t        mzi_cur_size;   /* current memory utilization */
+	uint64_t        mzi_max_size;   /* how large can this zone grow */
+	uint64_t        mzi_elem_size;  /* size of an element */
+	uint64_t        mzi_alloc_size; /* size used for more memory */
+	uint64_t        mzi_sum_size;   /* sum of all allocs (life of zone) */
+	uint64_t        mzi_exhaustible;        /* merely return if empty? */
+	uint64_t        mzi_collectable;        /* garbage collect elements? and how much? */
+} mach_zone_info_t;
+
+typedef mach_zone_info_t *mach_zone_info_array_t;
+
+/*
+ * The lowest bit of mzi_collectable indicates whether or not the zone
+ * is collectable by zone_gc(). The higher bits contain the size in bytes
+ * that can be collected.
+ */
+#define GET_MZI_COLLECTABLE_BYTES(val)  ((val) >> 1)
+#define GET_MZI_COLLECTABLE_FLAG(val)   ((val) & 1)
+
+#define SET_MZI_COLLECTABLE_BYTES(val, size)    \
+	(val) = ((val) & 1) | ((size) << 1)
+#define SET_MZI_COLLECTABLE_FLAG(val, flag)             \
+	(val) = (flag) ? ((val) | 1) : (val)
+
+typedef struct task_zone_info_data {
+	uint64_t        tzi_count;      /* count of elements in use */
+	uint64_t        tzi_cur_size;   /* current memory utilization */
+	uint64_t        tzi_max_size;   /* how large can this zone grow */
+	uint64_t        tzi_elem_size;  /* size of an element */
+	uint64_t        tzi_alloc_size; /* size used for more memory */
+	uint64_t        tzi_sum_size;   /* sum of all allocs (life of zone) */
+	uint64_t        tzi_exhaustible;        /* merely return if empty? */
+	uint64_t        tzi_collectable;        /* garbage collect elements? */
+	uint64_t        tzi_caller_acct;        /* charged to caller (or kernel) */
+	uint64_t        tzi_task_alloc; /* sum of all allocs by this task */
+	uint64_t        tzi_task_free;  /* sum of all frees by this task */
+} task_zone_info_t;
+
+typedef task_zone_info_t *task_zone_info_array_t;
+
+#define MACH_MEMORY_INFO_NAME_MAX_LEN   80
+
+typedef struct mach_memory_info {
+	uint64_t flags;
+	uint64_t site;
+	uint64_t size;
+	uint64_t free;
+	uint64_t largest;
+	uint64_t collectable_bytes;
+	uint64_t mapped;
+	uint64_t peak;
+	uint16_t tag;
+	uint16_t zone;
+	uint16_t _resvA[2];
+	uint64_t _resv[3];
+	char     name[MACH_MEMORY_INFO_NAME_MAX_LEN];
+} mach_memory_info_t;
+
+typedef mach_memory_info_t *mach_memory_info_array_t;
+
+/*
+ * MAX_ZTRACE_DEPTH configures how deep of a stack trace is taken on each zalloc in the zone of interest.  15
+ * levels is usually enough to get past all the layers of code in kalloc and IOKit and see who the actual
+ * caller is up above these lower levels.
+ *
+ * This is used both for the zone leak detector and the zone corruption log. Make sure this isn't greater than
+ * BTLOG_MAX_DEPTH defined in btlog.h. Also make sure to update the definition of zone_btrecord_t in
+ * mach_debug_types.defs if this changes.
+ */
+
+#define MAX_ZTRACE_DEPTH        15
+
+/*
+ * Opcodes for the btlog operation field:
+ */
+
+#define ZOP_ALLOC       1
+#define ZOP_FREE        0
+
+/*
+ * Structure used to copy out btlog records to userspace, via the MIG call
+ * mach_zone_get_btlog_records().
+ */
+typedef struct zone_btrecord {
+	uint32_t    ref_count;                                  /* no. of active references on the record */
+	uint32_t        operation_type;                         /* operation type (alloc/free) */
+	uint64_t        bt[MAX_ZTRACE_DEPTH];           /* backtrace */
+} zone_btrecord_t;
+
+typedef zone_btrecord_t *zone_btrecord_array_t;
+
+#endif  /* _MACH_DEBUG_ZONE_INFO_H_ */
lib/libc/include/x86_64-macos-gnu/os/availability.h
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2008-2017 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+ 
+#ifndef __OS_AVAILABILITY__
+#define __OS_AVAILABILITY__
+
+/* 
+ * API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated 
+ * in an upcoming release. This soft deprecation is an intermediate step before formal 
+ * deprecation to notify developers about the API before compiler warnings are generated.
+ * You can find all places in your code that use soft deprecated API by redefining the 
+ * value of this macro to your current minimum deployment target, for example:
+ * (macOS)
+ *   clang -DAPI_TO_BE_DEPRECATED=10.12 <other compiler flags>
+ * (iOS)
+ *   clang -DAPI_TO_BE_DEPRECATED=11.0 <other compiler flags>
+ */
+ 
+#ifndef API_TO_BE_DEPRECATED
+#define API_TO_BE_DEPRECATED 100000
+#endif
+
+#include <AvailabilityInternal.h>
+
+
+
+#if defined(__has_feature) && defined(__has_attribute)
+ #if __has_attribute(availability)
+
+    /*
+     * API Introductions
+     *
+     * Use to specify the release that a particular API became available.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *    API_AVAILABLE(macos(10.10))
+     *    API_AVAILABLE(macos(10.9), ios(10.0))
+     *    API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))
+     */
+
+    #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)
+
+    #define API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define API_AVAILABLE_END _Pragma("clang attribute pop")
+
+    /*
+     * API Deprecations
+     *
+     * Use to specify the release that a particular API became unavailable.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *
+     *    API_DEPRECATED("No longer supported", macos(10.4, 10.8))
+     *    API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
+     *
+     *    API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0))
+     *    API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0))
+     */
+
+    #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7, __API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7, __API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)
+
+    #define API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_END _Pragma("clang attribute pop")
+
+    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop")
+
+
+    /*
+     * API Unavailability
+     * Use to specify that an API is unavailable for a particular platform.
+     *
+     * Example:
+     *    API_UNAVAILABLE(macos)
+     *    API_UNAVAILABLE(watchos, tvos)
+     */
+
+    #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6, __API_UNAVAILABLE5, __API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)
+
+    #define API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define API_UNAVAILABLE_END _Pragma("clang attribute pop")
+ #else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support availability.
+     */
+   
+     #define API_AVAILABLE(...)
+     #define API_AVAILABLE_BEGIN(...)
+     #define API_AVAILABLE_END
+     #define API_DEPRECATED(...)
+     #define API_DEPRECATED_WITH_REPLACEMENT(...)
+     #define API_DEPRECATED_BEGIN(...)
+     #define API_DEPRECATED_END
+     #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+     #define API_DEPRECATED_WITH_REPLACEMENT_END
+     #define API_UNAVAILABLE(...)
+     #define API_UNAVAILABLE_BEGIN(...)
+     #define API_UNAVAILABLE_END
+ #endif /* __has_attribute(availability) */
+#else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support clang language extensions.
+     */
+
+    #define API_AVAILABLE(...)
+    #define API_AVAILABLE_BEGIN(...)
+    #define API_AVAILABLE_END
+    #define API_DEPRECATED(...)
+    #define API_DEPRECATED_WITH_REPLACEMENT(...)
+    #define API_DEPRECATED_BEGIN(...)
+    #define API_DEPRECATED_END
+    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+    #define API_DEPRECATED_WITH_REPLACEMENT_END
+    #define API_UNAVAILABLE(...)
+    #define API_UNAVAILABLE_BEGIN(...)
+    #define API_UNAVAILABLE_END
+#endif /* #if defined(__has_feature) && defined(__has_attribute) */
+
+#if __has_include(<AvailabilityProhibitedInternal.h>)
+  #include <AvailabilityProhibitedInternal.h>
+#endif
+
+/*
+ * If SPI decorations have not been defined elsewhere, disable them.
+ */
+
+#ifndef SPI_AVAILABLE
+  #define SPI_AVAILABLE(...)
+#endif
+
+#ifndef SPI_DEPRECATED
+  #define SPI_DEPRECATED(...)
+#endif
+
+#ifndef SPI_DEPRECATED_WITH_REPLACEMENT
+  #define SPI_DEPRECATED_WITH_REPLACEMENT(...)
+#endif
+
+#endif /* __OS_AVAILABILITY__ */
lib/libc/include/x86_64-macos-gnu/os/base.h
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_BASE__
+#define __OS_BASE__
+
+#include <sys/cdefs.h>
+
+#ifndef __has_builtin
+#define __has_builtin(x) 0
+#endif
+#ifndef __has_include
+#define __has_include(x) 0
+#endif
+#ifndef __has_feature
+#define __has_feature(x) 0
+#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+#ifndef __has_extension
+#define __has_extension(x) 0
+#endif
+
+#undef OS_INLINE // <sys/_types/_os_inline.h>
+#if __GNUC__
+#define OS_NORETURN __attribute__((__noreturn__))
+#define OS_NOTHROW __attribute__((__nothrow__))
+#define OS_NONNULL1 __attribute__((__nonnull__(1)))
+#define OS_NONNULL2 __attribute__((__nonnull__(2)))
+#define OS_NONNULL3 __attribute__((__nonnull__(3)))
+#define OS_NONNULL4 __attribute__((__nonnull__(4)))
+#define OS_NONNULL5 __attribute__((__nonnull__(5)))
+#define OS_NONNULL6 __attribute__((__nonnull__(6)))
+#define OS_NONNULL7 __attribute__((__nonnull__(7)))
+#define OS_NONNULL8 __attribute__((__nonnull__(8)))
+#define OS_NONNULL9 __attribute__((__nonnull__(9)))
+#define OS_NONNULL10 __attribute__((__nonnull__(10)))
+#define OS_NONNULL11 __attribute__((__nonnull__(11)))
+#define OS_NONNULL12 __attribute__((__nonnull__(12)))
+#define OS_NONNULL13 __attribute__((__nonnull__(13)))
+#define OS_NONNULL14 __attribute__((__nonnull__(14)))
+#define OS_NONNULL15 __attribute__((__nonnull__(15)))
+#define OS_NONNULL_ALL __attribute__((__nonnull__))
+#define OS_SENTINEL __attribute__((__sentinel__))
+#define OS_PURE __attribute__((__pure__))
+#define OS_CONST __attribute__((__const__))
+#define OS_WARN_RESULT __attribute__((__warn_unused_result__))
+#define OS_MALLOC __attribute__((__malloc__))
+#define OS_USED __attribute__((__used__))
+#define OS_UNUSED __attribute__((__unused__))
+#define OS_COLD __attribute__((__cold__))
+#define OS_WEAK __attribute__((__weak__))
+#define OS_WEAK_IMPORT __attribute__((__weak_import__))
+#define OS_NOINLINE __attribute__((__noinline__))
+#define OS_ALWAYS_INLINE __attribute__((__always_inline__))
+#define OS_TRANSPARENT_UNION __attribute__((__transparent_union__))
+#define OS_ALIGNED(n) __attribute__((__aligned__((n))))
+#define OS_FORMAT_PRINTF(x,y) __attribute__((__format__(printf,x,y)))
+#define OS_EXPORT extern __attribute__((__visibility__("default")))
+#define OS_INLINE static __inline__
+#define OS_EXPECT(x, v) __builtin_expect((x), (v))
+#else
+#define OS_NORETURN
+#define OS_NOTHROW
+#define OS_NONNULL1
+#define OS_NONNULL2
+#define OS_NONNULL3
+#define OS_NONNULL4
+#define OS_NONNULL5
+#define OS_NONNULL6
+#define OS_NONNULL7
+#define OS_NONNULL8
+#define OS_NONNULL9
+#define OS_NONNULL10
+#define OS_NONNULL11
+#define OS_NONNULL12
+#define OS_NONNULL13
+#define OS_NONNULL14
+#define OS_NONNULL15
+#define OS_NONNULL_ALL
+#define OS_SENTINEL
+#define OS_PURE
+#define OS_CONST
+#define OS_WARN_RESULT
+#define OS_MALLOC
+#define OS_USED
+#define OS_UNUSED
+#define OS_COLD
+#define OS_WEAK
+#define OS_WEAK_IMPORT
+#define OS_NOINLINE
+#define OS_ALWAYS_INLINE
+#define OS_TRANSPARENT_UNION
+#define OS_ALIGNED(n)
+#define OS_FORMAT_PRINTF(x,y)
+#define OS_EXPORT extern
+#define OS_INLINE static inline
+#define OS_EXPECT(x, v) (x)
+#endif
+
+#if __has_attribute(noescape)
+#define OS_NOESCAPE __attribute__((__noescape__))
+#else
+#define OS_NOESCAPE
+#endif
+
+#if defined(__cplusplus) && defined(__clang__)
+#define OS_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define OS_FALLTHROUGH
+#endif
+
+#if __has_feature(assume_nonnull)
+#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define OS_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define OS_ASSUME_NONNULL_BEGIN
+#define OS_ASSUME_NONNULL_END
+#endif
+
+#if __has_builtin(__builtin_assume)
+#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
+#else
+#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr))
+#endif
+
+#if __has_extension(attribute_overloadable)
+#define OS_OVERLOADABLE __attribute__((__overloadable__))
+#else
+#define OS_OVERLOADABLE
+#endif
+
+#if __has_attribute(enum_extensibility)
+#define __OS_ENUM_ATTR __attribute__((enum_extensibility(open)))
+#define __OS_ENUM_ATTR_CLOSED __attribute__((enum_extensibility(closed)))
+#else
+#define __OS_ENUM_ATTR
+#define __OS_ENUM_ATTR_CLOSED
+#endif // __has_attribute(enum_extensibility)
+
+#if __has_attribute(flag_enum)
+/*!
+ * Compile with -Wflag-enum and -Wassign-enum to enforce at definition and
+ * assignment, respectively, i.e. -Wflag-enum prevents you from creating new
+ * enumeration values from illegal values within the enum definition, and
+ * -Wassign-enum prevents you from assigning illegal values to a variable of the
+ * enum type.
+ */
+#ifndef __OPEN_SOURCE__
+/*!
+ * @internal
+ * <rdar://problem/37799789>
+ */
+#endif // __OPEN_SOURCE__
+#define __OS_OPTIONS_ATTR __attribute__((flag_enum))
+#else
+#define __OS_OPTIONS_ATTR
+#endif // __has_attribute(flag_enum)
+
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
+		__has_extension(cxx_strong_enums)
+#define OS_ENUM(_name, _type, ...) \
+		typedef enum : _type { __VA_ARGS__ } _name##_t
+#define OS_CLOSED_ENUM(_name, _type, ...) \
+		typedef enum : _type { __VA_ARGS__ } \
+			__OS_ENUM_ATTR_CLOSED _name##_t
+#define OS_OPTIONS(_name, _type, ...) \
+		typedef enum : _type { __VA_ARGS__ } \
+			__OS_ENUM_ATTR __OS_OPTIONS_ATTR _name##_t
+#define OS_CLOSED_OPTIONS(_name, _type, ...) \
+		typedef enum : _type { __VA_ARGS__ } \
+			__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR _name##_t
+#else
+/*!
+ * There is unfortunately no good way in plain C to have both fixed-type enums
+ * and enforcement for clang's enum_extensibility extensions. The primary goal
+ * of these macros is to allow you to define an enum and specify its width in a
+ * single statement, and for plain C that is accomplished by defining an
+ * anonymous enum and then separately typedef'ing the requested type name to the
+ * requested underlying integer type. So the type emitted actually has no
+ * relationship at all to the enum, and therefore while the compiler could
+ * enforce enum extensibility if you used the enum type, it cannot do so if you
+ * use the "_t" type resulting from this expression.
+ *
+ * But we still define a named enum type and decorate it appropriately for you,
+ * so if you really want the enum extensibility enforcement, you can use the
+ * enum type yourself, i.e. when compiling with a C compiler:
+ *
+ *     OS_CLOSED_ENUM(my_type, uint64_t,
+ *         FOO,
+ *         BAR,
+ *         BAZ,
+ *     );
+ *
+ *     my_type_t mt = 98; // legal
+ *     enum my_type emt = 98; // illegal
+ *
+ * But be aware that the underlying enum type's width is subject only to the C
+ * language's guarantees -- namely that it will be compatible with int, char,
+ * and unsigned char. It is not safe to rely on the size of this type.
+ *
+ * When compiling in ObjC or C++, both of the above assignments are illegal.
+ */
+#define __OS_ENUM_C_FALLBACK(_name, _type, ...) \
+		typedef _type _name##_t; enum _name { __VA_ARGS__ }
+
+#define OS_ENUM(_name, _type, ...) \
+		typedef _type _name##_t; enum { __VA_ARGS__ }
+#define OS_CLOSED_ENUM(_name, _type, ...) \
+		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+		__OS_ENUM_ATTR_CLOSED
+#define OS_OPTIONS(_name, _type, ...) \
+		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+		__OS_ENUM_ATTR __OS_OPTIONS_ATTR
+#define OS_CLOSED_OPTIONS(_name, _type, ...) \
+		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+		__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR
+#endif // __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
+
+#if __has_feature(attribute_availability_swift)
+// equivalent to __SWIFT_UNAVAILABLE from Availability.h
+#define OS_SWIFT_UNAVAILABLE(_msg) \
+		__attribute__((__availability__(swift, unavailable, message=_msg)))
+#else
+#define OS_SWIFT_UNAVAILABLE(_msg)
+#endif
+
+#if __has_attribute(swift_private)
+# define OS_REFINED_FOR_SWIFT __attribute__((__swift_private__))
+#else
+# define OS_REFINED_FOR_SWIFT
+#endif
+
+#if __has_attribute(swift_name)
+# define OS_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
+#else
+# define OS_SWIFT_NAME(_name)
+#endif
+
+#define __OS_STRINGIFY(s) #s
+#define OS_STRINGIFY(s) __OS_STRINGIFY(s)
+#define __OS_CONCAT(x, y) x ## y
+#define OS_CONCAT(x, y) __OS_CONCAT(x, y)
+
+#ifdef __GNUC__
+#define os_prevent_tail_call_optimization()  __asm__("")
+#define os_is_compile_time_constant(expr)  __builtin_constant_p(expr)
+#define os_compiler_barrier()  __asm__ __volatile__("" ::: "memory")
+#else
+#define os_prevent_tail_call_optimization()  do { } while (0)
+#define os_is_compile_time_constant(expr)  0
+#define os_compiler_barrier()  do { } while (0)
+#endif
+
+#if __has_attribute(not_tail_called)
+#define OS_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
+#else
+#define OS_NOT_TAIL_CALLED
+#endif
+
+typedef void (*os_function_t)(void *_Nullable);
+
+#ifdef __BLOCKS__
+/*!
+ * @typedef os_block_t
+ *
+ * @abstract
+ * Generic type for a block taking no arguments and returning no value.
+ *
+ * @discussion
+ * When not building with Objective-C ARC, a block object allocated on or
+ * copied to the heap must be released with a -[release] message or the
+ * Block_release() function.
+ *
+ * The declaration of a block literal allocates storage on the stack.
+ * Therefore, this is an invalid construct:
+ * <code>
+ * os_block_t block;
+ * if (x) {
+ *     block = ^{ printf("true\n"); };
+ * } else {
+ *     block = ^{ printf("false\n"); };
+ * }
+ * block(); // unsafe!!!
+ * </code>
+ *
+ * What is happening behind the scenes:
+ * <code>
+ * if (x) {
+ *     struct Block __tmp_1 = ...; // setup details
+ *     block = &__tmp_1;
+ * } else {
+ *     struct Block __tmp_2 = ...; // setup details
+ *     block = &__tmp_2;
+ * }
+ * </code>
+ *
+ * As the example demonstrates, the address of a stack variable is escaping the
+ * scope in which it is allocated. That is a classic C bug.
+ *
+ * Instead, the block literal must be copied to the heap with the Block_copy()
+ * function or by sending it a -[copy] message.
+ */
+typedef void (^os_block_t)(void);
+#endif
+
+#endif // __OS_BASE__
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsid_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 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@
+ */
+#ifndef _FSID_T
+#define _FSID_T
+#include <sys/_types/_int32_t.h> /* int32_t */
+typedef struct fsid { int32_t val[2]; } fsid_t; /* file system id type */
+#endif /* _FSID_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsobj_id_t.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2016 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 _FSOBJ_ID_T
+#define _FSOBJ_ID_T
+
+#include <sys/_types/_u_int32_t.h> /* u_int32_t */
+
+typedef struct fsobj_id {
+	u_int32_t fid_objno;
+	u_int32_t fid_generation;
+} fsobj_id_t;
+
+#endif /* _FSOBJ_ID_T */
lib/libc/include/x86_64-macos-gnu/sys/attr.h
@@ -0,0 +1,579 @@
+/*
+ * 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
+
+/* 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.
+ */
+#define VOL_CAP_FMT_PERSISTENTOBJECTIDS         0x00000001
+#define VOL_CAP_FMT_SYMBOLICLINKS               0x00000002
+#define VOL_CAP_FMT_HARDLINKS                   0x00000004
+#define VOL_CAP_FMT_JOURNAL                     0x00000008
+#define VOL_CAP_FMT_JOURNAL_ACTIVE              0x00000010
+#define VOL_CAP_FMT_NO_ROOT_TIMES               0x00000020
+#define VOL_CAP_FMT_SPARSE_FILES                0x00000040
+#define VOL_CAP_FMT_ZERO_RUNS                   0x00000080
+#define VOL_CAP_FMT_CASE_SENSITIVE              0x00000100
+#define VOL_CAP_FMT_CASE_PRESERVING             0x00000200
+#define VOL_CAP_FMT_FAST_STATFS                 0x00000400
+#define VOL_CAP_FMT_2TB_FILESIZE                0x00000800
+#define VOL_CAP_FMT_OPENDENYMODES               0x00001000
+#define VOL_CAP_FMT_HIDDEN_FILES                0x00002000
+#define VOL_CAP_FMT_PATH_FROM_ID                0x00004000
+#define VOL_CAP_FMT_NO_VOLUME_SIZES             0x00008000
+#define VOL_CAP_FMT_DECMPFS_COMPRESSION         0x00010000
+#define VOL_CAP_FMT_64BIT_OBJECT_IDS            0x00020000
+#define VOL_CAP_FMT_DIR_HARDLINKS               0x00040000
+#define VOL_CAP_FMT_DOCUMENT_ID                 0x00080000
+#define VOL_CAP_FMT_WRITE_GENERATION_COUNT      0x00100000
+#define VOL_CAP_FMT_NO_IMMUTABLE_FILES          0x00200000
+#define VOL_CAP_FMT_NO_PERMISSIONS              0x00400000
+#define VOL_CAP_FMT_SHARED_SPACE                0x00800000
+#define VOL_CAP_FMT_VOL_GROUPS                  0x01000000
+
+/*
+ * VOL_CAP_INT_SEARCHFS: When set, the volume implements the
+ * searchfs() system call (the vnop_searchfs vnode operation).
+ *
+ * VOL_CAP_INT_ATTRLIST: When set, the volume implements the
+ * getattrlist() and setattrlist() system calls (vnop_getattrlist
+ * and vnop_setattrlist vnode operations) for the volume, files,
+ * and directories.  The volume may or may not implement the
+ * readdirattr() system call.  XXX Is there any minimum set
+ * of attributes that should be supported?  To determine the
+ * set of supported attributes, get the ATTR_VOL_ATTRIBUTES
+ * attribute of the volume.
+ *
+ * VOL_CAP_INT_NFSEXPORT: When set, the volume implements exporting
+ * of NFS volumes.
+ *
+ * VOL_CAP_INT_READDIRATTR: When set, the volume implements the
+ * readdirattr() system call (vnop_readdirattr vnode operation).
+ *
+ * VOL_CAP_INT_EXCHANGEDATA: When set, the volume implements the
+ * exchangedata() system call (VNOP_EXCHANGE vnode operation).
+ *
+ * VOL_CAP_INT_COPYFILE: When set, the volume implements the
+ * VOP_COPYFILE vnode operation.  (XXX There should be a copyfile()
+ * system call in <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_VALIDMASK   0x000003fc
+#define ATTR_CMNEXT_SETMASK             0x00000000
+
+/* Deprecated fork attributes */
+#define ATTR_FORK_TOTALSIZE                     0x00000001
+#define ATTR_FORK_ALLOCSIZE                     0x00000002
+#define ATTR_FORK_RESERVED                      0xffffffff
+
+#define ATTR_FORK_VALIDMASK                     0x00000003
+#define ATTR_FORK_SETMASK                       0x00000000
+
+/* Obsolete, implemented, not supported */
+#define ATTR_CMN_NAMEDATTRCOUNT                 0x00080000
+#define ATTR_CMN_NAMEDATTRLIST                  0x00100000
+#define ATTR_FILE_CLUMPSIZE                     0x00000010      /* obsolete */
+#define ATTR_FILE_FILETYPE                      0x00000040      /* always zero */
+#define ATTR_FILE_DATAEXTENTS                   0x00000800      /* obsolete, HFS-specific */
+#define ATTR_FILE_RSRCEXTENTS                   0x00004000      /* obsolete, HFS-specific */
+
+/* Required attributes for getattrlistbulk(2) */
+#define ATTR_BULK_REQUIRED (ATTR_CMN_NAME | ATTR_CMN_RETURNED_ATTRS)
+
+/*
+ * Searchfs
+ */
+#define SRCHFS_START                            0x00000001
+#define SRCHFS_MATCHPARTIALNAMES                0x00000002
+#define SRCHFS_MATCHDIRS                        0x00000004
+#define SRCHFS_MATCHFILES                       0x00000008
+#define SRCHFS_SKIPLINKS                        0x00000010
+#define SRCHFS_SKIPINVISIBLE                    0x00000020
+#define SRCHFS_SKIPPACKAGES                     0x00000040
+#define SRCHFS_SKIPINAPPROPRIATE                0x00000080
+
+#define SRCHFS_NEGATEPARAMS                     0x80000000
+#define SRCHFS_VALIDOPTIONSMASK                 0x800000FF
+
+struct fssearchblock {
+	struct attrlist         *returnattrs;
+	void                            *returnbuffer;
+	size_t                          returnbuffersize;
+	u_long                          maxmatches;
+	struct timeval          timelimit;
+	void                            *searchparams1;
+	size_t                          sizeofsearchparams1;
+	void                            *searchparams2;
+	size_t                          sizeofsearchparams2;
+	struct attrlist         searchattrs;
+};
+
+
+struct searchstate {
+	uint32_t                        ss_union_flags;         // for SRCHFS_START
+	uint32_t                        ss_union_layer;         // 0 = top
+	u_char                          ss_fsstate[548];        // fs private
+} __attribute__((packed));
+
+#define FST_EOF (-1)                            /* end-of-file offset */
+
+#endif /* __APPLE_API_UNSTABLE */
+#endif /* !_SYS_ATTR_H_ */
lib/libc/include/x86_64-macos-gnu/sys/mount.h
@@ -0,0 +1,423 @@
+/*
+ * 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_STATFS  0x00010001      /* statfs */
+#define VFS_CTL_UMOUNT  0x00010002      /* unmount */
+#define VFS_CTL_QUERY   0x00010003      /* anything wrong? (vfsquery) */
+#define VFS_CTL_NEWADDR 0x00010004      /* reconnect to new address */
+#define VFS_CTL_TIMEO   0x00010005      /* set timeout for vfs notification */
+#define VFS_CTL_NOLOCKS 0x00010006      /* disable file locking */
+#define VFS_CTL_SADDR   0x00010007      /* get server address */
+#define VFS_CTL_DISC    0x00010008      /* server disconnected */
+#define VFS_CTL_SERVERINFO  0x00010009  /* information about fs server */
+#define VFS_CTL_NSTATUS 0x0001000A      /* netfs mount status */
+
+struct vfsquery {
+	u_int32_t       vq_flags;
+	u_int32_t       vq_spare[31];
+};
+
+struct vfs_server {
+	int32_t  vs_minutes;                    /* minutes until server goes down. */
+	u_int8_t vs_server_name[MAXHOSTNAMELEN * 3]; /* UTF8 server name to display (null terminated) */
+};
+
+/*
+ * NetFS mount status - returned by VFS_CTL_NSTATUS
+ */
+struct netfs_status {
+	u_int32_t       ns_status;              // Current status of mount (vfsquery flags)
+	char            ns_mountopts[512];      // Significant mount options
+	uint32_t        ns_waittime;            // Time waiting for reply (sec)
+	uint32_t        ns_threadcount;         // Number of threads blocked on network calls
+	uint64_t        ns_threadids[0];        // Thread IDs of those blocked threads
+};
+
+/* vfsquery flags */
+#define VQ_NOTRESP      0x0001  /* server down */
+#define VQ_NEEDAUTH     0x0002  /* server bad auth */
+#define VQ_LOWDISK      0x0004  /* we're low on space */
+#define VQ_MOUNT        0x0008  /* new filesystem arrived */
+#define VQ_UNMOUNT      0x0010  /* filesystem has left */
+#define VQ_DEAD         0x0020  /* filesystem is dead, needs force unmount */
+#define VQ_ASSIST       0x0040  /* filesystem needs assistance from external program */
+#define VQ_NOTRESPLOCK  0x0080  /* server lockd down */
+#define VQ_UPDATE       0x0100  /* filesystem information has changed */
+#define VQ_VERYLOWDISK  0x0200  /* file system has *very* little disk space left */
+#define VQ_SYNCEVENT    0x0400  /* a sync just happened (not set by kernel starting Mac OS X 10.9) */
+#define VQ_SERVEREVENT  0x0800  /* server issued notification/warning */
+#define VQ_QUOTA        0x1000  /* a user quota has been hit */
+#define VQ_NEARLOWDISK          0x2000  /* Above lowdisk and below desired disk space */
+#define VQ_DESIRED_DISK         0x4000  /* the desired disk space */
+#define VQ_FREE_SPACE_CHANGE    0x8000  /* free disk space has significantly changed */
+#define VQ_FLAG10000    0x10000  /* placeholder */
+
+
+
+
+/*
+ * Generic file handle
+ */
+#define NFS_MAX_FH_SIZE         NFSV4_MAX_FH_SIZE
+#define NFSV4_MAX_FH_SIZE       128
+#define NFSV3_MAX_FH_SIZE       64
+#define NFSV2_MAX_FH_SIZE       32
+struct fhandle {
+	unsigned int    fh_len;                         /* length of file handle */
+	unsigned char   fh_data[NFS_MAX_FH_SIZE];       /* file handle value */
+};
+typedef struct fhandle  fhandle_t;
+
+
+__BEGIN_DECLS
+int     fhopen(const struct fhandle *, int);
+int     fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     fstatfs64(int, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     getfh(const char *, fhandle_t *);
+int     getfsstat(struct statfs *, int, int) __DARWIN_INODE64(getfsstat);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     getfsstat64(struct statfs64 *, int, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     getmntinfo(struct statfs **, int) __DARWIN_INODE64(getmntinfo);
+int     getmntinfo_r_np(struct statfs **, int) __DARWIN_INODE64(getmntinfo_r_np)
+__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     getmntinfo64(struct statfs64 **, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     mount(const char *, const char *, int, void *);
+int     fmount(const char *, int, int, void *) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     statfs(const char *, struct statfs *) __DARWIN_INODE64(statfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     statfs64(const char *, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     unmount(const char *, int);
+int     getvfsbyname(const char *, struct vfsconf *);
+__END_DECLS
+
+#endif /* !_SYS_MOUNT_H_ */
lib/libc/include/x86_64-macos-gnu/crt_externs.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+ */
+
+/*
+** Prototypes for the functions to get environment information in
+** the world of dynamic libraries. Lifted from .c file of same name.
+** Fri Jun 23 12:56:47 PDT 1995
+** AOF (afreier@next.com)
+*/
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+extern char ***_NSGetArgv(void);
+extern int *_NSGetArgc(void);
+extern char ***_NSGetEnviron(void);
+extern char **_NSGetProgname(void);
+#ifdef __LP64__
+extern struct mach_header_64 *
+#else /* !__LP64__ */
+extern struct mach_header *
+#endif /* __LP64__ */
+				_NSGetMachExecuteHeader(void);
+__END_DECLS
lib/libc/include/x86_64-macos-gnu/execinfo.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _EXECINFO_H_
+#define _EXECINFO_H_ 1
+
+#include <sys/cdefs.h>
+#include <Availability.h>
+#include <os/base.h>
+#include <os/availability.h>
+#include <stdint.h>
+#include <uuid/uuid.h>
+
+__BEGIN_DECLS
+
+int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+
+API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+OS_EXPORT
+int backtrace_from_fp(void *startfp, void **array, int size);
+
+char** backtrace_symbols(void* const*,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+void backtrace_symbols_fd(void* const*,int,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+
+struct image_offset {
+	/*
+	 * The UUID of the image.
+	 */
+	uuid_t uuid;
+
+	/*
+	 * The offset is relative to the __TEXT section of the image.
+	 */
+	uint32_t offset;
+};
+
+API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+OS_EXPORT
+void backtrace_image_offsets(void* const* array,
+		struct image_offset *image_offsets, int size);
+
+__END_DECLS
+
+#endif /* !_EXECINFO_H_ */
lib/libc/include/x86_64-macos-gnu/sysexits.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1987, 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.
+ *
+ *	@(#)sysexits.h	8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef	_SYSEXITS_H_
+#define	_SYSEXITS_H_
+
+/*
+ *  SYSEXITS.H -- Exit status codes for system programs.
+ *
+ *	This include file attempts to categorize possible error
+ *	exit statuses for system programs, notably delivermail
+ *	and the Berkeley network.
+ *
+ *	Error numbers begin at EX__BASE to reduce the possibility of
+ *	clashing with other exit statuses that random programs may
+ *	already return.  The meaning of the codes is approximately
+ *	as follows:
+ *
+ *	EX_USAGE -- The command was used incorrectly, e.g., with
+ *		the wrong number of arguments, a bad flag, a bad
+ *		syntax in a parameter, or whatever.
+ *	EX_DATAERR -- The input data was incorrect in some way.
+ *		This should only be used for user's data & not
+ *		system files.
+ *	EX_NOINPUT -- An input file (not a system file) did not
+ *		exist or was not readable.  This could also include
+ *		errors like "No message" to a mailer (if it cared
+ *		to catch it).
+ *	EX_NOUSER -- The user specified did not exist.  This might
+ *		be used for mail addresses or remote logins.
+ *	EX_NOHOST -- The host specified did not exist.  This is used
+ *		in mail addresses or network requests.
+ *	EX_UNAVAILABLE -- A service is unavailable.  This can occur
+ *		if a support program or file does not exist.  This
+ *		can also be used as a catchall message when something
+ *		you wanted to do doesn't work, but you don't know
+ *		why.
+ *	EX_SOFTWARE -- An internal software error has been detected.
+ *		This should be limited to non-operating system related
+ *		errors as possible.
+ *	EX_OSERR -- An operating system error has been detected.
+ *		This is intended to be used for such things as "cannot
+ *		fork", "cannot create pipe", or the like.  It includes
+ *		things like getuid returning a user that does not
+ *		exist in the passwd file.
+ *	EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp,
+ *		etc.) does not exist, cannot be opened, or has some
+ *		sort of error (e.g., syntax error).
+ *	EX_CANTCREAT -- A (user specified) output file cannot be
+ *		created.
+ *	EX_IOERR -- An error occurred while doing I/O on some file.
+ *	EX_TEMPFAIL -- temporary failure, indicating something that
+ *		is not really an error.  In sendmail, this means
+ *		that a mailer (e.g.) could not create a connection,
+ *		and the request should be reattempted later.
+ *	EX_PROTOCOL -- the remote system returned something that
+ *		was "not possible" during a protocol exchange.
+ *	EX_NOPERM -- You did not have sufficient permission to
+ *		perform the operation.  This is not intended for
+ *		file system problems, which should use NOINPUT or
+ *		CANTCREAT, but rather for higher level permissions.
+ */
+
+#define EX_OK		0	/* successful termination */
+
+#define EX__BASE	64	/* base value for error messages */
+
+#define EX_USAGE	64	/* command line usage error */
+#define EX_DATAERR	65	/* data format error */
+#define EX_NOINPUT	66	/* cannot open input */
+#define EX_NOUSER	67	/* addressee unknown */
+#define EX_NOHOST	68	/* host name unknown */
+#define EX_UNAVAILABLE	69	/* service unavailable */
+#define EX_SOFTWARE	70	/* internal software error */
+#define EX_OSERR	71	/* system error (e.g., can't fork) */
+#define EX_OSFILE	72	/* critical OS file missing */
+#define EX_CANTCREAT	73	/* can't create (user) output file */
+#define EX_IOERR	74	/* input/output error */
+#define EX_TEMPFAIL	75	/* temp failure; user is invited to retry */
+#define EX_PROTOCOL	76	/* remote error in protocol */
+#define EX_NOPERM	77	/* permission denied */
+#define EX_CONFIG	78	/* configuration error */
+
+#define EX__MAX	78	/* maximum listed value */
+
+#endif /* !_SYSEXITS_H_ */