Commit eed5814d75

Andrew Kelley <andrew@ziglang.org>
2020-11-09 02:40:41
macOS libc headers: add POSIX headers
1 parent 4d67c3d
Changed files (147)
lib
libc
include
x86_64-macos-gnu
lib/libc/include/x86_64-macos-gnu/_types/_nl_item.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _NL_ITEM
+#define _NL_ITEM 
+#include <_types.h>
+typedef __darwin_nl_item nl_item;
+#endif /* _NL_ITEM */
\ No newline at end of file
lib/libc/include/x86_64-macos-gnu/arpa/inet.h
@@ -0,0 +1,97 @@
+/*
+ * ++Copyright++ 1983, 1993
+ * -
+ * Copyright (c) 1983, 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.
+ * -
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ * 
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ * -
+ * --Copyright--
+ */
+
+/*
+ *	@(#)inet.h	8.1 (Berkeley) 6/2/93
+ *	$Id: inet.h,v 1.10 2006/02/01 18:09:47 majka Exp $
+ */
+
+#ifndef _ARPA_INET_H_
+#define	_ARPA_INET_H_
+
+/* External definitions for functions in inet(3), addr2ascii(3) */
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+#include <stdint.h>		/* uint32_t uint16_t */
+#include <machine/endian.h>	/* htonl() and family if (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#include <sys/_endian.h>	/* htonl() and family if (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#include <netinet/in.h>		/* in_addr */
+
+__BEGIN_DECLS
+
+in_addr_t	 inet_addr(const char *);
+char		*inet_ntoa(struct in_addr);
+const char	*inet_ntop(int, const void *, char *, socklen_t);
+int		 inet_pton(int, const char *, void *);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int		 ascii2addr(int, const char *, void *);
+char		*addr2ascii(int, const void *, int, char *);
+int		 inet_aton(const char *, struct in_addr *);
+in_addr_t	 inet_lnaof(struct in_addr);
+struct in_addr	 inet_makeaddr(in_addr_t, in_addr_t);
+in_addr_t	 inet_netof(struct in_addr);
+in_addr_t	 inet_network(const char *);
+char		*inet_net_ntop(int, const void *, int, char *, __darwin_size_t);
+int		 inet_net_pton(int, const char *, void *, __darwin_size_t);
+char	 	*inet_neta(in_addr_t, char *, __darwin_size_t);
+unsigned int	 inet_nsap_addr(const char *, unsigned char *, int);
+char	*inet_nsap_ntoa(int, const unsigned char *, char *);
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+__END_DECLS
+
+#endif /* !_ARPA_INET_H_ */
lib/libc/include/x86_64-macos-gnu/i386/_param.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _I386__PARAM_H_
+#define _I386__PARAM_H_
+
+#include <i386/_types.h>
+
+/*
+ * Round p (pointer or byte index) up to a correctly-aligned value for all
+ * data types (int, long, ...).   The result is unsigned int and must be
+ * cast to any desired pointer type.
+ */
+#define __DARWIN_ALIGNBYTES     (sizeof(__darwin_size_t) - 1)
+#define __DARWIN_ALIGN(p)       ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES)
+
+#define      __DARWIN_ALIGNBYTES32     (sizeof(__uint32_t) - 1)
+#define       __DARWIN_ALIGN32(p)       ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32)
+
+
+#endif /* _I386__PARAM_H_ */
lib/libc/include/x86_64-macos-gnu/i386/eflags.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _I386_EFLAGS_H_
+#define _I386_EFLAGS_H_
+
+/*
+ *	i386 flags register
+ */
+
+#ifndef EFL_CF
+#define EFL_CF          0x00000001              /* carry */
+#define EFL_PF          0x00000004              /* parity of low 8 bits */
+#define EFL_AF          0x00000010              /* carry out of bit 3 */
+#define EFL_ZF          0x00000040              /* zero */
+#define EFL_SF          0x00000080              /* sign */
+#define EFL_TF          0x00000100              /* trace trap */
+#define EFL_IF          0x00000200              /* interrupt enable */
+#define EFL_DF          0x00000400              /* direction */
+#define EFL_OF          0x00000800              /* overflow */
+#define EFL_IOPL        0x00003000              /* IO privilege level: */
+#define EFL_IOPL_KERNEL 0x00000000                      /* kernel */
+#define EFL_IOPL_USER   0x00003000                      /* user */
+#define EFL_NT          0x00004000              /* nested task */
+#define EFL_RF          0x00010000              /* resume without tracing */
+#define EFL_VM          0x00020000              /* virtual 8086 mode */
+#define EFL_AC          0x00040000              /* alignment check */
+#define EFL_VIF         0x00080000              /* virtual interrupt flag */
+#define EFL_VIP         0x00100000              /* virtual interrupt pending */
+#define EFL_ID          0x00200000              /* cpuID instruction */
+#endif
+
+#define EFL_CLR         0xfff88028
+#define EFL_SET         0x00000002
+
+#define EFL_USER_SET    (EFL_IF)
+#define EFL_USER_CLEAR  (EFL_IOPL|EFL_NT|EFL_RF)
+
+#endif  /* _I386_EFLAGS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/boolean.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	boolean.h
+ *
+ *	Boolean type, for I386.
+ */
+
+#ifndef _MACH_I386_BOOLEAN_H_
+#define _MACH_I386_BOOLEAN_H_
+
+#if defined(__x86_64__) && !defined(KERNEL)
+typedef unsigned int    boolean_t;
+#else
+typedef int             boolean_t;
+#endif
+
+#endif  /* _MACH_I386_BOOLEAN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/exception.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_I386_EXCEPTION_H_
+#define _MACH_I386_EXCEPTION_H_
+
+/*
+ * No machine dependent types for the 80386
+ */
+
+#define EXC_TYPES_COUNT 14      /* incl. illegal exception 0 */
+
+/*
+ *	Codes and subcodes for 80386 exceptions.
+ */
+
+#define EXCEPTION_CODE_MAX      2       /* currently code and subcode */
+
+/*
+ *	EXC_BAD_INSTRUCTION
+ */
+
+#define EXC_I386_INVOP                  1
+
+/*
+ *	EXC_ARITHMETIC
+ */
+
+#define EXC_I386_DIV                    1
+#define EXC_I386_INTO                   2
+#define EXC_I386_NOEXT                  3
+#define EXC_I386_EXTOVR                 4
+#define EXC_I386_EXTERR                 5
+#define EXC_I386_EMERR                  6
+#define EXC_I386_BOUND                  7
+#define EXC_I386_SSEEXTERR              8
+
+/*
+ *	EXC_SOFTWARE
+ *	Note: 0x10000-0x10003 in use for unix signal
+ */
+
+/*
+ *	EXC_BAD_ACCESS
+ */
+
+/*
+ *	EXC_BREAKPOINT
+ */
+
+#define EXC_I386_SGL                    1
+#define EXC_I386_BPT                    2
+
+#define EXC_I386_DIVERR         0       /* divide by 0 eprror		*/
+#define EXC_I386_SGLSTP         1       /* single step			*/
+#define EXC_I386_NMIFLT         2       /* NMI				*/
+#define EXC_I386_BPTFLT         3       /* breakpoint fault		*/
+#define EXC_I386_INTOFLT        4       /* INTO overflow fault		*/
+#define EXC_I386_BOUNDFLT       5       /* BOUND instruction fault	*/
+#define EXC_I386_INVOPFLT       6       /* invalid opcode fault		*/
+#define EXC_I386_NOEXTFLT       7       /* extension not available fault*/
+#define EXC_I386_DBLFLT         8       /* double fault			*/
+#define EXC_I386_EXTOVRFLT      9       /* extension overrun fault	*/
+#define EXC_I386_INVTSSFLT      10      /* invalid TSS fault		*/
+#define EXC_I386_SEGNPFLT       11      /* segment not present fault	*/
+#define EXC_I386_STKFLT         12      /* stack fault			*/
+#define EXC_I386_GPFLT          13      /* general protection fault	*/
+#define EXC_I386_PGFLT          14      /* page fault			*/
+#define EXC_I386_EXTERRFLT      16      /* extension error fault	*/
+#define EXC_I386_ALIGNFLT       17      /* Alignment fault */
+#define EXC_I386_ENDPERR        33      /* emulated extension error flt	*/
+#define EXC_I386_ENOEXTFLT      32      /* emulated ext not present	*/
+
+
+/*
+ *	machine dependent exception masks
+ */
+#define EXC_MASK_MACHINE        0
+
+#endif  /* _MACH_I386_EXCEPTION_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/fp_reg.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1992-1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _I386_FP_SAVE_H_
+#define _I386_FP_SAVE_H_
+
+/*
+ * Control register
+ */
+#define FPC_IE          0x0001          /* enable invalid operation
+	                                 *  exception */
+#define FPC_IM          FPC_IE
+#define FPC_DE          0x0002          /* enable denormalized operation
+	                                 *  exception */
+#define FPC_DM          FPC_DE
+#define FPC_ZE          0x0004          /* enable zero-divide exception */
+#define FPC_ZM          FPC_ZE
+#define FPC_OE          0x0008          /* enable overflow exception */
+#define FPC_OM          FPC_OE
+#define FPC_UE          0x0010          /* enable underflow exception */
+#define FPC_PE          0x0020          /* enable precision exception */
+#define FPC_PC          0x0300          /* precision control: */
+#define FPC_PC_24       0x0000                  /* 24 bits */
+#define FPC_PC_53       0x0200                  /* 53 bits */
+#define FPC_PC_64       0x0300                  /* 64 bits */
+#define FPC_RC          0x0c00          /* rounding control: */
+#define FPC_RC_RN       0x0000                  /* round to nearest or even */
+#define FPC_RC_RD       0x0400                  /* round down */
+#define FPC_RC_RU       0x0800                  /* round up */
+#define FPC_RC_CHOP     0x0c00                  /* chop */
+#define FPC_IC          0x1000          /* infinity control (obsolete) */
+#define FPC_IC_PROJ     0x0000                  /* projective infinity */
+#define FPC_IC_AFF      0x1000                  /* affine infinity (std) */
+
+/*
+ * Status register
+ */
+#define FPS_IE          0x0001          /* invalid operation */
+#define FPS_DE          0x0002          /* denormalized operand */
+#define FPS_ZE          0x0004          /* divide by zero */
+#define FPS_OE          0x0008          /* overflow */
+#define FPS_UE          0x0010          /* underflow */
+#define FPS_PE          0x0020          /* precision */
+#define FPS_SF          0x0040          /* stack flag */
+#define FPS_ES          0x0080          /* error summary */
+#define FPS_C0          0x0100          /* condition code bit 0 */
+#define FPS_C1          0x0200          /* condition code bit 1 */
+#define FPS_C2          0x0400          /* condition code bit 2 */
+#define FPS_TOS         0x3800          /* top-of-stack pointer */
+#define FPS_TOS_SHIFT   11
+#define FPS_C3          0x4000          /* condition code bit 3 */
+#define FPS_BUSY        0x8000          /* FPU busy */
+
+/*
+ * Kind of floating-point support provided by kernel.
+ */
+#define FP_NO           0               /* no floating point */
+#define FP_SOFT         1               /* software FP emulator */
+#define FP_287          2               /* 80287 */
+#define FP_387          3               /* 80387 or 80486 */
+#define FP_FXSR         4               /* Fast save/restore SIMD Extension */
+
+#endif  /* _I386_FP_SAVE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/kern_return.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	kern_return.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *	Date:	1985
+ *
+ *	Machine-dependent kernel return definitions.
+ */
+
+#ifndef _MACH_I386_KERN_RETURN_H_
+#define _MACH_I386_KERN_RETURN_H_
+
+#ifndef ASSEMBLER
+typedef int             kern_return_t;
+#endif  /* ASSEMBLER */
+
+#endif  /* _MACH_I386_KERN_RETURN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/thread_state.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_I386_THREAD_STATE_H_
+#define _MACH_I386_THREAD_STATE_H_
+
+/* Size of maximum exported thread state in words */
+#define I386_THREAD_STATE_MAX   (614)    /* Size of biggest state possible */
+
+#if defined (__i386__) || defined(__x86_64__)
+#define THREAD_STATE_MAX        I386_THREAD_STATE_MAX
+#endif
+
+#endif  /* _MACH_I386_THREAD_STATE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/thread_status.h
@@ -0,0 +1,345 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	thread_status.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1985
+ *
+ *	This file contains the structure definitions for the thread
+ *	state as applied to I386 processors.
+ */
+
+#ifndef _MACH_I386_THREAD_STATUS_H_
+#define _MACH_I386_THREAD_STATUS_H_
+
+#include <mach/machine/_structs.h>
+#include <mach/message.h>
+#include <mach/i386/fp_reg.h>
+#include <mach/i386/thread_state.h>
+#include <i386/eflags.h>
+
+
+/*
+ * the i386_xxxx form is kept for legacy purposes since these types
+ * are externally known... eventually they should be deprecated.
+ * our internal implementation has moved to the following naming convention
+ *
+ *   x86_xxxx32 names are used to deal with 32 bit states
+ *   x86_xxxx64 names are used to deal with 64 bit states
+ *   x86_xxxx   names are used to deal with either 32 or 64 bit states
+ *	via a self-describing mechanism
+ */
+
+/*
+ * these are the legacy names which should be deprecated in the future
+ * they are externally known which is the only reason we don't just get
+ * rid of them
+ */
+#define i386_THREAD_STATE               1
+#define i386_FLOAT_STATE                2
+#define i386_EXCEPTION_STATE            3
+
+/*
+ * THREAD_STATE_FLAVOR_LIST 0
+ *      these are the supported flavors
+ */
+#define x86_THREAD_STATE32              1
+#define x86_FLOAT_STATE32               2
+#define x86_EXCEPTION_STATE32           3
+#define x86_THREAD_STATE64              4
+#define x86_FLOAT_STATE64               5
+#define x86_EXCEPTION_STATE64           6
+#define x86_THREAD_STATE                7
+#define x86_FLOAT_STATE                 8
+#define x86_EXCEPTION_STATE             9
+#define x86_DEBUG_STATE32               10
+#define x86_DEBUG_STATE64               11
+#define x86_DEBUG_STATE                 12
+#define THREAD_STATE_NONE               13
+/* 14 and 15 are used for the internal x86_SAVED_STATE flavours */
+/* Arrange for flavors to take sequential values, 32-bit, 64-bit, non-specific */
+#define x86_AVX_STATE32                 16
+#define x86_AVX_STATE64                 (x86_AVX_STATE32 + 1)
+#define x86_AVX_STATE                   (x86_AVX_STATE32 + 2)
+#define x86_AVX512_STATE32              19
+#define x86_AVX512_STATE64              (x86_AVX512_STATE32 + 1)
+#define x86_AVX512_STATE                (x86_AVX512_STATE32 + 2)
+#define x86_PAGEIN_STATE                22
+#define x86_THREAD_FULL_STATE64         23
+
+/*
+ * Largest state on this machine:
+ * (be sure mach/machine/thread_state.h matches!)
+ */
+#define THREAD_MACHINE_STATE_MAX        THREAD_STATE_MAX
+
+/*
+ * VALID_THREAD_STATE_FLAVOR is a platform specific macro that when passed
+ * an exception flavor will return if that is a defined flavor for that
+ * platform. The macro must be manually updated to include all of the valid
+ * exception flavors as defined above.
+ */
+#define VALID_THREAD_STATE_FLAVOR(x)            \
+	 ((x == x86_THREAD_STATE32)		|| \
+	  (x == x86_FLOAT_STATE32)		|| \
+	  (x == x86_EXCEPTION_STATE32)		|| \
+	  (x == x86_DEBUG_STATE32)		|| \
+	  (x == x86_THREAD_STATE64)		|| \
+	  (x == x86_THREAD_FULL_STATE64)	|| \
+	  (x == x86_FLOAT_STATE64)		|| \
+	  (x == x86_EXCEPTION_STATE64)		|| \
+	  (x == x86_DEBUG_STATE64)		|| \
+	  (x == x86_THREAD_STATE)		|| \
+	  (x == x86_FLOAT_STATE)		|| \
+	  (x == x86_EXCEPTION_STATE)		|| \
+	  (x == x86_DEBUG_STATE)		|| \
+	  (x == x86_AVX_STATE32)		|| \
+	  (x == x86_AVX_STATE64)		|| \
+	  (x == x86_AVX_STATE)			|| \
+	  (x == x86_AVX512_STATE32)		|| \
+	  (x == x86_AVX512_STATE64)		|| \
+	  (x == x86_AVX512_STATE)		|| \
+	  (x == x86_PAGEIN_STATE)		|| \
+	  (x == THREAD_STATE_NONE))
+
+struct x86_state_hdr {
+	uint32_t        flavor;
+	uint32_t        count;
+};
+typedef struct x86_state_hdr x86_state_hdr_t;
+
+/*
+ * Default segment register values.
+ */
+
+#define USER_CODE_SELECTOR      0x0017
+#define USER_DATA_SELECTOR      0x001f
+#define KERN_CODE_SELECTOR      0x0008
+#define KERN_DATA_SELECTOR      0x0010
+
+/*
+ * to be deprecated in the future
+ */
+typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t;
+#define i386_THREAD_STATE_COUNT ((mach_msg_type_number_t) \
+    ( sizeof (i386_thread_state_t) / sizeof (int) ))
+
+typedef _STRUCT_X86_THREAD_STATE32 x86_thread_state32_t;
+#define x86_THREAD_STATE32_COUNT        ((mach_msg_type_number_t) \
+    ( sizeof (x86_thread_state32_t) / sizeof (int) ))
+
+/*
+ * to be deprecated in the future
+ */
+typedef _STRUCT_X86_FLOAT_STATE32 i386_float_state_t;
+#define i386_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(i386_float_state_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_FLOAT_STATE32 x86_float_state32_t;
+#define x86_FLOAT_STATE32_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_float_state32_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_AVX_STATE32 x86_avx_state32_t;
+#define x86_AVX_STATE32_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx_state32_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_AVX512_STATE32 x86_avx512_state32_t;
+#define x86_AVX512_STATE32_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx512_state32_t)/sizeof(unsigned int)))
+
+/*
+ * to be deprecated in the future
+ */
+typedef _STRUCT_X86_EXCEPTION_STATE32 i386_exception_state_t;
+#define i386_EXCEPTION_STATE_COUNT      ((mach_msg_type_number_t) \
+    ( sizeof (i386_exception_state_t) / sizeof (int) ))
+
+typedef _STRUCT_X86_EXCEPTION_STATE32 x86_exception_state32_t;
+#define x86_EXCEPTION_STATE32_COUNT     ((mach_msg_type_number_t) \
+    ( sizeof (x86_exception_state32_t) / sizeof (int) ))
+
+#define I386_EXCEPTION_STATE_COUNT i386_EXCEPTION_STATE_COUNT
+
+typedef _STRUCT_X86_DEBUG_STATE32 x86_debug_state32_t;
+#define x86_DEBUG_STATE32_COUNT       ((mach_msg_type_number_t) \
+	( sizeof (x86_debug_state32_t) / sizeof (int) ))
+
+#define X86_DEBUG_STATE32_COUNT x86_DEBUG_STATE32_COUNT
+
+typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t;
+#define x86_THREAD_STATE64_COUNT        ((mach_msg_type_number_t) \
+    ( sizeof (x86_thread_state64_t) / sizeof (int) ))
+
+typedef _STRUCT_X86_THREAD_FULL_STATE64 x86_thread_full_state64_t;
+#define x86_THREAD_FULL_STATE64_COUNT   ((mach_msg_type_number_t) \
+    ( sizeof (x86_thread_full_state64_t) / sizeof (int) ))
+
+typedef _STRUCT_X86_FLOAT_STATE64 x86_float_state64_t;
+#define x86_FLOAT_STATE64_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_float_state64_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_AVX_STATE64 x86_avx_state64_t;
+#define x86_AVX_STATE64_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx_state64_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_AVX512_STATE64 x86_avx512_state64_t;
+#define x86_AVX512_STATE64_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx512_state64_t)/sizeof(unsigned int)))
+
+typedef _STRUCT_X86_EXCEPTION_STATE64 x86_exception_state64_t;
+#define x86_EXCEPTION_STATE64_COUNT     ((mach_msg_type_number_t) \
+    ( sizeof (x86_exception_state64_t) / sizeof (int) ))
+
+#define X86_EXCEPTION_STATE64_COUNT x86_EXCEPTION_STATE64_COUNT
+
+typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t;
+#define x86_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \
+    ( sizeof (x86_debug_state64_t) / sizeof (int) ))
+
+#define X86_DEBUG_STATE64_COUNT x86_DEBUG_STATE64_COUNT
+
+typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t;
+#define x86_PAGEIN_STATE_COUNT \
+    ((mach_msg_type_number_t)(sizeof(x86_pagein_state_t) / sizeof(int)))
+
+#define X86_PAGEIN_STATE_COUNT x86_PAGEIN_STATE_COUNT
+
+/*
+ * Combined thread, float and exception states
+ */
+struct x86_thread_state {
+	x86_state_hdr_t                 tsh;
+	union {
+		x86_thread_state32_t        ts32;
+		x86_thread_state64_t        ts64;
+	} uts;
+};
+
+struct x86_float_state {
+	x86_state_hdr_t                 fsh;
+	union {
+		x86_float_state32_t     fs32;
+		x86_float_state64_t     fs64;
+	} ufs;
+};
+
+struct x86_exception_state {
+	x86_state_hdr_t                 esh;
+	union {
+		x86_exception_state32_t es32;
+		x86_exception_state64_t es64;
+	} ues;
+};
+
+struct x86_debug_state {
+	x86_state_hdr_t                 dsh;
+	union {
+		x86_debug_state32_t     ds32;
+		x86_debug_state64_t     ds64;
+	} uds;
+};
+
+struct x86_avx_state {
+	x86_state_hdr_t                 ash;
+	union {
+		x86_avx_state32_t       as32;
+		x86_avx_state64_t       as64;
+	} ufs;
+};
+
+struct x86_avx512_state {
+	x86_state_hdr_t                 ash;
+	union {
+		x86_avx512_state32_t    as32;
+		x86_avx512_state64_t    as64;
+	} ufs;
+};
+
+typedef struct x86_thread_state x86_thread_state_t;
+#define x86_THREAD_STATE_COUNT  ((mach_msg_type_number_t) \
+	        ( sizeof (x86_thread_state_t) / sizeof (int) ))
+
+typedef struct x86_float_state x86_float_state_t;
+#define x86_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_float_state_t)/sizeof(unsigned int)))
+
+typedef struct x86_exception_state x86_exception_state_t;
+#define x86_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_exception_state_t)/sizeof(unsigned int)))
+
+typedef struct x86_debug_state x86_debug_state_t;
+#define x86_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_debug_state_t)/sizeof(unsigned int)))
+
+typedef struct x86_avx_state x86_avx_state_t;
+#define x86_AVX_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx_state_t)/sizeof(unsigned int)))
+
+typedef struct x86_avx512_state x86_avx512_state_t;
+#define x86_AVX512_STATE_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(x86_avx512_state_t)/sizeof(unsigned int)))
+
+/*
+ * Machine-independent way for servers and Mach's exception mechanism to
+ * choose the most efficient state flavor for exception RPC's:
+ */
+#define MACHINE_THREAD_STATE            x86_THREAD_STATE
+#define MACHINE_THREAD_STATE_COUNT      x86_THREAD_STATE_COUNT
+
+
+#endif  /* _MACH_I386_THREAD_STATUS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/vm_param.h
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ * Copyright (c) 1994 The University of Utah and
+ * the Computer Systems Laboratory at the University of Utah (CSL).
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software is hereby
+ * granted provided that (1) source code retains these copyright, permission,
+ * and disclaimer notices, and (2) redistributions including binaries
+ * reproduce the notices in supporting documentation, and (3) all advertising
+ * materials mentioning features or use of this software display the following
+ * acknowledgement: ``This product includes software developed by the
+ * Computer Systems Laboratory at the University of Utah.''
+ *
+ * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
+ * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
+ * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * CSL requests users of this software to return to csl-dist@cs.utah.edu any
+ * improvements that they make and grant CSL redistribution rights.
+ *
+ */
+
+/*
+ *	File:	vm_param.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1985
+ *
+ *	I386 machine dependent virtual memory parameters.
+ *	Most of the declarations are preceeded by I386_ (or i386_)
+ *	which is OK because only I386 specific code will be using
+ *	them.
+ */
+
+#ifndef _MACH_I386_VM_PARAM_H_
+#define _MACH_I386_VM_PARAM_H_
+
+#define BYTE_SIZE               8               /* byte size in bits */
+
+#define I386_PGBYTES            4096            /* bytes per 80386 page */
+#define I386_PGSHIFT            12              /* bitshift for pages */
+
+#define PAGE_SIZE               I386_PGBYTES
+#define PAGE_SHIFT              I386_PGSHIFT
+#define PAGE_MASK               (PAGE_SIZE - 1)
+
+#define PAGE_MAX_SHIFT          PAGE_SHIFT
+#define PAGE_MAX_SIZE           PAGE_SIZE
+#define PAGE_MAX_MASK           PAGE_MASK
+
+#define PAGE_MIN_SHIFT          PAGE_SHIFT
+#define PAGE_MIN_SIZE           PAGE_SIZE
+#define PAGE_MIN_MASK           PAGE_MASK
+
+#define I386_LPGBYTES           2*1024*1024     /* bytes per large page */
+#define I386_LPGSHIFT           21              /* bitshift for large pages */
+#define I386_LPGMASK            (I386_LPGBYTES-1)
+
+/*
+ *	Convert bytes to pages and convert pages to bytes.
+ *	No rounding is used.
+ */
+
+#define i386_btop(x)            ((ppnum_t)((x) >> I386_PGSHIFT))
+#define machine_btop(x)         i386_btop(x)
+#define i386_ptob(x)            (((pmap_paddr_t)(x)) << I386_PGSHIFT)
+#define machine_ptob(x)         i386_ptob(x)
+
+/*
+ *	Round off or truncate to the nearest page.  These will work
+ *	for either addresses or counts.  (i.e. 1 byte rounds to 1 page
+ *	bytes.
+ */
+
+#define i386_round_page(x)      ((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \
+	                                ~(I386_PGBYTES-1))
+#define i386_trunc_page(x)      (((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1))
+
+
+
+#define VM_MIN_ADDRESS64        ((user_addr_t) 0x0000000000000000ULL)
+/*
+ * default top of user stack... it grows down from here
+ */
+#define VM_USRSTACK64           ((user_addr_t) 0x00007FFEEFC00000ULL)
+
+/*
+ * XXX TODO: Obsolete?
+ */
+#define VM_DYLD64               ((user_addr_t) 0x00007FFF5FC00000ULL)
+#define VM_LIB64_SHR_DATA       ((user_addr_t) 0x00007FFF60000000ULL)
+#define VM_LIB64_SHR_TEXT       ((user_addr_t) 0x00007FFF80000000ULL)
+/*
+ * the end of the usable user address space , for now about 47 bits.
+ * the 64 bit commpage is past the end of this
+ */
+#define VM_MAX_PAGE_ADDRESS     ((user_addr_t) 0x00007FFFFFE00000ULL)
+/*
+ * canonical end of user address space for limits checking
+ */
+#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL)
+
+
+/* system-wide values */
+#define MACH_VM_MIN_ADDRESS             ((mach_vm_offset_t) 0)
+#define MACH_VM_MAX_ADDRESS             ((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS)
+
+/* process-relative values (all 32-bit legacy only for now) */
+#define VM_MIN_ADDRESS          ((vm_offset_t) 0)
+#define VM_USRSTACK32           ((vm_offset_t) 0xC0000000)      /* ASLR slides stack down by up to 1 MB */
+#define VM_MAX_ADDRESS          ((vm_offset_t) 0xFFE00000)
+
+
+
+#endif  /* _MACH_I386_VM_PARAM_H_ */
lib/libc/include/x86_64-macos-gnu/mach/i386/vm_types.h
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	vm_types.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date: 1985
+ *
+ *	Header file for VM data types.  I386 version.
+ */
+
+#ifndef _MACH_I386_VM_TYPES_H_
+#define _MACH_I386_VM_TYPES_H_
+
+#ifndef ASSEMBLER
+
+#include <i386/_types.h>
+#include <mach/i386/vm_param.h>
+#include <stdint.h>
+
+/*
+ * natural_t and integer_t are Mach's legacy types for machine-
+ * independent integer types (unsigned, and signed, respectively).
+ * Their original purpose was to define other types in a machine/
+ * compiler independent way.
+ *
+ * They also had an implicit "same size as pointer" characteristic
+ * to them (i.e. Mach's traditional types are very ILP32 or ILP64
+ * centric).  We support x86 ABIs that do not follow either of
+ * these models (specifically LP64).  Therefore, we had to make a
+ * choice between making these types scale with pointers or stay
+ * tied to integers.  Because their use is predominantly tied to
+ * to the size of an integer, we are keeping that association and
+ * breaking free from pointer size guarantees.
+ *
+ * New use of these types is discouraged.
+ */
+typedef __darwin_natural_t      natural_t;
+typedef int                     integer_t;
+
+/*
+ * A vm_offset_t is a type-neutral pointer,
+ * e.g. an offset into a virtual memory space.
+ */
+#ifdef __LP64__
+typedef uintptr_t               vm_offset_t;
+#else   /* __LP64__ */
+typedef natural_t               vm_offset_t;
+#endif  /* __LP64__ */
+
+/*
+ * A vm_size_t is the proper type for e.g.
+ * expressing the difference between two
+ * vm_offset_t entities.
+ */
+#ifdef __LP64__
+typedef uintptr_t               vm_size_t;
+#else   /* __LP64__ */
+typedef natural_t               vm_size_t;
+#endif  /* __LP64__ */
+
+/*
+ * This new type is independent of a particular vm map's
+ * implementation size - and represents appropriate types
+ * for all possible maps.  This is used for interfaces
+ * where the size of the map is not known - or we don't
+ * want to have to distinguish.
+ */
+typedef uint64_t                mach_vm_address_t;
+typedef uint64_t                mach_vm_offset_t;
+typedef uint64_t                mach_vm_size_t;
+
+typedef uint64_t                vm_map_offset_t;
+typedef uint64_t                vm_map_address_t;
+typedef uint64_t                vm_map_size_t;
+
+typedef mach_vm_address_t       mach_port_context_t;
+
+
+#endif  /* ASSEMBLER */
+
+/*
+ * If composing messages by hand (please do not)
+ */
+#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32
+
+#endif  /* _MACH_I386_VM_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/boolean.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_BOOLEAN_H_
+#define _MACH_MACHINE_BOOLEAN_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/boolean.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_BOOLEAN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/exception.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_EXCEPTION_H_
+#define _MACH_MACHINE_EXCEPTION_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/exception.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_EXCEPTION_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/kern_return.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_KERN_RETURN_H_
+#define _MACH_MACHINE_KERN_RETURN_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/kern_return.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_KERN_RETURN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/thread_state.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_THREAD_STATE_H_
+#define _MACH_MACHINE_THREAD_STATE_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/thread_state.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/thread_status.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_THREAD_STATUS_H_
+#define _MACH_MACHINE_THREAD_STATUS_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/thread_status.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_THREAD_STATUS_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine/vm_types.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_TYPES_H_
+#define _MACH_MACHINE_VM_TYPES_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/vm_types.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_VM_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/boolean.h
@@ -0,0 +1,88 @@
+/*
+ * 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/boolean.h
+ *
+ *	Boolean data type.
+ *
+ */
+
+#ifndef _MACH_BOOLEAN_H_
+#define _MACH_BOOLEAN_H_
+
+/*
+ *	Pick up "boolean_t" type definition
+ */
+
+#ifndef ASSEMBLER
+#include <mach/machine/boolean.h>
+#endif  /* ASSEMBLER */
+
+/*
+ *	Define TRUE and FALSE if not defined.
+ */
+
+#ifndef TRUE
+#define TRUE    1
+#endif  /* TRUE */
+
+#ifndef FALSE
+#define FALSE   0
+#endif  /* FALSE */
+
+#endif  /* _MACH_BOOLEAN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/exception_types.h
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_EXCEPTION_TYPES_H_
+#define _MACH_EXCEPTION_TYPES_H_
+
+#include <mach/machine/exception.h>
+
+/*
+ *	Machine-independent exception definitions.
+ */
+
+#define EXC_BAD_ACCESS          1       /* Could not access memory */
+/* Code contains kern_return_t describing error. */
+/* Subcode contains bad memory address. */
+
+#define EXC_BAD_INSTRUCTION     2       /* Instruction failed */
+/* Illegal or undefined instruction or operand */
+
+#define EXC_ARITHMETIC          3       /* Arithmetic exception */
+/* Exact nature of exception is in code field */
+
+#define EXC_EMULATION           4       /* Emulation instruction */
+/* Emulation support instruction encountered */
+/* Details in code and subcode fields	*/
+
+#define EXC_SOFTWARE            5       /* Software generated exception */
+/* Exact exception is in code field. */
+/* Codes 0 - 0xFFFF reserved to hardware */
+/* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
+
+#define EXC_BREAKPOINT          6       /* Trace, breakpoint, etc. */
+/* Details in code field. */
+
+#define EXC_SYSCALL             7       /* System calls. */
+
+#define EXC_MACH_SYSCALL        8       /* Mach system calls. */
+
+#define EXC_RPC_ALERT           9       /* RPC alert */
+
+#define EXC_CRASH               10      /* Abnormal process exit */
+
+#define EXC_RESOURCE            11      /* Hit resource consumption limit */
+/* Exact resource is in code field. */
+
+#define EXC_GUARD               12      /* Violated guarded resource protections */
+
+#define EXC_CORPSE_NOTIFY       13      /* Abnormal process exited to corpse state */
+
+#define EXC_CORPSE_VARIANT_BIT  0x100  /* bit set for EXC_*_CORPSE variants of EXC_* */
+
+
+/*
+ *	Machine-independent exception behaviors
+ */
+
+# define EXCEPTION_DEFAULT              1
+/*	Send a catch_exception_raise message including the identity.
+ */
+
+# define EXCEPTION_STATE                2
+/*	Send a catch_exception_raise_state message including the
+ *	thread state.
+ */
+
+# define EXCEPTION_STATE_IDENTITY       3
+/*	Send a catch_exception_raise_state_identity message including
+ *	the thread identity and state.
+ */
+
+#define MACH_EXCEPTION_ERRORS           0x40000000
+/*	include additional exception specific errors, not used yet.  */
+
+#define MACH_EXCEPTION_CODES            0x80000000
+/*	Send 64-bit code and subcode in the exception header */
+
+#define MACH_EXCEPTION_MASK             (MACH_EXCEPTION_CODES | MACH_EXCEPTION_ERRORS)
+/*
+ * Masks for exception definitions, above
+ * bit zero is unused, therefore 1 word = 31 exception types
+ */
+
+#define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
+#define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
+#define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
+#define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
+#define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
+#define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
+#define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
+#define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
+#define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
+#define EXC_MASK_CRASH                  (1 << EXC_CRASH)
+#define EXC_MASK_RESOURCE               (1 << EXC_RESOURCE)
+#define EXC_MASK_GUARD                  (1 << EXC_GUARD)
+#define EXC_MASK_CORPSE_NOTIFY          (1 << EXC_CORPSE_NOTIFY)
+
+#define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
+	                 EXC_MASK_BAD_INSTRUCTION |             \
+	                 EXC_MASK_ARITHMETIC |                  \
+	                 EXC_MASK_EMULATION |                   \
+	                 EXC_MASK_SOFTWARE |                    \
+	                 EXC_MASK_BREAKPOINT |                  \
+	                 EXC_MASK_SYSCALL |                     \
+	                 EXC_MASK_MACH_SYSCALL |                \
+	                 EXC_MASK_RPC_ALERT |                   \
+	                 EXC_MASK_RESOURCE |                    \
+	                 EXC_MASK_GUARD |                       \
+	                 EXC_MASK_MACHINE)
+
+
+#define FIRST_EXCEPTION         1       /* ZERO is illegal */
+
+/*
+ * Machine independent codes for EXC_SOFTWARE
+ * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix)
+ * 0x10000 - 0x10002 in use for unix signals
+ * 0x20000 - 0x2FFFF reserved for MACF
+ */
+#define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
+
+#define EXC_MACF_MIN            0x20000 /* MACF exceptions */
+#define EXC_MACF_MAX            0x2FFFF
+
+#ifndef ASSEMBLER
+
+#include <mach/port.h>
+#include <mach/thread_status.h>
+#include <mach/machine/vm_types.h>
+/*
+ * Exported types
+ */
+
+typedef int                             exception_type_t;
+typedef integer_t                       exception_data_type_t;
+typedef int64_t                         mach_exception_data_type_t;
+typedef int                             exception_behavior_t;
+typedef exception_data_type_t           *exception_data_t;
+typedef mach_exception_data_type_t      *mach_exception_data_t;
+typedef unsigned int                    exception_mask_t;
+typedef exception_mask_t                *exception_mask_array_t;
+typedef exception_behavior_t            *exception_behavior_array_t;
+typedef thread_state_flavor_t           *exception_flavor_array_t;
+typedef mach_port_t                     *exception_port_array_t;
+typedef mach_exception_data_type_t      mach_exception_code_t;
+typedef mach_exception_data_type_t      mach_exception_subcode_t;
+
+#endif  /* ASSEMBLER */
+
+#endif  /* _MACH_EXCEPTION_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/mach/kern_return.h
@@ -0,0 +1,330 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	h/kern_return.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1985
+ *
+ *	Kernel return codes.
+ *
+ */
+
+#ifndef _MACH_KERN_RETURN_H_
+#define _MACH_KERN_RETURN_H_
+
+#include <mach/machine/kern_return.h>
+
+#define KERN_SUCCESS                    0
+
+#define KERN_INVALID_ADDRESS            1
+/* Specified address is not currently valid.
+ */
+
+#define KERN_PROTECTION_FAILURE         2
+/* Specified memory is valid, but does not permit the
+ * required forms of access.
+ */
+
+#define KERN_NO_SPACE                   3
+/* The address range specified is already in use, or
+ * no address range of the size specified could be
+ * found.
+ */
+
+#define KERN_INVALID_ARGUMENT           4
+/* The function requested was not applicable to this
+ * type of argument, or an argument is invalid
+ */
+
+#define KERN_FAILURE                    5
+/* The function could not be performed.  A catch-all.
+ */
+
+#define KERN_RESOURCE_SHORTAGE          6
+/* A system resource could not be allocated to fulfill
+ * this request.  This failure may not be permanent.
+ */
+
+#define KERN_NOT_RECEIVER               7
+/* The task in question does not hold receive rights
+ * for the port argument.
+ */
+
+#define KERN_NO_ACCESS                  8
+/* Bogus access restriction.
+ */
+
+#define KERN_MEMORY_FAILURE             9
+/* During a page fault, the target address refers to a
+ * memory object that has been destroyed.  This
+ * failure is permanent.
+ */
+
+#define KERN_MEMORY_ERROR               10
+/* During a page fault, the memory object indicated
+ * that the data could not be returned.  This failure
+ * may be temporary; future attempts to access this
+ * same data may succeed, as defined by the memory
+ * object.
+ */
+
+#define KERN_ALREADY_IN_SET             11
+/* The receive right is already a member of the portset.
+ */
+
+#define KERN_NOT_IN_SET                 12
+/* The receive right is not a member of a port set.
+ */
+
+#define KERN_NAME_EXISTS                13
+/* The name already denotes a right in the task.
+ */
+
+#define KERN_ABORTED                    14
+/* The operation was aborted.  Ipc code will
+ * catch this and reflect it as a message error.
+ */
+
+#define KERN_INVALID_NAME               15
+/* The name doesn't denote a right in the task.
+ */
+
+#define KERN_INVALID_TASK               16
+/* Target task isn't an active task.
+ */
+
+#define KERN_INVALID_RIGHT              17
+/* The name denotes a right, but not an appropriate right.
+ */
+
+#define KERN_INVALID_VALUE              18
+/* A blatant range error.
+ */
+
+#define KERN_UREFS_OVERFLOW             19
+/* Operation would overflow limit on user-references.
+ */
+
+#define KERN_INVALID_CAPABILITY         20
+/* The supplied (port) capability is improper.
+ */
+
+#define KERN_RIGHT_EXISTS               21
+/* The task already has send or receive rights
+ * for the port under another name.
+ */
+
+#define KERN_INVALID_HOST               22
+/* Target host isn't actually a host.
+ */
+
+#define KERN_MEMORY_PRESENT             23
+/* An attempt was made to supply "precious" data
+ * for memory that is already present in a
+ * memory object.
+ */
+
+#define KERN_MEMORY_DATA_MOVED          24
+/* A page was requested of a memory manager via
+ * memory_object_data_request for an object using
+ * a MEMORY_OBJECT_COPY_CALL strategy, with the
+ * VM_PROT_WANTS_COPY flag being used to specify
+ * that the page desired is for a copy of the
+ * object, and the memory manager has detected
+ * the page was pushed into a copy of the object
+ * while the kernel was walking the shadow chain
+ * from the copy to the object. This error code
+ * is delivered via memory_object_data_error
+ * and is handled by the kernel (it forces the
+ * kernel to restart the fault). It will not be
+ * seen by users.
+ */
+
+#define KERN_MEMORY_RESTART_COPY        25
+/* A strategic copy was attempted of an object
+ * upon which a quicker copy is now possible.
+ * The caller should retry the copy using
+ * vm_object_copy_quickly. This error code
+ * is seen only by the kernel.
+ */
+
+#define KERN_INVALID_PROCESSOR_SET      26
+/* An argument applied to assert processor set privilege
+ * was not a processor set control port.
+ */
+
+#define KERN_POLICY_LIMIT               27
+/* The specified scheduling attributes exceed the thread's
+ * limits.
+ */
+
+#define KERN_INVALID_POLICY             28
+/* The specified scheduling policy is not currently
+ * enabled for the processor set.
+ */
+
+#define KERN_INVALID_OBJECT             29
+/* The external memory manager failed to initialize the
+ * memory object.
+ */
+
+#define KERN_ALREADY_WAITING            30
+/* A thread is attempting to wait for an event for which
+ * there is already a waiting thread.
+ */
+
+#define KERN_DEFAULT_SET                31
+/* An attempt was made to destroy the default processor
+ * set.
+ */
+
+#define KERN_EXCEPTION_PROTECTED        32
+/* An attempt was made to fetch an exception port that is
+ * protected, or to abort a thread while processing a
+ * protected exception.
+ */
+
+#define KERN_INVALID_LEDGER             33
+/* A ledger was required but not supplied.
+ */
+
+#define KERN_INVALID_MEMORY_CONTROL     34
+/* The port was not a memory cache control port.
+ */
+
+#define KERN_INVALID_SECURITY           35
+/* An argument supplied to assert security privilege
+ * was not a host security port.
+ */
+
+#define KERN_NOT_DEPRESSED              36
+/* thread_depress_abort was called on a thread which
+ * was not currently depressed.
+ */
+
+#define KERN_TERMINATED                 37
+/* Object has been terminated and is no longer available
+ */
+
+#define KERN_LOCK_SET_DESTROYED         38
+/* Lock set has been destroyed and is no longer available.
+ */
+
+#define KERN_LOCK_UNSTABLE              39
+/* The thread holding the lock terminated before releasing
+ * the lock
+ */
+
+#define KERN_LOCK_OWNED                 40
+/* The lock is already owned by another thread
+ */
+
+#define KERN_LOCK_OWNED_SELF            41
+/* The lock is already owned by the calling thread
+ */
+
+#define KERN_SEMAPHORE_DESTROYED        42
+/* Semaphore has been destroyed and is no longer available.
+ */
+
+#define KERN_RPC_SERVER_TERMINATED      43
+/* Return from RPC indicating the target server was
+ * terminated before it successfully replied
+ */
+
+#define KERN_RPC_TERMINATE_ORPHAN       44
+/* Terminate an orphaned activation.
+ */
+
+#define KERN_RPC_CONTINUE_ORPHAN        45
+/* Allow an orphaned activation to continue executing.
+ */
+
+#define KERN_NOT_SUPPORTED              46
+/* Empty thread activation (No thread linked to it)
+ */
+
+#define KERN_NODE_DOWN                  47
+/* Remote node down or inaccessible.
+ */
+
+#define KERN_NOT_WAITING                48
+/* A signalled thread was not actually waiting. */
+
+#define KERN_OPERATION_TIMED_OUT        49
+/* Some thread-oriented operation (semaphore_wait) timed out
+ */
+
+#define KERN_CODESIGN_ERROR             50
+/* During a page fault, indicates that the page was rejected
+ * as a result of a signature check.
+ */
+
+#define KERN_POLICY_STATIC              51
+/* The requested property cannot be changed at this time.
+ */
+
+#define KERN_INSUFFICIENT_BUFFER_SIZE   52
+/* The provided buffer is of insufficient size for the requested data.
+ */
+
+#define KERN_RETURN_MAX                 0x100
+/* Maximum return value allowable
+ */
+
+#endif  /* _MACH_KERN_RETURN_H_ */
lib/libc/include/x86_64-macos-gnu/mach/machine.h
@@ -0,0 +1,395 @@
+/*
+ * Copyright (c) 2007-2016 Apple, Inc. All rights reserved.
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*	File:	machine.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1986
+ *
+ *	Machine independent machine abstraction.
+ */
+
+#ifndef _MACH_MACHINE_H_
+#define _MACH_MACHINE_H_
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+#include <mach/machine/vm_types.h>
+#include <mach/boolean.h>
+
+typedef integer_t       cpu_type_t;
+typedef integer_t       cpu_subtype_t;
+typedef integer_t       cpu_threadtype_t;
+
+#define CPU_STATE_MAX           4
+
+#define CPU_STATE_USER          0
+#define CPU_STATE_SYSTEM        1
+#define CPU_STATE_IDLE          2
+#define CPU_STATE_NICE          3
+
+
+
+/*
+ * Capability bits used in the definition of cpu_type.
+ */
+#define CPU_ARCH_MASK           0xff000000      /* mask for architecture bits */
+#define CPU_ARCH_ABI64          0x01000000      /* 64 bit ABI */
+#define CPU_ARCH_ABI64_32       0x02000000      /* ABI for 64-bit hardware with 32-bit types; LP32 */
+
+/*
+ *	Machine types known by all.
+ */
+
+#define CPU_TYPE_ANY            ((cpu_type_t) -1)
+
+#define CPU_TYPE_VAX            ((cpu_type_t) 1)
+/* skip				((cpu_type_t) 2)	*/
+/* skip				((cpu_type_t) 3)	*/
+/* skip				((cpu_type_t) 4)	*/
+/* skip				((cpu_type_t) 5)	*/
+#define CPU_TYPE_MC680x0        ((cpu_type_t) 6)
+#define CPU_TYPE_X86            ((cpu_type_t) 7)
+#define CPU_TYPE_I386           CPU_TYPE_X86            /* compatibility */
+#define CPU_TYPE_X86_64         (CPU_TYPE_X86 | CPU_ARCH_ABI64)
+
+/* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/
+/* skip                         ((cpu_type_t) 9)	*/
+#define CPU_TYPE_MC98000        ((cpu_type_t) 10)
+#define CPU_TYPE_HPPA           ((cpu_type_t) 11)
+#define CPU_TYPE_ARM            ((cpu_type_t) 12)
+#define CPU_TYPE_ARM64          (CPU_TYPE_ARM | CPU_ARCH_ABI64)
+#define CPU_TYPE_ARM64_32       (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
+#define CPU_TYPE_MC88000        ((cpu_type_t) 13)
+#define CPU_TYPE_SPARC          ((cpu_type_t) 14)
+#define CPU_TYPE_I860           ((cpu_type_t) 15)
+/* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/
+/* skip				((cpu_type_t) 17)	*/
+#define CPU_TYPE_POWERPC                ((cpu_type_t) 18)
+#define CPU_TYPE_POWERPC64              (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
+/* skip				((cpu_type_t) 19)	*/
+
+/*
+ *	Machine subtypes (these are defined here, instead of in a machine
+ *	dependent directory, so that any program can get all definitions
+ *	regardless of where is it compiled).
+ */
+
+/*
+ * Capability bits used in the definition of cpu_subtype.
+ */
+#define CPU_SUBTYPE_MASK        0xff000000      /* mask for feature flags */
+#define CPU_SUBTYPE_LIB64       0x80000000      /* 64 bit libraries */
+
+
+/*
+ *	Object files that are hand-crafted to run on any
+ *	implementation of an architecture are tagged with
+ *	CPU_SUBTYPE_MULTIPLE.  This functions essentially the same as
+ *	the "ALL" subtype of an architecture except that it allows us
+ *	to easily find object files that may need to be modified
+ *	whenever a new implementation of an architecture comes out.
+ *
+ *	It is the responsibility of the implementor to make sure the
+ *	software handles unsupported implementations elegantly.
+ */
+#define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
+#define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
+
+/*
+ *     Machine threadtypes.
+ *     This is none - not defined - for most machine types/subtypes.
+ */
+#define CPU_THREADTYPE_NONE             ((cpu_threadtype_t) 0)
+
+/*
+ *	VAX subtypes (these do *not* necessary conform to the actual cpu
+ *	ID assigned by DEC available via the SID register).
+ */
+
+#define CPU_SUBTYPE_VAX_ALL     ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_VAX780      ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_VAX785      ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_VAX750      ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_VAX730      ((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_UVAXI       ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_UVAXII      ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_VAX8200     ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_VAX8500     ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_VAX8600     ((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_VAX8650     ((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_VAX8800     ((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_UVAXIII     ((cpu_subtype_t) 12)
+
+/*
+ *      680x0 subtypes
+ *
+ * The subtype definitions here are unusual for historical reasons.
+ * NeXT used to consider 68030 code as generic 68000 code.  For
+ * backwards compatability:
+ *
+ *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code
+ *	compatability.
+ *
+ *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
+ *	subtype as CPU_SUBTYPE_MC68030 for binary comatability.
+ *
+ *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
+ *	files to be tagged as containing 68030-specific instructions.
+ */
+
+#define CPU_SUBTYPE_MC680x0_ALL         ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC68030             ((cpu_subtype_t) 1) /* compat */
+#define CPU_SUBTYPE_MC68040             ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_MC68030_ONLY        ((cpu_subtype_t) 3)
+
+/*
+ *	I386 subtypes
+ */
+
+#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
+
+#define CPU_SUBTYPE_I386_ALL                    CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_386                                 CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_486                                 CPU_SUBTYPE_INTEL(4, 0)
+#define CPU_SUBTYPE_486SX                               CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128
+#define CPU_SUBTYPE_586                                 CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENT        CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENTPRO     CPU_SUBTYPE_INTEL(6, 1)
+#define CPU_SUBTYPE_PENTII_M3   CPU_SUBTYPE_INTEL(6, 3)
+#define CPU_SUBTYPE_PENTII_M5   CPU_SUBTYPE_INTEL(6, 5)
+#define CPU_SUBTYPE_CELERON                             CPU_SUBTYPE_INTEL(7, 6)
+#define CPU_SUBTYPE_CELERON_MOBILE              CPU_SUBTYPE_INTEL(7, 7)
+#define CPU_SUBTYPE_PENTIUM_3                   CPU_SUBTYPE_INTEL(8, 0)
+#define CPU_SUBTYPE_PENTIUM_3_M                 CPU_SUBTYPE_INTEL(8, 1)
+#define CPU_SUBTYPE_PENTIUM_3_XEON              CPU_SUBTYPE_INTEL(8, 2)
+#define CPU_SUBTYPE_PENTIUM_M                   CPU_SUBTYPE_INTEL(9, 0)
+#define CPU_SUBTYPE_PENTIUM_4                   CPU_SUBTYPE_INTEL(10, 0)
+#define CPU_SUBTYPE_PENTIUM_4_M                 CPU_SUBTYPE_INTEL(10, 1)
+#define CPU_SUBTYPE_ITANIUM                             CPU_SUBTYPE_INTEL(11, 0)
+#define CPU_SUBTYPE_ITANIUM_2                   CPU_SUBTYPE_INTEL(11, 1)
+#define CPU_SUBTYPE_XEON                                CPU_SUBTYPE_INTEL(12, 0)
+#define CPU_SUBTYPE_XEON_MP                             CPU_SUBTYPE_INTEL(12, 1)
+
+#define CPU_SUBTYPE_INTEL_FAMILY(x)     ((x) & 15)
+#define CPU_SUBTYPE_INTEL_FAMILY_MAX    15
+
+#define CPU_SUBTYPE_INTEL_MODEL(x)      ((x) >> 4)
+#define CPU_SUBTYPE_INTEL_MODEL_ALL     0
+
+/*
+ *	X86 subtypes.
+ */
+
+#define CPU_SUBTYPE_X86_ALL             ((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_64_ALL          ((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_ARCH1           ((cpu_subtype_t)4)
+#define CPU_SUBTYPE_X86_64_H            ((cpu_subtype_t)8)      /* Haswell feature subset */
+
+
+#define CPU_THREADTYPE_INTEL_HTT        ((cpu_threadtype_t) 1)
+
+/*
+ *	Mips subtypes.
+ */
+
+#define CPU_SUBTYPE_MIPS_ALL    ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MIPS_R2300  ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MIPS_R2600  ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_MIPS_R2800  ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4)     /* pmax */
+#define CPU_SUBTYPE_MIPS_R2000  ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6)     /* 3max */
+#define CPU_SUBTYPE_MIPS_R3000  ((cpu_subtype_t) 7)
+
+/*
+ *	MC98000 (PowerPC) subtypes
+ */
+#define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC98601     ((cpu_subtype_t) 1)
+
+/*
+ *	HPPA subtypes for Hewlett-Packard HP-PA family of
+ *	risc processors. Port by NeXT to 700 series.
+ */
+
+#define CPU_SUBTYPE_HPPA_ALL            ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_HPPA_7100           ((cpu_subtype_t) 0) /* compat */
+#define CPU_SUBTYPE_HPPA_7100LC         ((cpu_subtype_t) 1)
+
+/*
+ *	MC88000 subtypes.
+ */
+#define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC88100     ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC88110     ((cpu_subtype_t) 2)
+
+/*
+ *	SPARC subtypes
+ */
+#define CPU_SUBTYPE_SPARC_ALL           ((cpu_subtype_t) 0)
+
+/*
+ *	I860 subtypes
+ */
+#define CPU_SUBTYPE_I860_ALL    ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_I860_860    ((cpu_subtype_t) 1)
+
+/*
+ *	PowerPC subtypes
+ */
+#define CPU_SUBTYPE_POWERPC_ALL         ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_POWERPC_601         ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_POWERPC_602         ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_POWERPC_603         ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_POWERPC_603e        ((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_POWERPC_603ev       ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_POWERPC_604         ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_POWERPC_604e        ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_POWERPC_620         ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_POWERPC_750         ((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_POWERPC_7400        ((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_POWERPC_7450        ((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_POWERPC_970         ((cpu_subtype_t) 100)
+
+/*
+ *	ARM subtypes
+ */
+#define CPU_SUBTYPE_ARM_ALL             ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM_V4T             ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_ARM_V6              ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_ARM_V5TEJ           ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_ARM_XSCALE          ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_ARM_V7              ((cpu_subtype_t) 9)  /* ARMv7-A and ARMv7-R */
+#define CPU_SUBTYPE_ARM_V7F             ((cpu_subtype_t) 10) /* Cortex A9 */
+#define CPU_SUBTYPE_ARM_V7S             ((cpu_subtype_t) 11) /* Swift */
+#define CPU_SUBTYPE_ARM_V7K             ((cpu_subtype_t) 12)
+#define CPU_SUBTYPE_ARM_V8              ((cpu_subtype_t) 13)
+#define CPU_SUBTYPE_ARM_V6M             ((cpu_subtype_t) 14) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V7M             ((cpu_subtype_t) 15) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V7EM            ((cpu_subtype_t) 16) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V8M             ((cpu_subtype_t) 17) /* Not meant to be run under xnu */
+
+/*
+ *  ARM64 subtypes
+ */
+#define CPU_SUBTYPE_ARM64_ALL           ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM64_V8            ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_ARM64E              ((cpu_subtype_t) 2)
+
+/* CPU subtype feature flags for ptrauth on arm64e platforms */
+#define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000
+#define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24)
+
+/*
+ *  ARM64_32 subtypes
+ */
+#define CPU_SUBTYPE_ARM64_32_ALL        ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1)
+
+#endif /* !__ASSEMBLER__ */
+
+/*
+ *	CPU families (sysctl hw.cpufamily)
+ *
+ * These are meant to identify the CPU's marketing name - an
+ * application can map these to (possibly) localized strings.
+ * NB: the encodings of the CPU families are intentionally arbitrary.
+ * There is no ordering, and you should never try to deduce whether
+ * or not some feature is available based on the family.
+ * Use feature flags (eg, hw.optional.altivec) to test for optional
+ * functionality.
+ */
+#define CPUFAMILY_UNKNOWN               0
+#define CPUFAMILY_POWERPC_G3            0xcee41549
+#define CPUFAMILY_POWERPC_G4            0x77c184ae
+#define CPUFAMILY_POWERPC_G5            0xed76d8aa
+#define CPUFAMILY_INTEL_6_13            0xaa33392b
+#define CPUFAMILY_INTEL_PENRYN          0x78ea4fbc
+#define CPUFAMILY_INTEL_NEHALEM         0x6b5a4cd2
+#define CPUFAMILY_INTEL_WESTMERE        0x573b5eec
+#define CPUFAMILY_INTEL_SANDYBRIDGE     0x5490b78c
+#define CPUFAMILY_INTEL_IVYBRIDGE       0x1f65e835
+#define CPUFAMILY_INTEL_HASWELL         0x10b282dc
+#define CPUFAMILY_INTEL_BROADWELL       0x582ed09c
+#define CPUFAMILY_INTEL_SKYLAKE         0x37fc219f
+#define CPUFAMILY_INTEL_KABYLAKE        0x0f817246
+#if !defined(RC_HIDE_XNU_ICELAKE)
+#define CPUFAMILY_INTEL_ICELAKE         0x38435547
+#endif /* not RC_HIDE_XNU_ICELAKE */
+#if !defined(RC_HIDE_XNU_COMETLAKE)
+#define CPUFAMILY_INTEL_COMETLAKE       0x1cf8a03e
+#endif /* not RC_HIDE_XNU_COMETLAKE */
+#define CPUFAMILY_ARM_9                 0xe73283ae
+#define CPUFAMILY_ARM_11                0x8ff620d8
+#define CPUFAMILY_ARM_XSCALE            0x53b005f5
+#define CPUFAMILY_ARM_12                0xbd1b0ae9
+#define CPUFAMILY_ARM_13                0x0cc90e64
+#define CPUFAMILY_ARM_14                0x96077ef1
+#define CPUFAMILY_ARM_15                0xa8511bca
+#define CPUFAMILY_ARM_SWIFT             0x1e2d6381
+#define CPUFAMILY_ARM_CYCLONE           0x37a09642
+#define CPUFAMILY_ARM_TYPHOON           0x2c91a47e
+#define CPUFAMILY_ARM_TWISTER           0x92fb37c8
+#define CPUFAMILY_ARM_HURRICANE         0x67ceee93
+#define CPUFAMILY_ARM_MONSOON_MISTRAL   0xe81e7ef6
+#define CPUFAMILY_ARM_VORTEX_TEMPEST    0x07d34b9f
+#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2
+
+/* The following synonyms are deprecated: */
+#define CPUFAMILY_INTEL_6_23    CPUFAMILY_INTEL_PENRYN
+#define CPUFAMILY_INTEL_6_26    CPUFAMILY_INTEL_NEHALEM
+
+
+#endif  /* _MACH_MACHINE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/message.h
@@ -0,0 +1,902 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ * NOTICE: This file was modified by McAfee Research in 2004 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ * Copyright (c) 2005 SPARTA, Inc.
+ */
+/*
+ */
+/*
+ *	File:	mach/message.h
+ *
+ *	Mach IPC message and primitive function definitions.
+ */
+
+#ifndef _MACH_MESSAGE_H_
+#define _MACH_MESSAGE_H_
+
+#include <stdint.h>
+#include <mach/port.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/machine/vm_types.h>
+
+#include <sys/cdefs.h>
+#include <sys/appleapiopts.h>
+#include <Availability.h>
+
+/*
+ *  The timeout mechanism uses mach_msg_timeout_t values,
+ *  passed by value.  The timeout units are milliseconds.
+ *  It is controlled with the MACH_SEND_TIMEOUT
+ *  and MACH_RCV_TIMEOUT options.
+ */
+
+typedef natural_t mach_msg_timeout_t;
+
+/*
+ *  The value to be used when there is no timeout.
+ *  (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.)
+ */
+
+#define MACH_MSG_TIMEOUT_NONE           ((mach_msg_timeout_t) 0)
+
+/*
+ *  The kernel uses MACH_MSGH_BITS_COMPLEX as a hint.  If it isn't on, it
+ *  assumes the body of the message doesn't contain port rights or OOL
+ *  data.  The field is set in received messages.  A user task must
+ *  use caution in interpreting the body of a message if the bit isn't
+ *  on, because the mach_msg_type's in the body might "lie" about the
+ *  contents.  If the bit isn't on, but the mach_msg_types
+ *  in the body specify rights or OOL data, the behavior is undefined.
+ *  (Ie, an error may or may not be produced.)
+ *
+ *  The value of MACH_MSGH_BITS_REMOTE determines the interpretation
+ *  of the msgh_remote_port field.  It is handled like a msgt_name,
+ *  but must result in a send or send-once type right.
+ *
+ *  The value of MACH_MSGH_BITS_LOCAL determines the interpretation
+ *  of the msgh_local_port field.  It is handled like a msgt_name,
+ *  and also must result in a send or send-once type right.
+ *
+ *  The value of MACH_MSGH_BITS_VOUCHER determines the interpretation
+ *  of the msgh_voucher_port field.  It is handled like a msgt_name,
+ *  but must result in a send right (and the msgh_voucher_port field
+ *  must be the name of a send right to a Mach voucher kernel object.
+ *
+ *  MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote
+ *  and local fields, into a single value suitable for msgh_bits.
+ *
+ *  MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally.
+ *
+ *  The unused bits should be zero and are reserved for the kernel
+ *  or for future interface expansion.
+ */
+
+#define MACH_MSGH_BITS_ZERO             0x00000000
+
+#define MACH_MSGH_BITS_REMOTE_MASK      0x0000001f
+#define MACH_MSGH_BITS_LOCAL_MASK       0x00001f00
+#define MACH_MSGH_BITS_VOUCHER_MASK     0x001f0000
+
+#define MACH_MSGH_BITS_PORTS_MASK               \
+	        (MACH_MSGH_BITS_REMOTE_MASK |   \
+	         MACH_MSGH_BITS_LOCAL_MASK |    \
+	         MACH_MSGH_BITS_VOUCHER_MASK)
+
+#define MACH_MSGH_BITS_COMPLEX          0x80000000U     /* message is complex */
+
+#define MACH_MSGH_BITS_USER             0x801f1f1fU     /* allowed bits user->kernel */
+
+#define MACH_MSGH_BITS_RAISEIMP         0x20000000U     /* importance raised due to msg */
+#define MACH_MSGH_BITS_DENAP            MACH_MSGH_BITS_RAISEIMP
+
+#define MACH_MSGH_BITS_IMPHOLDASRT      0x10000000U     /* assertion help, userland private */
+#define MACH_MSGH_BITS_DENAPHOLDASRT    MACH_MSGH_BITS_IMPHOLDASRT
+
+#define MACH_MSGH_BITS_CIRCULAR         0x10000000U     /* message circular, kernel private */
+
+#define MACH_MSGH_BITS_USED             0xb01f1f1fU
+
+/* setter macros for the bits */
+#define MACH_MSGH_BITS(remote, local)  /* legacy */             \
+	        ((remote) | ((local) << 8))
+#define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher)        \
+	(((remote) & MACH_MSGH_BITS_REMOTE_MASK) |              \
+	 (((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) |         \
+	 (((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK))
+#define MACH_MSGH_BITS_SET(remote, local, voucher, other)       \
+	(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \
+	 | ((other) &~ MACH_MSGH_BITS_PORTS_MASK))
+
+/* getter macros for pulling values out of the bits field */
+#define MACH_MSGH_BITS_REMOTE(bits)                             \
+	        ((bits) & MACH_MSGH_BITS_REMOTE_MASK)
+#define MACH_MSGH_BITS_LOCAL(bits)                              \
+	        (((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8)
+#define MACH_MSGH_BITS_VOUCHER(bits)                            \
+	        (((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16)
+#define MACH_MSGH_BITS_PORTS(bits)                              \
+	((bits) & MACH_MSGH_BITS_PORTS_MASK)
+#define MACH_MSGH_BITS_OTHER(bits)                              \
+	        ((bits) &~ MACH_MSGH_BITS_PORTS_MASK)
+
+/* checking macros */
+#define MACH_MSGH_BITS_HAS_REMOTE(bits)                         \
+	(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HAS_LOCAL(bits)                          \
+	(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HAS_VOUCHER(bits)                        \
+	(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_IS_COMPLEX(bits)                         \
+	(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO)
+
+/* importance checking macros */
+#define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits)                  \
+	(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits)         \
+	(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO)
+
+/*
+ *  Every message starts with a message header.
+ *  Following the message header, if the message is complex, are a count
+ *  of type descriptors and the type descriptors themselves
+ *  (mach_msg_descriptor_t). The size of the message must be specified in
+ *  bytes, and includes the message header, descriptor count, descriptors,
+ *  and inline data.
+ *
+ *  The msgh_remote_port field specifies the destination of the message.
+ *  It must specify a valid send or send-once right for a port.
+ *
+ *  The msgh_local_port field specifies a "reply port".  Normally,
+ *  This field carries a send-once right that the receiver will use
+ *  to reply to the message.  It may carry the values MACH_PORT_NULL,
+ *  MACH_PORT_DEAD, a send-once right, or a send right.
+ *
+ *  The msgh_voucher_port field specifies a Mach voucher port. Only
+ *  send rights to kernel-implemented Mach Voucher kernel objects in
+ *  addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed.
+ *
+ *  The msgh_id field is uninterpreted by the message primitives.
+ *  It normally carries information specifying the format
+ *  or meaning of the message.
+ */
+
+typedef unsigned int mach_msg_bits_t;
+typedef natural_t mach_msg_size_t;
+typedef integer_t mach_msg_id_t;
+
+#define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0
+
+typedef unsigned int mach_msg_priority_t;
+
+#define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0
+
+typedef unsigned int mach_msg_type_name_t;
+
+#define MACH_MSG_TYPE_MOVE_RECEIVE      16      /* Must hold receive right */
+#define MACH_MSG_TYPE_MOVE_SEND         17      /* Must hold send right(s) */
+#define MACH_MSG_TYPE_MOVE_SEND_ONCE    18      /* Must hold sendonce right */
+#define MACH_MSG_TYPE_COPY_SEND         19      /* Must hold send right(s) */
+#define MACH_MSG_TYPE_MAKE_SEND         20      /* Must hold receive right */
+#define MACH_MSG_TYPE_MAKE_SEND_ONCE    21      /* Must hold receive right */
+#define MACH_MSG_TYPE_COPY_RECEIVE      22      /* NOT VALID */
+#define MACH_MSG_TYPE_DISPOSE_RECEIVE   24      /* must hold receive right */
+#define MACH_MSG_TYPE_DISPOSE_SEND      25      /* must hold send right(s) */
+#define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26      /* must hold sendonce right */
+
+typedef unsigned int mach_msg_copy_options_t;
+
+#define MACH_MSG_PHYSICAL_COPY          0
+#define MACH_MSG_VIRTUAL_COPY           1
+#define MACH_MSG_ALLOCATE               2
+#define MACH_MSG_OVERWRITE              3       /* deprecated */
+#ifdef  MACH_KERNEL
+#define MACH_MSG_KALLOC_COPY_T          4
+#endif  /* MACH_KERNEL */
+
+#define MACH_MSG_GUARD_FLAGS_NONE                   0x0000
+#define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE      0x0001    /* Move the receive right and mark it as immovable */
+#define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND      0x0002    /* Verify that the port is unguarded */
+#define MACH_MSG_GUARD_FLAGS_MASK                   0x0003    /* Valid flag bits */
+typedef unsigned int mach_msg_guard_flags_t;
+
+/*
+ * In a complex mach message, the mach_msg_header_t is followed by
+ * a descriptor count, then an array of that number of descriptors
+ * (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t
+ * (which any descriptor can be cast to) indicates the flavor of the
+ * descriptor.
+ *
+ * Note that in LP64, the various types of descriptors are no longer all
+ * the same size as mach_msg_descriptor_t, so the array cannot be indexed
+ * as expected.
+ */
+
+typedef unsigned int mach_msg_descriptor_type_t;
+
+#define MACH_MSG_PORT_DESCRIPTOR                0
+#define MACH_MSG_OOL_DESCRIPTOR                 1
+#define MACH_MSG_OOL_PORTS_DESCRIPTOR           2
+#define MACH_MSG_OOL_VOLATILE_DESCRIPTOR        3
+#define MACH_MSG_GUARDED_PORT_DESCRIPTOR        4
+
+#pragma pack(push, 4)
+
+typedef struct{
+	natural_t                     pad1;
+	mach_msg_size_t               pad2;
+	unsigned int                  pad3 : 24;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_type_descriptor_t;
+
+typedef struct{
+	mach_port_t                   name;
+// Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes
+	mach_msg_size_t               pad1;
+	unsigned int                  pad2 : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_port_descriptor_t;
+
+typedef struct{
+	uint32_t                      address;
+	mach_msg_size_t               size;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+} mach_msg_ool_descriptor32_t;
+
+typedef struct{
+	uint64_t                      address;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+	mach_msg_size_t               size;
+} mach_msg_ool_descriptor64_t;
+
+typedef struct{
+	void*                         address;
+#if !defined(__LP64__)
+	mach_msg_size_t               size;
+#endif
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+#if defined(__LP64__)
+	mach_msg_size_t               size;
+#endif
+} mach_msg_ool_descriptor_t;
+
+typedef struct{
+	uint32_t                      address;
+	mach_msg_size_t               count;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_ool_ports_descriptor32_t;
+
+typedef struct{
+	uint64_t                      address;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+	mach_msg_size_t               count;
+} mach_msg_ool_ports_descriptor64_t;
+
+typedef struct{
+	void*                         address;
+#if !defined(__LP64__)
+	mach_msg_size_t               count;
+#endif
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+#if defined(__LP64__)
+	mach_msg_size_t               count;
+#endif
+} mach_msg_ool_ports_descriptor_t;
+
+typedef struct{
+	uint32_t                      context;
+	mach_port_name_t              name;
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_guarded_port_descriptor32_t;
+
+typedef struct{
+	uint64_t                      context;
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+	mach_port_name_t              name;
+} mach_msg_guarded_port_descriptor64_t;
+
+typedef struct{
+	mach_port_context_t           context;
+#if !defined(__LP64__)
+	mach_port_name_t              name;
+#endif
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+#if defined(__LP64__)
+	mach_port_name_t              name;
+#endif /* defined(__LP64__) */
+} mach_msg_guarded_port_descriptor_t;
+
+/*
+ * LP64support - This union definition is not really
+ * appropriate in LP64 mode because not all descriptors
+ * are of the same size in that environment.
+ */
+typedef union{
+	mach_msg_port_descriptor_t            port;
+	mach_msg_ool_descriptor_t             out_of_line;
+	mach_msg_ool_ports_descriptor_t       ool_ports;
+	mach_msg_type_descriptor_t            type;
+	mach_msg_guarded_port_descriptor_t    guarded_port;
+} mach_msg_descriptor_t;
+
+typedef struct{
+	mach_msg_size_t msgh_descriptor_count;
+} mach_msg_body_t;
+
+#define MACH_MSG_BODY_NULL (mach_msg_body_t *) 0
+#define MACH_MSG_DESCRIPTOR_NULL (mach_msg_descriptor_t *) 0
+
+typedef struct{
+	mach_msg_bits_t       msgh_bits;
+	mach_msg_size_t       msgh_size;
+	mach_port_t           msgh_remote_port;
+	mach_port_t           msgh_local_port;
+	mach_port_name_t      msgh_voucher_port;
+	mach_msg_id_t         msgh_id;
+} mach_msg_header_t;
+
+#define msgh_reserved           msgh_voucher_port
+#define MACH_MSG_NULL   (mach_msg_header_t *) 0
+
+typedef struct{
+	mach_msg_header_t       header;
+	mach_msg_body_t         body;
+} mach_msg_base_t;
+
+typedef unsigned int mach_msg_trailer_type_t;
+
+#define MACH_MSG_TRAILER_FORMAT_0       0
+
+typedef unsigned int mach_msg_trailer_size_t;
+typedef char *mach_msg_trailer_info_t;
+
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+} mach_msg_trailer_t;
+
+/*
+ *  The msgh_seqno field carries a sequence number
+ *  associated with the received-from port.  A port's
+ *  sequence number is incremented every time a message
+ *  is received from it and included in the received
+ *  trailer to help put messages back in sequence if
+ *  multiple threads receive and/or process received
+ *  messages.
+ */
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+} mach_msg_seqno_trailer_t;
+
+typedef struct{
+	unsigned int                  val[2];
+} security_token_t;
+
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+} mach_msg_security_trailer_t;
+
+/*
+ * The audit token is an opaque token which identifies
+ * Mach tasks and senders of Mach messages as subjects
+ * to the BSM audit system.  Only the appropriate BSM
+ * library routines should be used to interpret the
+ * contents of the audit token as the representation
+ * of the subject identity within the token may change
+ * over time.
+ */
+typedef struct{
+	unsigned int                  val[8];
+} audit_token_t;
+
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+} mach_msg_audit_trailer_t;
+
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+	mach_port_context_t           msgh_context;
+} mach_msg_context_trailer_t;
+
+
+
+typedef struct{
+	mach_port_name_t sender;
+} msg_labels_t;
+
+/*
+ *  Trailer type to pass MAC policy label info as a mach message trailer.
+ *
+ */
+
+typedef struct{
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+	mach_port_context_t           msgh_context;
+	int                           msgh_ad;
+	msg_labels_t                  msgh_labels;
+} mach_msg_mac_trailer_t;
+
+
+#define MACH_MSG_TRAILER_MINIMUM_SIZE  sizeof(mach_msg_trailer_t)
+
+/*
+ * These values can change from release to release - but clearly
+ * code cannot request additional trailer elements one was not
+ * compiled to understand.  Therefore, it is safe to use this
+ * constant when the same module specified the receive options.
+ * Otherwise, you run the risk that the options requested by
+ * another module may exceed the local modules notion of
+ * MAX_TRAILER_SIZE.
+ */
+
+typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t;
+#define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t))
+
+/*
+ * Legacy requirements keep us from ever updating these defines (even
+ * when the format_0 trailers gain new option data fields in the future).
+ * Therefore, they shouldn't be used going forward.  Instead, the sizes
+ * should be compared against the specific element size requested using
+ * REQUESTED_TRAILER_SIZE.
+ */
+typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t;
+
+/*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t;
+ */
+
+#define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t)
+
+#define   KERNEL_SECURITY_TOKEN_VALUE  { {0, 1} }
+extern const security_token_t KERNEL_SECURITY_TOKEN;
+
+#define   KERNEL_AUDIT_TOKEN_VALUE  { {0, 0, 0, 0, 0, 0, 0, 0} }
+extern const audit_token_t KERNEL_AUDIT_TOKEN;
+
+typedef integer_t mach_msg_options_t;
+
+typedef struct{
+	mach_msg_header_t     header;
+} mach_msg_empty_send_t;
+
+typedef struct{
+	mach_msg_header_t     header;
+	mach_msg_trailer_t    trailer;
+} mach_msg_empty_rcv_t;
+
+typedef union{
+	mach_msg_empty_send_t send;
+	mach_msg_empty_rcv_t  rcv;
+} mach_msg_empty_t;
+
+#pragma pack(pop)
+
+/* utility to round the message size - will become machine dependent */
+#define round_msg(x)    (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \
+	                        ~(sizeof (natural_t) - 1))
+
+
+/*
+ *  There is no fixed upper bound to the size of Mach messages.
+ */
+#define MACH_MSG_SIZE_MAX       ((mach_msg_size_t) ~0)
+
+#if defined(__APPLE_API_PRIVATE)
+/*
+ *  But architectural limits of a given implementation, or
+ *  temporal conditions may cause unpredictable send failures
+ *  for messages larger than MACH_MSG_SIZE_RELIABLE.
+ *
+ *  In either case, waiting for memory is [currently] outside
+ *  the scope of send timeout values provided to IPC.
+ */
+#define MACH_MSG_SIZE_RELIABLE  ((mach_msg_size_t) 256 * 1024)
+#endif
+/*
+ *  Compatibility definitions, for code written
+ *  when there was a msgh_kind instead of msgh_seqno.
+ */
+#define MACH_MSGH_KIND_NORMAL           0x00000000
+#define MACH_MSGH_KIND_NOTIFICATION     0x00000001
+#define msgh_kind                       msgh_seqno
+#define mach_msg_kind_t                 mach_port_seqno_t
+
+typedef natural_t mach_msg_type_size_t;
+typedef natural_t mach_msg_type_number_t;
+
+/*
+ *  Values received/carried in messages.  Tells the receiver what
+ *  sort of port right he now has.
+ *
+ *  MACH_MSG_TYPE_PORT_NAME is used to transfer a port name
+ *  which should remain uninterpreted by the kernel.  (Port rights
+ *  are not transferred, just the port name.)
+ */
+
+#define MACH_MSG_TYPE_PORT_NONE         0
+
+#define MACH_MSG_TYPE_PORT_NAME         15
+#define MACH_MSG_TYPE_PORT_RECEIVE      MACH_MSG_TYPE_MOVE_RECEIVE
+#define MACH_MSG_TYPE_PORT_SEND         MACH_MSG_TYPE_MOVE_SEND
+#define MACH_MSG_TYPE_PORT_SEND_ONCE    MACH_MSG_TYPE_MOVE_SEND_ONCE
+
+#define MACH_MSG_TYPE_LAST              22              /* Last assigned */
+
+/*
+ *  A dummy value.  Mostly used to indicate that the actual value
+ *  will be filled in later, dynamically.
+ */
+
+#define MACH_MSG_TYPE_POLYMORPHIC       ((mach_msg_type_name_t) -1)
+
+/*
+ *	Is a given item a port type?
+ */
+
+#define MACH_MSG_TYPE_PORT_ANY(x)                       \
+	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
+	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
+
+#define MACH_MSG_TYPE_PORT_ANY_SEND(x)                  \
+	(((x) >= MACH_MSG_TYPE_MOVE_SEND) &&            \
+	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
+
+#define MACH_MSG_TYPE_PORT_ANY_RIGHT(x)                 \
+	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
+	 ((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE))
+
+typedef integer_t mach_msg_option_t;
+
+#define MACH_MSG_OPTION_NONE    0x00000000
+
+#define MACH_SEND_MSG           0x00000001
+#define MACH_RCV_MSG            0x00000002
+
+#define MACH_RCV_LARGE          0x00000004      /* report large message sizes */
+#define MACH_RCV_LARGE_IDENTITY 0x00000008      /* identify source of large messages */
+
+#define MACH_SEND_TIMEOUT       0x00000010      /* timeout value applies to send */
+#define MACH_SEND_OVERRIDE      0x00000020      /* priority override for send */
+#define MACH_SEND_INTERRUPT     0x00000040      /* don't restart interrupted sends */
+#define MACH_SEND_NOTIFY        0x00000080      /* arm send-possible notify */
+#define MACH_SEND_ALWAYS        0x00010000      /* ignore qlimits - kernel only */
+#define MACH_SEND_TRAILER       0x00020000      /* sender-provided trailer */
+#define MACH_SEND_NOIMPORTANCE  0x00040000      /* msg won't carry importance */
+#define MACH_SEND_NODENAP       MACH_SEND_NOIMPORTANCE
+#define MACH_SEND_IMPORTANCE    0x00080000      /* msg carries importance - kernel only */
+#define MACH_SEND_SYNC_OVERRIDE 0x00100000      /* msg should do sync ipc override */
+#define MACH_SEND_PROPAGATE_QOS 0x00200000      /* IPC should propagate the caller's QoS */
+#define MACH_SEND_SYNC_USE_THRPRI       MACH_SEND_PROPAGATE_QOS /* obsolete name */
+#define MACH_SEND_KERNEL        0x00400000      /* full send from kernel space - kernel only */
+#define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN  0x00800000      /* special reply port should boost thread doing sync bootstrap checkin */
+
+#define MACH_RCV_TIMEOUT        0x00000100      /* timeout value applies to receive */
+#define MACH_RCV_NOTIFY         0x00000000      /* legacy name (value was: 0x00000200) */
+#define MACH_RCV_INTERRUPT      0x00000400      /* don't restart interrupted receive */
+#define MACH_RCV_VOUCHER        0x00000800      /* willing to receive voucher port */
+#define MACH_RCV_OVERWRITE      0x00000000      /* scatter receive (deprecated) */
+#define MACH_RCV_GUARDED_DESC   0x00001000      /* Can receive new guarded descriptor */
+#define MACH_RCV_SYNC_WAIT      0x00004000      /* sync waiter waiting for rcv */
+#define MACH_RCV_SYNC_PEEK      0x00008000      /* sync waiter waiting to peek */
+
+#define MACH_MSG_STRICT_REPLY   0x00000200      /* Enforce specific properties about the reply port, and
+	                                         * the context in which a thread replies to a message.
+	                                         * This flag must be passed on both the SEND and RCV */
+
+
+/*
+ * NOTE: a 0x00------ RCV mask implies to ask for
+ * a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements,
+ * which is equivalent to a mach_msg_trailer_t.
+ *
+ * XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS
+ * needs its own private bit since we only calculate its fields when absolutely
+ * required.
+ */
+#define MACH_RCV_TRAILER_NULL   0
+#define MACH_RCV_TRAILER_SEQNO  1
+#define MACH_RCV_TRAILER_SENDER 2
+#define MACH_RCV_TRAILER_AUDIT  3
+#define MACH_RCV_TRAILER_CTX    4
+#define MACH_RCV_TRAILER_AV     7
+#define MACH_RCV_TRAILER_LABELS 8
+
+#define MACH_RCV_TRAILER_TYPE(x)     (((x) & 0xf) << 28)
+#define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24)
+#define MACH_RCV_TRAILER_MASK        ((0xf << 24))
+
+#define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf)
+
+
+/*
+ * XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS,
+ * we just fall through to mach_msg_max_trailer_t.
+ * This is correct behavior since mach_msg_max_trailer_t is defined as
+ * mac_msg_mac_trailer_t which is used for the LABELS trailer.
+ * It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed
+ * with one of the other options.
+ */
+
+#define REQUESTED_TRAILER_SIZE_NATIVE(y)                        \
+	((mach_msg_trailer_size_t)                              \
+	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ?      \
+	  sizeof(mach_msg_trailer_t) :                          \
+	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ?    \
+	   sizeof(mach_msg_seqno_trailer_t) :                   \
+	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ?   \
+	   sizeof(mach_msg_security_trailer_t) :                \
+	   ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ?   \
+	    sizeof(mach_msg_audit_trailer_t) :                  \
+	    ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ?    \
+	     sizeof(mach_msg_context_trailer_t) :               \
+	     ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ?    \
+	      sizeof(mach_msg_mac_trailer_t) :                  \
+	     sizeof(mach_msg_max_trailer_t))))))))
+
+
+#define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y)
+
+/*
+ *  Much code assumes that mach_msg_return_t == kern_return_t.
+ *  This definition is useful for descriptive purposes.
+ *
+ *  See <mach/error.h> for the format of error codes.
+ *  IPC errors are system 4.  Send errors are subsystem 0;
+ *  receive errors are subsystem 1.  The code field is always non-zero.
+ *  The high bits of the code field communicate extra information
+ *  for some error codes.  MACH_MSG_MASK masks off these special bits.
+ */
+
+typedef kern_return_t mach_msg_return_t;
+
+#define MACH_MSG_SUCCESS                0x00000000
+
+
+#define MACH_MSG_MASK                   0x00003e00
+/* All special error code bits defined below. */
+#define MACH_MSG_IPC_SPACE              0x00002000
+/* No room in IPC name space for another capability name. */
+#define MACH_MSG_VM_SPACE               0x00001000
+/* No room in VM address space for out-of-line memory. */
+#define MACH_MSG_IPC_KERNEL             0x00000800
+/* Kernel resource shortage handling an IPC capability. */
+#define MACH_MSG_VM_KERNEL              0x00000400
+/* Kernel resource shortage handling out-of-line memory. */
+
+#define MACH_SEND_IN_PROGRESS           0x10000001
+/* Thread is waiting to send.  (Internal use only.) */
+#define MACH_SEND_INVALID_DATA          0x10000002
+/* Bogus in-line data. */
+#define MACH_SEND_INVALID_DEST          0x10000003
+/* Bogus destination port. */
+#define MACH_SEND_TIMED_OUT             0x10000004
+/* Message not sent before timeout expired. */
+#define MACH_SEND_INVALID_VOUCHER       0x10000005
+/* Bogus voucher port. */
+#define MACH_SEND_INTERRUPTED           0x10000007
+/* Software interrupt. */
+#define MACH_SEND_MSG_TOO_SMALL         0x10000008
+/* Data doesn't contain a complete message. */
+#define MACH_SEND_INVALID_REPLY         0x10000009
+/* Bogus reply port. */
+#define MACH_SEND_INVALID_RIGHT         0x1000000a
+/* Bogus port rights in the message body. */
+#define MACH_SEND_INVALID_NOTIFY        0x1000000b
+/* Bogus notify port argument. */
+#define MACH_SEND_INVALID_MEMORY        0x1000000c
+/* Invalid out-of-line memory pointer. */
+#define MACH_SEND_NO_BUFFER             0x1000000d
+/* No message buffer is available. */
+#define MACH_SEND_TOO_LARGE             0x1000000e
+/* Send is too large for port */
+#define MACH_SEND_INVALID_TYPE          0x1000000f
+/* Invalid msg-type specification. */
+#define MACH_SEND_INVALID_HEADER        0x10000010
+/* A field in the header had a bad value. */
+#define MACH_SEND_INVALID_TRAILER       0x10000011
+/* The trailer to be sent does not match kernel format. */
+#define MACH_SEND_INVALID_CONTEXT       0x10000012
+/* The sending thread context did not match the context on the dest port */
+#define MACH_SEND_INVALID_RT_OOL_SIZE   0x10000015
+/* compatibility: no longer a returned error */
+#define MACH_SEND_NO_GRANT_DEST         0x10000016
+/* The destination port doesn't accept ports in body */
+
+#define MACH_RCV_IN_PROGRESS            0x10004001
+/* Thread is waiting for receive.  (Internal use only.) */
+#define MACH_RCV_INVALID_NAME           0x10004002
+/* Bogus name for receive port/port-set. */
+#define MACH_RCV_TIMED_OUT              0x10004003
+/* Didn't get a message within the timeout value. */
+#define MACH_RCV_TOO_LARGE              0x10004004
+/* Message buffer is not large enough for inline data. */
+#define MACH_RCV_INTERRUPTED            0x10004005
+/* Software interrupt. */
+#define MACH_RCV_PORT_CHANGED           0x10004006
+/* compatibility: no longer a returned error */
+#define MACH_RCV_INVALID_NOTIFY         0x10004007
+/* Bogus notify port argument. */
+#define MACH_RCV_INVALID_DATA           0x10004008
+/* Bogus message buffer for inline data. */
+#define MACH_RCV_PORT_DIED              0x10004009
+/* Port/set was sent away/died during receive. */
+#define MACH_RCV_IN_SET                 0x1000400a
+/* compatibility: no longer a returned error */
+#define MACH_RCV_HEADER_ERROR           0x1000400b
+/* Error receiving message header.  See special bits. */
+#define MACH_RCV_BODY_ERROR             0x1000400c
+/* Error receiving message body.  See special bits. */
+#define MACH_RCV_INVALID_TYPE           0x1000400d
+/* Invalid msg-type specification in scatter list. */
+#define MACH_RCV_SCATTER_SMALL          0x1000400e
+/* Out-of-line overwrite region is not large enough */
+#define MACH_RCV_INVALID_TRAILER        0x1000400f
+/* trailer type or number of trailer elements not supported */
+#define MACH_RCV_IN_PROGRESS_TIMED      0x10004011
+/* Waiting for receive with timeout. (Internal use only.) */
+#define MACH_RCV_INVALID_REPLY          0x10004012
+/* invalid reply port used in a STRICT_REPLY message */
+
+
+
+__BEGIN_DECLS
+
+/*
+ *	Routine:	mach_msg_overwrite
+ *	Purpose:
+ *		Send and/or receive a message.  If the message operation
+ *		is interrupted, and the user did not request an indication
+ *		of that fact, then restart the appropriate parts of the
+ *		operation silently (trap version does not restart).
+ *
+ *		Distinct send and receive buffers may be specified.  If
+ *		no separate receive buffer is specified, the msg parameter
+ *		will be used for both send and receive operations.
+ *
+ *		In addition to a distinct receive buffer, that buffer may
+ *		already contain scatter control information to direct the
+ *		receiving of the message.
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_overwrite(
+	mach_msg_header_t *msg,
+	mach_msg_option_t option,
+	mach_msg_size_t send_size,
+	mach_msg_size_t rcv_size,
+	mach_port_name_t rcv_name,
+	mach_msg_timeout_t timeout,
+	mach_port_name_t notify,
+	mach_msg_header_t *rcv_msg,
+	mach_msg_size_t rcv_limit);
+
+
+/*
+ *	Routine:	mach_msg
+ *	Purpose:
+ *		Send and/or receive a message.  If the message operation
+ *		is interrupted, and the user did not request an indication
+ *		of that fact, then restart the appropriate parts of the
+ *		operation silently (trap version does not restart).
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg(
+	mach_msg_header_t *msg,
+	mach_msg_option_t option,
+	mach_msg_size_t send_size,
+	mach_msg_size_t rcv_size,
+	mach_port_name_t rcv_name,
+	mach_msg_timeout_t timeout,
+	mach_port_name_t notify);
+
+/*
+ *	Routine:	mach_voucher_deallocate
+ *	Purpose:
+ *		Deallocate a mach voucher created or received in a message.  Drops
+ *		one (send right) reference to the voucher.
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern kern_return_t            mach_voucher_deallocate(
+	mach_port_name_t voucher);
+
+
+__END_DECLS
+
+#endif  /* _MACH_MESSAGE_H_ */
lib/libc/include/x86_64-macos-gnu/mach/port.h
@@ -0,0 +1,422 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ * NOTICE: This file was modified by McAfee Research in 2004 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+/*
+ */
+/*
+ *	File:	mach/port.h
+ *
+ *	Definition of a Mach port
+ *
+ *	Mach ports are the endpoints to Mach-implemented communications
+ *	channels (usually uni-directional message queues, but other types
+ *	also exist).
+ *
+ *	Unique collections of these endpoints are maintained for each
+ *	Mach task.  Each Mach port in the task's collection is given a
+ *	[task-local] name to identify it - and the the various "rights"
+ *	held by the task for that specific endpoint.
+ *
+ *	This header defines the types used to identify these Mach ports
+ *	and the various rights associated with them.  For more info see:
+ *
+ *	<mach/mach_port.h> - manipulation of port rights in a given space
+ *	<mach/message.h> - message queue [and port right passing] mechanism
+ *
+ */
+
+#ifndef _MACH_PORT_H_
+#define _MACH_PORT_H_
+
+#include <sys/cdefs.h>
+#include <stdint.h>
+#include <mach/boolean.h>
+#include <mach/machine/vm_types.h>
+
+/*
+ *	mach_port_name_t - the local identity for a Mach port
+ *
+ *	The name is Mach port namespace specific.  It is used to
+ *	identify the rights held for that port by the task whose
+ *	namespace is implied [or specifically provided].
+ *
+ *	Use of this type usually implies just a name - no rights.
+ *	See mach_port_t for a type that implies a "named right."
+ *
+ */
+
+typedef natural_t mach_port_name_t;
+typedef mach_port_name_t *mach_port_name_array_t;
+
+
+/*
+ *	mach_port_t - a named port right
+ *
+ *	In user-space, "rights" are represented by the name of the
+ *	right in the Mach port namespace.  Even so, this type is
+ *	presented as a unique one to more clearly denote the presence
+ *	of a right coming along with the name.
+ *
+ *	Often, various rights for a port held in a single name space
+ *	will coalesce and are, therefore, be identified by a single name
+ *	[this is the case for send and receive rights].  But not
+ *	always [send-once rights currently get a unique name for
+ *	each right].
+ *
+ */
+
+#include <sys/_types.h>
+#include <sys/_types/_mach_port_t.h>
+
+
+typedef mach_port_t                     *mach_port_array_t;
+
+/*
+ *  MACH_PORT_NULL is a legal value that can be carried in messages.
+ *  It indicates the absence of any port or port rights.  (A port
+ *  argument keeps the message from being "simple", even if the
+ *  value is MACH_PORT_NULL.)  The value MACH_PORT_DEAD is also a legal
+ *  value that can be carried in messages.  It indicates
+ *  that a port right was present, but it died.
+ */
+
+#define MACH_PORT_NULL          0  /* intentional loose typing */
+#define MACH_PORT_DEAD          ((mach_port_name_t) ~0)
+#define MACH_PORT_VALID(name)                           \
+	        (((name) != MACH_PORT_NULL) &&          \
+	         ((name) != MACH_PORT_DEAD))
+
+
+/*
+ *	For kernel-selected [assigned] port names, the name is
+ *	comprised of two parts: a generation number and an index.
+ *	This approach keeps the exact same name from being generated
+ *	and reused too quickly [to catch right/reference counting bugs].
+ *	The dividing line between the constituent parts is exposed so
+ *	that efficient "mach_port_name_t to data structure pointer"
+ *	conversion implementation can be made.  But it is possible
+ *	for user-level code to assign their own names to Mach ports.
+ *	These are not required to participate in this algorithm.  So
+ *	care should be taken before "assuming" this model.
+ *
+ */
+
+#ifndef NO_PORT_GEN
+
+#define MACH_PORT_INDEX(name)           ((name) >> 8)
+#define MACH_PORT_GEN(name)             (((name) & 0xff) << 24)
+#define MACH_PORT_MAKE(index, gen)      \
+	        (((index) << 8) | (gen) >> 24)
+
+#else   /* NO_PORT_GEN */
+
+#define MACH_PORT_INDEX(name)           (name)
+#define MACH_PORT_GEN(name)             (0)
+#define MACH_PORT_MAKE(index, gen)      (index)
+
+#endif  /* NO_PORT_GEN */
+
+
+/*
+ *  These are the different rights a task may have for a port.
+ *  The MACH_PORT_RIGHT_* definitions are used as arguments
+ *  to mach_port_allocate, mach_port_get_refs, etc, to specify
+ *  a particular right to act upon.  The mach_port_names and
+ *  mach_port_type calls return bitmasks using the MACH_PORT_TYPE_*
+ *  definitions.  This is because a single name may denote
+ *  multiple rights.
+ */
+
+typedef natural_t mach_port_right_t;
+
+#define MACH_PORT_RIGHT_SEND            ((mach_port_right_t) 0)
+#define MACH_PORT_RIGHT_RECEIVE         ((mach_port_right_t) 1)
+#define MACH_PORT_RIGHT_SEND_ONCE       ((mach_port_right_t) 2)
+#define MACH_PORT_RIGHT_PORT_SET        ((mach_port_right_t) 3)
+#define MACH_PORT_RIGHT_DEAD_NAME       ((mach_port_right_t) 4)
+#define MACH_PORT_RIGHT_LABELH          ((mach_port_right_t) 5) /* obsolete right */
+#define MACH_PORT_RIGHT_NUMBER          ((mach_port_right_t) 6) /* right not implemented */
+
+
+typedef natural_t mach_port_type_t;
+typedef mach_port_type_t *mach_port_type_array_t;
+
+#define MACH_PORT_TYPE(right)                                           \
+	        ((mach_port_type_t)(((mach_port_type_t) 1)              \
+	        << ((right) + ((mach_port_right_t) 16))))
+#define MACH_PORT_TYPE_NONE         ((mach_port_type_t) 0L)
+#define MACH_PORT_TYPE_SEND         MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND)
+#define MACH_PORT_TYPE_RECEIVE      MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE)
+#define MACH_PORT_TYPE_SEND_ONCE    MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE)
+#define MACH_PORT_TYPE_PORT_SET     MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET)
+#define MACH_PORT_TYPE_DEAD_NAME    MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME)
+#define MACH_PORT_TYPE_LABELH       MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */
+
+
+
+/* Convenient combinations. */
+
+#define MACH_PORT_TYPE_SEND_RECEIVE                                     \
+	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE)
+#define MACH_PORT_TYPE_SEND_RIGHTS                                      \
+	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE)
+#define MACH_PORT_TYPE_PORT_RIGHTS                                      \
+	        (MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE)
+#define MACH_PORT_TYPE_PORT_OR_DEAD                                     \
+	        (MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME)
+#define MACH_PORT_TYPE_ALL_RIGHTS                                       \
+	        (MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET)
+
+/* Dummy type bits that mach_port_type/mach_port_names can return. */
+
+#define MACH_PORT_TYPE_DNREQUEST                0x80000000
+#define MACH_PORT_TYPE_SPREQUEST                0x40000000
+#define MACH_PORT_TYPE_SPREQUEST_DELAYED        0x20000000
+
+/* User-references for capabilities. */
+
+typedef natural_t mach_port_urefs_t;
+typedef integer_t mach_port_delta_t;                    /* change in urefs */
+
+/* Attributes of ports.  (See mach_port_get_receive_status.) */
+
+typedef natural_t mach_port_seqno_t;            /* sequence number */
+typedef natural_t mach_port_mscount_t;          /* make-send count */
+typedef natural_t mach_port_msgcount_t;         /* number of msgs */
+typedef natural_t mach_port_rights_t;           /* number of rights */
+
+/*
+ *	Are there outstanding send rights for a given port?
+ */
+#define MACH_PORT_SRIGHTS_NONE          0               /* no srights */
+#define MACH_PORT_SRIGHTS_PRESENT       1               /* srights */
+typedef unsigned int mach_port_srights_t;       /* status of send rights */
+
+typedef struct mach_port_status {
+	mach_port_rights_t      mps_pset;       /* count of containing port sets */
+	mach_port_seqno_t       mps_seqno;      /* sequence number */
+	mach_port_mscount_t     mps_mscount;    /* make-send count */
+	mach_port_msgcount_t    mps_qlimit;     /* queue limit */
+	mach_port_msgcount_t    mps_msgcount;   /* number in the queue */
+	mach_port_rights_t      mps_sorights;   /* how many send-once rights */
+	boolean_t               mps_srights;    /* do send rights exist? */
+	boolean_t               mps_pdrequest;  /* port-deleted requested? */
+	boolean_t               mps_nsrequest;  /* no-senders requested? */
+	natural_t               mps_flags;              /* port flags */
+} mach_port_status_t;
+
+/* System-wide values for setting queue limits on a port */
+#define MACH_PORT_QLIMIT_ZERO           (0)
+#define MACH_PORT_QLIMIT_BASIC          (5)
+#define MACH_PORT_QLIMIT_SMALL          (16)
+#define MACH_PORT_QLIMIT_LARGE          (1024)
+#define MACH_PORT_QLIMIT_KERNEL         (65534)
+#define MACH_PORT_QLIMIT_MIN            MACH_PORT_QLIMIT_ZERO
+#define MACH_PORT_QLIMIT_DEFAULT        MACH_PORT_QLIMIT_BASIC
+#define MACH_PORT_QLIMIT_MAX            MACH_PORT_QLIMIT_LARGE
+
+typedef struct mach_port_limits {
+	mach_port_msgcount_t    mpl_qlimit;     /* number of msgs */
+} mach_port_limits_t;
+
+/* Possible values for mps_flags (part of mach_port_status_t) */
+#define MACH_PORT_STATUS_FLAG_TEMPOWNER         0x01
+#define MACH_PORT_STATUS_FLAG_GUARDED           0x02
+#define MACH_PORT_STATUS_FLAG_STRICT_GUARD      0x04
+#define MACH_PORT_STATUS_FLAG_IMP_DONATION      0x08
+#define MACH_PORT_STATUS_FLAG_REVIVE            0x10
+#define MACH_PORT_STATUS_FLAG_TASKPTR           0x20
+#define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40
+#define MACH_PORT_STATUS_FLAG_NO_GRANT          0x80
+
+typedef struct mach_port_info_ext {
+	mach_port_status_t      mpie_status;
+	mach_port_msgcount_t    mpie_boost_cnt;
+	uint32_t                reserved[6];
+} mach_port_info_ext_t;
+
+typedef integer_t *mach_port_info_t;            /* varying array of natural_t */
+
+/* Flavors for mach_port_get/set_attributes() */
+typedef int     mach_port_flavor_t;
+#define MACH_PORT_LIMITS_INFO           1       /* uses mach_port_limits_t */
+#define MACH_PORT_RECEIVE_STATUS        2       /* uses mach_port_status_t */
+#define MACH_PORT_DNREQUESTS_SIZE       3       /* info is int */
+#define MACH_PORT_TEMPOWNER             4       /* indicates receive right will be reassigned to another task */
+#define MACH_PORT_IMPORTANCE_RECEIVER   5       /* indicates recieve right accepts priority donation */
+#define MACH_PORT_DENAP_RECEIVER        6       /* indicates receive right accepts de-nap donation */
+#define MACH_PORT_INFO_EXT              7       /* uses mach_port_info_ext_t */
+
+#define MACH_PORT_LIMITS_INFO_COUNT     ((natural_t) \
+	(sizeof(mach_port_limits_t)/sizeof(natural_t)))
+#define MACH_PORT_RECEIVE_STATUS_COUNT  ((natural_t) \
+	(sizeof(mach_port_status_t)/sizeof(natural_t)))
+#define MACH_PORT_DNREQUESTS_SIZE_COUNT 1
+#define MACH_PORT_INFO_EXT_COUNT        ((natural_t) \
+	(sizeof(mach_port_info_ext_t)/sizeof(natural_t)))
+/*
+ * Structure used to pass information about port allocation requests.
+ * Must be padded to 64-bits total length.
+ */
+typedef struct mach_port_qos {
+	unsigned int            name:1;         /* name given */
+	unsigned int            prealloc:1;     /* prealloced message */
+	boolean_t               pad1:30;
+	natural_t               len;
+} mach_port_qos_t;
+
+/* Mach Port Guarding definitions */
+
+/*
+ * Flags for mach_port_options (used for
+ * invocation of mach_port_construct).
+ * Indicates attributes to be set for the newly
+ * allocated port.
+ */
+#define MPO_CONTEXT_AS_GUARD    0x01    /* Add guard to the port */
+#define MPO_QLIMIT              0x02    /* Set qlimit for the port msg queue */
+#define MPO_TEMPOWNER           0x04    /* Set the tempowner bit of the port */
+#define MPO_IMPORTANCE_RECEIVER 0x08    /* Mark the port as importance receiver */
+#define MPO_INSERT_SEND_RIGHT   0x10    /* Insert a send right for the port */
+#define MPO_STRICT              0x20    /* Apply strict guarding for port */
+#define MPO_DENAP_RECEIVER      0x40    /* Mark the port as App de-nap receiver */
+#define MPO_IMMOVABLE_RECEIVE   0x80    /* Mark the port as immovable; protected by the guard context */
+/*
+ * Structure to define optional attributes for a newly
+ * constructed port.
+ */
+typedef struct mach_port_options {
+	uint32_t                flags;          /* Flags defining attributes for port */
+	mach_port_limits_t      mpl;            /* Message queue limit for port */
+	uint64_t                reserved[2];    /* Reserved */
+}mach_port_options_t;
+
+typedef mach_port_options_t *mach_port_options_ptr_t;
+
+/*
+ * EXC_GUARD represents a guard violation for both
+ * mach ports and file descriptors. GUARD_TYPE_ is used
+ * to differentiate among them.
+ */
+#define GUARD_TYPE_MACH_PORT    0x1
+
+/* Reasons for exception for a guarded mach port */
+enum mach_port_guard_exception_codes {
+	kGUARD_EXC_DESTROY                       = 1u << 0,
+	kGUARD_EXC_MOD_REFS                      = 1u << 1,
+	kGUARD_EXC_SET_CONTEXT               = 1u << 2,
+	kGUARD_EXC_UNGUARDED                 = 1u << 3,
+	kGUARD_EXC_INCORRECT_GUARD           = 1u << 4,
+	kGUARD_EXC_IMMOVABLE                 = 1u << 5,
+	kGUARD_EXC_STRICT_REPLY              = 1u << 6,
+	/* start of [optionally] non-fatal guards */
+	kGUARD_EXC_INVALID_RIGHT         = 1u << 8,
+	kGUARD_EXC_INVALID_NAME          = 1u << 9,
+	kGUARD_EXC_INVALID_VALUE         = 1u << 10,
+	kGUARD_EXC_INVALID_ARGUMENT      = 1u << 11,
+	kGUARD_EXC_RIGHT_EXISTS          = 1u << 12,
+	kGUARD_EXC_KERN_NO_SPACE         = 1u << 13,
+	kGUARD_EXC_KERN_FAILURE          = 1u << 14,
+	kGUARD_EXC_KERN_RESOURCE         = 1u << 15,
+	kGUARD_EXC_SEND_INVALID_REPLY    = 1u << 16,
+	kGUARD_EXC_SEND_INVALID_VOUCHER  = 1u << 17,
+	kGUARD_EXC_SEND_INVALID_RIGHT    = 1u << 18,
+	kGUARD_EXC_RCV_INVALID_NAME      = 1u << 19,
+	kGUARD_EXC_RCV_GUARDED_DESC      = 1u << 20, /* should never be fatal; for development only */
+};
+
+#define MAX_FATAL_kGUARD_EXC_CODE (1u << 6)
+
+/*
+ * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions.
+ */
+#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP  (0x01ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT  (0x02ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER     (0x04ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR        (0x08ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA  (0x10ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_MASK                (0xffull << 56)
+
+/*
+ * Flags for mach_port_guard_with_flags. These flags extend
+ * the attributes associated with a guarded port.
+ */
+#define MPG_STRICT              0x01    /* Apply strict guarding for a port */
+#define MPG_IMMOVABLE_RECEIVE   0x02    /* Receive right cannot be moved out of the space */
+
+#if     !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH)
+/*
+ *  Mach 3.0 renamed everything to have mach_ in front of it.
+ *  These types and macros are provided for backward compatibility
+ *	but are deprecated.
+ */
+typedef mach_port_t             port_t;
+typedef mach_port_name_t        port_name_t;
+typedef mach_port_name_t        *port_name_array_t;
+
+#define PORT_NULL               ((port_t) 0)
+#define PORT_DEAD               ((port_t) ~0)
+#define PORT_VALID(name) \
+	        ((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD)
+
+#endif  /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */
+
+#endif  /* _MACH_PORT_H_ */
lib/libc/include/x86_64-macos-gnu/mach/thread_status.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/thread_status.h
+ *	Author:	Avadis Tevanian, Jr.
+ *
+ *	This file contains the structure definitions for the user-visible
+ *	thread state.  This thread state is examined with the thread_get_state
+ *	kernel call and may be changed with the thread_set_state kernel call.
+ *
+ */
+
+#ifndef _MACH_THREAD_STATUS_H_
+#define _MACH_THREAD_STATUS_H_
+
+/*
+ *	The actual structure that comprises the thread state is defined
+ *	in the machine dependent module.
+ */
+#include <mach/machine/vm_types.h>
+#include <mach/machine/thread_status.h>
+#include <mach/machine/thread_state.h>
+
+/*
+ *	Generic definition for machine-dependent thread status.
+ */
+
+typedef natural_t       *thread_state_t;        /* Variable-length array */
+
+/* THREAD_STATE_MAX is now defined in <mach/machine/thread_state.h> */
+typedef natural_t       thread_state_data_t[THREAD_STATE_MAX];
+
+#define THREAD_STATE_FLAVOR_LIST        0       /* List of valid flavors */
+#define THREAD_STATE_FLAVOR_LIST_NEW    128
+#define THREAD_STATE_FLAVOR_LIST_10_9   129
+#define THREAD_STATE_FLAVOR_LIST_10_13  130
+#define THREAD_STATE_FLAVOR_LIST_10_15  131
+
+typedef int                     thread_state_flavor_t;
+typedef thread_state_flavor_t   *thread_state_flavor_array_t;
+
+#endif  /* _MACH_THREAD_STATUS_H_ */
lib/libc/include/x86_64-macos-gnu/machine/_param.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#if defined (__i386__) || defined (__x86_64__)
+#include "i386/_param.h"
+#else
+#error architecture not supported
+#endif
lib/libc/include/x86_64-macos-gnu/net/if.h
@@ -0,0 +1,442 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _NET_IF_H_
+#define _NET_IF_H_
+
+#include <sys/cdefs.h>
+#include <net/net_kev.h>
+
+#define IF_NAMESIZE     16
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/appleapiopts.h>
+#ifdef __APPLE__
+
+#include <net/if_var.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#endif
+
+struct if_clonereq {
+	int     ifcr_total;             /* total cloners (out) */
+	int     ifcr_count;             /* room for this many in user buffer */
+	char    *ifcr_buffer;           /* buffer for cloner names */
+};
+
+
+#define IFF_UP          0x1             /* interface is up */
+#define IFF_BROADCAST   0x2             /* broadcast address valid */
+#define IFF_DEBUG       0x4             /* turn on debugging */
+#define IFF_LOOPBACK    0x8             /* is a loopback net */
+#define IFF_POINTOPOINT 0x10            /* interface is point-to-point link */
+#define IFF_NOTRAILERS  0x20            /* obsolete: avoid use of trailers */
+#define IFF_RUNNING     0x40            /* resources allocated */
+#define IFF_NOARP       0x80            /* no address resolution protocol */
+#define IFF_PROMISC     0x100           /* receive all packets */
+#define IFF_ALLMULTI    0x200           /* receive all multicast packets */
+#define IFF_OACTIVE     0x400           /* transmission in progress */
+#define IFF_SIMPLEX     0x800           /* can't hear own transmissions */
+#define IFF_LINK0       0x1000          /* per link layer defined bit */
+#define IFF_LINK1       0x2000          /* per link layer defined bit */
+#define IFF_LINK2       0x4000          /* per link layer defined bit */
+#define IFF_ALTPHYS     IFF_LINK2       /* use alternate physical connection */
+#define IFF_MULTICAST   0x8000          /* supports multicast */
+
+
+
+/*
+ * Capabilities that interfaces can advertise.
+ *
+ * struct ifnet.if_capabilities
+ *   contains the optional features & capabilities a particular interface
+ *   supports (not only the driver but also the detected hw revision).
+ *   Capabilities are defined by IFCAP_* below.
+ * struct ifnet.if_capenable
+ *   contains the enabled (either by default or through ifconfig) optional
+ *   features & capabilities on this interface.
+ *   Capabilities are defined by IFCAP_* below.
+ * struct if_data.ifi_hwassist in IFNET_* form, defined in net/kpi_interface.h,
+ *   contains the enabled optional features & capabilites that can be used
+ *   individually per packet and are specified in the mbuf pkthdr.csum_flags
+ *   field.  IFCAP_* and IFNET_* do not match one to one and IFNET_* may be
+ *   more detailed or differentiated than IFCAP_*.
+ *   IFNET_* hwassist flags have corresponding CSUM_* in sys/mbuf.h
+ */
+#define IFCAP_RXCSUM            0x00001 /* can offload checksum on RX */
+#define IFCAP_TXCSUM            0x00002 /* can offload checksum on TX */
+#define IFCAP_VLAN_MTU          0x00004 /* VLAN-compatible MTU */
+#define IFCAP_VLAN_HWTAGGING    0x00008 /* hardware VLAN tag support */
+#define IFCAP_JUMBO_MTU         0x00010 /* 9000 byte MTU supported */
+#define IFCAP_TSO4              0x00020 /* can do TCP Segmentation Offload */
+#define IFCAP_TSO6              0x00040 /* can do TCP6 Segmentation Offload */
+#define IFCAP_LRO               0x00080 /* can do Large Receive Offload */
+#define IFCAP_AV                0x00100 /* can do 802.1 AV Bridging */
+#define IFCAP_TXSTATUS          0x00200 /* can return linklevel xmit status */
+#define IFCAP_SKYWALK           0x00400 /* Skywalk mode supported/enabled */
+#define IFCAP_HW_TIMESTAMP      0x00800 /* Time stamping in hardware */
+#define IFCAP_SW_TIMESTAMP      0x01000 /* Time stamping in software */
+#define IFCAP_CSUM_PARTIAL      0x02000 /* can offload partial checksum */
+#define IFCAP_CSUM_ZERO_INVERT  0x04000 /* can invert 0 to -0 (0xffff) */
+
+#define IFCAP_HWCSUM    (IFCAP_RXCSUM | IFCAP_TXCSUM)
+#define IFCAP_TSO       (IFCAP_TSO4 | IFCAP_TSO6)
+
+#define IFCAP_VALID (IFCAP_HWCSUM | IFCAP_TSO | IFCAP_LRO | IFCAP_VLAN_MTU | \
+	IFCAP_VLAN_HWTAGGING | IFCAP_JUMBO_MTU | IFCAP_AV | IFCAP_TXSTATUS | \
+	IFCAP_SKYWALK | IFCAP_SW_TIMESTAMP | IFCAP_HW_TIMESTAMP | \
+	IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT)
+
+#define IFQ_MAXLEN      128
+#define IFNET_SLOWHZ    1       /* granularity is 1 second */
+#define IFQ_TARGET_DELAY        (10ULL * 1000 * 1000)   /* 10 ms */
+#define IFQ_UPDATE_INTERVAL     (100ULL * 1000 * 1000)  /* 100 ms */
+
+/*
+ * Message format for use in obtaining information about interfaces
+ * from sysctl and the routing socket
+ */
+struct if_msghdr {
+	unsigned short  ifm_msglen;     /* to skip non-understood messages */
+	unsigned char   ifm_version;    /* future binary compatability */
+	unsigned char   ifm_type;       /* message type */
+	int             ifm_addrs;      /* like rtm_addrs */
+	int             ifm_flags;      /* value of if_flags */
+	unsigned short  ifm_index;      /* index for associated ifp */
+	struct  if_data ifm_data;       /* statistics and other data about if */
+};
+
+/*
+ * Message format for use in obtaining information about interface addresses
+ * from sysctl and the routing socket
+ */
+struct ifa_msghdr {
+	unsigned short  ifam_msglen;    /* to skip non-understood messages */
+	unsigned char   ifam_version;   /* future binary compatability */
+	unsigned char   ifam_type;      /* message type */
+	int             ifam_addrs;     /* like rtm_addrs */
+	int             ifam_flags;     /* value of ifa_flags */
+	unsigned short  ifam_index;     /* index for associated ifp */
+	int             ifam_metric;    /* value of ifa_metric */
+};
+
+/*
+ * Message format for use in obtaining information about multicast addresses
+ * from the routing socket
+ */
+struct ifma_msghdr {
+	unsigned short  ifmam_msglen;   /* to skip non-understood messages */
+	unsigned char   ifmam_version;  /* future binary compatability */
+	unsigned char   ifmam_type;     /* message type */
+	int             ifmam_addrs;    /* like rtm_addrs */
+	int             ifmam_flags;    /* value of ifa_flags */
+	unsigned short  ifmam_index;    /* index for associated ifp */
+};
+
+/*
+ * Message format for use in obtaining information about interfaces
+ * from sysctl
+ */
+struct if_msghdr2 {
+	u_short ifm_msglen;     /* to skip over non-understood messages */
+	u_char  ifm_version;    /* future binary compatability */
+	u_char  ifm_type;       /* message type */
+	int     ifm_addrs;      /* like rtm_addrs */
+	int     ifm_flags;      /* value of if_flags */
+	u_short ifm_index;      /* index for associated ifp */
+	int     ifm_snd_len;    /* instantaneous length of send queue */
+	int     ifm_snd_maxlen; /* maximum length of send queue */
+	int     ifm_snd_drops;  /* number of drops in send queue */
+	int     ifm_timer;      /* time until if_watchdog called */
+	struct if_data64        ifm_data;       /* statistics and other data */
+};
+
+/*
+ * Message format for use in obtaining information about multicast addresses
+ * from sysctl
+ */
+struct ifma_msghdr2 {
+	u_short ifmam_msglen;   /* to skip over non-understood messages */
+	u_char  ifmam_version;  /* future binary compatability */
+	u_char  ifmam_type;     /* message type */
+	int     ifmam_addrs;    /* like rtm_addrs */
+	int     ifmam_flags;    /* value of ifa_flags */
+	u_short ifmam_index;    /* index for associated ifp */
+	int32_t ifmam_refcount;
+};
+
+/*
+ * ifdevmtu: interface device mtu
+ *    Used with SIOCGIFDEVMTU to get the current mtu in use by the device,
+ *    as well as the minimum and maximum mtu allowed by the device.
+ */
+struct ifdevmtu {
+	int     ifdm_current;
+	int     ifdm_min;
+	int     ifdm_max;
+};
+
+#pragma pack(4)
+
+/*
+ *  ifkpi: interface kpi ioctl
+ *  Used with SIOCSIFKPI and SIOCGIFKPI.
+ *
+ *  ifk_module_id - From in the kernel, a value from kev_vendor_code_find. From
+ *       user space, a value from SIOCGKEVVENDOR ioctl on a kernel event socket.
+ *  ifk_type - The type. Types are specific to each module id.
+ *  ifk_data - The data. ifk_ptr may be a 64bit pointer for 64 bit processes.
+ *
+ *  Copying data between user space and kernel space is done using copyin
+ *  and copyout. A process may be running in 64bit mode. In such a case,
+ *  the pointer will be a 64bit pointer, not a 32bit pointer. The following
+ *  sample is a safe way to copy the data in to the kernel from either a
+ *  32bit or 64bit process:
+ *
+ *  user_addr_t tmp_ptr;
+ *  if (IS_64BIT_PROCESS(current_proc())) {
+ *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr64);
+ *  }
+ *  else {
+ *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr);
+ *  }
+ *  error = copyin(tmp_ptr, allocated_dst_buffer, size of allocated_dst_buffer);
+ */
+
+struct ifkpi {
+	unsigned int    ifk_module_id;
+	unsigned int    ifk_type;
+	union {
+		void            *ifk_ptr;
+		int             ifk_value;
+	} ifk_data;
+};
+
+/* Wake capabilities of a interface */
+#define IF_WAKE_ON_MAGIC_PACKET         0x01
+
+
+#pragma pack()
+
+/*
+ * Interface request structure used for socket
+ * ioctl's.  All interface ioctl's must have parameter
+ * definitions which begin with ifr_name.  The
+ * remainder may be interface specific.
+ */
+struct  ifreq {
+#ifndef IFNAMSIZ
+#define IFNAMSIZ        IF_NAMESIZE
+#endif
+	char    ifr_name[IFNAMSIZ];             /* if name, e.g. "en0" */
+	union {
+		struct  sockaddr ifru_addr;
+		struct  sockaddr ifru_dstaddr;
+		struct  sockaddr ifru_broadaddr;
+		short   ifru_flags;
+		int     ifru_metric;
+		int     ifru_mtu;
+		int     ifru_phys;
+		int     ifru_media;
+		int     ifru_intval;
+		caddr_t ifru_data;
+		struct  ifdevmtu ifru_devmtu;
+		struct  ifkpi   ifru_kpi;
+		u_int32_t ifru_wake_flags;
+		u_int32_t ifru_route_refcnt;
+		int     ifru_cap[2];
+		u_int32_t ifru_functional_type;
+#define IFRTYPE_FUNCTIONAL_UNKNOWN              0
+#define IFRTYPE_FUNCTIONAL_LOOPBACK             1
+#define IFRTYPE_FUNCTIONAL_WIRED                2
+#define IFRTYPE_FUNCTIONAL_WIFI_INFRA           3
+#define IFRTYPE_FUNCTIONAL_WIFI_AWDL            4
+#define IFRTYPE_FUNCTIONAL_CELLULAR             5
+#define IFRTYPE_FUNCTIONAL_INTCOPROC            6
+#define IFRTYPE_FUNCTIONAL_COMPANIONLINK        7
+#define IFRTYPE_FUNCTIONAL_LAST                 7
+	} ifr_ifru;
+#define ifr_addr        ifr_ifru.ifru_addr      /* address */
+#define ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-to-p link */
+#define ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address */
+#ifdef __APPLE__
+#define ifr_flags       ifr_ifru.ifru_flags     /* flags */
+#else
+#define ifr_flags       ifr_ifru.ifru_flags[0]  /* flags */
+#define ifr_prevflags   ifr_ifru.ifru_flags[1]  /* flags */
+#endif /* __APPLE__ */
+#define ifr_metric      ifr_ifru.ifru_metric    /* metric */
+#define ifr_mtu         ifr_ifru.ifru_mtu       /* mtu */
+#define ifr_phys        ifr_ifru.ifru_phys      /* physical wire */
+#define ifr_media       ifr_ifru.ifru_media     /* physical media */
+#define ifr_data        ifr_ifru.ifru_data      /* for use by interface */
+#define ifr_devmtu      ifr_ifru.ifru_devmtu
+#define ifr_intval      ifr_ifru.ifru_intval    /* integer value */
+#define ifr_kpi         ifr_ifru.ifru_kpi
+#define ifr_wake_flags  ifr_ifru.ifru_wake_flags /* wake capabilities */
+#define ifr_route_refcnt ifr_ifru.ifru_route_refcnt /* route references count */
+#define ifr_reqcap      ifr_ifru.ifru_cap[0]    /* requested capabilities */
+#define ifr_curcap      ifr_ifru.ifru_cap[1]    /* current capabilities */
+};
+
+#define _SIZEOF_ADDR_IFREQ(ifr) \
+	((ifr).ifr_addr.sa_len > sizeof (struct sockaddr) ? \
+	(sizeof (struct ifreq) - sizeof (struct sockaddr) + \
+	(ifr).ifr_addr.sa_len) : sizeof (struct ifreq))
+
+struct ifaliasreq {
+	char    ifra_name[IFNAMSIZ];            /* if name, e.g. "en0" */
+	struct  sockaddr ifra_addr;
+	struct  sockaddr ifra_broadaddr;
+	struct  sockaddr ifra_mask;
+};
+
+struct rslvmulti_req {
+	struct sockaddr *sa;
+	struct sockaddr **llsa;
+};
+
+#pragma pack(4)
+
+struct ifmediareq {
+	char    ifm_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	int     ifm_current;            /* current media options */
+	int     ifm_mask;               /* don't care mask */
+	int     ifm_status;             /* media status */
+	int     ifm_active;             /* active options */
+	int     ifm_count;              /* # entries in ifm_ulist array */
+	int     *ifm_ulist;             /* media words */
+};
+
+#pragma pack()
+
+
+
+#pragma pack(4)
+struct  ifdrv {
+	char            ifd_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	unsigned long   ifd_cmd;
+	size_t          ifd_len;                /* length of ifd_data buffer */
+	void            *ifd_data;
+};
+#pragma pack()
+
+
+/*
+ * Structure used to retrieve aux status data from interfaces.
+ * Kernel suppliers to this interface should respect the formatting
+ * needed by ifconfig(8): each line starts with a TAB and ends with
+ * a newline.
+ */
+
+#define IFSTATMAX       800             /* 10 lines of text */
+struct ifstat {
+	char    ifs_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	char    ascii[IFSTATMAX + 1];
+};
+
+/*
+ * Structure used in SIOCGIFCONF request.
+ * Used to retrieve interface configuration
+ * for machine (useful for programs which
+ * must know all networks accessible).
+ */
+#pragma pack(4)
+struct  ifconf {
+	int     ifc_len;                /* size of associated buffer */
+	union {
+		caddr_t ifcu_buf;
+		struct  ifreq *ifcu_req;
+	} ifc_ifcu;
+};
+#pragma pack()
+#define ifc_buf ifc_ifcu.ifcu_buf       /* buffer address */
+#define ifc_req ifc_ifcu.ifcu_req       /* array of structures returned */
+
+
+/*
+ * DLIL KEV_DL_PROTO_ATTACHED/DETACHED structure
+ */
+struct kev_dl_proto_data {
+	struct net_event_data           link_data;
+	u_int32_t                       proto_family;
+	u_int32_t                       proto_remaining_count;
+};
+
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+struct if_nameindex {
+	unsigned int     if_index;      /* 1, 2, ... */
+	char            *if_name;       /* null terminated name: "le0", ... */
+};
+
+__BEGIN_DECLS
+unsigned int     if_nametoindex(const char *);
+char            *if_indextoname(unsigned int, char *);
+struct           if_nameindex *if_nameindex(void);
+void             if_freenameindex(struct if_nameindex *);
+__END_DECLS
+
+
+#endif /* !_NET_IF_H_ */
lib/libc/include/x86_64-macos-gnu/net/if_var.h
@@ -0,0 +1,242 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	From: @(#)if.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.7 2001/07/24 19:10:18 brooks Exp $
+ */
+
+#ifndef _NET_IF_VAR_H_
+#define _NET_IF_VAR_H_
+
+#include <sys/appleapiopts.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/queue.h>          /* get TAILQ macros */
+#ifdef BSD_KERN_PRIVATE
+#include <sys/eventhandler.h>
+#endif
+
+
+#ifdef __APPLE__
+#define APPLE_IF_FAM_LOOPBACK  1
+#define APPLE_IF_FAM_ETHERNET  2
+#define APPLE_IF_FAM_SLIP      3
+#define APPLE_IF_FAM_TUN       4
+#define APPLE_IF_FAM_VLAN      5
+#define APPLE_IF_FAM_PPP       6
+#define APPLE_IF_FAM_PVC       7
+#define APPLE_IF_FAM_DISC      8
+#define APPLE_IF_FAM_MDECAP    9
+#define APPLE_IF_FAM_GIF       10
+#define APPLE_IF_FAM_FAITH     11       /* deprecated */
+#define APPLE_IF_FAM_STF       12
+#define APPLE_IF_FAM_FIREWIRE  13
+#define APPLE_IF_FAM_BOND      14
+#define APPLE_IF_FAM_CELLULAR  15
+#define APPLE_IF_FAM_6LOWPAN   16
+#define APPLE_IF_FAM_UTUN      17
+#define APPLE_IF_FAM_IPSEC     18
+#endif /* __APPLE__ */
+
+/*
+ * 72 was chosen below because it is the size of a TCP/IP
+ * header (40) + the minimum mss (32).
+ */
+#define IF_MINMTU       72
+#define IF_MAXMTU       65535
+
+/*
+ * Structures defining a network interface, providing a packet
+ * transport mechanism (ala level 0 of the PUP protocols).
+ *
+ * Each interface accepts output datagrams of a specified maximum
+ * length, and provides higher level routines with input datagrams
+ * received from its medium.
+ *
+ * Output occurs when the routine if_output is called, with three parameters:
+ *	(*ifp->if_output)(ifp, m, dst, rt)
+ * Here m is the mbuf chain to be sent and dst is the destination address.
+ * The output routine encapsulates the supplied datagram if necessary,
+ * and then transmits it on its medium.
+ *
+ * On input, each interface unwraps the data received by it, and either
+ * places it on the input queue of a internetwork datagram routine
+ * and posts the associated software interrupt, or passes the datagram to a raw
+ * packet input routine.
+ *
+ * Routines exist for locating interfaces by their addresses
+ * or for locating a interface on a certain network, as well as more general
+ * routing and gateway routines maintaining information used to locate
+ * interfaces.  These routines live in the files if.c and route.c
+ */
+
+#define IFNAMSIZ        16
+
+/* This belongs up in socket.h or socketvar.h, depending on how far the
+ *   event bubbles up.
+ */
+
+struct net_event_data {
+	u_int32_t       if_family;
+	u_int32_t       if_unit;
+	char            if_name[IFNAMSIZ];
+};
+
+#if defined(__LP64__)
+#include <sys/_types/_timeval32.h>
+#define IF_DATA_TIMEVAL timeval32
+#else
+#define IF_DATA_TIMEVAL timeval
+#endif
+
+#pragma pack(4)
+
+/*
+ * Structure describing information about an interface
+ * which may be of interest to management entities.
+ */
+struct if_data {
+	/* generic interface information */
+	u_char          ifi_type;       /* ethernet, tokenring, etc */
+	u_char          ifi_typelen;    /* Length of frame type id */
+	u_char          ifi_physical;   /* e.g., AUI, Thinnet, 10base-T, etc */
+	u_char          ifi_addrlen;    /* media address length */
+	u_char          ifi_hdrlen;     /* media header length */
+	u_char          ifi_recvquota;  /* polling quota for receive intrs */
+	u_char          ifi_xmitquota;  /* polling quota for xmit intrs */
+	u_char          ifi_unused1;    /* for future use */
+	u_int32_t       ifi_mtu;        /* maximum transmission unit */
+	u_int32_t       ifi_metric;     /* routing metric (external only) */
+	u_int32_t       ifi_baudrate;   /* linespeed */
+	/* volatile statistics */
+	u_int32_t       ifi_ipackets;   /* packets received on interface */
+	u_int32_t       ifi_ierrors;    /* input errors on interface */
+	u_int32_t       ifi_opackets;   /* packets sent on interface */
+	u_int32_t       ifi_oerrors;    /* output errors on interface */
+	u_int32_t       ifi_collisions; /* collisions on csma interfaces */
+	u_int32_t       ifi_ibytes;     /* total number of octets received */
+	u_int32_t       ifi_obytes;     /* total number of octets sent */
+	u_int32_t       ifi_imcasts;    /* packets received via multicast */
+	u_int32_t       ifi_omcasts;    /* packets sent via multicast */
+	u_int32_t       ifi_iqdrops;    /* dropped on input, this interface */
+	u_int32_t       ifi_noproto;    /* destined for unsupported protocol */
+	u_int32_t       ifi_recvtiming; /* usec spent receiving when timing */
+	u_int32_t       ifi_xmittiming; /* usec spent xmitting when timing */
+	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
+	u_int32_t       ifi_unused2;    /* used to be the default_proto */
+	u_int32_t       ifi_hwassist;   /* HW offload capabilities */
+	u_int32_t       ifi_reserved1;  /* for future use */
+	u_int32_t       ifi_reserved2;  /* for future use */
+};
+
+/*
+ * Structure describing information about an interface
+ * which may be of interest to management entities.
+ */
+struct if_data64 {
+	/* generic interface information */
+	u_char          ifi_type;               /* ethernet, tokenring, etc */
+	u_char          ifi_typelen;            /* Length of frame type id */
+	u_char          ifi_physical;           /* e.g., AUI, Thinnet, 10base-T, etc */
+	u_char          ifi_addrlen;            /* media address length */
+	u_char          ifi_hdrlen;             /* media header length */
+	u_char          ifi_recvquota;          /* polling quota for receive intrs */
+	u_char          ifi_xmitquota;          /* polling quota for xmit intrs */
+	u_char          ifi_unused1;            /* for future use */
+	u_int32_t       ifi_mtu;                /* maximum transmission unit */
+	u_int32_t       ifi_metric;             /* routing metric (external only) */
+	u_int64_t       ifi_baudrate;           /* linespeed */
+	/* volatile statistics */
+	u_int64_t       ifi_ipackets;           /* packets received on interface */
+	u_int64_t       ifi_ierrors;            /* input errors on interface */
+	u_int64_t       ifi_opackets;           /* packets sent on interface */
+	u_int64_t       ifi_oerrors;            /* output errors on interface */
+	u_int64_t       ifi_collisions;         /* collisions on csma interfaces */
+	u_int64_t       ifi_ibytes;             /* total number of octets received */
+	u_int64_t       ifi_obytes;             /* total number of octets sent */
+	u_int64_t       ifi_imcasts;            /* packets received via multicast */
+	u_int64_t       ifi_omcasts;            /* packets sent via multicast */
+	u_int64_t       ifi_iqdrops;            /* dropped on input, this interface */
+	u_int64_t       ifi_noproto;            /* destined for unsupported protocol */
+	u_int32_t       ifi_recvtiming;         /* usec spent receiving when timing */
+	u_int32_t       ifi_xmittiming;         /* usec spent xmitting when timing */
+	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
+};
+
+
+#pragma pack()
+
+/*
+ * Structure defining a queue for a network interface.
+ */
+struct  ifqueue {
+	void    *ifq_head;
+	void    *ifq_tail;
+	int     ifq_len;
+	int     ifq_maxlen;
+	int     ifq_drops;
+};
+
+
+
+
+
+
+#endif /* !_NET_IF_VAR_H_ */
lib/libc/include/x86_64-macos-gnu/net/net_kev.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _NET_NETKEV_H_
+#define _NET_NETKEV_H_
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/* Kernel event subclass identifiers for KEV_NETWORK_CLASS */
+#define KEV_INET_SUBCLASS       1       /* inet subclass */
+/* KEV_INET_SUBCLASS event codes */
+#define KEV_INET_NEW_ADDR               1 /* Userland configured IP address */
+#define KEV_INET_CHANGED_ADDR           2 /* Address changed event */
+#define KEV_INET_ADDR_DELETED           3 /* IPv6 address was deleted */
+#define KEV_INET_SIFDSTADDR             4 /* Dest. address was set */
+#define KEV_INET_SIFBRDADDR             5 /* Broadcast address was set */
+#define KEV_INET_SIFNETMASK             6 /* Netmask was set */
+#define KEV_INET_ARPCOLLISION           7 /* ARP collision detected */
+#ifdef __APPLE_API_PRIVATE
+#define KEV_INET_PORTINUSE              8 /* use ken_in_portinuse */
+#endif
+#define KEV_INET_ARPRTRFAILURE          9 /* ARP resolution failed for router */
+#define KEV_INET_ARPRTRALIVE            10 /* ARP resolution succeeded for router */
+
+#define KEV_DL_SUBCLASS 2               /* Data Link subclass */
+/*
+ * Define Data-Link event subclass, and associated
+ * events.
+ */
+#define KEV_DL_SIFFLAGS                         1
+#define KEV_DL_SIFMETRICS                       2
+#define KEV_DL_SIFMTU                           3
+#define KEV_DL_SIFPHYS                          4
+#define KEV_DL_SIFMEDIA                         5
+#define KEV_DL_SIFGENERIC                       6
+#define KEV_DL_ADDMULTI                         7
+#define KEV_DL_DELMULTI                         8
+#define KEV_DL_IF_ATTACHED                      9
+#define KEV_DL_IF_DETACHING                     10
+#define KEV_DL_IF_DETACHED                      11
+#define KEV_DL_LINK_OFF                         12
+#define KEV_DL_LINK_ON                          13
+#define KEV_DL_PROTO_ATTACHED                   14
+#define KEV_DL_PROTO_DETACHED                   15
+#define KEV_DL_LINK_ADDRESS_CHANGED             16
+#define KEV_DL_WAKEFLAGS_CHANGED                17
+#define KEV_DL_IF_IDLE_ROUTE_REFCNT             18
+#define KEV_DL_IFCAP_CHANGED                    19
+#define KEV_DL_LINK_QUALITY_METRIC_CHANGED      20
+#define KEV_DL_NODE_PRESENCE                    21
+#define KEV_DL_NODE_ABSENCE                     22
+#define KEV_DL_MASTER_ELECTED                   23
+#define KEV_DL_ISSUES                           24
+#define KEV_DL_IFDELEGATE_CHANGED               25
+#define KEV_DL_AWDL_RESTRICTED                  26
+#define KEV_DL_AWDL_UNRESTRICTED                27
+#define KEV_DL_RRC_STATE_CHANGED                28
+#define KEV_DL_QOS_MODE_CHANGED                 29
+#define KEV_DL_LOW_POWER_MODE_CHANGED           30
+
+
+#define KEV_INET6_SUBCLASS      6       /* inet6 subclass */
+/* KEV_INET6_SUBCLASS event codes */
+#define KEV_INET6_NEW_USER_ADDR         1 /* Userland configured IPv6 address */
+#define KEV_INET6_CHANGED_ADDR          2 /* Address changed event (future) */
+#define KEV_INET6_ADDR_DELETED          3 /* IPv6 address was deleted */
+#define KEV_INET6_NEW_LL_ADDR           4 /* Autoconf LL address appeared */
+#define KEV_INET6_NEW_RTADV_ADDR        5 /* Autoconf address has appeared */
+#define KEV_INET6_DEFROUTER             6 /* Default router detected */
+#define KEV_INET6_REQUEST_NAT64_PREFIX  7 /* Asking for the NAT64-prefix */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif /* _NET_NETKEV_H_ */
lib/libc/include/x86_64-macos-gnu/netinet/in.h
@@ -0,0 +1,671 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+ */
+
+#ifndef _NETINET_IN_H_
+#define _NETINET_IN_H_
+#include <sys/appleapiopts.h>
+#include <sys/_types.h>
+#include <stdint.h>             /* uint(8|16|32)_t */
+
+#include <Availability.h>
+
+#include <sys/_types/_in_addr_t.h>
+
+#include <sys/_types/_in_port_t.h>
+
+/*
+ * POSIX 1003.1-2003
+ * "Inclusion of the <netinet/in.h> header may also make visible all
+ *  symbols from <inttypes.h> and <sys/socket.h>".
+ */
+#include <sys/socket.h>
+
+/*
+ * The following two #includes insure htonl and family are defined
+ */
+#include <machine/endian.h>
+#include <sys/_endian.h>
+
+/*
+ * Constants and structures defined by the internet system,
+ * Per RFC 790, September 1981, and numerous additions.
+ */
+
+/*
+ * Protocols (RFC 1700)
+ */
+#define IPPROTO_IP              0               /* dummy for IP */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_HOPOPTS 0               /* IP6 hop-by-hop options */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_ICMP            1               /* control message protocol */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_IGMP            2               /* group mgmt protocol */
+#define IPPROTO_GGP             3               /* gateway^2 (deprecated) */
+#define IPPROTO_IPV4            4               /* IPv4 encapsulation */
+#define IPPROTO_IPIP            IPPROTO_IPV4    /* for compatibility */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_TCP             6               /* tcp */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_ST              7               /* Stream protocol II */
+#define IPPROTO_EGP             8               /* exterior gateway protocol */
+#define IPPROTO_PIGP            9               /* private interior gateway */
+#define IPPROTO_RCCMON          10              /* BBN RCC Monitoring */
+#define IPPROTO_NVPII           11              /* network voice protocol*/
+#define IPPROTO_PUP             12              /* pup */
+#define IPPROTO_ARGUS           13              /* Argus */
+#define IPPROTO_EMCON           14              /* EMCON */
+#define IPPROTO_XNET            15              /* Cross Net Debugger */
+#define IPPROTO_CHAOS           16              /* Chaos*/
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_UDP             17              /* user datagram protocol */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_MUX             18              /* Multiplexing */
+#define IPPROTO_MEAS            19              /* DCN Measurement Subsystems */
+#define IPPROTO_HMP             20              /* Host Monitoring */
+#define IPPROTO_PRM             21              /* Packet Radio Measurement */
+#define IPPROTO_IDP             22              /* xns idp */
+#define IPPROTO_TRUNK1          23              /* Trunk-1 */
+#define IPPROTO_TRUNK2          24              /* Trunk-2 */
+#define IPPROTO_LEAF1           25              /* Leaf-1 */
+#define IPPROTO_LEAF2           26              /* Leaf-2 */
+#define IPPROTO_RDP             27              /* Reliable Data */
+#define IPPROTO_IRTP            28              /* Reliable Transaction */
+#define IPPROTO_TP              29              /* tp-4 w/ class negotiation */
+#define IPPROTO_BLT             30              /* Bulk Data Transfer */
+#define IPPROTO_NSP             31              /* Network Services */
+#define IPPROTO_INP             32              /* Merit Internodal */
+#define IPPROTO_SEP             33              /* Sequential Exchange */
+#define IPPROTO_3PC             34              /* Third Party Connect */
+#define IPPROTO_IDPR            35              /* InterDomain Policy Routing */
+#define IPPROTO_XTP             36              /* XTP */
+#define IPPROTO_DDP             37              /* Datagram Delivery */
+#define IPPROTO_CMTP            38              /* Control Message Transport */
+#define IPPROTO_TPXX            39              /* TP++ Transport */
+#define IPPROTO_IL              40              /* IL transport protocol */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define         IPPROTO_IPV6            41              /* IP6 header */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_SDRP            42              /* Source Demand Routing */
+#define         IPPROTO_ROUTING 43              /* IP6 routing header */
+#define         IPPROTO_FRAGMENT        44              /* IP6 fragmentation header */
+#define IPPROTO_IDRP            45              /* InterDomain Routing*/
+#define         IPPROTO_RSVP            46              /* resource reservation */
+#define IPPROTO_GRE             47              /* General Routing Encap. */
+#define IPPROTO_MHRP            48              /* Mobile Host Routing */
+#define IPPROTO_BHA             49              /* BHA */
+#define IPPROTO_ESP             50              /* IP6 Encap Sec. Payload */
+#define IPPROTO_AH              51              /* IP6 Auth Header */
+#define IPPROTO_INLSP           52              /* Integ. Net Layer Security */
+#define IPPROTO_SWIPE           53              /* IP with encryption */
+#define IPPROTO_NHRP            54              /* Next Hop Resolution */
+/* 55-57: Unassigned */
+#define IPPROTO_ICMPV6          58              /* ICMP6 */
+#define IPPROTO_NONE            59              /* IP6 no next header */
+#define IPPROTO_DSTOPTS         60              /* IP6 destination option */
+#define IPPROTO_AHIP            61              /* any host internal protocol */
+#define IPPROTO_CFTP            62              /* CFTP */
+#define IPPROTO_HELLO           63              /* "hello" routing protocol */
+#define IPPROTO_SATEXPAK        64              /* SATNET/Backroom EXPAK */
+#define IPPROTO_KRYPTOLAN       65              /* Kryptolan */
+#define IPPROTO_RVD             66              /* Remote Virtual Disk */
+#define IPPROTO_IPPC            67              /* Pluribus Packet Core */
+#define IPPROTO_ADFS            68              /* Any distributed FS */
+#define IPPROTO_SATMON          69              /* Satnet Monitoring */
+#define IPPROTO_VISA            70              /* VISA Protocol */
+#define IPPROTO_IPCV            71              /* Packet Core Utility */
+#define IPPROTO_CPNX            72              /* Comp. Prot. Net. Executive */
+#define IPPROTO_CPHB            73              /* Comp. Prot. HeartBeat */
+#define IPPROTO_WSN             74              /* Wang Span Network */
+#define IPPROTO_PVP             75              /* Packet Video Protocol */
+#define IPPROTO_BRSATMON        76              /* BackRoom SATNET Monitoring */
+#define IPPROTO_ND              77              /* Sun net disk proto (temp.) */
+#define IPPROTO_WBMON           78              /* WIDEBAND Monitoring */
+#define IPPROTO_WBEXPAK         79              /* WIDEBAND EXPAK */
+#define IPPROTO_EON             80              /* ISO cnlp */
+#define IPPROTO_VMTP            81              /* VMTP */
+#define IPPROTO_SVMTP           82              /* Secure VMTP */
+#define IPPROTO_VINES           83              /* Banyon VINES */
+#define IPPROTO_TTP             84              /* TTP */
+#define IPPROTO_IGP             85              /* NSFNET-IGP */
+#define IPPROTO_DGP             86              /* dissimilar gateway prot. */
+#define IPPROTO_TCF             87              /* TCF */
+#define IPPROTO_IGRP            88              /* Cisco/GXS IGRP */
+#define IPPROTO_OSPFIGP         89              /* OSPFIGP */
+#define IPPROTO_SRPC            90              /* Strite RPC protocol */
+#define IPPROTO_LARP            91              /* Locus Address Resoloution */
+#define IPPROTO_MTP             92              /* Multicast Transport */
+#define IPPROTO_AX25            93              /* AX.25 Frames */
+#define IPPROTO_IPEIP           94              /* IP encapsulated in IP */
+#define IPPROTO_MICP            95              /* Mobile Int.ing control */
+#define IPPROTO_SCCSP           96              /* Semaphore Comm. security */
+#define IPPROTO_ETHERIP         97              /* Ethernet IP encapsulation */
+#define IPPROTO_ENCAP           98              /* encapsulation header */
+#define IPPROTO_APES            99              /* any private encr. scheme */
+#define IPPROTO_GMTP            100             /* GMTP*/
+/* 101-252: Partly Unassigned */
+#define IPPROTO_PIM             103             /* Protocol Independent Mcast */
+#define IPPROTO_IPCOMP          108             /* payload compression (IPComp) */
+#define IPPROTO_PGM             113             /* PGM */
+#define IPPROTO_SCTP            132             /* SCTP */
+/* 253-254: Experimentation and testing; 255: Reserved (RFC3692) */
+/* BSD Private, local use, namespace incursion */
+#define IPPROTO_DIVERT          254             /* divert pseudo-protocol */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_RAW             255             /* raw IP packet */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_MAX             256
+
+/* last return value of *_input(), meaning "all job for this pkt is done".  */
+#define IPPROTO_DONE            257
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Local port number conventions:
+ *
+ * When a user does a bind(2) or connect(2) with a port number of zero,
+ * a non-conflicting local port address is chosen.
+ * The default range is IPPORT_RESERVED through
+ * IPPORT_USERRESERVED, although that is settable by sysctl.
+ *
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+ * default assignment range.
+ *
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
+ *
+ * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+ * into the "high" range.  These are reserved for client outbound connections
+ * which do not want to be filtered by any firewalls.
+ *
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
+ * that is (by convention) restricted to privileged processes.  This
+ * convention is based on "vouchsafe" principles only.  It is only secure
+ * if you trust the remote host to restrict these ports.
+ *
+ * The default range of ports and the high range can be changed by
+ * sysctl(3).  (net.inet.ip.port{hi,low}{first,last}_auto)
+ *
+ * Changing those values has bad security implications if you are
+ * using a a stateless firewall that is allowing packets outside of that
+ * range in order to allow transparent outgoing connections.
+ *
+ * Such a firewall configuration will generally depend on the use of these
+ * default values.  If you change them, you may find your Security
+ * Administrator looking for you with a heavy object.
+ *
+ * For a slightly more orthodox text view on this:
+ *
+ *            ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+ *
+ *    port numbers are divided into three ranges:
+ *
+ *                0 -  1023 Well Known Ports
+ *             1024 - 49151 Registered Ports
+ *            49152 - 65535 Dynamic and/or Private Ports
+ *
+ */
+
+#define __DARWIN_IPPORT_RESERVED        1024
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Ports < IPPORT_RESERVED are reserved for
+ * privileged processes (e.g. root).         (IP_PORTRANGE_LOW)
+ * Ports > IPPORT_USERRESERVED are reserved
+ * for servers, not necessarily privileged.  (IP_PORTRANGE_DEFAULT)
+ */
+#ifndef IPPORT_RESERVED
+#define IPPORT_RESERVED         __DARWIN_IPPORT_RESERVED
+#endif
+#define IPPORT_USERRESERVED     5000
+
+/*
+ * Default local port range to use by setting IP_PORTRANGE_HIGH
+ */
+#define IPPORT_HIFIRSTAUTO      49152
+#define IPPORT_HILASTAUTO       65535
+
+/*
+ * Scanning for a free reserved port return a value below IPPORT_RESERVED,
+ * but higher than IPPORT_RESERVEDSTART.  Traditionally the start value was
+ * 512, but that conflicts with some well-known-services that firewalls may
+ * have a fit if we use.
+ */
+#define IPPORT_RESERVEDSTART    600
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Internet address (a structure for historical reasons)
+ */
+struct in_addr {
+	in_addr_t s_addr;
+};
+
+/*
+ * Definitions of bits in internet address integers.
+ * On subnets, the decomposition of addresses to host and net parts
+ * is done according to subnet mask, not the masks here.
+ */
+#define INADDR_ANY              (u_int32_t)0x00000000
+#define INADDR_BROADCAST        (u_int32_t)0xffffffff   /* must be masked */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN_CLASSA(i)            (((u_int32_t)(i) & 0x80000000) == 0)
+#define IN_CLASSA_NET           0xff000000
+#define IN_CLASSA_NSHIFT        24
+#define IN_CLASSA_HOST          0x00ffffff
+#define IN_CLASSA_MAX           128
+
+#define IN_CLASSB(i)            (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+#define IN_CLASSB_NET           0xffff0000
+#define IN_CLASSB_NSHIFT        16
+#define IN_CLASSB_HOST          0x0000ffff
+#define IN_CLASSB_MAX           65536
+
+#define IN_CLASSC(i)            (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+#define IN_CLASSC_NET           0xffffff00
+#define IN_CLASSC_NSHIFT        8
+#define IN_CLASSC_HOST          0x000000ff
+
+#define IN_CLASSD(i)            (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+#define IN_CLASSD_NET           0xf0000000      /* These ones aren't really */
+#define IN_CLASSD_NSHIFT        28              /* net and host fields, but */
+#define IN_CLASSD_HOST          0x0fffffff      /* routing needn't know.    */
+#define IN_MULTICAST(i)         IN_CLASSD(i)
+
+#define IN_EXPERIMENTAL(i)      (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+#define IN_BADCLASS(i)          (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+#define INADDR_LOOPBACK         (u_int32_t)0x7f000001
+
+#define INADDR_NONE             0xffffffff              /* -1 return */
+
+#define INADDR_UNSPEC_GROUP     (u_int32_t)0xe0000000   /* 224.0.0.0 */
+#define INADDR_ALLHOSTS_GROUP   (u_int32_t)0xe0000001   /* 224.0.0.1 */
+#define INADDR_ALLRTRS_GROUP    (u_int32_t)0xe0000002   /* 224.0.0.2 */
+#define INADDR_ALLRPTS_GROUP    (u_int32_t)0xe0000016   /* 224.0.0.22, IGMPv3 */
+#define INADDR_CARP_GROUP       (u_int32_t)0xe0000012   /* 224.0.0.18 */
+#define INADDR_PFSYNC_GROUP     (u_int32_t)0xe00000f0   /* 224.0.0.240 */
+#define INADDR_ALLMDNS_GROUP    (u_int32_t)0xe00000fb   /* 224.0.0.251 */
+#define INADDR_MAX_LOCAL_GROUP  (u_int32_t)0xe00000ff   /* 224.0.0.255 */
+
+#ifdef __APPLE__
+#define IN_LINKLOCALNETNUM      (u_int32_t)0xA9FE0000 /* 169.254.0.0 */
+#define IN_LINKLOCAL(i)         (((u_int32_t)(i) & IN_CLASSB_NET) == IN_LINKLOCALNETNUM)
+#define IN_LOOPBACK(i)          (((u_int32_t)(i) & 0xff000000) == 0x7f000000)
+#define IN_ZERONET(i)           (((u_int32_t)(i) & 0xff000000) == 0)
+
+#define IN_PRIVATE(i)   ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \
+	                 (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \
+	                 (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000))
+
+
+#define IN_LOCAL_GROUP(i)       (((u_int32_t)(i) & 0xffffff00) == 0xe0000000)
+
+#define IN_ANY_LOCAL(i)         (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i))
+#endif /* __APPLE__ */
+
+#define IN_LOOPBACKNET          127                     /* official! */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Socket address, internet style.
+ */
+struct sockaddr_in {
+	__uint8_t       sin_len;
+	sa_family_t     sin_family;
+	in_port_t       sin_port;
+	struct  in_addr sin_addr;
+	char            sin_zero[8];
+};
+
+#define IN_ARE_ADDR_EQUAL(a, b) \
+    (bcmp(&(a)->s_addr, &(b)->s_addr, \
+	sizeof (struct in_addr)) == 0)
+
+
+#define INET_ADDRSTRLEN                 16
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Structure used to describe IP options.
+ * Used to store options internally, to pass them to a process,
+ * or to restore options retrieved earlier.
+ * The ip_dst is used for the first-hop gateway when using a source route
+ * (this gets put into the header proper).
+ */
+struct ip_opts {
+	struct  in_addr ip_dst;         /* first hop, 0 w/o src rt */
+	char    ip_opts[40];            /* actually variable in size */
+};
+
+/*
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+ */
+#define IP_OPTIONS              1    /* buf/ip_opts; set/get IP options */
+#define IP_HDRINCL              2    /* int; header is included with data */
+#define IP_TOS                  3    /* int; IP type of service and preced. */
+#define IP_TTL                  4    /* int; IP time to live */
+#define IP_RECVOPTS             5    /* bool; receive all IP opts w/dgram */
+#define IP_RECVRETOPTS          6    /* bool; receive IP opts for response */
+#define IP_RECVDSTADDR          7    /* bool; receive IP dst addr w/dgram */
+#define IP_RETOPTS              8    /* ip_opts; set/get IP options */
+#define IP_MULTICAST_IF         9    /* u_char; set/get IP multicast i/f  */
+#define IP_MULTICAST_TTL        10   /* u_char; set/get IP multicast ttl */
+#define IP_MULTICAST_LOOP       11   /* u_char; set/get IP multicast loopback */
+#define IP_ADD_MEMBERSHIP       12   /* ip_mreq; add an IP group membership */
+#define IP_DROP_MEMBERSHIP      13   /* ip_mreq; drop an IP group membership */
+#define IP_MULTICAST_VIF        14   /* set/get IP mcast virt. iface */
+#define IP_RSVP_ON              15   /* enable RSVP in kernel */
+#define IP_RSVP_OFF             16   /* disable RSVP in kernel */
+#define IP_RSVP_VIF_ON          17   /* set RSVP per-vif socket */
+#define IP_RSVP_VIF_OFF         18   /* unset RSVP per-vif socket */
+#define IP_PORTRANGE            19   /* int; range to choose for unspec port */
+#define IP_RECVIF               20   /* bool; receive reception if w/dgram */
+/* for IPSEC */
+#define IP_IPSEC_POLICY         21   /* int; set/get security policy */
+#define IP_FAITH                22   /* deprecated */
+#ifdef __APPLE__
+#define IP_STRIPHDR             23   /* bool: drop receive of raw IP header */
+#endif
+#define IP_RECVTTL              24   /* bool; receive reception TTL w/dgram */
+#define IP_BOUND_IF             25   /* int; set/get bound interface */
+#define IP_PKTINFO              26   /* get pktinfo on recv socket, set src on sent dgram  */
+#define IP_RECVPKTINFO          IP_PKTINFO      /* receive pktinfo w/dgram */
+#define IP_RECVTOS              27   /* bool; receive IP TOS w/dgram */
+
+#define IP_FW_ADD               40   /* add a firewall rule to chain */
+#define IP_FW_DEL               41   /* delete a firewall rule from chain */
+#define IP_FW_FLUSH             42   /* flush firewall rule chain */
+#define IP_FW_ZERO              43   /* clear single/all firewall counter(s) */
+#define IP_FW_GET               44   /* get entire firewall rule chain */
+#define IP_FW_RESETLOG          45   /* reset logging counters */
+
+/* These older firewall socket option codes are maintained for backward compatibility. */
+#define IP_OLD_FW_ADD           50   /* add a firewall rule to chain */
+#define IP_OLD_FW_DEL           51   /* delete a firewall rule from chain */
+#define IP_OLD_FW_FLUSH         52   /* flush firewall rule chain */
+#define IP_OLD_FW_ZERO          53   /* clear single/all firewall counter(s) */
+#define IP_OLD_FW_GET           54   /* get entire firewall rule chain */
+#define IP_NAT__XXX                     55   /* set/get NAT opts XXX Deprecated, do not use */
+#define IP_OLD_FW_RESETLOG      56   /* reset logging counters */
+
+#define IP_DUMMYNET_CONFIGURE   60   /* add/configure a dummynet pipe */
+#define IP_DUMMYNET_DEL         61   /* delete a dummynet pipe from chain */
+#define IP_DUMMYNET_FLUSH       62   /* flush dummynet */
+#define IP_DUMMYNET_GET         64   /* get entire dummynet pipes */
+
+#define IP_TRAFFIC_MGT_BACKGROUND       65   /* int*; get background IO flags; set background IO */
+#define IP_MULTICAST_IFINDEX    66   /* int*; set/get IP multicast i/f index */
+
+/* IPv4 Source Filter Multicast API [RFC3678] */
+#define IP_ADD_SOURCE_MEMBERSHIP        70   /* join a source-specific group */
+#define IP_DROP_SOURCE_MEMBERSHIP       71   /* drop a single source */
+#define IP_BLOCK_SOURCE                 72   /* block a source */
+#define IP_UNBLOCK_SOURCE               73   /* unblock a source */
+
+/* The following option is private; do not use it from user applications. */
+#define IP_MSFILTER                     74   /* set/get filter list */
+
+/* Protocol Independent Multicast API [RFC3678] */
+#define MCAST_JOIN_GROUP                80   /* join an any-source group */
+#define MCAST_LEAVE_GROUP               81   /* leave all sources for group */
+#define MCAST_JOIN_SOURCE_GROUP         82   /* join a source-specific group */
+#define MCAST_LEAVE_SOURCE_GROUP        83   /* leave a single source */
+#define MCAST_BLOCK_SOURCE              84   /* block a source */
+#define MCAST_UNBLOCK_SOURCE            85   /* unblock a source */
+
+
+/*
+ * Defaults and limits for options
+ */
+#define IP_DEFAULT_MULTICAST_TTL  1     /* normally limit m'casts to 1 hop  */
+#define IP_DEFAULT_MULTICAST_LOOP 1     /* normally hear sends if a member  */
+
+/*
+ * The imo_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
+ */
+#define IP_MIN_MEMBERSHIPS      31
+#define IP_MAX_MEMBERSHIPS      4095
+
+/*
+ * Default resource limits for IPv4 multicast source filtering.
+ * These may be modified by sysctl.
+ */
+#define IP_MAX_GROUP_SRC_FILTER         512     /* sources per group */
+#define IP_MAX_SOCK_SRC_FILTER          128     /* sources per socket/group */
+#define IP_MAX_SOCK_MUTE_FILTER         128     /* XXX no longer used */
+
+/*
+ * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+ */
+struct ip_mreq {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_interface;  /* local IP address of interface */
+};
+
+/*
+ * Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+ * This is used to specify an interface index for multicast sends, as
+ * the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+ */
+struct ip_mreqn {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_address;    /* local IP address of interface */
+	int             imr_ifindex;    /* Interface index; cast to uint32_t */
+};
+
+#pragma pack(4)
+/*
+ * Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+ */
+struct ip_mreq_source {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_sourceaddr; /* IP address of source */
+	struct  in_addr imr_interface;  /* local IP address of interface */
+};
+
+/*
+ * Argument structures for Protocol-Independent Multicast Source
+ * Filter APIs. [RFC3678]
+ */
+struct group_req {
+	uint32_t                gr_interface;   /* interface index */
+	struct sockaddr_storage gr_group;       /* group address */
+};
+
+struct group_source_req {
+	uint32_t                gsr_interface;  /* interface index */
+	struct sockaddr_storage gsr_group;      /* group address */
+	struct sockaddr_storage gsr_source;     /* source address */
+};
+
+#ifndef __MSFILTERREQ_DEFINED
+#define __MSFILTERREQ_DEFINED
+/*
+ * The following structure is private; do not use it from user applications.
+ * It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+ * the RFC 3678 libc functions and the kernel.
+ */
+struct __msfilterreq {
+	uint32_t                 msfr_ifindex;  /* interface index */
+	uint32_t                 msfr_fmode;    /* filter mode for group */
+	uint32_t                 msfr_nsrcs;    /* # of sources in msfr_srcs */
+	uint32_t                __msfr_align;
+	struct sockaddr_storage  msfr_group;    /* group address */
+	struct sockaddr_storage *msfr_srcs;
+};
+
+#endif /* __MSFILTERREQ_DEFINED */
+
+#pragma pack()
+struct sockaddr;
+
+/*
+ * Advanced (Full-state) APIs [RFC3678]
+ * The RFC specifies uint_t for the 6th argument to [sg]etsourcefilter().
+ * We use uint32_t here to be consistent.
+ */
+int     setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
+    uint32_t, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
+    uint32_t *, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
+    uint32_t, uint32_t, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
+    uint32_t *, uint32_t *, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+
+/*
+ * Filter modes; also used to represent per-socket filter mode internally.
+ */
+#define MCAST_UNDEFINED 0       /* fmode: not yet defined */
+#define MCAST_INCLUDE   1       /* fmode: include these source(s) */
+#define MCAST_EXCLUDE   2       /* fmode: exclude these source(s) */
+
+/*
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind() or connect()
+ */
+#define IP_PORTRANGE_DEFAULT    0       /* default range */
+#define IP_PORTRANGE_HIGH       1       /* "high" - request firewall bypass */
+#define IP_PORTRANGE_LOW        2       /* "low" - vouchsafe security */
+
+
+/*
+ * IP_PKTINFO: Packet information (equivalent to  RFC2292 sec 5 for IPv4)
+ * This structure is used for
+ *
+ * 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+ *    set on the socket. In this case ipi_ifindex will contain the interface
+ *    index the datagram was received on, ipi_addr is the IP address the
+ *    datagram was received to.
+ *
+ * 2) Sending a datagram using a specific interface or IP source address.
+ *    if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+ *    ancilliary data of type IP_PKTINFO, this will be used as the source
+ *    interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+ *    will be used for the source address.
+ *
+ *    Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+ *    IP_PKTINFO option silently overrides the bound interface when it is
+ *    specified during send time.
+ */
+struct in_pktinfo {
+	unsigned int    ipi_ifindex;    /* send/recv interface index */
+	struct in_addr  ipi_spec_dst;   /* Local address */
+	struct in_addr  ipi_addr;       /* IP Header dst address */
+};
+
+/*
+ * Definitions for inet sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+ */
+#define IPPROTO_MAXID   (IPPROTO_AH + 1)        /* don't list to IPPROTO_MAX */
+
+
+/*
+ * Names for IP sysctl objects
+ */
+#define IPCTL_FORWARDING        1       /* act as router */
+#define IPCTL_SENDREDIRECTS     2       /* may send redirects when forwarding */
+#define IPCTL_DEFTTL            3       /* default TTL */
+#ifdef notyet
+#define IPCTL_DEFMTU            4       /* default MTU */
+#endif
+#define IPCTL_RTEXPIRE          5       /* cloned route expiration time */
+#define IPCTL_RTMINEXPIRE       6       /* min value for expiration time */
+#define IPCTL_RTMAXCACHE        7       /* trigger level for dynamic expire */
+#define IPCTL_SOURCEROUTE       8       /* may perform source routes */
+#define IPCTL_DIRECTEDBROADCAST 9       /* may re-broadcast received packets */
+#define IPCTL_INTRQMAXLEN       10      /* max length of netisr queue */
+#define IPCTL_INTRQDROPS        11      /* number of netisr q drops */
+#define IPCTL_STATS             12      /* ipstat structure */
+#define IPCTL_ACCEPTSOURCEROUTE 13      /* may accept source routed packets */
+#define IPCTL_FASTFORWARDING    14      /* use fast IP forwarding code */
+#define IPCTL_KEEPFAITH         15      /* deprecated */
+#define IPCTL_GIF_TTL           16      /* default TTL for gif encap packet */
+#define IPCTL_MAXID             17
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* INET6 stuff */
+#define __KAME_NETINET_IN_H_INCLUDED_
+#include <netinet6/in6.h>
+#undef __KAME_NETINET_IN_H_INCLUDED_
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+__BEGIN_DECLS
+int        bindresvport(int, struct sockaddr_in *);
+struct sockaddr;
+int        bindresvport_sa(int, struct sockaddr *);
+__END_DECLS
+#endif
+#endif /* _NETINET_IN_H_ */
lib/libc/include/x86_64-macos-gnu/netinet/tcp.h
@@ -0,0 +1,283 @@
+/*
+ * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp.h,v 1.13.2.3 2001/03/01 22:08:42 jlemon Exp $
+ */
+
+#ifndef _NETINET_TCP_H_
+#define _NETINET_TCP_H_
+#include <sys/types.h>
+#include <sys/appleapiopts.h>
+#include <machine/endian.h>
+#include <machine/types.h> /* __uint32_t */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+typedef __uint32_t tcp_seq;
+typedef __uint32_t tcp_cc;              /* connection count per rfc1644 */
+
+#define tcp6_seq        tcp_seq /* for KAME src sync over BSD*'s */
+#define tcp6hdr         tcphdr  /* for KAME src sync over BSD*'s */
+
+/*
+ * TCP header.
+ * Per RFC 793, September, 1981.
+ */
+struct tcphdr {
+	unsigned short  th_sport;       /* source port */
+	unsigned short  th_dport;       /* destination port */
+	tcp_seq th_seq;                 /* sequence number */
+	tcp_seq th_ack;                 /* acknowledgement number */
+#if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
+	unsigned int    th_x2:4,        /* (unused) */
+	    th_off:4;                   /* data offset */
+#endif
+#if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN
+	unsigned int    th_off:4,       /* data offset */
+	    th_x2:4;                    /* (unused) */
+#endif
+	unsigned char   th_flags;
+#define TH_FIN  0x01
+#define TH_SYN  0x02
+#define TH_RST  0x04
+#define TH_PUSH 0x08
+#define TH_ACK  0x10
+#define TH_URG  0x20
+#define TH_ECE  0x40
+#define TH_CWR  0x80
+#define TH_FLAGS        (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
+#define TH_ACCEPT       (TH_FIN|TH_SYN|TH_RST|TH_ACK)
+
+	unsigned short  th_win;         /* window */
+	unsigned short  th_sum;         /* checksum */
+	unsigned short  th_urp;         /* urgent pointer */
+};
+
+#define TCPOPT_EOL              0
+#define TCPOPT_NOP              1
+#define TCPOPT_MAXSEG           2
+#define TCPOLEN_MAXSEG          4
+#define TCPOPT_WINDOW           3
+#define TCPOLEN_WINDOW          3
+#define TCPOPT_SACK_PERMITTED   4               /* Experimental */
+#define TCPOLEN_SACK_PERMITTED  2
+#define TCPOPT_SACK             5               /* Experimental */
+#define TCPOLEN_SACK            8               /* len of sack block */
+#define TCPOPT_TIMESTAMP        8
+#define TCPOLEN_TIMESTAMP       10
+#define TCPOLEN_TSTAMP_APPA             (TCPOLEN_TIMESTAMP+2) /* appendix A */
+#define TCPOPT_TSTAMP_HDR               \
+    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
+
+#define MAX_TCPOPTLEN           40      /* Absolute maximum TCP options len */
+
+#define TCPOPT_CC               11              /* CC options: RFC-1644 */
+#define TCPOPT_CCNEW            12
+#define TCPOPT_CCECHO           13
+#define    TCPOLEN_CC                   6
+#define    TCPOLEN_CC_APPA              (TCPOLEN_CC+2)
+#define    TCPOPT_CC_HDR(ccopt)         \
+    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC)
+#define TCPOPT_SIGNATURE                19      /* Keyed MD5: RFC 2385 */
+#define    TCPOLEN_SIGNATURE            18
+#if MPTCP
+#define TCPOPT_MULTIPATH                30
+#endif
+
+#define TCPOPT_FASTOPEN                 34
+#define TCPOLEN_FASTOPEN_REQ            2
+
+/* Option definitions */
+#define TCPOPT_SACK_PERMIT_HDR  \
+(TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK_PERMITTED<<8|TCPOLEN_SACK_PERMITTED)
+#define TCPOPT_SACK_HDR         (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK<<8)
+/* Miscellaneous constants */
+#define MAX_SACK_BLKS   6       /* Max # SACK blocks stored at sender side */
+
+/*
+ * A SACK option that specifies n blocks will have a length of (8*n + 2)
+ * bytes, so the 40 bytes available for TCP options can specify a
+ * maximum of 4 blocks.
+ */
+
+#define TCP_MAX_SACK    4       /* MAX # SACKs sent in any segment */
+
+
+/*
+ * Default maximum segment size for TCP.
+ * With an IP MTU of 576, this is 536,
+ * but 512 is probably more convenient.
+ * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
+ */
+#define TCP_MSS 512
+
+/*
+ * TCP_MINMSS is defined to be 216 which is fine for the smallest
+ * link MTU (256 bytes, SLIP interface) in the Internet.
+ * However it is very unlikely to come across such low MTU interfaces
+ * these days (anno dato 2004).
+ * Probably it can be set to 512 without ill effects. But we play safe.
+ * See tcp_subr.c tcp_minmss SYSCTL declaration for more comments.
+ * Setting this to "0" disables the minmss check.
+ */
+#define TCP_MINMSS 216
+
+/*
+ * Default maximum segment size for TCP6.
+ * With an IP6 MSS of 1280, this is 1220,
+ * but 1024 is probably more convenient. (xxx kazu in doubt)
+ * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr))
+ */
+#define TCP6_MSS        1024
+
+#define TCP_MAXWIN      65535   /* largest value for (unscaled) window */
+#define TTCP_CLIENT_SND_WND     4096    /* dflt send window for T/TCP client */
+
+#define TCP_MAX_WINSHIFT        14      /* maximum window shift */
+
+#define TCP_MAXHLEN     (0xf<<2)        /* max length of header in bytes */
+#define TCP_MAXOLEN     (TCP_MAXHLEN - sizeof(struct tcphdr))
+/* max space left for options */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * User-settable options (used with setsockopt).
+ */
+#define TCP_NODELAY             0x01    /* don't delay send to coalesce packets */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define TCP_MAXSEG              0x02    /* set maximum segment size */
+#define TCP_NOPUSH              0x04    /* don't push last block of write */
+#define TCP_NOOPT               0x08    /* don't use TCP options */
+#define TCP_KEEPALIVE           0x10    /* idle time used when SO_KEEPALIVE is enabled */
+#define TCP_CONNECTIONTIMEOUT   0x20    /* connection timeout */
+#define PERSIST_TIMEOUT         0x40    /* time after which a connection in
+	                                 *  persist timeout will terminate.
+	                                 *  see draft-ananth-tcpm-persist-02.txt
+	                                 */
+#define TCP_RXT_CONNDROPTIME    0x80    /* time after which tcp retransmissions will be
+	                                 * stopped and the connection will be dropped
+	                                 */
+#define TCP_RXT_FINDROP         0x100   /* when this option is set, drop a connection
+	                                 * after retransmitting the FIN 3 times. It will
+	                                 * prevent holding too many mbufs in socket
+	                                 * buffer queues.
+	                                 */
+#define TCP_KEEPINTVL           0x101   /* interval between keepalives */
+#define TCP_KEEPCNT             0x102   /* number of keepalives before close */
+#define TCP_SENDMOREACKS        0x103   /* always ack every other packet */
+#define TCP_ENABLE_ECN          0x104   /* Enable ECN on a connection */
+#define TCP_FASTOPEN            0x105   /* Enable/Disable TCP Fastopen on this socket */
+#define TCP_CONNECTION_INFO     0x106   /* State of TCP connection */
+
+
+
+#define TCP_NOTSENT_LOWAT       0x201   /* Low water mark for TCP unsent data */
+
+
+struct tcp_connection_info {
+	u_int8_t        tcpi_state;     /* connection state */
+	u_int8_t        tcpi_snd_wscale; /* Window scale for send window */
+	u_int8_t        tcpi_rcv_wscale; /* Window scale for receive window */
+	u_int8_t        __pad1;
+	u_int32_t       tcpi_options;   /* TCP options supported */
+#define TCPCI_OPT_TIMESTAMPS    0x00000001 /* Timestamps enabled */
+#define TCPCI_OPT_SACK          0x00000002 /* SACK enabled */
+#define TCPCI_OPT_WSCALE        0x00000004 /* Window scaling enabled */
+#define TCPCI_OPT_ECN           0x00000008 /* ECN enabled */
+	u_int32_t       tcpi_flags;     /* flags */
+#define TCPCI_FLAG_LOSSRECOVERY 0x00000001
+#define TCPCI_FLAG_REORDERING_DETECTED  0x00000002
+	u_int32_t       tcpi_rto;       /* retransmit timeout in ms */
+	u_int32_t       tcpi_maxseg;    /* maximum segment size supported */
+	u_int32_t       tcpi_snd_ssthresh; /* slow start threshold in bytes */
+	u_int32_t       tcpi_snd_cwnd;  /* send congestion window in bytes */
+	u_int32_t       tcpi_snd_wnd;   /* send widnow in bytes */
+	u_int32_t       tcpi_snd_sbbytes; /* bytes in send socket buffer, including in-flight data */
+	u_int32_t       tcpi_rcv_wnd;   /* receive window in bytes*/
+	u_int32_t       tcpi_rttcur;    /* most recent RTT in ms */
+	u_int32_t       tcpi_srtt;      /* average RTT in ms */
+	u_int32_t       tcpi_rttvar;    /* RTT variance */
+	u_int32_t
+	    tcpi_tfo_cookie_req:1,             /* Cookie requested? */
+	    tcpi_tfo_cookie_rcv:1,             /* Cookie received? */
+	    tcpi_tfo_syn_loss:1,               /* Fallback to reg. TCP after SYN-loss */
+	    tcpi_tfo_syn_data_sent:1,             /* SYN+data has been sent out */
+	    tcpi_tfo_syn_data_acked:1,             /* SYN+data has been fully acknowledged */
+	    tcpi_tfo_syn_data_rcv:1,             /* Server received SYN+data with a valid cookie */
+	    tcpi_tfo_cookie_req_rcv:1,             /* Server received cookie-request */
+	    tcpi_tfo_cookie_sent:1,             /* Server announced cookie */
+	    tcpi_tfo_cookie_invalid:1,             /* Server received an invalid cookie */
+	    tcpi_tfo_cookie_wrong:1,             /* Our sent cookie was wrong */
+	    tcpi_tfo_no_cookie_rcv:1,             /* We did not receive a cookie upon our request */
+	    tcpi_tfo_heuristics_disable:1,             /* TFO-heuristics disabled it */
+	    tcpi_tfo_send_blackhole:1,             /* A sending-blackhole got detected */
+	    tcpi_tfo_recv_blackhole:1,             /* A receiver-blackhole got detected */
+	    tcpi_tfo_onebyte_proxy:1,             /* A proxy acknowledges all but one byte of the SYN */
+	    __pad2:17;
+	u_int64_t       tcpi_txpackets __attribute__((aligned(8)));
+	u_int64_t       tcpi_txbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_txretransmitbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxpackets __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxoutoforderbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_txretransmitpackets __attribute__((aligned(8)));
+};
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#endif
lib/libc/include/x86_64-macos-gnu/netinet6/in6.h
@@ -0,0 +1,667 @@
+/*
+ * Copyright (c) 2008-2018 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ */
+
+#ifndef __KAME_NETINET_IN_H_INCLUDED_
+#error "do not include netinet6/in6.h directly, include netinet/in.h. " \
+        " see RFC2553"
+#endif
+
+#ifndef _NETINET6_IN6_H_
+#define _NETINET6_IN6_H_
+#include <sys/appleapiopts.h>
+#include <sys/_types.h>
+#include <sys/_types/_sa_family_t.h>
+
+/*
+ * Identification of the network protocol stack
+ * for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+ * has the table of implementation/integration differences.
+ */
+#define __KAME__
+#define __KAME_VERSION          "2009/apple-darwin"
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Local port number conventions:
+ *
+ * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+ * unless a kernel is compiled with IPNOPRIVPORTS defined.
+ *
+ * When a user does a bind(2) or connect(2) with a port number of zero,
+ * a non-conflicting local port address is chosen.
+ *
+ * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+ * that is settable by sysctl(3); net.inet.ip.anonportmin and
+ * net.inet.ip.anonportmax respectively.
+ *
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+ * default assignment range.
+ *
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
+ *
+ * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+ * and exists only for FreeBSD compatibility purposes.
+ *
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
+ * that is (by convention) restricted to privileged processes.
+ * This convention is based on "vouchsafe" principles only.
+ * It is only secure if you trust the remote host to restrict these ports.
+ * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+ */
+
+#define IPV6PORT_RESERVED       1024
+#define IPV6PORT_ANONMIN        49152
+#define IPV6PORT_ANONMAX        65535
+#define IPV6PORT_RESERVEDMIN    600
+#define IPV6PORT_RESERVEDMAX    (IPV6PORT_RESERVED-1)
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * IPv6 address
+ */
+typedef struct in6_addr {
+	union {
+		__uint8_t   __u6_addr8[16];
+		__uint16_t  __u6_addr16[8];
+		__uint32_t  __u6_addr32[4];
+	} __u6_addr;                    /* 128-bit IP6 address */
+} in6_addr_t;
+
+#define s6_addr   __u6_addr.__u6_addr8
+
+#define INET6_ADDRSTRLEN        46
+
+/*
+ * Socket address for IPv6
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SIN6_LEN
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+struct sockaddr_in6 {
+	__uint8_t       sin6_len;       /* length of this struct(sa_family_t) */
+	sa_family_t     sin6_family;    /* AF_INET6 (sa_family_t) */
+	in_port_t       sin6_port;      /* Transport layer port # (in_port_t) */
+	__uint32_t      sin6_flowinfo;  /* IP6 flow information */
+	struct in6_addr sin6_addr;      /* IP6 address */
+	__uint32_t      sin6_scope_id;  /* scope zone index */
+};
+
+
+
+
+/*
+ * Definition of some useful macros to handle IP6 addresses
+ */
+#define IN6ADDR_ANY_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
+#define IN6ADDR_LOOPBACK_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN6ADDR_NODELOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_LINKLOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
+#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
+#define IN6ADDR_V4MAPPED_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}}
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+extern const struct in6_addr in6addr_any;
+extern const struct in6_addr in6addr_loopback;
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+extern const struct in6_addr in6addr_nodelocal_allnodes;
+extern const struct in6_addr in6addr_linklocal_allnodes;
+extern const struct in6_addr in6addr_linklocal_allrouters;
+extern const struct in6_addr in6addr_linklocal_allv2routers;
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Equality
+ * NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+ * does not supply memcmp().  For userland memcmp() is preferred as it is
+ * in ANSI standard.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN6_ARE_ADDR_EQUAL(a, b) \
+	(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof (struct in6_addr)) \
+	== 0)
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+/*
+ * Unspecified
+ */
+#define IN6_IS_ADDR_UNSPECIFIED(a)      \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
+
+/*
+ * Loopback
+ */
+#define IN6_IS_ADDR_LOOPBACK(a)         \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
+
+/*
+ * IPv4 compatible
+ */
+#define IN6_IS_ADDR_V4COMPAT(a)         \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
+
+/*
+ * Mapped
+ */
+#define IN6_IS_ADDR_V4MAPPED(a)               \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == \
+	ntohl(0x0000ffff)))
+
+/*
+ * 6to4
+ */
+#define IN6_IS_ADDR_6TO4(x)     (ntohs((x)->s6_addr16[0]) == 0x2002)
+
+/*
+ * KAME Scope Values
+ */
+
+#define __IPV6_ADDR_SCOPE_NODELOCAL     0x01
+#define __IPV6_ADDR_SCOPE_INTFACELOCAL  0x01
+#define __IPV6_ADDR_SCOPE_LINKLOCAL     0x02
+#define __IPV6_ADDR_SCOPE_SITELOCAL     0x05
+#define __IPV6_ADDR_SCOPE_ORGLOCAL      0x08    /* just used in this file */
+#define __IPV6_ADDR_SCOPE_GLOBAL        0x0e
+
+/*
+ * Unicast Scope
+ * Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+ */
+#define IN6_IS_ADDR_LINKLOCAL(a)        \
+	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
+#define IN6_IS_ADDR_SITELOCAL(a)        \
+	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
+
+/*
+ * Multicast
+ */
+#define IN6_IS_ADDR_MULTICAST(a)        ((a)->s6_addr[0] == 0xff)
+
+/*
+ * Unique Local IPv6 Unicast Addresses (per RFC 4193)
+ */
+#define IN6_IS_ADDR_UNIQUE_LOCAL(a) \
+	(((a)->s6_addr[0] == 0xfc) || ((a)->s6_addr[0] == 0xfd))
+
+#define __IPV6_ADDR_MC_SCOPE(a)         ((a)->s6_addr[1] & 0x0f)
+
+/*
+ * Multicast Scope
+ */
+#define IN6_IS_ADDR_MC_NODELOCAL(a)     \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_NODELOCAL))
+#define IN6_IS_ADDR_MC_LINKLOCAL(a)     \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_LINKLOCAL))
+#define IN6_IS_ADDR_MC_SITELOCAL(a)     \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL))
+#define IN6_IS_ADDR_MC_ORGLOCAL(a)      \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL))
+#define IN6_IS_ADDR_MC_GLOBAL(a)        \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_GLOBAL))
+
+
+
+
+/*
+ * Options for use with [gs]etsockopt at the IPV6 level.
+ * First word of comment is data type; bool is stored in int.
+ */
+/* no hdrincl */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * RFC 3542 define the following socket options in a manner incompatible
+ * with RFC 2292:
+ *   IPV6_PKTINFO
+ *   IPV6_HOPLIMIT
+ *   IPV6_NEXTHOP
+ *   IPV6_HOPOPTS
+ *   IPV6_DSTOPTS
+ *   IPV6_RTHDR
+ *
+ * To use the new IPv6 Sockets options introduced by RFC 3542
+ * the constant __APPLE_USE_RFC_3542 must be defined before
+ * including <netinet/in.h>
+ *
+ * To use the old IPv6 Sockets options from RFC 2292
+ * the constant __APPLE_USE_RFC_2292 must be defined before
+ * including <netinet/in.h>
+ *
+ * Note that eventually RFC 3542 is going to be the
+ * default and RFC 2292 will be obsolete.
+ */
+
+#if defined(__APPLE_USE_RFC_3542) && defined(__APPLE_USE_RFC_2292)
+#error "__APPLE_USE_RFC_3542 and __APPLE_USE_RFC_2292 cannot be both defined"
+#endif
+
+#if 0 /* the followings are relic in IPv4 and hence are disabled */
+#define IPV6_OPTIONS            1  /* buf/ip6_opts; set/get IP6 options */
+#define IPV6_RECVOPTS           5  /* bool; receive all IP6 opts w/dgram */
+#define IPV6_RECVRETOPTS        6  /* bool; receive IP6 opts for response */
+#define IPV6_RECVDSTADDR        7  /* bool; receive IP6 dst addr w/dgram */
+#define IPV6_RETOPTS            8  /* ip6_opts; set/get IP6 options */
+#endif /* 0 */
+#define IPV6_SOCKOPT_RESERVED1  3  /* reserved for future use */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define IPV6_UNICAST_HOPS       4  /* int; IP6 hops */
+#define IPV6_MULTICAST_IF       9  /* __uint8_t; set/get IP6 multicast i/f  */
+#define IPV6_MULTICAST_HOPS     10 /* __uint8_t; set/get IP6 multicast hops */
+#define IPV6_MULTICAST_LOOP     11 /* __uint8_t; set/get IP6 mcast loopback */
+#define IPV6_JOIN_GROUP         12 /* ip6_mreq; join a group membership */
+#define IPV6_LEAVE_GROUP        13 /* ip6_mreq; leave a group membership */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPV6_PORTRANGE          14 /* int; range to choose for unspec port */
+#define ICMP6_FILTER            18 /* icmp6_filter; icmp6 filter */
+#define IPV6_2292PKTINFO        19 /* bool; send/recv if, src/dst addr */
+#define IPV6_2292HOPLIMIT       20 /* bool; hop limit */
+#define IPV6_2292NEXTHOP        21 /* bool; next hop addr */
+#define IPV6_2292HOPOPTS        22 /* bool; hop-by-hop option */
+#define IPV6_2292DSTOPTS        23 /* bool; destinaion option */
+#define IPV6_2292RTHDR          24 /* ip6_rthdr: routing header */
+
+/* buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542] */
+#define IPV6_2292PKTOPTIONS     25
+
+#ifdef __APPLE_USE_RFC_2292
+#define IPV6_PKTINFO    IPV6_2292PKTINFO
+#define IPV6_HOPLIMIT   IPV6_2292HOPLIMIT
+#define IPV6_NEXTHOP    IPV6_2292NEXTHOP
+#define IPV6_HOPOPTS    IPV6_2292HOPOPTS
+#define IPV6_DSTOPTS    IPV6_2292DSTOPTS
+#define IPV6_RTHDR      IPV6_2292RTHDR
+#define IPV6_PKTOPTIONS IPV6_2292PKTOPTIONS
+#endif /* __APPLE_USE_RFC_2292 */
+
+#define IPV6_CHECKSUM           26 /* int; checksum offset for raw socket */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define IPV6_V6ONLY             27 /* bool; only bind INET6 at wildcard bind */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPV6_BINDV6ONLY         IPV6_V6ONLY
+
+
+#if 1 /* IPSEC */
+#define IPV6_IPSEC_POLICY       28 /* struct; get/set security policy */
+#endif /* 1 */
+#define IPV6_FAITH              29 /* deprecated */
+
+#if 1 /* IPV6FIREWALL */
+#define IPV6_FW_ADD             30 /* add a firewall rule to chain */
+#define IPV6_FW_DEL             31 /* delete a firewall rule from chain */
+#define IPV6_FW_FLUSH           32 /* flush firewall rule chain */
+#define IPV6_FW_ZERO            33 /* clear single/all firewall counter(s) */
+#define IPV6_FW_GET             34 /* get entire firewall rule chain */
+#endif /* 1 */
+
+/*
+ * APPLE: NOTE the value of those 2 options is kept unchanged from
+ *   previous version of darwin/OS X for binary compatibility reasons
+ *   and differ from FreeBSD (values 57 and 61). See below.
+ */
+#define IPV6_RECVTCLASS         35 /* bool; recv traffic class values */
+#define IPV6_TCLASS             36 /* int; send traffic class value */
+
+#ifdef __APPLE_USE_RFC_3542
+/* new socket options introduced in RFC3542 */
+/*
+ * ip6_dest; send dst option before rthdr
+ * APPLE: Value purposely different than FreeBSD (35) to avoid
+ * collision with definition of IPV6_RECVTCLASS in previous
+ * darwin implementations
+ */
+#define IPV6_RTHDRDSTOPTS       57
+
+/*
+ * bool; recv if, dst addr
+ * APPLE: Value purposely different than FreeBSD(36) to avoid
+ * collision with definition of IPV6_TCLASS in previous
+ * darwin implementations
+ */
+#define IPV6_RECVPKTINFO        61
+
+#define IPV6_RECVHOPLIMIT       37 /* bool; recv hop limit */
+#define IPV6_RECVRTHDR          38 /* bool; recv routing header */
+#define IPV6_RECVHOPOPTS        39 /* bool; recv hop-by-hop option */
+#define IPV6_RECVDSTOPTS        40 /* bool; recv dst option after rthdr */
+
+#define IPV6_USE_MIN_MTU        42 /* bool; send packets at the minimum MTU */
+#define IPV6_RECVPATHMTU        43 /* bool; notify an according MTU */
+
+/*
+ * mtuinfo; get the current path MTU (sopt), 4 bytes int;
+ * MTU notification (cmsg)
+ */
+#define IPV6_PATHMTU            44
+
+#if 0 /* obsoleted during 2292bis -> 3542 */
+/* no data; ND reachability confirm (cmsg only/not in of RFC3542) */
+#define IPV6_REACHCONF          45
+#endif
+/* more new socket options introduced in RFC3542 */
+#define IPV6_3542PKTINFO        46 /* in6_pktinfo; send if, src addr */
+#define IPV6_3542HOPLIMIT       47 /* int; send hop limit */
+#define IPV6_3542NEXTHOP        48 /* sockaddr; next hop addr */
+#define IPV6_3542HOPOPTS        49 /* ip6_hbh; send hop-by-hop option */
+#define IPV6_3542DSTOPTS        50 /* ip6_dest; send dst option befor rthdr */
+#define IPV6_3542RTHDR          51 /* ip6_rthdr; send routing header */
+
+#define IPV6_PKTINFO    IPV6_3542PKTINFO
+#define IPV6_HOPLIMIT   IPV6_3542HOPLIMIT
+#define IPV6_NEXTHOP    IPV6_3542NEXTHOP
+#define IPV6_HOPOPTS    IPV6_3542HOPOPTS
+#define IPV6_DSTOPTS    IPV6_3542DSTOPTS
+#define IPV6_RTHDR      IPV6_3542RTHDR
+
+#define IPV6_AUTOFLOWLABEL      59 /* bool; attach flowlabel automagically */
+
+#define IPV6_DONTFRAG           62 /* bool; disable IPv6 fragmentation */
+
+/* int; prefer temporary addresses as the source address. */
+#define IPV6_PREFER_TEMPADDR    63
+
+/*
+ * The following option is private; do not use it from user applications.
+ * It is deliberately defined to the same value as IP_MSFILTER.
+ */
+#define IPV6_MSFILTER           74 /* struct __msfilterreq; */
+#endif /* __APPLE_USE_RFC_3542 */
+
+#define IPV6_BOUND_IF           125 /* int; set/get bound interface */
+
+
+/* to define items, should talk with KAME guys first, for *BSD compatibility */
+
+#define IPV6_RTHDR_LOOSE        0 /* this hop need not be a neighbor. */
+#define IPV6_RTHDR_STRICT       1 /* this hop must be a neighbor. */
+#define IPV6_RTHDR_TYPE_0       0 /* IPv6 routing header type 0 */
+
+/*
+ * Defaults and limits for options
+ */
+#define IPV6_DEFAULT_MULTICAST_HOPS 1   /* normally limit m'casts to 1 hop  */
+#define IPV6_DEFAULT_MULTICAST_LOOP 1   /* normally hear sends if a member  */
+
+/*
+ * The im6o_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
+ */
+#define IPV6_MIN_MEMBERSHIPS    31
+#define IPV6_MAX_MEMBERSHIPS    4095
+
+/*
+ * Default resource limits for IPv6 multicast source filtering.
+ * These may be modified by sysctl.
+ */
+#define IPV6_MAX_GROUP_SRC_FILTER       512     /* sources per group */
+#define IPV6_MAX_SOCK_SRC_FILTER        128     /* sources per socket/group */
+
+/*
+ * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ */
+struct ipv6_mreq {
+	struct in6_addr ipv6mr_multiaddr;
+	unsigned int    ipv6mr_interface;
+};
+
+/*
+ * IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+ */
+struct in6_pktinfo {
+	struct in6_addr ipi6_addr;      /* src/dst IPv6 address */
+	unsigned int    ipi6_ifindex;   /* send/recv interface index */
+};
+
+/*
+ * Control structure for IPV6_RECVPATHMTU socket option.
+ */
+struct ip6_mtuinfo {
+	struct sockaddr_in6 ip6m_addr;  /* or sockaddr_storage? */
+	uint32_t ip6m_mtu;
+};
+
+/*
+ * Argument for IPV6_PORTRANGE:
+ * - which range to search when port is unspecified at bind() or connect()
+ */
+#define IPV6_PORTRANGE_DEFAULT  0       /* default range */
+#define IPV6_PORTRANGE_HIGH     1       /* "high" - request firewall bypass */
+#define IPV6_PORTRANGE_LOW      2       /* "low" - vouchsafe security */
+
+/*
+ * Definitions for inet6 sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+ */
+#define IPV6PROTO_MAXID (IPPROTO_PIM + 1)  /* don't list to IPV6PROTO_MAX */
+
+/*
+ * Names for IP sysctl objects
+ */
+#define IPV6CTL_FORWARDING      1       /* act as router */
+#define IPV6CTL_SENDREDIRECTS   2       /* may send redirects when forwarding */
+#define IPV6CTL_DEFHLIM         3       /* default Hop-Limit */
+#ifdef notyet
+#define IPV6CTL_DEFMTU          4       /* default MTU */
+#endif
+#define IPV6CTL_FORWSRCRT       5       /* forward source-routed dgrams */
+#define IPV6CTL_STATS           6       /* stats */
+#define IPV6CTL_MRTSTATS        7       /* multicast forwarding stats */
+#define IPV6CTL_MRTPROTO        8       /* multicast routing protocol */
+#define IPV6CTL_MAXFRAGPACKETS  9       /* max packets reassembly queue */
+#define IPV6CTL_SOURCECHECK     10      /* verify source route and intf */
+#define IPV6CTL_SOURCECHECK_LOGINT 11   /* minimume logging interval */
+#define IPV6CTL_ACCEPT_RTADV    12
+#define IPV6CTL_KEEPFAITH       13      /* deprecated */
+#define IPV6CTL_LOG_INTERVAL    14
+#define IPV6CTL_HDRNESTLIMIT    15
+#define IPV6CTL_DAD_COUNT       16
+#define IPV6CTL_AUTO_FLOWLABEL  17
+#define IPV6CTL_DEFMCASTHLIM    18
+#define IPV6CTL_GIF_HLIM        19      /* default HLIM for gif encap packet */
+#define IPV6CTL_KAME_VERSION    20
+#define IPV6CTL_USE_DEPRECATED  21      /* use deprec addr (RFC2462 5.5.4) */
+#define IPV6CTL_RR_PRUNE        22      /* walk timer for router renumbering */
+#if 0   /* obsolete */
+#define IPV6CTL_MAPPED_ADDR     23
+#endif
+#define IPV6CTL_V6ONLY          24
+#define IPV6CTL_RTEXPIRE        25      /* cloned route expiration time */
+#define IPV6CTL_RTMINEXPIRE     26      /* min value for expiration time */
+#define IPV6CTL_RTMAXCACHE      27      /* trigger level for dynamic expire */
+
+#define IPV6CTL_USETEMPADDR     32      /* use temporary addresses [RFC 4941] */
+#define IPV6CTL_TEMPPLTIME      33      /* preferred lifetime for tmpaddrs */
+#define IPV6CTL_TEMPVLTIME      34      /* valid lifetime for tmpaddrs */
+#define IPV6CTL_AUTO_LINKLOCAL  35      /* automatic link-local addr assign */
+#define IPV6CTL_RIP6STATS       36      /* raw_ip6 stats */
+#define IPV6CTL_PREFER_TEMPADDR 37      /* prefer temporary addr as src */
+#define IPV6CTL_ADDRCTLPOLICY   38      /* get/set address selection policy */
+#define IPV6CTL_USE_DEFAULTZONE 39      /* use default scope zone */
+
+#define IPV6CTL_MAXFRAGS        41      /* max fragments */
+#define IPV6CTL_MCAST_PMTU      44      /* enable pMTU discovery for mcast? */
+
+#define IPV6CTL_NEIGHBORGCTHRESH 46
+#define IPV6CTL_MAXIFPREFIXES   47
+#define IPV6CTL_MAXIFDEFROUTERS 48
+#define IPV6CTL_MAXDYNROUTES    49
+#define ICMPV6CTL_ND6_ONLINKNSRFC4861   50
+
+/* New entries should be added here from current IPV6CTL_MAXID value. */
+/* to define items, should talk with KAME guys first, for *BSD compatibility */
+#define IPV6CTL_MAXID           51
+
+
+
+
+
+__BEGIN_DECLS
+struct cmsghdr;
+
+extern int inet6_option_space(int);
+extern int inet6_option_init(void *, struct cmsghdr **, int);
+extern int inet6_option_append(struct cmsghdr *, const __uint8_t *, int, int);
+extern __uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int);
+extern int inet6_option_next(const struct cmsghdr *, __uint8_t **);
+extern int inet6_option_find(const struct cmsghdr *, __uint8_t **, int);
+
+extern size_t inet6_rthdr_space(int, int);
+extern struct cmsghdr *inet6_rthdr_init(void *, int);
+extern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *,
+    unsigned int);
+extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int);
+#if 0 /* not implemented yet */
+extern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *);
+#endif
+extern int inet6_rthdr_segments(const struct cmsghdr *);
+extern struct in6_addr *inet6_rthdr_getaddr(struct cmsghdr *, int);
+extern int inet6_rthdr_getflags(const struct cmsghdr *, int);
+
+extern int inet6_opt_init(void *, socklen_t);
+extern int inet6_opt_append(void *, socklen_t, int, __uint8_t, socklen_t,
+    __uint8_t, void **);
+extern int inet6_opt_finish(void *, socklen_t, int);
+extern int inet6_opt_set_val(void *, int, void *, socklen_t);
+
+extern int inet6_opt_next(void *, socklen_t, int, __uint8_t *, socklen_t *,
+    void **);
+extern int inet6_opt_find(void *, socklen_t, int, __uint8_t, socklen_t *,
+    void **);
+extern int inet6_opt_get_val(void *, int, void *, socklen_t);
+extern socklen_t inet6_rth_space(int, int);
+extern void *inet6_rth_init(void *, socklen_t, int, int);
+extern int inet6_rth_add(void *, const struct in6_addr *);
+extern int inet6_rth_reverse(const void *, void *);
+extern int inet6_rth_segments(const void *);
+extern struct in6_addr *inet6_rth_getaddr(const void *, int);
+
+__END_DECLS
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#endif /* !_NETINET6_IN6_H_ */
lib/libc/include/x86_64-macos-gnu/pthread/pthread_impl.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _PTHREAD_IMPL_H_
+#define _PTHREAD_IMPL_H_
+/*
+ * Internal implementation details
+ */
+
+/* This whole header file will disappear, so don't depend on it... */
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+
+#ifndef __POSIX_LIB__
+
+/*
+ * [Internal] data structure signatures
+ */
+#define _PTHREAD_MUTEX_SIG_init		0x32AAABA7
+
+#define _PTHREAD_ERRORCHECK_MUTEX_SIG_init      0x32AAABA1
+#define _PTHREAD_RECURSIVE_MUTEX_SIG_init       0x32AAABA2
+#define _PTHREAD_FIRSTFIT_MUTEX_SIG_init       0x32AAABA3
+
+#define _PTHREAD_COND_SIG_init		0x3CB0B1BB
+#define _PTHREAD_ONCE_SIG_init		0x30B1BCBA
+#define _PTHREAD_RWLOCK_SIG_init    0x2DA8B3B4
+
+/*
+ * POSIX scheduling policies
+ */
+#define SCHED_OTHER                1
+#define SCHED_FIFO                 4
+#define SCHED_RR                   2
+
+#define __SCHED_PARAM_SIZE__       4
+
+#endif /* __POSIX_LIB__ */
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif /* _PTHREAD_IMPL_H_ */
lib/libc/include/x86_64-macos-gnu/pthread/qos.h
@@ -0,0 +1,304 @@
+/*
+ * Copyright (c) 2013-2014 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 _PTHREAD_QOS_H
+#define _PTHREAD_QOS_H
+
+#include <sys/cdefs.h>
+#include <sys/_pthread/_pthread_attr_t.h> /* pthread_attr_t */
+#include <sys/_pthread/_pthread_t.h>      /* pthread_t */
+#include <Availability.h>
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#include <sys/qos.h>
+
+#ifndef KERNEL
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+__BEGIN_DECLS
+
+/*!
+ * @function pthread_attr_set_qos_class_np
+ *
+ * @abstract
+ * Sets the QOS class and relative priority of a pthread attribute structure
+ * which may be used to specify the requested QOS class of newly created
+ * threads.
+ *
+ * @discussion
+ * The QOS class and relative priority represent an overall combination of
+ * system quality of service attributes on a thread.
+ *
+ * Subsequent calls to interfaces such as pthread_attr_setschedparam() that are
+ * incompatible or in conflict with the QOS class system will unset the QOS
+ * class requested with this interface and pthread_attr_get_qos_class_np() will
+ * return QOS_CLASS_UNSPECIFIED.
+ *
+ * @param __attr
+ * The pthread attribute structure to modify.
+ *
+ * @param __qos_class
+ * A QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ * EINVAL will be returned if any other value is provided.
+ *
+ * @param __relative_priority
+ * A relative priority within the QOS class. This value is a negative offset
+ * from the maximum supported scheduler priority for the given class.
+ * EINVAL will be returned if the value is greater than zero or less than
+ * QOS_MIN_RELATIVE_PRIORITY.
+ *
+ * @return
+ * Zero if successful, otherwise an errno value.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+int
+pthread_attr_set_qos_class_np(pthread_attr_t *__attr,
+		qos_class_t __qos_class, int __relative_priority);
+
+/*!
+ * @function pthread_attr_get_qos_class_np
+ *
+ * @abstract
+ * Gets the QOS class and relative priority of a pthread attribute structure.
+ *
+ * @param __attr
+ * The pthread attribute structure to inspect.
+ *
+ * @param __qos_class
+ * On output, a QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ *	- QOS_CLASS_UNSPECIFIED
+ * This value may be NULL in which case no value is returned.
+ *
+ * @param __relative_priority
+ * On output, a relative priority offset within the QOS class.
+ * This value may be NULL in which case no value is returned.
+ *
+ * @return
+ * Zero if successful, otherwise an errno value.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+int
+pthread_attr_get_qos_class_np(pthread_attr_t * __restrict __attr,
+		qos_class_t * _Nullable __restrict __qos_class,
+		int * _Nullable __restrict __relative_priority);
+
+/*!
+ * @function pthread_set_qos_class_self_np
+ *
+ * @abstract
+ * Sets the requested QOS class and relative priority of the current thread.
+ *
+ * @discussion
+ * The QOS class and relative priority represent an overall combination of
+ * system quality of service attributes on a thread.
+ *
+ * Subsequent calls to interfaces such as pthread_setschedparam() that are
+ * incompatible or in conflict with the QOS class system will unset the QOS
+ * class requested with this interface and pthread_get_qos_class_np() will
+ * return QOS_CLASS_UNSPECIFIED thereafter. A thread so modified is permanently
+ * opted-out of the QOS class system and calls to this function to request a QOS
+ * class for such a thread will fail and return EPERM.
+ *
+ * @param __qos_class
+ * A QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ * EINVAL will be returned if any other value is provided.
+ *
+ * @param __relative_priority
+ * A relative priority within the QOS class. This value is a negative offset
+ * from the maximum supported scheduler priority for the given class.
+ * EINVAL will be returned if the value is greater than zero or less than
+ * QOS_MIN_RELATIVE_PRIORITY.
+ *
+ * @return
+ * Zero if successful, otherwise an errno value.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+int
+pthread_set_qos_class_self_np(qos_class_t __qos_class,
+		int __relative_priority);
+
+/*!
+ * @function pthread_get_qos_class_np
+ *
+ * @abstract
+ * Gets the requested QOS class and relative priority of a thread.
+ *
+ * @param __pthread
+ * The target thread to inspect.
+ *
+ * @param __qos_class
+ * On output, a QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ *	- QOS_CLASS_UNSPECIFIED
+ * This value may be NULL in which case no value is returned.
+ *
+ * @param __relative_priority
+ * On output, a relative priority offset within the QOS class.
+ * This value may be NULL in which case no value is returned.
+ *
+ * @return
+ * Zero if successful, otherwise an errno value.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+int
+pthread_get_qos_class_np(pthread_t __pthread,
+		qos_class_t * _Nullable __restrict __qos_class,
+		int * _Nullable __restrict __relative_priority);
+
+/*!
+ * @typedef pthread_override_t
+ *
+ * @abstract
+ * An opaque object representing a QOS class override of a thread.
+ *
+ * @discussion
+ * A QOS class override of a target thread expresses that an item of pending
+ * work classified with a specific QOS class and relative priority depends on
+ * the completion of the work currently being executed by the thread (e.g. due
+ * to ordering requirements).
+ *
+ * While overrides are in effect, the target thread will execute at the maximum
+ * QOS class and relative priority of all overrides and of the QOS class
+ * requested by the thread itself.
+ *
+ * A QOS class override does not modify the target thread's requested QOS class
+ * value and the effect of an override is not visible to the qos_class_self()
+ * and pthread_get_qos_class_np() interfaces.
+ */
+
+typedef struct pthread_override_s* pthread_override_t;
+
+/*!
+ * @function pthread_override_qos_class_start_np
+ *
+ * @abstract
+ * Starts a QOS class override of the specified target thread.
+ *
+ * @discussion
+ * Starting a QOS class override of the specified target thread expresses that
+ * an item of pending work classified with the specified QOS class and relative
+ * priority depends on the completion of the work currently being executed by
+ * the thread (e.g. due to ordering requirements).
+ *
+ * While overrides are in effect, the specified target thread will execute at
+ * the maximum QOS class and relative priority of all overrides and of the QOS
+ * class requested by the thread itself.
+ *
+ * Starting a QOS class override does not modify the target thread's requested
+ * QOS class value and the effect of an override is not visible to the
+ * qos_class_self() and pthread_get_qos_class_np() interfaces.
+ *
+ * The returned newly allocated override object is intended to be associated
+ * with the item of pending work in question. Once the dependency has been
+ * satisfied and enabled that work to begin executing, the QOS class override
+ * must be ended by passing the associated override object to
+ * pthread_override_qos_class_end_np(). Failure to do so will result in the
+ * associated resources to be leaked and the target thread to be permanently
+ * executed at an inappropriately elevated QOS class.
+ *
+ * @param __pthread
+ * The target thread to modify.
+ *
+ * @param __qos_class
+ * A QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ * NULL will be returned if any other value is provided.
+ *
+ * @param __relative_priority
+ * A relative priority within the QOS class. This value is a negative offset
+ * from the maximum supported scheduler priority for the given class.
+ * NULL will be returned if the value is greater than zero or less than
+ * QOS_MIN_RELATIVE_PRIORITY.
+ *
+ * @return
+ * A newly allocated override object if successful, or NULL if the override
+ * could not be started.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+pthread_override_t
+pthread_override_qos_class_start_np(pthread_t __pthread,
+		qos_class_t __qos_class, int __relative_priority);
+
+/*!
+ * @function pthread_override_qos_class_end_np
+ *
+ * @abstract
+ * Ends a QOS class override.
+ *
+ * @discussion
+ * Passing an override object returned by pthread_override_qos_class_start_np()
+ * ends the QOS class override started by that call and deallocates all
+ * associated resources as well as the override object itself.
+ *
+ * The thread starting and the thread ending a QOS class override need not be
+ * identical. If the thread ending the override is the the target thread of the
+ * override itself, it should take care to elevate its requested QOS class
+ * appropriately with pthread_set_qos_class_self_np() before ending the
+ * override.
+ *
+ * @param __override
+ * An override object returned by pthread_override_qos_class_start_np().
+ *
+ * @return
+ * Zero if successful, otherwise an errno value.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+int
+pthread_override_qos_class_end_np(pthread_override_t __override);
+
+__END_DECLS
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif // KERNEL
+
+#endif // __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#endif // _PTHREAD_QOS_H
lib/libc/include/x86_64-macos-gnu/pthread/sched.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SCHED_H_
+#define _SCHED_H_
+
+#include <sys/cdefs.h>
+#include <pthread_impl.h>
+
+__BEGIN_DECLS
+/*
+ * Scheduling paramters
+ */
+#ifndef __POSIX_LIB__
+struct sched_param { int sched_priority;  char __opaque[__SCHED_PARAM_SIZE__]; };
+#endif
+
+extern int sched_yield(void);
+extern int sched_get_priority_min(int);
+extern int sched_get_priority_max(int);
+__END_DECLS
+
+#endif /* _SCHED_H_ */
+
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_cond_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_COND_T
+#define _PTHREAD_COND_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_cond_t */
+typedef __darwin_pthread_cond_t pthread_cond_t;
+#endif /* _PTHREAD_COND_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_condattr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_CONDATTR_T
+#define _PTHREAD_CONDATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_condattr_t */
+typedef __darwin_pthread_condattr_t pthread_condattr_t;
+#endif /* _PTHREAD_CONDATTR_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_key_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_KEY_T
+#define _PTHREAD_KEY_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_key_t */
+typedef __darwin_pthread_key_t pthread_key_t;
+#endif /* _PTHREAD_KEY_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_mutex_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_MUTEX_T
+#define _PTHREAD_MUTEX_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutex_t */
+typedef __darwin_pthread_mutex_t pthread_mutex_t;
+#endif /*_PTHREAD_MUTEX_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_mutexattr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_MUTEXATTR_T
+#define _PTHREAD_MUTEXATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutexattr_t */
+typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t;
+#endif /* _PTHREAD_MUTEXATTR_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_once_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_ONCE_T
+#define _PTHREAD_ONCE_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_once_t */
+typedef __darwin_pthread_once_t pthread_once_t;
+#endif /* _PTHREAD_ONCE_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_RWLOCK_T
+#define _PTHREAD_RWLOCK_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlock_t */
+typedef __darwin_pthread_rwlock_t pthread_rwlock_t;
+#endif /* _PTHREAD_RWLOCK_T */
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _PTHREAD_RWLOCKATTR_T
+#define _PTHREAD_RWLOCKATTR_T
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlockattr_t */
+typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t;
+#endif /* _PTHREAD_RWLOCKATTR_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_blkcnt_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _BLKCNT_T
+#define _BLKCNT_T
+#include <sys/_types.h> /* __darwin_blkcnt_t */
+typedef __darwin_blkcnt_t        blkcnt_t;
+#endif  /* _BLKCNT_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_blksize_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _BLKSIZE_T
+#define _BLKSIZE_T
+#include <sys/_types.h> /* __darwin_blksize_t */
+typedef __darwin_blksize_t        blksize_t;
+#endif  /* _BLKSIZE_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_caddr_t.h
@@ -0,0 +1,31 @@
+/*
+ * 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 _CADDR_T
+#define _CADDR_T
+typedef char *          caddr_t;
+#endif /* _CADDR_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_clr.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_CLR
+#define FD_CLR(n, p)    __DARWIN_FD_CLR(n, p)
+#endif /* FD_CLR */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_copy.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_COPY
+#define FD_COPY(f, t)   __DARWIN_FD_COPY(f, t)
+#endif /* FD_COPY */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_def.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _FD_SET
+#define _FD_SET
+
+#include <machine/types.h> /* __int32_t and uintptr_t */
+#include <Availability.h>
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#ifdef FD_SETSIZE
+#define __DARWIN_FD_SETSIZE     FD_SETSIZE
+#else /* !FD_SETSIZE */
+#define __DARWIN_FD_SETSIZE     1024
+#endif /* FD_SETSIZE */
+#define __DARWIN_NBBY           8                               /* bits in a byte */
+#define __DARWIN_NFDBITS        (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */
+#define __DARWIN_howmany(x, y)  ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */
+
+__BEGIN_DECLS
+typedef struct fd_set {
+	__int32_t       fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)];
+} fd_set;
+
+int __darwin_check_fd_set_overflow(int, const void *, int) __attribute__((__weak_import__));
+__END_DECLS
+
+__header_always_inline int
+__darwin_check_fd_set(int _a, const void *_b)
+{
+	if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) {
+#if defined(_DARWIN_UNLIMITED_SELECT) || defined(_DARWIN_C_SOURCE)
+		return __darwin_check_fd_set_overflow(_a, _b, 1);
+#else
+		return __darwin_check_fd_set_overflow(_a, _b, 0);
+#endif
+	} else {
+		return 1;
+	}
+}
+
+/* This inline avoids argument side-effect issues with FD_ISSET() */
+__header_always_inline int
+__darwin_fd_isset(int _fd, const struct fd_set *_p)
+{
+	if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+		return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)));
+	}
+
+	return 0;
+}
+
+__header_always_inline void
+__darwin_fd_set(int _fd, struct fd_set *const _p)
+{
+	if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+		(_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+	}
+}
+
+__header_always_inline void
+__darwin_fd_clr(int _fd, struct fd_set *const _p)
+{
+	if (__darwin_check_fd_set(_fd, (const void *) _p)) {
+		(_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+	}
+}
+
+
+#define __DARWIN_FD_SET(n, p)   __darwin_fd_set((n), (p))
+#define __DARWIN_FD_CLR(n, p)   __darwin_fd_clr((n), (p))
+#define __DARWIN_FD_ISSET(n, p) __darwin_fd_isset((n), (p))
+
+#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3
+/*
+ * Use the built-in bzero function instead of the library version so that
+ * we do not pollute the namespace or introduce prototype warnings.
+ */
+#define __DARWIN_FD_ZERO(p)     __builtin_bzero(p, sizeof(*(p)))
+#else
+#define __DARWIN_FD_ZERO(p)     bzero(p, sizeof(*(p)))
+#endif
+
+#define __DARWIN_FD_COPY(f, t)  bcopy(f, t, sizeof(*(f)))
+#endif /* _FD_SET */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_isset.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_ISSET
+#define FD_ISSET(n, p)  __DARWIN_FD_ISSET(n, p)
+#endif /* FD_ISSET */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_set.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_SET
+#define FD_SET(n, p)    __DARWIN_FD_SET(n, p)
+#endif /* FD_SET */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_setsize.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_SETSIZE
+#define FD_SETSIZE      __DARWIN_FD_SETSIZE
+#endif /* FD_SETSIZE */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_zero.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef FD_ZERO
+#define FD_ZERO(p)      __DARWIN_FD_ZERO(p)
+#endif /* FD_ZERO */
lib/libc/include/x86_64-macos-gnu/sys/_types/_filesec_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _FILESEC_T
+#define _FILESEC_T
+struct _filesec;
+typedef struct _filesec *filesec_t;
+#endif /* _FILESEC_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsblkcnt_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _FSBLKCNT_T
+#define _FSBLKCNT_T
+#include <sys/_types.h> /* __darwin_fsblkcnt_t */
+typedef __darwin_fsblkcnt_t             fsblkcnt_t;
+#endif /* _FSBLKCNT_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsfilcnt_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _FSFILCNT_T
+#define _FSFILCNT_T
+#include <sys/_types.h> /* __darwin_fsfilcnt_t */
+typedef __darwin_fsfilcnt_t             fsfilcnt_t;
+#endif /* _FSFILCNT_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_gid_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _GID_T
+#define _GID_T
+#include <sys/_types.h> /* __darwin_gid_t */
+typedef __darwin_gid_t  gid_t;
+#endif
lib/libc/include/x86_64-macos-gnu/sys/_types/_in_addr_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _IN_ADDR_T
+#define _IN_ADDR_T
+#include <machine/types.h> /* __uint32_t */
+typedef __uint32_t      in_addr_t;      /* base type for internet address */
+#endif /* _IN_ADDR_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_in_port_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _IN_PORT_T
+#define _IN_PORT_T
+#include <machine/types.h> /* __uint16_t */
+typedef __uint16_t              in_port_t;
+#endif /* _IN_PORT_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_ino64_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _INO64_T
+#define _INO64_T
+#include <sys/_types.h> /* __darwin_ino64_t */
+typedef __darwin_ino64_t        ino64_t;        /* 64bit inode number */
+#endif  /* _INO64_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_ino_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _INO_T
+#define _INO_T
+#include <sys/_types.h> /* __darwin_ino_t */
+typedef __darwin_ino_t          ino_t;          /* inode number */
+#endif  /* _INO_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_iovec_t.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _STRUCT_IOVEC
+#define _STRUCT_IOVEC
+#include <sys/_types/_size_t.h> /* size_t */
+struct iovec {
+	void *   iov_base;      /* [XSI] Base address of I/O memory region */
+	size_t   iov_len;       /* [XSI] Size of region iov_base points to */
+};
+#endif /* _STRUCT_IOVEC */
lib/libc/include/x86_64-macos-gnu/sys/_types/_key_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _KEY_T
+#define _KEY_T
+#include <machine/types.h> /* __int32_t */
+typedef __int32_t        key_t;         /* IPC key (for Sys V IPC) */
+#endif  /* _KEY_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_mach_port_t.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ *	mach_port_t - a named port right
+ *
+ *	In user-space, "rights" are represented by the name of the
+ *	right in the Mach port namespace.  Even so, this type is
+ *	presented as a unique one to more clearly denote the presence
+ *	of a right coming along with the name.
+ *
+ *	Often, various rights for a port held in a single name space
+ *	will coalesce and are, therefore, be identified by a single name
+ *	[this is the case for send and receive rights].  But not
+ *	always [send-once rights currently get a unique name for
+ *	each right].
+ *
+ *	This definition of mach_port_t is only for user-space.
+ *
+ */
+
+#ifndef _MACH_PORT_T
+#define _MACH_PORT_T
+#include <sys/_types.h> /* __darwin_mach_port_t */
+typedef __darwin_mach_port_t mach_port_t;
+#endif /* _MACH_PORT_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_o_dsync.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef O_DSYNC
+#define O_DSYNC                 0x400000        /* synch I/O data integrity */
+#endif /* O_DSYNC */
lib/libc/include/x86_64-macos-gnu/sys/_types/_o_sync.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef O_SYNC
+#define O_SYNC                  0x0080          /* synch I/O file integrity */
+#endif /* O_SYNC */
lib/libc/include/x86_64-macos-gnu/sys/_types/_posix_vdisable.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _POSIX_VDISABLE
+#define _POSIX_VDISABLE         ((unsigned char)'\377')
+#endif /* POSIX_VDISABLE */
lib/libc/include/x86_64-macos-gnu/sys/_types/_s_ifmt.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * [XSI] The symbolic names for file modes for use as values of mode_t
+ * shall be defined as described in <sys/stat.h>
+ */
+#ifndef S_IFMT
+/* File type */
+#define S_IFMT          0170000         /* [XSI] type of file mask */
+#define S_IFIFO         0010000         /* [XSI] named pipe (fifo) */
+#define S_IFCHR         0020000         /* [XSI] character special */
+#define S_IFDIR         0040000         /* [XSI] directory */
+#define S_IFBLK         0060000         /* [XSI] block special */
+#define S_IFREG         0100000         /* [XSI] regular */
+#define S_IFLNK         0120000         /* [XSI] symbolic link */
+#define S_IFSOCK        0140000         /* [XSI] socket */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define S_IFWHT         0160000         /* OBSOLETE: whiteout */
+#endif
+
+/* File mode */
+/* Read, write, execute/search by owner */
+#define S_IRWXU         0000700         /* [XSI] RWX mask for owner */
+#define S_IRUSR         0000400         /* [XSI] R for owner */
+#define S_IWUSR         0000200         /* [XSI] W for owner */
+#define S_IXUSR         0000100         /* [XSI] X for owner */
+/* Read, write, execute/search by group */
+#define S_IRWXG         0000070         /* [XSI] RWX mask for group */
+#define S_IRGRP         0000040         /* [XSI] R for group */
+#define S_IWGRP         0000020         /* [XSI] W for group */
+#define S_IXGRP         0000010         /* [XSI] X for group */
+/* Read, write, execute/search by others */
+#define S_IRWXO         0000007         /* [XSI] RWX mask for other */
+#define S_IROTH         0000004         /* [XSI] R for other */
+#define S_IWOTH         0000002         /* [XSI] W for other */
+#define S_IXOTH         0000001         /* [XSI] X for other */
+
+#define S_ISUID         0004000         /* [XSI] set user id on execution */
+#define S_ISGID         0002000         /* [XSI] set group id on execution */
+#define S_ISVTX         0001000         /* [XSI] directory restrcted delete */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define S_ISTXT         S_ISVTX         /* sticky bit: not supported */
+#define S_IREAD         S_IRUSR         /* backward compatability */
+#define S_IWRITE        S_IWUSR         /* backward compatability */
+#define S_IEXEC         S_IXUSR         /* backward compatability */
+#endif
+#endif  /* !S_IFMT */
lib/libc/include/x86_64-macos-gnu/sys/_types/_sa_family_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _SA_FAMILY_T
+#define _SA_FAMILY_T
+#include <machine/types.h> /* __uint8_t */
+typedef __uint8_t               sa_family_t;
+#endif  /* _SA_FAMILY_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_seek_set.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#include <sys/cdefs.h>
+
+/* whence values for lseek(2) */
+#ifndef SEEK_SET
+#define SEEK_SET        0       /* set file offset to offset */
+#define SEEK_CUR        1       /* set file offset to current plus offset */
+#define SEEK_END        2       /* set file offset to EOF plus offset */
+#endif  /* !SEEK_SET */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#ifndef SEEK_HOLE
+#define SEEK_HOLE       3       /* set file offset to the start of the next hole greater than or equal to the supplied offset */
+#endif
+
+#ifndef SEEK_DATA
+#define SEEK_DATA       4       /* set file offset to the start of the next non-hole file region greater than or equal to the supplied offset */
+#endif
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
lib/libc/include/x86_64-macos-gnu/sys/_types/_socklen_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _SOCKLEN_T
+#define _SOCKLEN_T
+#include <machine/types.h> /* __darwin_socklen_t */
+typedef __darwin_socklen_t      socklen_t;
+#endif
lib/libc/include/x86_64-macos-gnu/sys/_types/_suseconds_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _SUSECONDS_T
+#define _SUSECONDS_T
+#include <sys/_types.h> /* __darwin_suseconds_t */
+typedef __darwin_suseconds_t    suseconds_t;
+#endif  /* _SUSECONDS_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_timeval32.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _STRUCT_TIMEVAL32
+#define _STRUCT_TIMEVAL32       struct timeval32
+
+#include <machine/types.h> /* __int32_t */
+
+_STRUCT_TIMEVAL32
+{
+	__int32_t               tv_sec;         /* seconds */
+	__int32_t               tv_usec;        /* and microseconds */
+};
+#endif /* _STRUCT_TIMEVAL32 */
lib/libc/include/x86_64-macos-gnu/sys/_types/_timeval64.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 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@
+ */
+
+#ifndef _STRUCT_TIMEVAL64
+#define _STRUCT_TIMEVAL64
+
+#include <machine/types.h> /* __int64_t */
+
+struct timeval64 {
+	__int64_t               tv_sec;         /* seconds */
+	__int64_t               tv_usec;        /* and microseconds */
+};
+#endif /* _STRUCT_TIMEVAL32 */
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_char.h
@@ -0,0 +1,31 @@
+/*
+ * 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 _U_CHAR
+#define _U_CHAR
+typedef unsigned char   u_char;
+#endif /* _U_CHAR */
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_int.h
@@ -0,0 +1,31 @@
+/*
+ * 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 _U_INT
+#define _U_INT
+typedef unsigned int    u_int;
+#endif /* _U_INT */
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_short.h
@@ -0,0 +1,31 @@
+/*
+ * 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 _U_SHORT
+#define _U_SHORT
+typedef unsigned short  u_short;
+#endif /* _U_SHORT */
lib/libc/include/x86_64-macos-gnu/sys/_types/_useconds_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _USECONDS_T
+#define _USECONDS_T
+#include <sys/_types.h> /* __darwin_useconds_t */
+typedef __darwin_useconds_t     useconds_t;
+#endif /* _USECONDS_T */
lib/libc/include/x86_64-macos-gnu/sys/_types/_uuid_t.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef _UUID_T
+#define _UUID_T
+#include <sys/_types.h> /* __darwin_uuid_t */
+typedef __darwin_uuid_t uuid_t;
+#endif /* _UUID_T */
lib/libc/include/x86_64-macos-gnu/sys/_select.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2005, 2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * This is called from sys/select.h and sys/time.h for the common prototype
+ * of select().  Setting _DARWIN_C_SOURCE or _DARWIN_UNLIMITED_SELECT uses
+ * the version of select() that does not place a limit on the first argument
+ * (nfds).  In the UNIX conformance case, values of nfds greater than
+ * FD_SETSIZE will return an error of EINVAL.
+ */
+#ifndef _SYS__SELECT_H_
+#define _SYS__SELECT_H_
+
+int      select(int, fd_set * __restrict, fd_set * __restrict,
+    fd_set * __restrict, struct timeval * __restrict)
+#if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT)
+__DARWIN_EXTSN_C(select)
+#else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */
+#  if defined(__LP64__) && !__DARWIN_NON_CANCELABLE
+__DARWIN_1050(select)
+#  else /* !__LP64__ || __DARWIN_NON_CANCELABLE */
+__DARWIN_ALIAS_C(select)
+#  endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */
+#endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */
+;
+
+#endif /* !_SYS__SELECT_H_ */
lib/libc/include/x86_64-macos-gnu/sys/aio.h
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 2003-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@
+ */
+/*
+ *	File:	sys/aio.h
+ *	Author:	Umesh Vaishampayan [umeshv@apple.com]
+ *			05-Feb-2003	umeshv	Created.
+ *
+ *	Header file for POSIX Asynchronous IO APIs
+ *
+ */
+
+#ifndef _SYS_AIO_H_
+#define _SYS_AIO_H_
+
+#include <sys/signal.h>
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+
+/*
+ * [XSI] Inclusion of the <aio.h> header may make visible symbols defined
+ * in the headers <fcntl.h>, <signal.h>, <sys/types.h>, and <time.h>.
+ *
+ * In our case, this is limited to struct timespec, off_t and ssize_t.
+ */
+#include <sys/_types/_timespec.h>
+
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_ssize_t.h>
+
+/*
+ * A aio_fsync() options that the calling thread is to continue execution
+ * while the lio_listio() operation is being performed, and no notification
+ * is given when the operation is complete
+ *
+ * [XSI] from <fcntl.h>
+ */
+#include <sys/_types/_o_sync.h>
+#include <sys/_types/_o_dsync.h>
+
+struct aiocb {
+	int             aio_fildes;             /* File descriptor */
+	off_t           aio_offset;             /* File offset */
+	volatile void   *aio_buf;               /* Location of buffer */
+	size_t          aio_nbytes;             /* Length of transfer */
+	int             aio_reqprio;            /* Request priority offset */
+	struct sigevent aio_sigevent;           /* Signal number and value */
+	int             aio_lio_opcode;         /* Operation to be performed */
+};
+
+
+/*
+ * aio_cancel() return values
+ */
+
+/*
+ * none of the requested operations could be canceled since they are
+ * already complete.
+ */
+#define AIO_ALLDONE                     0x1
+
+/* all requested operations have been canceled */
+#define AIO_CANCELED            0x2
+
+/*
+ * some of the requested operations could not be canceled since
+ * they are in progress
+ */
+#define AIO_NOTCANCELED         0x4
+
+
+/*
+ * lio_listio operation options
+ */
+
+#define LIO_NOP                 0x0     /* option indicating that no transfer is requested */
+#define LIO_READ                0x1             /* option requesting a read */
+#define LIO_WRITE               0x2             /* option requesting a write */
+
+/*
+ * lio_listio() modes
+ */
+
+/*
+ * A lio_listio() synchronization operation indicating
+ * that the calling thread is to continue execution while
+ * the lio_listio() operation is being performed, and no
+ * notification is given when the operation is complete
+ */
+#define LIO_NOWAIT              0x1
+
+/*
+ * A lio_listio() synchronization operation indicating
+ * that the calling thread is to suspend until the
+ * lio_listio() operation is complete.
+ */
+#define LIO_WAIT                0x2
+
+/*
+ * Maximum number of operations in single lio_listio call
+ */
+#define AIO_LISTIO_MAX          16
+
+
+/*
+ * Prototypes
+ */
+
+__BEGIN_DECLS
+
+/*
+ * Attempt to cancel one or more asynchronous I/O requests currently outstanding
+ * against file descriptor fd. The aiocbp argument points to the asynchronous I/O
+ * control block for a particular request to be canceled.  If aiocbp is NULL, then
+ * all outstanding cancelable asynchronous I/O requests against fd shall be canceled.
+ */
+int             aio_cancel( int fd,
+    struct aiocb * aiocbp );
+
+/*
+ * Return the error status associated with the aiocb structure referenced by the
+ * aiocbp argument. The error status for an asynchronous I/O operation is the errno
+ * value that would be set by the corresponding read(), write(),  or fsync()
+ * operation.  If the operation has not yet completed, then the error status shall
+ * be equal to [EINPROGRESS].
+ */
+int             aio_error( const struct aiocb * aiocbp );
+
+/*
+ * Asynchronously force all I/O operations associated with the file indicated by
+ * the file descriptor aio_fildes member of the aiocb structure referenced by the
+ * aiocbp argument and queued at the time of the call to aio_fsync() to the
+ * synchronized I/O completion state.  The function call shall return when the
+ * synchronization request has been initiated or queued.  op O_SYNC is the only
+ * supported opertation at this time.
+ * The aiocbp argument refers to an asynchronous I/O control block. The aiocbp
+ * value may be used as an argument to aio_error() and aio_return() in order to
+ * determine the error status and return status, respectively, of the asynchronous
+ * operation while it is proceeding.  When the request is queued, the error status
+ * for the operation is [EINPROGRESS]. When all data has been successfully
+ * transferred, the error status shall be reset to reflect the success or failure
+ * of the operation.
+ */
+int             aio_fsync( int op,
+    struct aiocb * aiocbp );
+
+/*
+ * Read aiocbp->aio_nbytes from the file associated with aiocbp->aio_fildes into
+ * the buffer pointed to by aiocbp->aio_buf.  The function call shall return when
+ * the read request has been initiated or queued.
+ * The aiocbp value may be used as an argument to aio_error() and aio_return() in
+ * order to determine the error status and return status, respectively, of the
+ * asynchronous operation while it is proceeding. If an error condition is
+ * encountered during queuing, the function call shall return without having
+ * initiated or queued the request. The requested operation takes place at the
+ * absolute position in the file as given by aio_offset, as if lseek() were called
+ * immediately prior to the operation with an offset equal to aio_offset and a
+ * whence equal to SEEK_SET.  After a successful call to enqueue an asynchronous
+ * I/O operation, the value of the file offset for the file is unspecified.
+ */
+int             aio_read( struct aiocb * aiocbp );
+
+/*
+ * Return the return status associated with the aiocb structure referenced by
+ * the aiocbp argument.  The return status for an asynchronous I/O operation is
+ * the value that would be returned by the corresponding read(), write(), or
+ * fsync() function call.  If the error status for the operation is equal to
+ * [EINPROGRESS], then the return status for the operation is undefined.  The
+ * aio_return() function may be called exactly once to retrieve the return status
+ * of a given asynchronous operation; thereafter, if the same aiocb structure
+ * is used in a call to aio_return() or aio_error(), an error may be returned.
+ * When the aiocb structure referred to by aiocbp is used to submit another
+ * asynchronous operation, then aio_return() may be successfully used to
+ * retrieve the return status of that operation.
+ */
+ssize_t aio_return( struct aiocb * aiocbp );
+
+/*
+ * Suspend the calling thread until at least one of the asynchronous I/O
+ * operations referenced by the aiocblist argument has completed, until a signal
+ * interrupts the function, or, if timeout is not NULL, until the time
+ * interval specified by timeout has passed.  If any of the aiocb structures
+ * in the aiocblist correspond to completed asynchronous I/O operations (that is,
+ * the error status for the operation is not equal to [EINPROGRESS]) at the
+ * time of the call, the function shall return without suspending the calling
+ * thread.  The aiocblist argument is an array of pointers to asynchronous I/O
+ * control blocks.  The nent argument indicates the number of elements in the
+ * array.  Each aiocb structure pointed to has been used in initiating an
+ * asynchronous I/O request via aio_read(), aio_write(), or lio_listio(). This
+ * array may contain NULL pointers, which are ignored.
+ */
+int             aio_suspend( const struct aiocb *const aiocblist[],
+    int nent,
+    const struct timespec * timeoutp ) __DARWIN_ALIAS_C(aio_suspend);
+
+/*
+ * Write aiocbp->aio_nbytes to the file associated with aiocbp->aio_fildes from
+ * the buffer pointed to by aiocbp->aio_buf.  The function shall return when the
+ * write request has been initiated or, at a minimum, queued.
+ * The aiocbp argument may be used as an argument to aio_error() and aio_return()
+ * in order to determine the error status and return status, respectively, of the
+ * asynchronous operation while it is proceeding.
+ */
+int             aio_write( struct aiocb * aiocbp );
+
+/*
+ * Initiate a list of I/O requests with a single function call.  The mode
+ * argument takes one of the values LIO_WAIT or LIO_NOWAIT and determines whether
+ * the function returns when the I/O operations have been completed, or as soon
+ * as the operations have been queued.  If the mode argument is LIO_WAIT, the
+ * function shall wait until all I/O is complete and the sig argument shall be
+ * ignored.
+ * If the mode argument is LIO_NOWAIT, the function shall return immediately, and
+ * asynchronous notification shall occur, according to the sig argument, when all
+ * the I/O operations complete.  If sig is NULL, then no asynchronous notification
+ * shall occur.
+ */
+int             lio_listio( int mode,
+    struct aiocb *const aiocblist[],
+    int nent,
+    struct sigevent *sigp );
+__END_DECLS
+
+#endif /* _SYS_AIO_H_ */
lib/libc/include/x86_64-macos-gnu/sys/dirent.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)dirent.h	8.3 (Berkeley) 8/10/94
+ */
+
+/*
+ * The dirent structure defines the format of directory entries.
+ *
+ * A directory entry has a struct dirent at the front of it, containing its
+ * inode number, the length of the entry, and the length of the name
+ * contained in the entry.  These are followed by the name padded to a 4
+ * byte boundary with null bytes.  All names are guaranteed null terminated.
+ * The maximum length of a name in a directory is MAXNAMLEN when 32-bit
+ * ino_t is in effect; (MAXPATHLEN - 1) when 64-bit ino_t is in effect.
+ */
+
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types/_ino_t.h>
+
+
+#define __DARWIN_MAXNAMLEN      255
+
+#pragma pack(4)
+
+#if !__DARWIN_64_BIT_INO_T
+struct dirent {
+	ino_t d_ino;                    /* file number of entry */
+	__uint16_t d_reclen;            /* length of this record */
+	__uint8_t  d_type;              /* file type, see below */
+	__uint8_t  d_namlen;            /* length of string in d_name */
+	char d_name[__DARWIN_MAXNAMLEN + 1];    /* name must be no longer than this */
+};
+#endif /* !__DARWIN_64_BIT_INO_T */
+
+#pragma pack()
+
+#define __DARWIN_MAXPATHLEN     1024
+
+#define __DARWIN_STRUCT_DIRENTRY { \
+	__uint64_t  d_ino;      /* file number of entry */ \
+	__uint64_t  d_seekoff;  /* seek offset (optional, used by servers) */ \
+	__uint16_t  d_reclen;   /* length of this record */ \
+	__uint16_t  d_namlen;   /* length of string in d_name */ \
+	__uint8_t   d_type;     /* file type, see below */ \
+	char      d_name[__DARWIN_MAXPATHLEN]; /* entry name (up to MAXPATHLEN bytes) */ \
+}
+
+#if __DARWIN_64_BIT_INO_T
+struct dirent __DARWIN_STRUCT_DIRENTRY;
+#endif /* __DARWIN_64_BIT_INO_T */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define d_fileno        d_ino           /* backward compatibility */
+#define MAXNAMLEN       __DARWIN_MAXNAMLEN
+/*
+ * File types
+ */
+#define DT_UNKNOWN       0
+#define DT_FIFO          1
+#define DT_CHR           2
+#define DT_DIR           4
+#define DT_BLK           6
+#define DT_REG           8
+#define DT_LNK          10
+#define DT_SOCK         12
+#define DT_WHT          14
+
+/*
+ * Convert between stat structure types and directory types.
+ */
+#define IFTODT(mode)    (((mode) & 0170000) >> 12)
+#define DTTOIF(dirtype) ((dirtype) << 12)
+#endif
+
+
+#endif /* _SYS_DIRENT_H  */
lib/libc/include/x86_64-macos-gnu/sys/fcntl.h
@@ -0,0 +1,557 @@
+/*
+ * Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1983, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)fcntl.h	8.3 (Berkeley) 1/21/94
+ */
+
+
+#ifndef _SYS_FCNTL_H_
+#define _SYS_FCNTL_H_
+
+/*
+ * This file includes the definitions for open and fcntl
+ * described by POSIX for <fcntl.h>; it also includes
+ * related kernel definitions.
+ */
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+/* We should not be exporting size_t here.  Temporary for gcc bootstrapping. */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_pid_t.h>
+
+/*
+ * File status flags: these are used by open(2), fcntl(2).
+ * They are also used (indirectly) in the kernel file structure f_flags,
+ * which is a superset of the open/fcntl flags.  Open flags and f_flags
+ * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+ * Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+ */
+/* open-only flags */
+#define O_RDONLY        0x0000          /* open for reading only */
+#define O_WRONLY        0x0001          /* open for writing only */
+#define O_RDWR          0x0002          /* open for reading and writing */
+#define O_ACCMODE       0x0003          /* mask for above modes */
+
+/*
+ * Kernel encoding of open mode; separate read and write bits that are
+ * independently testable: 1 greater than the above.
+ *
+ * XXX
+ * FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+ * which was documented to use FREAD/FWRITE, continues to work.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FREAD           0x0001
+#define FWRITE          0x0002
+#endif
+#define O_NONBLOCK      0x0004          /* no delay */
+#define O_APPEND        0x0008          /* set append mode */
+
+#include <sys/_types/_o_sync.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_SHLOCK        0x0010          /* open with shared file lock */
+#define O_EXLOCK        0x0020          /* open with exclusive file lock */
+#define O_ASYNC         0x0040          /* signal pgrp when data ready */
+#define O_FSYNC         O_SYNC          /* source compatibility: do not use */
+#define O_NOFOLLOW  0x0100      /* don't follow symlinks */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define O_CREAT         0x0200          /* create if nonexistant */
+#define O_TRUNC         0x0400          /* truncate to zero length */
+#define O_EXCL          0x0800          /* error if already exists */
+
+#if __DARWIN_C_LEVEL >= 200809L
+/*
+ * Descriptor value for the current working directory
+ */
+#define AT_FDCWD        -2
+
+/*
+ * Flags for the at functions
+ */
+#define AT_EACCESS              0x0010  /* Use effective ids in access check */
+#define AT_SYMLINK_NOFOLLOW     0x0020  /* Act on the symlink itself not the target */
+#define AT_SYMLINK_FOLLOW       0x0040  /* Act on target of symlink */
+#define AT_REMOVEDIR            0x0080  /* Path refers to directory */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define AT_REALDEV              0x0200  /* Return real device inodes resides on for fstatat(2) */
+#define AT_FDONLY               0x0400  /* Use only the fd and Ignore the path for fstatat(2) */
+#endif
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_EVTONLY       0x8000          /* descriptor requested for event notifications only */
+#endif
+
+
+#define O_NOCTTY        0x20000         /* don't assign controlling terminal */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_DIRECTORY     0x100000
+#define O_SYMLINK       0x200000        /* allow open of a symlink */
+#endif
+
+#include <sys/_types/_o_dsync.h>
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define O_CLOEXEC       0x1000000       /* implicitly set FD_CLOEXEC */
+#endif
+
+
+
+
+
+/* Data Protection Flags */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_DP_GETRAWENCRYPTED    0x0001
+#define O_DP_GETRAWUNENCRYPTED  0x0002
+#endif
+
+
+
+/*
+ * The O_* flags used to have only F* names, which were used in the kernel
+ * and by fcntl.  We retain the F* names for the kernel f_flags field
+ * and for backward compatibility for fcntl.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FAPPEND         O_APPEND        /* kernel/compat */
+#define FASYNC          O_ASYNC         /* kernel/compat */
+#define FFSYNC          O_FSYNC         /* kernel */
+#define FFDSYNC         O_DSYNC         /* kernel */
+#define FNONBLOCK       O_NONBLOCK      /* kernel */
+#define FNDELAY         O_NONBLOCK      /* compat */
+#define O_NDELAY        O_NONBLOCK      /* compat */
+#endif
+
+/*
+ * Flags used for copyfile(2)
+ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CPF_OVERWRITE    0x0001
+#define CPF_IGNORE_MODE  0x0002
+#define CPF_MASK (CPF_OVERWRITE|CPF_IGNORE_MODE)
+#endif
+
+/*
+ * Constants used for fcntl(2)
+ */
+
+/* command values */
+#define F_DUPFD         0               /* duplicate file descriptor */
+#define F_GETFD         1               /* get file descriptor flags */
+#define F_SETFD         2               /* set file descriptor flags */
+#define F_GETFL         3               /* get file status flags */
+#define F_SETFL         4               /* set file status flags */
+#define F_GETOWN        5               /* get SIGIO/SIGURG proc/pgrp */
+#define F_SETOWN        6               /* set SIGIO/SIGURG proc/pgrp */
+#define F_GETLK         7               /* get record locking information */
+#define F_SETLK         8               /* set record locking information */
+#define F_SETLKW        9               /* F_SETLK; wait if blocked */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define F_SETLKWTIMEOUT 10              /* F_SETLK; wait if blocked, return on timeout */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define F_FLUSH_DATA    40
+#define F_CHKCLEAN      41              /* Used for regression test */
+#define F_PREALLOCATE   42              /* Preallocate storage */
+#define F_SETSIZE       43              /* Truncate a file without zeroing space */
+#define F_RDADVISE      44              /* Issue an advisory read async with no copy to user */
+#define F_RDAHEAD       45              /* turn read ahead off/on for this fd */
+/*
+ * 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+ */
+#define F_NOCACHE       48              /* turn data caching off/on for this fd */
+#define F_LOG2PHYS      49              /* file offset to device offset */
+#define F_GETPATH       50              /* return the full path of the fd */
+#define F_FULLFSYNC     51              /* fsync + ask the drive to flush to the media */
+#define F_PATHPKG_CHECK 52              /* find which component (if any) is a package */
+#define F_FREEZE_FS     53              /* "freeze" all fs operations */
+#define F_THAW_FS       54              /* "thaw" all fs operations */
+#define F_GLOBAL_NOCACHE 55             /* turn data caching off/on (globally) for this file */
+
+
+#define F_ADDSIGS       59              /* add detached signatures */
+
+
+#define F_ADDFILESIGS   61              /* add signature from same file (used by dyld for shared libs) */
+
+#define F_NODIRECT      62              /* used in conjunction with F_NOCACHE to indicate that DIRECT, synchonous writes */
+                                        /* should not be used (i.e. its ok to temporaily create cached pages) */
+
+#define F_GETPROTECTIONCLASS    63              /* Get the protection class of a file from the EA, returns int */
+#define F_SETPROTECTIONCLASS    64              /* Set the protection class of a file for the EA, requires int */
+
+#define F_LOG2PHYS_EXT  65              /* file offset to device offset, extended */
+
+#define F_GETLKPID              66              /* get record locking information, per-process */
+
+/* See F_DUPFD_CLOEXEC below for 67 */
+
+
+#define F_SETBACKINGSTORE       70      /* Mark the file as being the backing store for another filesystem */
+#define F_GETPATH_MTMINFO       71      /* return the full path of the FD, but error in specific mtmd circumstances */
+
+#define F_GETCODEDIR            72      /* Returns the code directory, with associated hashes, to the caller */
+
+#define F_SETNOSIGPIPE          73      /* No SIGPIPE generated on EPIPE */
+#define F_GETNOSIGPIPE          74      /* Status of SIGPIPE for this fd */
+
+#define F_TRANSCODEKEY          75      /* For some cases, we need to rewrap the key for AKS/MKB */
+
+#define F_SINGLE_WRITER         76      /* file being written to a by single writer... if throttling enabled, writes */
+                                        /* may be broken into smaller chunks with throttling in between */
+
+#define F_GETPROTECTIONLEVEL    77      /* Get the protection version number for this filesystem */
+
+#define F_FINDSIGS              78      /* Add detached code signatures (used by dyld for shared libs) */
+
+
+#define F_ADDFILESIGS_FOR_DYLD_SIM 83   /* Add signature from same file, only if it is signed by Apple (used by dyld for simulator) */
+
+
+#define F_BARRIERFSYNC          85      /* fsync + issue barrier to drive */
+
+
+#define F_ADDFILESIGS_RETURN    97      /* Add signature from same file, return end offset in structure on success */
+#define F_CHECK_LV              98      /* Check if Library Validation allows this Mach-O file to be mapped into the calling process */
+
+#define F_PUNCHHOLE     99              /* Deallocate a range of the file */
+
+#define F_TRIM_ACTIVE_FILE      100     /* Trim an active file */
+
+#define F_SPECULATIVE_READ     101      /* Synchronous advisory read fcntl for regular and compressed file */
+
+#define F_GETPATH_NOFIRMLINK       102              /* return the full path without firmlinks of the fd */
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+#define FCNTL_FS_SPECIFIC_BASE  0x00010000
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define F_DUPFD_CLOEXEC         67      /* mark the dup with FD_CLOEXEC */
+#endif
+
+/* file descriptor flags (F_GETFD, F_SETFD) */
+#define FD_CLOEXEC      1               /* close-on-exec flag */
+
+/* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */
+#define F_RDLCK         1               /* shared or read lock */
+#define F_UNLCK         2               /* unlock */
+#define F_WRLCK         3               /* exclusive or write lock */
+
+
+/*
+ * [XSI] The values used for l_whence shall be defined as described
+ * in <unistd.h>
+ */
+#include <sys/_types/_seek_set.h>
+
+/*
+ * [XSI] The symbolic names for file modes for use as values of mode_t
+ * shall be defined as described in <sys/stat.h>
+ */
+#include <sys/_types/_s_ifmt.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* allocate flags (F_PREALLOCATE) */
+
+#define F_ALLOCATECONTIG  0x00000002    /* allocate contigious space */
+#define F_ALLOCATEALL     0x00000004    /* allocate all requested space or no space at all */
+
+/* Position Modes (fst_posmode) for F_PREALLOCATE */
+
+#define F_PEOFPOSMODE 3                 /* Make it past all of the SEEK pos modes so that */
+                                        /* we can keep them in sync should we desire */
+#define F_VOLPOSMODE    4               /* specify volume starting postion */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Advisory file segment locking data type -
+ * information passed to system by user
+ */
+struct flock {
+	off_t   l_start;        /* starting offset */
+	off_t   l_len;          /* len = 0 means until end of file */
+	pid_t   l_pid;          /* lock owner */
+	short   l_type;         /* lock type: read/write, etc. */
+	short   l_whence;       /* type of l_start */
+};
+
+#include <sys/_types/_timespec.h>
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Advisory file segment locking with time out -
+ * Information passed to system by user for F_SETLKWTIMEOUT
+ */
+struct flocktimeout {
+	struct flock    fl;             /* flock passed for file locking */
+	struct timespec timeout;        /* timespec struct for timeout */
+};
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * advisory file read data type -
+ * information passed by user to system
+ */
+
+
+struct radvisory {
+	off_t   ra_offset;
+	int     ra_count;
+};
+
+
+/** Information the user passes in to get the codeblobs out of the kernel */
+typedef struct fcodeblobs {
+	void            *f_cd_hash;
+	size_t          f_hash_size;
+	void            *f_cd_buffer;
+	size_t          f_cd_size;
+	unsigned int    *f_out_size;
+	int             f_arch;
+	int             __padding;
+} fcodeblobs_t;
+
+
+/*
+ * detached code signatures data type -
+ * information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+ * F_ADDFILESIGS is a shortcut for files that contain their own signature and
+ * doesn't require mapping of the file in order to load the signature.
+ */
+typedef struct fsignatures {
+	off_t           fs_file_start;
+	void            *fs_blob_start;
+	size_t          fs_blob_size;
+} fsignatures_t;
+
+/*
+ * DYLD needs to check if the object is allowed to be combined
+ * into the main binary. This is done between the code signature
+ * is loaded and dyld is doing all the work to process the LOAD commands.
+ *
+ * While this could be done in F_ADDFILESIGS.* family the hook into
+ * the MAC module doesn't say no when LV isn't enabled and then that
+ * is cached on the vnode, and the MAC module never gets change once
+ * a process that library validation enabled.
+ */
+typedef struct fchecklv {
+	off_t           lv_file_start;
+	size_t          lv_error_message_size;
+	void            *lv_error_message;
+} fchecklv_t;
+
+
+
+/* lock operations for flock(2) */
+#define LOCK_SH         0x01            /* shared file lock */
+#define LOCK_EX         0x02            /* exclusive file lock */
+#define LOCK_NB         0x04            /* don't block when locking */
+#define LOCK_UN         0x08            /* unlock file */
+
+/* fstore_t type used by F_PREALLOCATE command */
+
+typedef struct fstore {
+	unsigned int fst_flags; /* IN: flags word */
+	int     fst_posmode;    /* IN: indicates use of offset field */
+	off_t   fst_offset;     /* IN: start of the region */
+	off_t   fst_length;     /* IN: size of the region */
+	off_t   fst_bytesalloc; /* OUT: number of bytes allocated */
+} fstore_t;
+
+/* fpunchhole_t used by F_PUNCHHOLE */
+typedef struct fpunchhole {
+	unsigned int fp_flags; /* unused */
+	unsigned int reserved; /* (to maintain 8-byte alignment) */
+	off_t fp_offset; /* IN: start of the region */
+	off_t fp_length; /* IN: size of the region */
+} fpunchhole_t;
+
+/* factive_file_trim_t used by F_TRIM_ACTIVE_FILE */
+typedef struct ftrimactivefile {
+	off_t fta_offset;  /* IN: start of the region */
+	off_t fta_length; /* IN: size of the region */
+} ftrimactivefile_t;
+
+/* fspecread_t used by F_SPECULATIVE_READ */
+typedef struct fspecread {
+	unsigned int fsr_flags;  /* IN: flags word */
+	unsigned int reserved;   /* to maintain 8-byte alignment */
+	off_t fsr_offset;        /* IN: start of the region */
+	off_t fsr_length;        /* IN: size of the region */
+} fspecread_t;
+
+/* fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands */
+
+typedef struct fbootstraptransfer {
+	off_t fbt_offset;       /* IN: offset to start read/write */
+	size_t fbt_length;    /* IN: number of bytes to transfer */
+	void *fbt_buffer;       /* IN: buffer to be read/written */
+} fbootstraptransfer_t;
+
+
+/*
+ * For F_LOG2PHYS this information is passed back to user
+ * Currently only devoffset is returned - that is the VOP_BMAP
+ * result - the disk device address corresponding to the
+ * current file offset (likely set with an lseek).
+ *
+ * The flags could hold an indication of whether the # of
+ * contiguous bytes reflects the true extent length on disk,
+ * or is an advisory value that indicates there is at least that
+ * many bytes contiguous.  For some filesystems it might be too
+ * inefficient to provide anything beyond the advisory value.
+ * Flags and contiguous bytes return values are not yet implemented.
+ * For them the fcntl will nedd to switch from using BMAP to CMAP
+ * and a per filesystem type flag will be needed to interpret the
+ * contiguous bytes count result from CMAP.
+ *
+ * F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+ * file offset and length instead of the current file offset.
+ * F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+ * treats it as an in/out.
+ */
+#pragma pack(4)
+
+struct log2phys {
+	unsigned int    l2p_flags;       /* unused so far */
+	off_t           l2p_contigbytes; /* F_LOG2PHYS:     unused so far */
+	                                 /* F_LOG2PHYS_EXT: IN:  number of bytes to be queried */
+	                                 /*                 OUT: number of contiguous bytes at this position */
+	off_t           l2p_devoffset;   /* F_LOG2PHYS:     OUT: bytes into device */
+	                                 /* F_LOG2PHYS_EXT: IN:  bytes into file */
+	                                 /*                 OUT: bytes into device */
+};
+
+#pragma pack()
+
+#define O_POPUP    0x80000000   /* force window to popup on open */
+#define O_ALERT    0x20000000   /* small, clean popup window */
+
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_filesec_t.h>
+
+typedef enum {
+	FILESEC_OWNER = 1,
+	FILESEC_GROUP = 2,
+	FILESEC_UUID = 3,
+	FILESEC_MODE = 4,
+	FILESEC_ACL = 5,
+	FILESEC_GRPUUID = 6,
+
+/* XXX these are private to the implementation */
+	FILESEC_ACL_RAW = 100,
+	FILESEC_ACL_ALLOCSIZE = 101
+} filesec_property_t;
+
+/* XXX backwards compatibility */
+#define FILESEC_GUID FILESEC_UUID
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+int     open(const char *, int, ...) __DARWIN_ALIAS_C(open);
+#if __DARWIN_C_LEVEL >= 200809L
+int     openat(int, const char *, int, ...) __DARWIN_NOCANCEL(openat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+#endif
+int     creat(const char *, mode_t) __DARWIN_ALIAS_C(creat);
+int     fcntl(int, int, ...) __DARWIN_ALIAS_C(fcntl);
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+int     openx_np(const char *, int, filesec_t);
+/*
+ * data-protected non-portable open(2) :
+ *  int open_dprotected_np(user_addr_t path, int flags, int class, int dpflags, int mode)
+ */
+int open_dprotected_np( const char *, int, int, int, ...);
+int     flock(int, int);
+filesec_t filesec_init(void);
+filesec_t filesec_dup(filesec_t);
+void    filesec_free(filesec_t);
+int     filesec_get_property(filesec_t, filesec_property_t, void *);
+int     filesec_query_property(filesec_t, filesec_property_t, int *);
+int     filesec_set_property(filesec_t, filesec_property_t, const void *);
+int     filesec_unset_property(filesec_t, filesec_property_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#define _FILESEC_UNSET_PROPERTY ((void *)0)
+#define _FILESEC_REMOVE_ACL     ((void *)1)
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+#endif /* !_SYS_FCNTL_H_ */
lib/libc/include/x86_64-macos-gnu/sys/ioccom.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1990, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ioccom.h	8.2 (Berkeley) 3/28/94
+ */
+
+#ifndef _SYS_IOCCOM_H_
+#define _SYS_IOCCOM_H_
+
+#include <sys/_types.h>
+
+/*
+ * Ioctl's have the command encoded in the lower word, and the size of
+ * any in or out parameters in the upper word.  The high 3 bits of the
+ * upper word are used to encode the in/out status of the parameter.
+ */
+#define IOCPARM_MASK    0x1fff          /* parameter length, at most 13 bits */
+#define IOCPARM_LEN(x)  (((x) >> 16) & IOCPARM_MASK)
+#define IOCBASECMD(x)   ((x) & ~(IOCPARM_MASK << 16))
+#define IOCGROUP(x)     (((x) >> 8) & 0xff)
+
+#define IOCPARM_MAX     (IOCPARM_MASK + 1)      /* max size of ioctl args */
+/* no parameters */
+#define IOC_VOID        (__uint32_t)0x20000000
+/* copy parameters out */
+#define IOC_OUT         (__uint32_t)0x40000000
+/* copy parameters in */
+#define IOC_IN          (__uint32_t)0x80000000
+/* copy paramters in and out */
+#define IOC_INOUT       (IOC_IN|IOC_OUT)
+/* mask for IN/OUT/VOID */
+#define IOC_DIRMASK     (__uint32_t)0xe0000000
+
+#define _IOC(inout, group, num, len) \
+	(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
+#define _IO(g, n)        _IOC(IOC_VOID,	(g), (n), 0)
+#define _IOR(g, n, t)     _IOC(IOC_OUT,	(g), (n), sizeof(t))
+#define _IOW(g, n, t)     _IOC(IOC_IN,	(g), (n), sizeof(t))
+/* this should be _IORW, but stdio got there first */
+#define _IOWR(g, n, t)    _IOC(IOC_INOUT,	(g), (n), sizeof(t))
+
+#endif /* !_SYS_IOCCOM_H_ */
lib/libc/include/x86_64-macos-gnu/sys/ipc.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1988 University of Utah.
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * the Systems Programming Group of the University of Utah Computer
+ * Science Department.
+ *
+ * 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.
+ *
+ *	@(#)ipc.h	8.4 (Berkeley) 2/19/95
+ */
+
+/*
+ * SVID compatible ipc.h file
+ */
+#ifndef _SYS_IPC_H_
+#define _SYS_IPC_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types.h>
+
+/*
+ * [XSI] The uid_t, gid_t, mode_t, and key_t types SHALL be defined as
+ * described in <sys/types.h>.
+ */
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_key_t.h>
+
+
+#pragma pack(4)
+
+/*
+ * Technically, we should force all code references to the new structure
+ * definition, not in just the standards conformance case, and leave the
+ * legacy interface there for binary compatibility only.  Currently, we
+ * are only forcing this for programs requesting standards conformance.
+ */
+#if __DARWIN_UNIX03 || defined(KERNEL)
+/*
+ * [XSI] Information used in determining permission to perform an IPC
+ * operation
+ */
+struct ipc_perm {
+	uid_t           uid;            /* [XSI] Owner's user ID */
+	gid_t           gid;            /* [XSI] Owner's group ID */
+	uid_t           cuid;           /* [XSI] Creator's user ID */
+	gid_t           cgid;           /* [XSI] Creator's group ID */
+	mode_t          mode;           /* [XSI] Read/write permission */
+	unsigned short  _seq;           /* Reserved for internal use */
+	key_t           _key;           /* Reserved for internal use */
+};
+#define __ipc_perm_new  ipc_perm
+#else   /* !__DARWIN_UNIX03 */
+#define ipc_perm        __ipc_perm_old
+#endif  /* !__DARWIN_UNIX03 */
+
+#if !__DARWIN_UNIX03
+/*
+ * Legacy structure; this structure is maintained for binary backward
+ * compatability with previous versions of the interface.  New code
+ * should not use this interface, since ID values may be truncated.
+ */
+struct __ipc_perm_old {
+	__uint16_t      cuid;           /* Creator's user ID */
+	__uint16_t      cgid;           /* Creator's group ID */
+	__uint16_t      uid;            /* Owner's user ID */
+	__uint16_t      gid;            /* Owner's group ID */
+	mode_t          mode;           /* Read/Write permission */
+	__uint16_t      seq;            /* Reserved for internal use */
+	key_t           key;            /* Reserved for internal use */
+};
+#endif  /* !__DARWIN_UNIX03 */
+
+#pragma pack()
+
+/*
+ * [XSI] Definitions shall be provided for the following constants:
+ */
+
+/* Mode bits */
+#define IPC_CREAT       001000          /* Create entry if key does not exist */
+#define IPC_EXCL        002000          /* Fail if key exists */
+#define IPC_NOWAIT      004000          /* Error if request must wait */
+
+/* Keys */
+#define IPC_PRIVATE     ((key_t)0)      /* Private key */
+
+/* Control commands */
+#define IPC_RMID        0               /* Remove identifier */
+#define IPC_SET         1               /* Set options */
+#define IPC_STAT        2               /* Get options */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/* common mode bits */
+#define IPC_R           000400          /* Read permission */
+#define IPC_W           000200          /* Write/alter permission */
+#define IPC_M           010000          /* Modify control info permission */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+__BEGIN_DECLS
+/* [XSI] */
+key_t   ftok(const char *, int);
+__END_DECLS
+
+
+#endif /* !_SYS_IPC_H_ */
lib/libc/include/x86_64-macos-gnu/sys/mman.h
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2000-2019 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)mman.h	8.1 (Berkeley) 6/2/93
+ */
+
+/*
+ * Currently unsupported:
+ *
+ * [TYM]	POSIX_TYPED_MEM_ALLOCATE
+ * [TYM]	POSIX_TYPED_MEM_ALLOCATE_CONTIG
+ * [TYM]	POSIX_TYPED_MEM_MAP_ALLOCATABLE
+ * [TYM]	struct posix_typed_mem_info
+ * [TYM]	posix_mem_offset()
+ * [TYM]	posix_typed_mem_get_info()
+ * [TYM]	posix_typed_mem_open()
+ */
+
+#ifndef _SYS_MMAN_H_
+#define _SYS_MMAN_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types.h>
+
+/*
+ * [various] The mode_t, off_t, and size_t types shall be defined as
+ * described in <sys/types.h>
+ */
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_size_t.h>
+
+/*
+ * Protections are chosen from these bits, or-ed together
+ */
+#define PROT_NONE       0x00    /* [MC2] no permissions */
+#define PROT_READ       0x01    /* [MC2] pages can be read */
+#define PROT_WRITE      0x02    /* [MC2] pages can be written */
+#define PROT_EXEC       0x04    /* [MC2] pages can be executed */
+
+/*
+ * Flags contain sharing type and options.
+ * Sharing types; choose one.
+ */
+#define MAP_SHARED      0x0001          /* [MF|SHM] share changes */
+#define MAP_PRIVATE     0x0002          /* [MF|SHM] changes are private */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_COPY        MAP_PRIVATE     /* Obsolete */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Other flags
+ */
+#define MAP_FIXED        0x0010 /* [MF|SHM] interpret addr exactly */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_RENAME       0x0020 /* Sun: rename private pages to file */
+#define MAP_NORESERVE    0x0040 /* Sun: don't reserve needed swap area */
+#define MAP_RESERVED0080 0x0080 /* previously unimplemented MAP_INHERIT */
+#define MAP_NOEXTEND     0x0100 /* for MAP_FILE, don't change file size */
+#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
+#define MAP_NOCACHE      0x0400 /* don't cache pages for this mapping */
+#define MAP_JIT          0x0800 /* Allocate a region that will be used for JIT purposes */
+
+/*
+ * Mapping type
+ */
+#define MAP_FILE        0x0000  /* map from file (default) */
+#define MAP_ANON        0x1000  /* allocated from memory, swap space */
+#define MAP_ANONYMOUS   MAP_ANON
+
+/*
+ * The MAP_RESILIENT_* flags can be used when the caller wants to map some
+ * possibly unreliable memory and be able to access it safely, possibly
+ * getting the wrong contents rather than raising any exception.
+ * For safety reasons, such mappings have to be read-only (PROT_READ access
+ * only).
+ *
+ * MAP_RESILIENT_CODESIGN:
+ *      accessing this mapping will not generate code-signing violations,
+ *	even if the contents are tainted.
+ * MAP_RESILIENT_MEDIA:
+ *	accessing this mapping will not generate an exception if the contents
+ *	are not available (unreachable removable or remote media, access beyond
+ *	end-of-file, ...).  Missing contents will be replaced with zeroes.
+ */
+#define MAP_RESILIENT_CODESIGN  0x2000 /* no code-signing failures */
+#define MAP_RESILIENT_MEDIA     0x4000 /* no backing-store failures */
+
+#if !defined(CONFIG_EMBEDDED)
+#define MAP_32BIT       0x8000          /* Return virtual addresses <4G only: Requires entitlement */
+#endif  /* !defined(CONFIG_EMBEDDED) */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Process memory locking
+ */
+#define MCL_CURRENT     0x0001  /* [ML] Lock only current memory */
+#define MCL_FUTURE      0x0002  /* [ML] Lock all future memory as well */
+
+/*
+ * Error return from mmap()
+ */
+#define MAP_FAILED      ((void *)-1)    /* [MF|SHM] mmap failed */
+
+/*
+ * msync() flags
+ */
+#define MS_ASYNC        0x0001  /* [MF|SIO] return immediately */
+#define MS_INVALIDATE   0x0002  /* [MF|SIO] invalidate all cached data */
+#define MS_SYNC         0x0010  /* [MF|SIO] msync synchronously */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MS_KILLPAGES    0x0004  /* invalidate pages, leave mapped */
+#define MS_DEACTIVATE   0x0008  /* deactivate pages, leave mapped */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+/*
+ * Advice to madvise
+ */
+#define POSIX_MADV_NORMAL       0       /* [MC1] no further special treatment */
+#define POSIX_MADV_RANDOM       1       /* [MC1] expect random page refs */
+#define POSIX_MADV_SEQUENTIAL   2       /* [MC1] expect sequential page refs */
+#define POSIX_MADV_WILLNEED     3       /* [MC1] will need these pages */
+#define POSIX_MADV_DONTNEED     4       /* [MC1] dont need these pages */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MADV_NORMAL             POSIX_MADV_NORMAL
+#define MADV_RANDOM             POSIX_MADV_RANDOM
+#define MADV_SEQUENTIAL         POSIX_MADV_SEQUENTIAL
+#define MADV_WILLNEED           POSIX_MADV_WILLNEED
+#define MADV_DONTNEED           POSIX_MADV_DONTNEED
+#define MADV_FREE               5       /* pages unneeded, discard contents */
+#define MADV_ZERO_WIRED_PAGES   6       /* zero the wired pages that have not been unwired before the entry is deleted */
+#define MADV_FREE_REUSABLE      7       /* pages can be reused (by anyone) */
+#define MADV_FREE_REUSE         8       /* caller wants to reuse those pages */
+#define MADV_CAN_REUSE          9
+#define MADV_PAGEOUT            10      /* page out now (internal only) */
+
+/*
+ * Return bits from mincore
+ */
+#define MINCORE_INCORE           0x1     /* Page is incore */
+#define MINCORE_REFERENCED       0x2     /* Page has been referenced by us */
+#define MINCORE_MODIFIED         0x4     /* Page has been modified by us */
+#define MINCORE_REFERENCED_OTHER 0x8     /* Page has been referenced */
+#define MINCORE_MODIFIED_OTHER  0x10     /* Page has been modified */
+#define MINCORE_PAGED_OUT       0x20     /* Page has been paged out */
+#define MINCORE_COPIED          0x40     /* Page has been copied */
+#define MINCORE_ANONYMOUS       0x80     /* Page belongs to an anonymous object */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+__BEGIN_DECLS
+/* [ML] */
+int     mlockall(int);
+int     munlockall(void);
+/* [MR] */
+int     mlock(const void *, size_t);
+#ifndef _MMAP
+#define _MMAP
+/* [MC3]*/
+void *  mmap(void *, size_t, int, int, int, off_t) __DARWIN_ALIAS(mmap);
+#endif
+/* [MPR] */
+int     mprotect(void *, size_t, int) __DARWIN_ALIAS(mprotect);
+/* [MF|SIO] */
+int     msync(void *, size_t, int) __DARWIN_ALIAS_C(msync);
+/* [MR] */
+int     munlock(const void *, size_t);
+/* [MC3]*/
+int     munmap(void *, size_t) __DARWIN_ALIAS(munmap);
+/* [SHM] */
+int     shm_open(const char *, int, ...);
+int     shm_unlink(const char *);
+/* [ADV] */
+int     posix_madvise(void *, size_t, int);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     madvise(void *, size_t, int);
+int     mincore(const void *, size_t, char *);
+int     minherit(void *, size_t, int);
+#endif
+
+
+__END_DECLS
+
+#endif /* !_SYS_MMAN_H_ */
lib/libc/include/x86_64-macos-gnu/sys/msg.h
@@ -0,0 +1,225 @@
+/*
+ * 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@
+ */
+/*	$NetBSD: msg.h,v 1.4 1994/06/29 06:44:43 cgd Exp $	*/
+
+/*
+ * SVID compatible msg.h file
+ *
+ * Author:  Daniel Boulet
+ *
+ * Copyright 1993 Daniel Boulet and RTMX Inc.
+ *
+ * This system call was implemented by Daniel Boulet under contract from RTMX.
+ *
+ * Redistribution and use in source forms, with and without modification,
+ * are permitted provided that this entire comment appears intact.
+ *
+ * Redistribution in binary form may occur without any restrictions.
+ * Obviously, it would be nice if you gave credit where credit is due
+ * but requiring it would be too onerous.
+ *
+ * This software is provided ``AS IS'' without any warranties of any kind.
+ */
+/*
+ * 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_MSG_H_
+#define _SYS_MSG_H_
+
+#include <sys/appleapiopts.h>
+
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+
+/*
+ * [XSI] All of the symbols from <sys/ipc.h> SHALL be defined when this
+ * header is included
+ */
+#include <sys/ipc.h>
+
+
+/*
+ * [XSI] The pid_t, time_t, key_t, size_t, and ssize_t types shall be
+ * defined as described in <sys/types.h>.
+ *
+ * NOTE:	The definition of the key_t type is implicit from the
+ *		inclusion of <sys/ipc.h>
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+
+/* [XSI] Used for the number of messages in the message queue */
+typedef unsigned long           msgqnum_t;
+
+/* [XSI] Used for the number of bytes allowed in a message queue */
+typedef unsigned long           msglen_t;
+
+/*
+ * Possible values for the fifth parameter to msgrcv(), in addition to the
+ * IPC_NOWAIT flag, which is permitted.
+ */
+#define MSG_NOERROR     010000          /* [XSI] No error if big message */
+
+
+/*
+ * Technically, we should force all code references to the new structure
+ * definition, not in just the standards conformance case, and leave the
+ * legacy interface there for binary compatibility only.  Currently, we
+ * are only forcing this for programs requesting standards conformance.
+ */
+#if __DARWIN_UNIX03 || defined(KERNEL)
+#pragma pack(4)
+/*
+ * Structure used internally.
+ *
+ * Structure whose address is passed as the third parameter to msgctl()
+ * when the second parameter is IPC_SET or IPC_STAT.  In the case of the
+ * IPC_SET command, only the msg_perm.{uid|gid|perm} and msg_qbytes are
+ * honored.  In the case of IPC_STAT, only the fields indicated as [XSI]
+ * mandated fields are guaranteed to meaningful: DO NOT depend on the
+ * contents of the other fields.
+ *
+ * NOTES:	Reserved fields are not preserved across IPC_SET/IPC_STAT.
+ */
+#if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE))
+struct msqid_ds
+#else
+#define msqid_ds        __msqid_ds_new
+struct __msqid_ds_new
+#endif
+{
+	struct __ipc_perm_new   msg_perm; /* [XSI] msg queue permissions */
+	__int32_t       msg_first;      /* RESERVED: kernel use only */
+	__int32_t       msg_last;       /* RESERVED: kernel use only */
+	msglen_t        msg_cbytes;     /* # of bytes on the queue */
+	msgqnum_t       msg_qnum;       /* [XSI] number of msgs on the queue */
+	msglen_t        msg_qbytes;     /* [XSI] max bytes on the queue */
+	pid_t           msg_lspid;      /* [XSI] pid of last msgsnd() */
+	pid_t           msg_lrpid;      /* [XSI] pid of last msgrcv() */
+	time_t          msg_stime;      /* [XSI] time of last msgsnd() */
+	__int32_t       msg_pad1;       /* RESERVED: DO NOT USE */
+	time_t          msg_rtime;      /* [XSI] time of last msgrcv() */
+	__int32_t       msg_pad2;       /* RESERVED: DO NOT USE */
+	time_t          msg_ctime;      /* [XSI] time of last msgctl() */
+	__int32_t       msg_pad3;       /* RESERVED: DO NOT USE */
+	__int32_t       msg_pad4[4];    /* RESERVED: DO NOT USE */
+};
+#pragma pack()
+#else   /* !__DARWIN_UNIX03 */
+#define msqid_ds        __msqid_ds_old
+#endif  /* !__DARWIN_UNIX03 */
+
+#if !__DARWIN_UNIX03
+struct __msqid_ds_old {
+	struct __ipc_perm_old   msg_perm; /* [XSI] msg queue permissions */
+	__int32_t       msg_first;      /* RESERVED: kernel use only */
+	__int32_t       msg_last;       /* RESERVED: kernel use only */
+	msglen_t        msg_cbytes;     /* # of bytes on the queue */
+	msgqnum_t       msg_qnum;       /* [XSI] number of msgs on the queue */
+	msglen_t        msg_qbytes;     /* [XSI] max bytes on the queue */
+	pid_t           msg_lspid;      /* [XSI] pid of last msgsnd() */
+	pid_t           msg_lrpid;      /* [XSI] pid of last msgrcv() */
+	time_t          msg_stime;      /* [XSI] time of last msgsnd() */
+	__int32_t       msg_pad1;       /* RESERVED: DO NOT USE */
+	time_t          msg_rtime;      /* [XSI] time of last msgrcv() */
+	__int32_t       msg_pad2;       /* RESERVED: DO NOT USE */
+	time_t          msg_ctime;      /* [XSI] time of last msgctl() */
+	__int32_t       msg_pad3;       /* RESERVED: DO NOT USE */
+	__int32_t       msg_pad4[4];    /* RESERVED: DO NOT USE */
+};
+#endif  /* !__DARWIN_UNIX03 */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifdef __APPLE_API_UNSTABLE
+/* XXX kernel only; protect with macro later */
+
+struct msg {
+	struct msg      *msg_next;      /* next msg in the chain */
+	long            msg_type;       /* type of this message */
+	                                /* >0 -> type of this message */
+	                                /* 0 -> free header */
+	unsigned short  msg_ts;         /* size of this message */
+	short           msg_spot;       /* location of msg start in buffer */
+	struct label    *label;         /* MAC label */
+};
+
+/*
+ * Example structure describing a message whose address is to be passed as
+ * the second argument to the functions msgrcv() and msgsnd().  The only
+ * actual hard requirement is that the first field be of type long, and
+ * contain the message type.  The user is encouraged to define their own
+ * application specific structure; this definition is included solely for
+ * backward compatability with existing source code.
+ */
+struct mymsg {
+	long    mtype;          /* message type (+ve integer) */
+	char    mtext[1];       /* message body */
+};
+
+/*
+ * Based on the configuration parameters described in an SVR2 (yes, two)
+ * config(1m) man page.
+ *
+ * Each message is broken up and stored in segments that are msgssz bytes
+ * long.  For efficiency reasons, this should be a power of two.  Also,
+ * it doesn't make sense if it is less than 8 or greater than about 256.
+ * Consequently, msginit in kern/sysv_msg.c checks that msgssz is a power of
+ * two between 8 and 1024 inclusive (and panic's if it isn't).
+ */
+struct msginfo {
+	int     msgmax,         /* max chars in a message */
+	    msgmni,             /* max message queue identifiers */
+	    msgmnb,             /* max chars in a queue */
+	    msgtql,             /* max messages in system */
+	    msgssz,             /* size of a message segment (see notes above) */
+	    msgseg;             /* number of message segments */
+};
+#endif  /* __APPLE_API_UNSTABLE */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+__BEGIN_DECLS
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int msgsys(int, ...);
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+int msgctl(int, int, struct msqid_ds *) __DARWIN_ALIAS(msgctl);
+int msgget(key_t, int);
+ssize_t msgrcv(int, void *, size_t, long, int) __DARWIN_ALIAS_C(msgrcv);
+int msgsnd(int, const void *, size_t, int) __DARWIN_ALIAS_C(msgsnd);
+__END_DECLS
+
+
+#endif /* !_SYS_MSG_H_ */
lib/libc/include/x86_64-macos-gnu/sys/poll.h
@@ -0,0 +1,118 @@
+/*
+ * 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@
+ */
+/*-
+ * Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _SYS_POLL_H_
+#define _SYS_POLL_H_
+
+/*
+ * This file is intended to be compatible with the traditional poll.h.
+ */
+
+/*
+ * Requestable events.  If poll(2) finds any of these set, they are
+ * copied to revents on return.
+ */
+#define POLLIN          0x0001          /* any readable data available */
+#define POLLPRI         0x0002          /* OOB/Urgent readable data */
+#define POLLOUT         0x0004          /* file descriptor is writeable */
+#define POLLRDNORM      0x0040          /* non-OOB/URG data available */
+#define POLLWRNORM      POLLOUT         /* no write type differentiation */
+#define POLLRDBAND      0x0080          /* OOB/Urgent readable data */
+#define POLLWRBAND      0x0100          /* OOB/Urgent data can be written */
+
+/*
+ * FreeBSD extensions: polling on a regular file might return one
+ * of these events (currently only supported on local filesystems).
+ */
+#define POLLEXTEND      0x0200          /* file may have been extended */
+#define POLLATTRIB      0x0400          /* file attributes may have changed */
+#define POLLNLINK       0x0800          /* (un)link/rename may have happened */
+#define POLLWRITE       0x1000          /* file's contents may have changed */
+
+/*
+ * These events are set if they occur regardless of whether they were
+ * requested.
+ */
+#define POLLERR         0x0008          /* some poll error occurred */
+#define POLLHUP         0x0010          /* file descriptor was "hung up" */
+#define POLLNVAL        0x0020          /* requested events "invalid" */
+
+#define POLLSTANDARD    (POLLIN|POLLPRI|POLLOUT|POLLRDNORM|POLLRDBAND|\
+	                 POLLWRBAND|POLLERR|POLLHUP|POLLNVAL)
+
+struct pollfd {
+	int     fd;
+	short   events;
+	short   revents;
+};
+
+typedef unsigned int nfds_t;
+
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/*
+ * This is defined here (instead of <poll.h>) because this is where
+ * traditional SVR4 code will look to find it.
+ */
+extern int poll(struct pollfd *, nfds_t, int) __DARWIN_ALIAS_C(poll);
+
+__END_DECLS
+
+
+#endif /* !_SYS_POLL_H_ */
lib/libc/include/x86_64-macos-gnu/sys/qos.h
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2013-2014 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 _SYS_QOS_H
+#define _SYS_QOS_H
+
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+/*!
+ * @typedef qos_class_t
+ *
+ * @abstract
+ * An abstract thread quality of service (QOS) classification.
+ *
+ * @discussion
+ * Thread quality of service (QOS) classes are ordered abstract representations
+ * of the nature of work that is expected to be performed by a pthread, dispatch
+ * queue, or NSOperation. Each class specifies a maximum thread scheduling
+ * priority for that band (which may be used in combination with a relative
+ * priority offset within the band), as well as quality of service
+ * characteristics for timer latency, CPU throughput, I/O throughput, network
+ * socket traffic management behavior and more.
+ *
+ * A best effort is made to allocate available system resources to every QOS
+ * class. Quality of service degredation only occurs during system resource
+ * contention, proportionally to the QOS class. That said, QOS classes
+ * representing user-initiated work attempt to achieve peak throughput while
+ * QOS classes for other work attempt to achieve peak energy and thermal
+ * efficiency, even in the absence of contention. Finally, the use of QOS
+ * classes does not allow threads to supersede any limits that may be applied
+ * to the overall process.
+ */
+
+/*!
+ * @constant QOS_CLASS_USER_INTERACTIVE
+ * @abstract A QOS class which indicates work performed by this thread
+ * is interactive with the user.
+ * @discussion Such work is requested to run at high priority relative to other
+ * work on the system. Specifying this QOS class is a request to run with
+ * nearly all available system CPU and I/O bandwidth even under contention.
+ * This is not an energy-efficient QOS class to use for large tasks. The use of
+ * this QOS class should be limited to critical interaction with the user such
+ * as handling events on the main event loop, view drawing, animation, etc.
+ *
+ * @constant QOS_CLASS_USER_INITIATED
+ * @abstract A QOS class which indicates work performed by this thread
+ * was initiated by the user and that the user is likely waiting for the
+ * results.
+ * @discussion Such work is requested to run at a priority below critical user-
+ * interactive work, but relatively higher than other work on the system. This
+ * is not an energy-efficient QOS class to use for large tasks. Its use
+ * should be limited to operations of short enough duration that the user is
+ * unlikely to switch tasks while waiting for the results. Typical
+ * user-initiated work will have progress indicated by the display of
+ * placeholder content or modal user interface.
+ *
+ * @constant QOS_CLASS_DEFAULT
+ * @abstract A default QOS class used by the system in cases where more specific
+ * QOS class information is not available.
+ * @discussion Such work is requested to run at a priority below critical user-
+ * interactive and user-initiated work, but relatively higher than utility and
+ * background tasks. Threads created by pthread_create() without an attribute
+ * specifying a QOS class will default to QOS_CLASS_DEFAULT. This QOS class
+ * value is not intended to be used as a work classification, it should only be
+ * set when propagating or restoring QOS class values provided by the system.
+ *
+ * @constant QOS_CLASS_UTILITY
+ * @abstract A QOS class which indicates work performed by this thread
+ * may or may not be initiated by the user and that the user is unlikely to be
+ * immediately waiting for the results.
+ * @discussion Such work is requested to run at a priority below critical user-
+ * interactive and user-initiated work, but relatively higher than low-level
+ * system maintenance tasks. The use of this QOS class indicates the work
+ * should be run in an energy and thermally-efficient manner. The progress of
+ * utility work may or may not be indicated to the user, but the effect of such
+ * work is user-visible.
+ *
+ * @constant QOS_CLASS_BACKGROUND
+ * @abstract A QOS class which indicates work performed by this thread was not
+ * initiated by the user and that the user may be unaware of the results.
+ * @discussion Such work is requested to run at a priority below other work.
+ * The use of this QOS class indicates the work should be run in the most energy
+ * and thermally-efficient manner.
+ *
+ * @constant QOS_CLASS_UNSPECIFIED
+ * @abstract A QOS class value which indicates the absence or removal of QOS
+ * class information.
+ * @discussion As an API return value, may indicate that threads or pthread
+ * attributes were configured with legacy API incompatible or in conflict with
+ * the QOS class system.
+ */
+
+#define __QOS_ENUM(name, type, ...) enum { __VA_ARGS__ }; typedef type name##_t
+#define __QOS_CLASS_AVAILABLE(...)
+
+#if defined(__cplusplus) || defined(__OBJC__) || __LP64__
+#if defined(__has_feature) && defined(__has_extension)
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
+#undef __QOS_ENUM
+#define __QOS_ENUM(name, type, ...) typedef enum : type { __VA_ARGS__ } name##_t
+#endif
+#endif
+#if __has_feature(enumerator_attributes)
+#undef __QOS_CLASS_AVAILABLE
+#define __QOS_CLASS_AVAILABLE __API_AVAILABLE
+#endif
+#endif
+
+__QOS_ENUM(qos_class, unsigned int,
+	QOS_CLASS_USER_INTERACTIVE
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x21,
+	QOS_CLASS_USER_INITIATED
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x19,
+	QOS_CLASS_DEFAULT
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x15,
+	QOS_CLASS_UTILITY
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x11,
+	QOS_CLASS_BACKGROUND
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x09,
+	QOS_CLASS_UNSPECIFIED
+			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x00,
+);
+
+#undef __QOS_ENUM
+
+/*!
+ * @constant QOS_MIN_RELATIVE_PRIORITY
+ * @abstract The minimum relative priority that may be specified within a
+ * QOS class. These priorities are relative only within a given QOS class
+ * and meaningful only for the current process.
+ */
+#define QOS_MIN_RELATIVE_PRIORITY (-15)
+
+/* Userspace (only) definitions */
+
+#ifndef KERNEL
+
+__BEGIN_DECLS
+
+/*!
+ * @function qos_class_self
+ *
+ * @abstract
+ * Returns the requested QOS class of the current thread.
+ *
+ * @return
+ * One of the QOS class values in qos_class_t.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+qos_class_t
+qos_class_self(void);
+
+/*!
+ * @function qos_class_main
+ *
+ * @abstract
+ * Returns the initial requested QOS class of the main thread.
+ *
+ * @discussion
+ * The QOS class that the main thread of a process is created with depends on
+ * the type of process (e.g. application or daemon) and on how it has been
+ * launched.
+ *
+ * This function returns that initial requested QOS class value chosen by the
+ * system to enable propagation of that classification to matching work not
+ * executing on the main thread.
+ *
+ * @return
+ * One of the QOS class values in qos_class_t.
+ */
+__API_AVAILABLE(macos(10.10), ios(8.0))
+qos_class_t
+qos_class_main(void);
+
+__END_DECLS
+
+#endif // KERNEL
+
+#endif // _SYS_QOS_H
lib/libc/include/x86_64-macos-gnu/sys/queue.h
@@ -0,0 +1,909 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 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.
+ * 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.
+ *
+ *	@(#)queue.h	8.5 (Berkeley) 8/20/94
+ */
+
+#ifndef _SYS_QUEUE_H_
+#define _SYS_QUEUE_H_
+
+#ifndef __improbable
+#define __improbable(x) (x)             /* noop in userspace */
+#endif /* __improbable */
+
+/*
+ * This file defines five types of data structures: singly-linked lists,
+ * singly-linked tail queues, lists, tail queues, and circular queues.
+ *
+ * A singly-linked list is headed by a single forward pointer. The elements
+ * are singly linked for minimum space and pointer manipulation overhead at
+ * the expense of O(n) removal for arbitrary elements. New elements can be
+ * added to the list after an existing element or at the head of the list.
+ * Elements being removed from the head of the list should use the explicit
+ * macro for this purpose for optimum efficiency. A singly-linked list may
+ * only be traversed in the forward direction.  Singly-linked lists are ideal
+ * for applications with large datasets and few or no removals or for
+ * implementing a LIFO queue.
+ *
+ * A singly-linked tail queue is headed by a pair of pointers, one to the
+ * head of the list and the other to the tail of the list. The elements are
+ * singly linked for minimum space and pointer manipulation overhead at the
+ * expense of O(n) removal for arbitrary elements. New elements can be added
+ * to the list after an existing element, at the head of the list, or at the
+ * end of the list. Elements being removed from the head of the tail queue
+ * should use the explicit macro for this purpose for optimum efficiency.
+ * A singly-linked tail queue may only be traversed in the forward direction.
+ * Singly-linked tail queues are ideal for applications with large datasets
+ * and few or no removals or for implementing a FIFO queue.
+ *
+ * A list is headed by a single forward pointer (or an array of forward
+ * pointers for a hash table header). The elements are doubly linked
+ * so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before
+ * or after an existing element or at the head of the list. A list
+ * may only be traversed in the forward direction.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * A circle queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the list.
+ * A circle queue may be traversed in either direction, but has a more
+ * complex end of list detection.
+ * Note that circle queues are deprecated, because, as the removal log
+ * in FreeBSD states, "CIRCLEQs are a disgrace to everything Knuth taught
+ * us in Volume 1 Chapter 2. [...] Use TAILQ instead, it provides the same
+ * functionality." Code using them will continue to compile, but they
+ * are no longer documented on the man page.
+ *
+ * For details on the use of these macros, see the queue(3) manual page.
+ *
+ *
+ *				SLIST	LIST	STAILQ	TAILQ	CIRCLEQ
+ * _HEAD			+	+	+	+	+
+ * _HEAD_INITIALIZER		+	+	+	+	-
+ * _ENTRY			+	+	+	+	+
+ * _INIT			+	+	+	+	+
+ * _EMPTY			+	+	+	+	+
+ * _FIRST			+	+	+	+	+
+ * _NEXT			+	+	+	+	+
+ * _PREV			-	-	-	+	+
+ * _LAST			-	-	+	+	+
+ * _FOREACH			+	+	+	+	+
+ * _FOREACH_SAFE		+	+	+	+	-
+ * _FOREACH_REVERSE		-	-	-	+	-
+ * _FOREACH_REVERSE_SAFE	-	-	-	+	-
+ * _INSERT_HEAD			+	+	+	+	+
+ * _INSERT_BEFORE		-	+	-	+	+
+ * _INSERT_AFTER		+	+	+	+	+
+ * _INSERT_TAIL			-	-	+	+	+
+ * _CONCAT			-	-	+	+	-
+ * _REMOVE_AFTER		+	-	+	-	-
+ * _REMOVE_HEAD			+	-	+	-	-
+ * _REMOVE_HEAD_UNTIL		-	-	+	-	-
+ * _REMOVE			+	+	+	+	+
+ * _SWAP			-	+	+	+	-
+ *
+ */
+#ifdef QUEUE_MACRO_DEBUG
+/* Store the last 2 places the queue element or head was altered */
+struct qm_trace {
+	char * lastfile;
+	int lastline;
+	char * prevfile;
+	int prevline;
+};
+
+#define TRACEBUF        struct qm_trace trace;
+#define TRASHIT(x)      do {(x) = (void *)-1;} while (0)
+
+#define QMD_TRACE_HEAD(head) do {                                       \
+	(head)->trace.prevline = (head)->trace.lastline;                \
+	(head)->trace.prevfile = (head)->trace.lastfile;                \
+	(head)->trace.lastline = __LINE__;                              \
+	(head)->trace.lastfile = __FILE__;                              \
+} while (0)
+
+#define QMD_TRACE_ELEM(elem) do {                                       \
+	(elem)->trace.prevline = (elem)->trace.lastline;                \
+	(elem)->trace.prevfile = (elem)->trace.lastfile;                \
+	(elem)->trace.lastline = __LINE__;                              \
+	(elem)->trace.lastfile = __FILE__;                              \
+} while (0)
+
+#else
+#define QMD_TRACE_ELEM(elem)
+#define QMD_TRACE_HEAD(head)
+#define TRACEBUF
+#define TRASHIT(x)
+#endif  /* QUEUE_MACRO_DEBUG */
+
+/*
+ * Horrible macros to enable use of code that was meant to be C-specific
+ *   (and which push struct onto type) in C++; without these, C++ code
+ *   that uses these macros in the context of a class will blow up
+ *   due to "struct" being preprended to "type" by the macros, causing
+ *   inconsistent use of tags.
+ *
+ * This approach is necessary because these are macros; we have to use
+ *   these on a per-macro basis (because the queues are implemented as
+ *   macros, disabling this warning in the scope of the header file is
+ *   insufficient), whuch means we can't use #pragma, and have to use
+ *   _Pragma.  We only need to use these for the queue macros that
+ *   prepend "struct" to "type" and will cause C++ to blow up.
+ */
+#if defined(__clang__) && defined(__cplusplus)
+#define __MISMATCH_TAGS_PUSH                                            \
+	_Pragma("clang diagnostic push")                                \
+	_Pragma("clang diagnostic ignored \"-Wmismatched-tags\"")
+#define __MISMATCH_TAGS_POP                                             \
+	_Pragma("clang diagnostic pop")
+#else
+#define __MISMATCH_TAGS_PUSH
+#define __MISMATCH_TAGS_POP
+#endif
+
+/*!
+ * Ensures that these macros can safely be used in structs when compiling with
+ * clang. The macros do not allow for nullability attributes to be specified due
+ * to how they are expanded. For example:
+ *
+ *     SLIST_HEAD(, foo _Nullable) bar;
+ *
+ * expands to
+ *
+ *     struct {
+ *         struct foo _Nullable *slh_first;
+ *     }
+ *
+ * which is not valid because the nullability specifier has to apply to the
+ * pointer. So just ignore nullability completeness in all the places where this
+ * is an issue.
+ */
+#if defined(__clang__)
+#define __NULLABILITY_COMPLETENESS_PUSH \
+	_Pragma("clang diagnostic push") \
+	_Pragma("clang diagnostic ignored \"-Wnullability-completeness\"")
+#define __NULLABILITY_COMPLETENESS_POP \
+	_Pragma("clang diagnostic pop")
+#else
+#define __NULLABILITY_COMPLETENESS_PUSH
+#define __NULLABILITY_COMPLETENESS_POP
+#endif
+
+/*
+ * Singly-linked List declarations.
+ */
+#define SLIST_HEAD(name, type)                                          \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct name {                                                           \
+	struct type *slh_first; /* first element */                     \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define SLIST_HEAD_INITIALIZER(head)                                    \
+	{ NULL }
+
+#define SLIST_ENTRY(type)                                               \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct {                                                                \
+	struct type *sle_next;  /* next element */                      \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+/*
+ * Singly-linked List functions.
+ */
+#define SLIST_EMPTY(head)       ((head)->slh_first == NULL)
+
+#define SLIST_FIRST(head)       ((head)->slh_first)
+
+#define SLIST_FOREACH(var, head, field)                                 \
+	for ((var) = SLIST_FIRST((head));                               \
+	    (var);                                                      \
+	    (var) = SLIST_NEXT((var), field))
+
+#define SLIST_FOREACH_SAFE(var, head, field, tvar)                      \
+	for ((var) = SLIST_FIRST((head));                               \
+	    (var) && ((tvar) = SLIST_NEXT((var), field), 1);            \
+	    (var) = (tvar))
+
+#define SLIST_FOREACH_PREVPTR(var, varp, head, field)                   \
+	for ((varp) = &SLIST_FIRST((head));                             \
+	    ((var) = *(varp)) != NULL;                                  \
+	    (varp) = &SLIST_NEXT((var), field))
+
+#define SLIST_INIT(head) do {                                           \
+	SLIST_FIRST((head)) = NULL;                                     \
+} while (0)
+
+#define SLIST_INSERT_AFTER(slistelm, elm, field) do {                   \
+	SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field);       \
+	SLIST_NEXT((slistelm), field) = (elm);                          \
+} while (0)
+
+#define SLIST_INSERT_HEAD(head, elm, field) do {                        \
+	SLIST_NEXT((elm), field) = SLIST_FIRST((head));                 \
+	SLIST_FIRST((head)) = (elm);                                    \
+} while (0)
+
+#define SLIST_NEXT(elm, field)  ((elm)->field.sle_next)
+
+#define SLIST_REMOVE(head, elm, type, field)                            \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+do {                                                                    \
+	if (SLIST_FIRST((head)) == (elm)) {                             \
+	        SLIST_REMOVE_HEAD((head), field);                       \
+	}                                                               \
+	else {                                                          \
+	        struct type *curelm = SLIST_FIRST((head));              \
+	        while (SLIST_NEXT(curelm, field) != (elm))              \
+	                curelm = SLIST_NEXT(curelm, field);             \
+	        SLIST_REMOVE_AFTER(curelm, field);                      \
+	}                                                               \
+	TRASHIT((elm)->field.sle_next);                                 \
+} while (0)                                                             \
+__NULLABILITY_COMPLETENESS_POP                                      \
+__MISMATCH_TAGS_POP
+
+#define SLIST_REMOVE_AFTER(elm, field) do {                             \
+	SLIST_NEXT(elm, field) =                                        \
+	    SLIST_NEXT(SLIST_NEXT(elm, field), field);                  \
+} while (0)
+
+#define SLIST_REMOVE_HEAD(head, field) do {                             \
+	SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);   \
+} while (0)
+
+/*
+ * Singly-linked Tail queue declarations.
+ */
+#define STAILQ_HEAD(name, type)                                         \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct name {                                                           \
+	struct type *stqh_first;/* first element */                     \
+	struct type **stqh_last;/* addr of last next element */         \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define STAILQ_HEAD_INITIALIZER(head)                                   \
+	{ NULL, &(head).stqh_first }
+
+#define STAILQ_ENTRY(type)                                              \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct {                                                                \
+	struct type *stqe_next; /* next element */                      \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                         \
+__MISMATCH_TAGS_POP
+
+/*
+ * Singly-linked Tail queue functions.
+ */
+#define STAILQ_CONCAT(head1, head2) do {                                \
+	if (!STAILQ_EMPTY((head2))) {                                   \
+	        *(head1)->stqh_last = (head2)->stqh_first;              \
+	        (head1)->stqh_last = (head2)->stqh_last;                \
+	        STAILQ_INIT((head2));                                   \
+	}                                                               \
+} while (0)
+
+#define STAILQ_EMPTY(head)      ((head)->stqh_first == NULL)
+
+#define STAILQ_FIRST(head)      ((head)->stqh_first)
+
+#define STAILQ_FOREACH(var, head, field)                                \
+	for((var) = STAILQ_FIRST((head));                               \
+	   (var);                                                       \
+	   (var) = STAILQ_NEXT((var), field))
+
+
+#define STAILQ_FOREACH_SAFE(var, head, field, tvar)                     \
+	for ((var) = STAILQ_FIRST((head));                              \
+	    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);           \
+	    (var) = (tvar))
+
+#define STAILQ_INIT(head) do {                                          \
+	STAILQ_FIRST((head)) = NULL;                                    \
+	(head)->stqh_last = &STAILQ_FIRST((head));                      \
+} while (0)
+
+#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do {               \
+	if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
+	        (head)->stqh_last = &STAILQ_NEXT((elm), field);         \
+	STAILQ_NEXT((tqelm), field) = (elm);                            \
+} while (0)
+
+#define STAILQ_INSERT_HEAD(head, elm, field) do {                       \
+	if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
+	        (head)->stqh_last = &STAILQ_NEXT((elm), field);         \
+	STAILQ_FIRST((head)) = (elm);                                   \
+} while (0)
+
+#define STAILQ_INSERT_TAIL(head, elm, field) do {                       \
+	STAILQ_NEXT((elm), field) = NULL;                               \
+	*(head)->stqh_last = (elm);                                     \
+	(head)->stqh_last = &STAILQ_NEXT((elm), field);                 \
+} while (0)
+
+#define STAILQ_LAST(head, type, field)                                  \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+	(STAILQ_EMPTY((head)) ?                                         \
+	        NULL :                                                  \
+	        ((struct type *)(void *)                                \
+	        ((char *)((head)->stqh_last) - __offsetof(struct type, field))))\
+__NULLABILITY_COMPLETENESS_POP                                         \
+__MISMATCH_TAGS_POP
+
+#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
+
+#define STAILQ_REMOVE(head, elm, type, field)                           \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+do {                                                                    \
+	if (STAILQ_FIRST((head)) == (elm)) {                            \
+	        STAILQ_REMOVE_HEAD((head), field);                      \
+	}                                                               \
+	else {                                                          \
+	        struct type *curelm = STAILQ_FIRST((head));             \
+	        while (STAILQ_NEXT(curelm, field) != (elm))             \
+	                curelm = STAILQ_NEXT(curelm, field);            \
+	        STAILQ_REMOVE_AFTER(head, curelm, field);               \
+	}                                                               \
+	TRASHIT((elm)->field.stqe_next);                                \
+} while (0)                                                             \
+__NULLABILITY_COMPLETENESS_POP                                      \
+__MISMATCH_TAGS_POP
+
+#define STAILQ_REMOVE_HEAD(head, field) do {                            \
+	if ((STAILQ_FIRST((head)) =                                     \
+	     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)         \
+	        (head)->stqh_last = &STAILQ_FIRST((head));              \
+} while (0)
+
+#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {                 \
+       if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
+	       (head)->stqh_last = &STAILQ_FIRST((head));              \
+} while (0)
+
+#define STAILQ_REMOVE_AFTER(head, elm, field) do {                      \
+	if ((STAILQ_NEXT(elm, field) =                                  \
+	     STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL)      \
+	        (head)->stqh_last = &STAILQ_NEXT((elm), field);         \
+} while (0)
+
+#define STAILQ_SWAP(head1, head2, type)                                 \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+do {                                                                    \
+	struct type *swap_first = STAILQ_FIRST(head1);                  \
+	struct type **swap_last = (head1)->stqh_last;                   \
+	STAILQ_FIRST(head1) = STAILQ_FIRST(head2);                      \
+	(head1)->stqh_last = (head2)->stqh_last;                        \
+	STAILQ_FIRST(head2) = swap_first;                               \
+	(head2)->stqh_last = swap_last;                                 \
+	if (STAILQ_EMPTY(head1))                                        \
+	        (head1)->stqh_last = &STAILQ_FIRST(head1);              \
+	if (STAILQ_EMPTY(head2))                                        \
+	        (head2)->stqh_last = &STAILQ_FIRST(head2);              \
+} while (0)                                                             \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+
+/*
+ * List declarations.
+ */
+#define LIST_HEAD(name, type)                                           \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct name {                                                           \
+	struct type *lh_first;  /* first element */                     \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define LIST_HEAD_INITIALIZER(head)                                     \
+	{ NULL }
+
+#define LIST_ENTRY(type)                                                \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct {                                                                \
+	struct type *le_next;   /* next element */                      \
+	struct type **le_prev;  /* address of previous next element */  \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+/*
+ * List functions.
+ */
+
+#define LIST_CHECK_HEAD(head, field)
+#define LIST_CHECK_NEXT(elm, field)
+#define LIST_CHECK_PREV(elm, field)
+
+#define LIST_EMPTY(head)        ((head)->lh_first == NULL)
+
+#define LIST_FIRST(head)        ((head)->lh_first)
+
+#define LIST_FOREACH(var, head, field)                                  \
+	for ((var) = LIST_FIRST((head));                                \
+	    (var);                                                      \
+	    (var) = LIST_NEXT((var), field))
+
+#define LIST_FOREACH_SAFE(var, head, field, tvar)                       \
+	for ((var) = LIST_FIRST((head));                                \
+	    (var) && ((tvar) = LIST_NEXT((var), field), 1);             \
+	    (var) = (tvar))
+
+#define LIST_INIT(head) do {                                            \
+	LIST_FIRST((head)) = NULL;                                      \
+} while (0)
+
+#define LIST_INSERT_AFTER(listelm, elm, field) do {                     \
+	LIST_CHECK_NEXT(listelm, field);                                \
+	if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
+	        LIST_NEXT((listelm), field)->field.le_prev =            \
+	            &LIST_NEXT((elm), field);                           \
+	LIST_NEXT((listelm), field) = (elm);                            \
+	(elm)->field.le_prev = &LIST_NEXT((listelm), field);            \
+} while (0)
+
+#define LIST_INSERT_BEFORE(listelm, elm, field) do {                    \
+	LIST_CHECK_PREV(listelm, field);                                \
+	(elm)->field.le_prev = (listelm)->field.le_prev;                \
+	LIST_NEXT((elm), field) = (listelm);                            \
+	*(listelm)->field.le_prev = (elm);                              \
+	(listelm)->field.le_prev = &LIST_NEXT((elm), field);            \
+} while (0)
+
+#define LIST_INSERT_HEAD(head, elm, field) do {                         \
+	LIST_CHECK_HEAD((head), field);                         \
+	if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)     \
+	        LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
+	LIST_FIRST((head)) = (elm);                                     \
+	(elm)->field.le_prev = &LIST_FIRST((head));                     \
+} while (0)
+
+#define LIST_NEXT(elm, field)   ((elm)->field.le_next)
+
+#define LIST_REMOVE(elm, field) do {                                    \
+	LIST_CHECK_NEXT(elm, field);                            \
+	LIST_CHECK_PREV(elm, field);                            \
+	if (LIST_NEXT((elm), field) != NULL)                            \
+	        LIST_NEXT((elm), field)->field.le_prev =                \
+	            (elm)->field.le_prev;                               \
+	*(elm)->field.le_prev = LIST_NEXT((elm), field);                \
+	TRASHIT((elm)->field.le_next);                                  \
+	TRASHIT((elm)->field.le_prev);                                  \
+} while (0)
+
+#define LIST_SWAP(head1, head2, type, field)                            \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+do {                                                                    \
+	struct type *swap_tmp = LIST_FIRST((head1));                    \
+	LIST_FIRST((head1)) = LIST_FIRST((head2));                      \
+	LIST_FIRST((head2)) = swap_tmp;                                 \
+	if ((swap_tmp = LIST_FIRST((head1))) != NULL)                   \
+	        swap_tmp->field.le_prev = &LIST_FIRST((head1));         \
+	if ((swap_tmp = LIST_FIRST((head2))) != NULL)                   \
+	        swap_tmp->field.le_prev = &LIST_FIRST((head2));         \
+} while (0)                                                             \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+/*
+ * Tail queue declarations.
+ */
+#define TAILQ_HEAD(name, type)                                          \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct name {                                                           \
+	struct type *tqh_first; /* first element */                     \
+	struct type **tqh_last; /* addr of last next element */         \
+	TRACEBUF                                                        \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define TAILQ_HEAD_INITIALIZER(head)                                    \
+	{ NULL, &(head).tqh_first }
+
+#define TAILQ_ENTRY(type)                                               \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct {                                                                \
+	struct type *tqe_next;  /* next element */                      \
+	struct type **tqe_prev; /* address of previous next element */  \
+	TRACEBUF                                                        \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+/*
+ * Tail queue functions.
+ */
+#define TAILQ_CHECK_HEAD(head, field)
+#define TAILQ_CHECK_NEXT(elm, field)
+#define TAILQ_CHECK_PREV(elm, field)
+
+#define TAILQ_CONCAT(head1, head2, field) do {                          \
+	if (!TAILQ_EMPTY(head2)) {                                      \
+	        *(head1)->tqh_last = (head2)->tqh_first;                \
+	        (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
+	        (head1)->tqh_last = (head2)->tqh_last;                  \
+	        TAILQ_INIT((head2));                                    \
+	        QMD_TRACE_HEAD(head1);                                  \
+	        QMD_TRACE_HEAD(head2);                                  \
+	}                                                               \
+} while (0)
+
+#define TAILQ_EMPTY(head)       ((head)->tqh_first == NULL)
+
+#define TAILQ_FIRST(head)       ((head)->tqh_first)
+
+#define TAILQ_FOREACH(var, head, field)                                 \
+	for ((var) = TAILQ_FIRST((head));                               \
+	    (var);                                                      \
+	    (var) = TAILQ_NEXT((var), field))
+
+#define TAILQ_FOREACH_SAFE(var, head, field, tvar)                      \
+	for ((var) = TAILQ_FIRST((head));                               \
+	    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);            \
+	    (var) = (tvar))
+
+#define TAILQ_FOREACH_REVERSE(var, head, headname, field)               \
+	for ((var) = TAILQ_LAST((head), headname);                      \
+	    (var);                                                      \
+	    (var) = TAILQ_PREV((var), headname, field))
+
+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)    \
+	for ((var) = TAILQ_LAST((head), headname);                      \
+	    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);  \
+	    (var) = (tvar))
+
+
+#define TAILQ_INIT(head) do {                                           \
+	TAILQ_FIRST((head)) = NULL;                                     \
+	(head)->tqh_last = &TAILQ_FIRST((head));                        \
+	QMD_TRACE_HEAD(head);                                           \
+} while (0)
+
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {              \
+	TAILQ_CHECK_NEXT(listelm, field);                               \
+	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
+	        TAILQ_NEXT((elm), field)->field.tqe_prev =              \
+	            &TAILQ_NEXT((elm), field);                          \
+	else {                                                          \
+	        (head)->tqh_last = &TAILQ_NEXT((elm), field);           \
+	        QMD_TRACE_HEAD(head);                                   \
+	}                                                               \
+	TAILQ_NEXT((listelm), field) = (elm);                           \
+	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);          \
+	QMD_TRACE_ELEM(&(elm)->field);                                  \
+	QMD_TRACE_ELEM(&listelm->field);                                \
+} while (0)
+
+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do {                   \
+	TAILQ_CHECK_PREV(listelm, field);                               \
+	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;              \
+	TAILQ_NEXT((elm), field) = (listelm);                           \
+	*(listelm)->field.tqe_prev = (elm);                             \
+	(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);          \
+	QMD_TRACE_ELEM(&(elm)->field);                                  \
+	QMD_TRACE_ELEM(&listelm->field);                                \
+} while (0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do {                        \
+	TAILQ_CHECK_HEAD(head, field);                                  \
+	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)   \
+	        TAILQ_FIRST((head))->field.tqe_prev =                   \
+	            &TAILQ_NEXT((elm), field);                          \
+	else                                                            \
+	        (head)->tqh_last = &TAILQ_NEXT((elm), field);           \
+	TAILQ_FIRST((head)) = (elm);                                    \
+	(elm)->field.tqe_prev = &TAILQ_FIRST((head));                   \
+	QMD_TRACE_HEAD(head);                                           \
+	QMD_TRACE_ELEM(&(elm)->field);                                  \
+} while (0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do {                        \
+	TAILQ_NEXT((elm), field) = NULL;                                \
+	(elm)->field.tqe_prev = (head)->tqh_last;                       \
+	*(head)->tqh_last = (elm);                                      \
+	(head)->tqh_last = &TAILQ_NEXT((elm), field);                   \
+	QMD_TRACE_HEAD(head);                                           \
+	QMD_TRACE_ELEM(&(elm)->field);                                  \
+} while (0)
+
+#define TAILQ_LAST(head, headname)                                      \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+	(*(((struct headname *)((head)->tqh_last))->tqh_last))          \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+
+#define TAILQ_PREV(elm, headname, field)                                \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))     \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define TAILQ_REMOVE(head, elm, field) do {                             \
+	TAILQ_CHECK_NEXT(elm, field);                                   \
+	TAILQ_CHECK_PREV(elm, field);                                   \
+	if ((TAILQ_NEXT((elm), field)) != NULL)                         \
+	        TAILQ_NEXT((elm), field)->field.tqe_prev =              \
+	            (elm)->field.tqe_prev;                              \
+	else {                                                          \
+	        (head)->tqh_last = (elm)->field.tqe_prev;               \
+	        QMD_TRACE_HEAD(head);                                   \
+	}                                                               \
+	*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);              \
+	TRASHIT((elm)->field.tqe_next);                                 \
+	TRASHIT((elm)->field.tqe_prev);                                 \
+	QMD_TRACE_ELEM(&(elm)->field);                                  \
+} while (0)
+
+/*
+ * Why did they switch to spaces for this one macro?
+ */
+#define TAILQ_SWAP(head1, head2, type, field)                           \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+do {                                                                    \
+	struct type *swap_first = (head1)->tqh_first;                   \
+	struct type **swap_last = (head1)->tqh_last;                    \
+	(head1)->tqh_first = (head2)->tqh_first;                        \
+	(head1)->tqh_last = (head2)->tqh_last;                          \
+	(head2)->tqh_first = swap_first;                                \
+	(head2)->tqh_last = swap_last;                                  \
+	if ((swap_first = (head1)->tqh_first) != NULL)                  \
+	        swap_first->field.tqe_prev = &(head1)->tqh_first;       \
+	else                                                            \
+	        (head1)->tqh_last = &(head1)->tqh_first;                \
+	if ((swap_first = (head2)->tqh_first) != NULL)                  \
+	        swap_first->field.tqe_prev = &(head2)->tqh_first;       \
+	else                                                            \
+	        (head2)->tqh_last = &(head2)->tqh_first;                \
+} while (0)                                                             \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+/*
+ * Circular queue definitions.
+ */
+#define CIRCLEQ_HEAD(name, type)                                        \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct name {                                                           \
+	struct type *cqh_first;         /* first element */             \
+	struct type *cqh_last;          /* last element */              \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                          \
+__MISMATCH_TAGS_POP
+
+#define CIRCLEQ_ENTRY(type)                                             \
+__MISMATCH_TAGS_PUSH                                                    \
+__NULLABILITY_COMPLETENESS_PUSH                                         \
+struct {                                                                \
+	struct type *cqe_next;          /* next element */              \
+	struct type *cqe_prev;          /* previous element */          \
+}                                                                       \
+__NULLABILITY_COMPLETENESS_POP                                         \
+__MISMATCH_TAGS_POP
+
+/*
+ * Circular queue functions.
+ */
+#define CIRCLEQ_CHECK_HEAD(head, field)
+#define CIRCLEQ_CHECK_NEXT(head, elm, field)
+#define CIRCLEQ_CHECK_PREV(head, elm, field)
+
+#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
+
+#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
+
+#define CIRCLEQ_FOREACH(var, head, field)                               \
+	for((var) = (head)->cqh_first;                                  \
+	    (var) != (void *)(head);                                    \
+	    (var) = (var)->field.cqe_next)
+
+#define CIRCLEQ_INIT(head) do {                                         \
+	(head)->cqh_first = (void *)(head);                             \
+	(head)->cqh_last = (void *)(head);                              \
+} while (0)
+
+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {            \
+	CIRCLEQ_CHECK_NEXT(head, listelm, field);                       \
+	(elm)->field.cqe_next = (listelm)->field.cqe_next;              \
+	(elm)->field.cqe_prev = (listelm);                              \
+	if ((listelm)->field.cqe_next == (void *)(head))                \
+	        (head)->cqh_last = (elm);                               \
+	else                                                            \
+	        (listelm)->field.cqe_next->field.cqe_prev = (elm);      \
+	(listelm)->field.cqe_next = (elm);                              \
+} while (0)
+
+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {           \
+	CIRCLEQ_CHECK_PREV(head, listelm, field);                       \
+	(elm)->field.cqe_next = (listelm);                              \
+	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;              \
+	if ((listelm)->field.cqe_prev == (void *)(head))                \
+	        (head)->cqh_first = (elm);                              \
+	else                                                            \
+	        (listelm)->field.cqe_prev->field.cqe_next = (elm);      \
+	(listelm)->field.cqe_prev = (elm);                              \
+} while (0)
+
+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {                      \
+	CIRCLEQ_CHECK_HEAD(head, field);                                \
+	(elm)->field.cqe_next = (head)->cqh_first;                      \
+	(elm)->field.cqe_prev = (void *)(head);                         \
+	if ((head)->cqh_last == (void *)(head))                         \
+	        (head)->cqh_last = (elm);                               \
+	else                                                            \
+	        (head)->cqh_first->field.cqe_prev = (elm);              \
+	(head)->cqh_first = (elm);                                      \
+} while (0)
+
+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {                      \
+	(elm)->field.cqe_next = (void *)(head);                         \
+	(elm)->field.cqe_prev = (head)->cqh_last;                       \
+	if ((head)->cqh_first == (void *)(head))                        \
+	        (head)->cqh_first = (elm);                              \
+	else                                                            \
+	        (head)->cqh_last->field.cqe_next = (elm);               \
+	(head)->cqh_last = (elm);                                       \
+} while (0)
+
+#define CIRCLEQ_LAST(head) ((head)->cqh_last)
+
+#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
+
+#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
+
+#define CIRCLEQ_REMOVE(head, elm, field) do {                           \
+	CIRCLEQ_CHECK_NEXT(head, elm, field);                           \
+	CIRCLEQ_CHECK_PREV(head, elm, field);                           \
+	if ((elm)->field.cqe_next == (void *)(head))                    \
+	        (head)->cqh_last = (elm)->field.cqe_prev;               \
+	else                                                            \
+	        (elm)->field.cqe_next->field.cqe_prev =                 \
+	            (elm)->field.cqe_prev;                              \
+	if ((elm)->field.cqe_prev == (void *)(head))                    \
+	        (head)->cqh_first = (elm)->field.cqe_next;              \
+	else                                                            \
+	        (elm)->field.cqe_prev->field.cqe_next =                 \
+	            (elm)->field.cqe_next;                              \
+} while (0)
+
+#ifdef _KERNEL
+
+#if NOTFB31
+
+/*
+ * XXX insque() and remque() are an old way of handling certain queues.
+ * They bogusly assumes that all queue heads look alike.
+ */
+
+struct quehead {
+	struct quehead *qh_link;
+	struct quehead *qh_rlink;
+};
+
+#ifdef __GNUC__
+#define chkquenext(a)
+#define chkqueprev(a)
+
+static __inline void
+insque(void *a, void *b)
+{
+	struct quehead *element = (struct quehead *)a,
+	    *head = (struct quehead *)b;
+	chkquenext(head);
+
+	element->qh_link = head->qh_link;
+	element->qh_rlink = head;
+	head->qh_link = element;
+	element->qh_link->qh_rlink = element;
+}
+
+static __inline void
+remque(void *a)
+{
+	struct quehead *element = (struct quehead *)a;
+	chkquenext(element);
+	chkqueprev(element);
+
+	element->qh_link->qh_rlink = element->qh_rlink;
+	element->qh_rlink->qh_link = element->qh_link;
+	element->qh_rlink = 0;
+}
+
+#else /* !__GNUC__ */
+
+void    insque(void *a, void *b);
+void    remque(void *a);
+
+#endif /* __GNUC__ */
+
+#endif /* NOTFB31 */
+#endif /* _KERNEL */
+
+#endif /* !_SYS_QUEUE_H_ */
lib/libc/include/x86_64-macos-gnu/sys/select.h
@@ -0,0 +1,134 @@
+/*
+ * 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@
+ */
+/*
+ * Copyright (c) 1992, 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.
+ *
+ *	@(#)select.h	8.2 (Berkeley) 1/4/94
+ */
+
+#ifndef _SYS_SELECT_H_
+#define _SYS_SELECT_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/*
+ * [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+ * The timespec structure shall be defined as described in <time.h>
+ * The <sys/select.h> header shall define the timeval structure.
+ */
+#include <sys/_types/_fd_def.h>
+#include <sys/_types/_timespec.h>
+#include <sys/_types/_timeval.h>
+
+/*
+ * The time_t and suseconds_t types shall be defined as described in
+ * <sys/types.h>
+ * The sigset_t type shall be defined as described in <signal.h>
+ */
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_suseconds_t.h>
+#include <sys/_types/_sigset_t.h>
+
+/*
+ * [XSI] FD_CLR, FD_ISSET, FD_SET, FD_ZERO may be declared as a function, or
+ *	 defined as a macro, or both
+ * [XSI] FD_SETSIZE shall be defined as a macro
+ */
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#include <sys/_types/_fd_setsize.h>
+#include <sys/_types/_fd_set.h>
+#include <sys/_types/_fd_clr.h>
+#include <sys/_types/_fd_isset.h>
+#include <sys/_types/_fd_zero.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_fd_copy.h>
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+__BEGIN_DECLS
+
+#ifndef  __MWERKS__
+int      pselect(int, fd_set * __restrict, fd_set * __restrict,
+    fd_set * __restrict, const struct timespec * __restrict,
+    const sigset_t * __restrict)
+#if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT)
+__DARWIN_EXTSN_C(pselect)
+#else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */
+#  if defined(__LP64__) && !__DARWIN_NON_CANCELABLE
+__DARWIN_1050(pselect)
+#  else /* !__LP64__ || __DARWIN_NON_CANCELABLE */
+__DARWIN_ALIAS_C(pselect)
+#  endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */
+#endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */
+;
+#endif /* __MWERKS__ */
+
+#include <sys/_select.h>        /* select() prototype */
+
+__END_DECLS
+
+
+#endif /* !_SYS_SELECT_H_ */
lib/libc/include/x86_64-macos-gnu/sys/sem.h
@@ -0,0 +1,206 @@
+/*
+ * 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@
+ */
+/*	$NetBSD: sem.h,v 1.5 1994/06/29 06:45:15 cgd Exp $	*/
+
+/*
+ * SVID compatible sem.h file
+ *
+ * Author:  Daniel Boulet
+ * John Bellardo modified the implementation for Darwin. 12/2000
+ */
+
+#ifndef _SYS_SEM_H_
+#define _SYS_SEM_H_
+
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+#include <machine/types.h> /* __int32_t */
+
+/*
+ * [XSI]	All of the symbols from <sys/ipc.h> SHALL be defined
+ *		when this header is included
+ */
+#include <sys/ipc.h>
+
+
+/*
+ * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as
+ * described in <sys/types.h>.
+ *
+ * NOTE:	The definition of the key_t type is implicit from the
+ *		inclusion of <sys/ipc.h>
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_size_t.h>
+
+/*
+ * Technically, we should force all code references to the new structure
+ * definition, not in just the standards conformance case, and leave the
+ * legacy interface there for binary compatibility only.  Currently, we
+ * are only forcing this for programs requesting standards conformance.
+ */
+#if __DARWIN_UNIX03 || defined(KERNEL)
+#pragma pack(4)
+/*
+ * Structure used internally.
+ *
+ * This structure is exposed because standards dictate that it is used as
+ * the semun union member 'buf' as the fourth argment to semctl() when the
+ * third argument is IPC_STAT or IPC_SET.
+ *
+ * Note: only the fields sem_perm, sem_nsems, sem_otime, and sem_ctime
+ * are meaningful in user space.
+ */
+#if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE))
+struct semid_ds
+#else
+#define semid_ds        __semid_ds_new
+struct __semid_ds_new
+#endif
+{
+	struct __ipc_perm_new sem_perm; /* [XSI] operation permission struct */
+	__int32_t       sem_base;       /* 32 bit base ptr for semaphore set */
+	unsigned short  sem_nsems;      /* [XSI] number of sems in set */
+	time_t          sem_otime;      /* [XSI] last operation time */
+	__int32_t       sem_pad1;       /* RESERVED: DO NOT USE! */
+	time_t          sem_ctime;      /* [XSI] last change time */
+	                                /* Times measured in secs since */
+	                                /* 00:00:00 GMT, Jan. 1, 1970 */
+	__int32_t       sem_pad2;       /* RESERVED: DO NOT USE! */
+	__int32_t       sem_pad3[4];    /* RESERVED: DO NOT USE! */
+};
+#pragma pack()
+#else   /* !__DARWIN_UNIX03 */
+#define semid_ds        __semid_ds_old
+#endif  /* __DARWIN_UNIX03 */
+
+#if !__DARWIN_UNIX03
+struct __semid_ds_old {
+	struct __ipc_perm_old sem_perm; /* [XSI] operation permission struct */
+	__int32_t       sem_base;       /* 32 bit base ptr for semaphore set */
+	unsigned short  sem_nsems;      /* [XSI] number of sems in set */
+	time_t          sem_otime;      /* [XSI] last operation time */
+	__int32_t       sem_pad1;       /* RESERVED: DO NOT USE! */
+	time_t          sem_ctime;      /* [XSI] last change time */
+	                                /* Times measured in secs since */
+	                                /* 00:00:00 GMT, Jan. 1, 1970 */
+	__int32_t       sem_pad2;       /* RESERVED: DO NOT USE! */
+	__int32_t       sem_pad3[4];    /* RESERVED: DO NOT USE! */
+};
+#endif  /* !__DARWIN_UNIX03 */
+
+/*
+ * Possible values for the third argument to semctl()
+ */
+#define GETNCNT 3       /* [XSI] Return the value of semncnt {READ} */
+#define GETPID  4       /* [XSI] Return the value of sempid {READ} */
+#define GETVAL  5       /* [XSI] Return the value of semval {READ} */
+#define GETALL  6       /* [XSI] Return semvals into arg.array {READ} */
+#define GETZCNT 7       /* [XSI] Return the value of semzcnt {READ} */
+#define SETVAL  8       /* [XSI] Set the value of semval to arg.val {ALTER} */
+#define SETALL  9       /* [XSI] Set semvals from arg.array {ALTER} */
+
+
+/* A semaphore; this is an anonymous structure, not for external use */
+struct sem {
+	unsigned short  semval;         /* semaphore value */
+	pid_t           sempid;         /* pid of last operation */
+	unsigned short  semncnt;        /* # awaiting semval > cval */
+	unsigned short  semzcnt;        /* # awaiting semval == 0 */
+};
+
+
+/*
+ * Structure of array element for second argument to semop()
+ */
+struct sembuf {
+	unsigned short  sem_num;        /* [XSI] semaphore # */
+	short           sem_op;         /* [XSI] semaphore operation */
+	short           sem_flg;        /* [XSI] operation flags */
+};
+
+/*
+ * Possible flag values for sem_flg
+ */
+#define SEM_UNDO        010000          /* [XSI] Set up adjust on exit entry */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/*
+ * Union used as the fourth argment to semctl() in all cases.  Specific
+ * member values are used for different values of the third parameter:
+ *
+ * Command					Member
+ * -------------------------------------------	------
+ * GETALL, SETALL				array
+ * SETVAL					val
+ * IPC_STAT, IPC_SET				buf
+ *
+ * The union definition is intended to be defined by the user application
+ * in conforming applications; it is provided here for two reasons:
+ *
+ * 1)	Historical source compatability for non-conforming applications
+ *	expecting this header to declare the union type on their behalf
+ *
+ * 2)	Documentation; specifically, 64 bit applications that do not pass
+ *	this structure for 'val', or, alternately, a 64 bit type, will
+ *	not function correctly
+ */
+union semun {
+	int             val;            /* value for SETVAL */
+	struct semid_ds *buf;           /* buffer for IPC_STAT & IPC_SET */
+	unsigned short  *array;         /* array for GETALL & SETALL */
+};
+typedef union semun semun_t;
+
+
+/*
+ * Permissions
+ */
+#define SEM_A           0200    /* alter permission */
+#define SEM_R           0400    /* read permission */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+__BEGIN_DECLS
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     semsys(int, ...);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+int     semctl(int, int, int, ...) __DARWIN_ALIAS(semctl);
+int     semget(key_t, int, int);
+int     semop(int, struct sembuf *, size_t);
+__END_DECLS
+
+
+#endif /* !_SEM_H_ */
lib/libc/include/x86_64-macos-gnu/sys/semaphore.h
@@ -0,0 +1,64 @@
+/*
+ * 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@
+ */
+/*	@(#)semaphore.h	1.0	2/29/00		*/
+
+
+
+/*
+ * semaphore.h - POSIX semaphores
+ *
+ * HISTORY
+ * 29-Feb-00	A.Ramesh at Apple
+ *	Created for Mac OS X
+ */
+
+#ifndef _SYS_SEMAPHORE_H_
+#define _SYS_SEMAPHORE_H_
+
+typedef int sem_t;
+
+/* this should go in limits.h> */
+#define SEM_VALUE_MAX 32767
+#define SEM_FAILED ((sem_t *)-1)
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+int sem_close(sem_t *);
+int sem_destroy(sem_t *) __deprecated;
+int sem_getvalue(sem_t * __restrict, int * __restrict) __deprecated;
+int sem_init(sem_t *, int, unsigned int) __deprecated;
+sem_t * sem_open(const char *, int, ...);
+int sem_post(sem_t *);
+int sem_trywait(sem_t *);
+int sem_unlink(const char *);
+int sem_wait(sem_t *) __DARWIN_ALIAS_C(sem_wait);
+__END_DECLS
+
+
+#endif  /* _SYS_SEMAPHORE_H_ */
lib/libc/include/x86_64-macos-gnu/sys/shm.h
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*	$NetBSD: shm.h,v 1.15 1994/06/29 06:45:17 cgd Exp $	*/
+
+/*
+ * Copyright (c) 1994 Adam Glass
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Adam Glass.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * As defined+described in "X/Open System Interfaces and Headers"
+ *                         Issue 4, p. XXX
+ */
+
+#ifndef _SYS_SHM_H_
+#define _SYS_SHM_H_
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/*
+ * [XSI]	All of the symbols from <sys/ipc.h> SHALL be defined
+ *		when this header is included
+ */
+#include <sys/ipc.h>
+
+/*
+ * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as
+ * described in <sys/types.h>.
+ *
+ * NOTE:	The definition of the key_t type is implicit from the
+ *		inclusion of <sys/ipc.h>
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_size_t.h>
+
+/*
+ * [XSI] The unsigned integer type used for the number of current attaches
+ * that MUST be able to store values at least as large as a type unsigned
+ * short.
+ */
+typedef unsigned short  shmatt_t;
+
+
+/*
+ * Possible flag values which may be OR'ed into the third argument to
+ * shmat()
+ */
+#define SHM_RDONLY      010000  /* [XSI] Attach read-only (else read-write) */
+#define SHM_RND         020000  /* [XSI] Round attach address to SHMLBA */
+
+/*
+ * This value is symbolic, and generally not expected to be sed by user
+ * programs directly, although such ise is permitted by the standard.  Its
+ * value in our implementation is equal to the number of bytes per page.
+ *
+ * NOTE:	We DO NOT obtain this value from the appropriate system
+ *		headers at this time, to avoid the resulting namespace
+ *		pollution, which is why we discourages its use.
+ */
+#define SHMLBA      4096        /* [XSI] Segment low boundary address multiple*/
+
+/* "official" access mode definitions; somewhat braindead since you have
+ *  to specify (SHM_* >> 3) for group and (SHM_* >> 6) for world permissions */
+#define SHM_R       (IPC_R)
+#define SHM_W       (IPC_W)
+
+#pragma pack(4)
+
+/*
+ * Technically, we should force all code references to the new structure
+ * definition, not in just the standards conformance case, and leave the
+ * legacy interface there for binary compatibility only.  Currently, we
+ * are only forcing this for programs requesting standards conformance.
+ */
+#if __DARWIN_UNIX03 || defined(KERNEL)
+/*
+ * Structure used internally.
+ *
+ * This structure is exposed because standards dictate that it is used as
+ * the third argment to shmctl().
+ *
+ * NOTE:	The field shm_internal is not meaningful in user space,
+ *		and must not be used there.
+ */
+#if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE))
+struct shmid_ds
+#else
+#define shmid_ds        __shmid_ds_new
+struct __shmid_ds_new
+#endif
+{
+	struct __ipc_perm_new shm_perm; /* [XSI] Operation permission value */
+	size_t          shm_segsz;      /* [XSI] Size of segment in bytes */
+	pid_t           shm_lpid;       /* [XSI] PID of last shared memory op */
+	pid_t           shm_cpid;       /* [XSI] PID of creator */
+	shmatt_t        shm_nattch;     /* [XSI] Number of current attaches */
+	time_t          shm_atime;      /* [XSI] Time of last shmat() */
+	time_t          shm_dtime;      /* [XSI] Time of last shmdt() */
+	time_t          shm_ctime;      /* [XSI] Time of last shmctl() change */
+	void            *shm_internal;  /* reserved for kernel use */
+};
+#else   /* !__DARWIN_UNIX03 */
+#define shmid_ds        __shmid_ds_old
+#endif  /* !__DARWIN_UNIX03 */
+
+#if !__DARWIN_UNIX03
+struct __shmid_ds_old {
+	struct __ipc_perm_old shm_perm; /* [XSI] Operation permission value */
+	size_t          shm_segsz;      /* [XSI] Size of segment in bytes */
+	pid_t           shm_lpid;       /* [XSI] PID of last shared memory op */
+	pid_t           shm_cpid;       /* [XSI] PID of creator */
+	shmatt_t        shm_nattch;     /* [XSI] Number of current attaches */
+	time_t          shm_atime;      /* [XSI] Time of last shmat() */
+	time_t          shm_dtime;      /* [XSI] Time of last shmdt() */
+	time_t          shm_ctime;      /* [XSI] Time of last shmctl() change */
+	void            *shm_internal;  /* reserved for kernel use */
+};
+#endif  /* !__DARWIN_UNIX03 */
+
+#pragma pack()
+
+
+__BEGIN_DECLS
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     shmsys(int, ...);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+void    *shmat(int, const void *, int);
+int     shmctl(int, int, struct shmid_ds *) __DARWIN_ALIAS(shmctl);
+int     shmdt(const void *);
+int     shmget(key_t, size_t, int);
+__END_DECLS
+
+
+#endif /* !_SYS_SHM_H_ */
lib/libc/include/x86_64-macos-gnu/sys/socket.h
@@ -0,0 +1,732 @@
+/*
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)socket.h	8.4 (Berkeley) 2/21/94
+ * $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+#ifndef _SYS_SOCKET_H_
+#define _SYS_SOCKET_H_
+
+#include <sys/types.h>
+#include <sys/cdefs.h>
+#include <machine/_param.h>
+#include <net/net_kev.h>
+
+
+#include <Availability.h>
+
+/*
+ * Definitions related to sockets: types, address families, options.
+ */
+
+/*
+ * Data types.
+ */
+
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_sa_family_t.h>
+#include <sys/_types/_socklen_t.h>
+
+/* XXX Not explicitly defined by POSIX, but function return types are */
+#include <sys/_types/_size_t.h>
+
+/* XXX Not explicitly defined by POSIX, but function return types are */
+#include <sys/_types/_ssize_t.h>
+
+/*
+ * [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+ */
+#include <sys/_types/_iovec_t.h>
+
+/*
+ * Types
+ */
+#define SOCK_STREAM     1               /* stream socket */
+#define SOCK_DGRAM      2               /* datagram socket */
+#define SOCK_RAW        3               /* raw-protocol interface */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SOCK_RDM        4               /* reliably-delivered message */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define SOCK_SEQPACKET  5               /* sequenced packet stream */
+
+/*
+ * Option flags per-socket.
+ */
+#define SO_DEBUG        0x0001          /* turn on debugging info recording */
+#define SO_ACCEPTCONN   0x0002          /* socket has had listen() */
+#define SO_REUSEADDR    0x0004          /* allow local address reuse */
+#define SO_KEEPALIVE    0x0008          /* keep connections alive */
+#define SO_DONTROUTE    0x0010          /* just use interface addresses */
+#define SO_BROADCAST    0x0020          /* permit sending of broadcast msgs */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_USELOOPBACK  0x0040          /* bypass hardware when possible */
+#define SO_LINGER       0x0080          /* linger on close if data present (in ticks) */
+#else
+#define SO_LINGER       0x1080          /* linger on close if data present (in seconds) */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define SO_OOBINLINE    0x0100          /* leave received OOB data in line */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_REUSEPORT    0x0200          /* allow local address & port reuse */
+#define SO_TIMESTAMP    0x0400          /* timestamp received dgram traffic */
+#define SO_TIMESTAMP_MONOTONIC  0x0800  /* Monotonically increasing timestamp on rcvd dgram */
+#ifndef __APPLE__
+#define SO_ACCEPTFILTER 0x1000          /* there is an accept filter */
+#else
+#define SO_DONTTRUNC    0x2000          /* APPLE: Retain unread data */
+                                        /*  (ATOMIC proto) */
+#define SO_WANTMORE     0x4000          /* APPLE: Give hint when more data ready */
+#define SO_WANTOOBFLAG  0x8000          /* APPLE: Want OOB in MSG_FLAG on receive */
+
+
+#endif  /* (!__APPLE__) */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Additional options, not kept in so_options.
+ */
+#define SO_SNDBUF       0x1001          /* send buffer size */
+#define SO_RCVBUF       0x1002          /* receive buffer size */
+#define SO_SNDLOWAT     0x1003          /* send low-water mark */
+#define SO_RCVLOWAT     0x1004          /* receive low-water mark */
+#define SO_SNDTIMEO     0x1005          /* send timeout */
+#define SO_RCVTIMEO     0x1006          /* receive timeout */
+#define SO_ERROR        0x1007          /* get error status and clear */
+#define SO_TYPE         0x1008          /* get socket type */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_LABEL        0x1010          /* socket's MAC label */
+#define SO_PEERLABEL    0x1011          /* socket's peer MAC label */
+#ifdef __APPLE__
+#define SO_NREAD        0x1020          /* APPLE: get 1st-packet byte count */
+#define SO_NKE          0x1021          /* APPLE: Install socket-level NKE */
+#define SO_NOSIGPIPE    0x1022          /* APPLE: No SIGPIPE on EPIPE */
+#define SO_NOADDRERR    0x1023          /* APPLE: Returns EADDRNOTAVAIL when src is not available anymore */
+#define SO_NWRITE       0x1024          /* APPLE: Get number of bytes currently in send socket buffer */
+#define SO_REUSESHAREUID        0x1025          /* APPLE: Allow reuse of port/socket by different userids */
+#ifdef __APPLE_API_PRIVATE
+#define SO_NOTIFYCONFLICT       0x1026  /* APPLE: send notification if there is a bind on a port which is already in use */
+#define SO_UPCALLCLOSEWAIT      0x1027  /* APPLE: block on close until an upcall returns */
+#endif
+#define SO_LINGER_SEC   0x1080          /* linger on close if data present (in seconds) */
+#define SO_RANDOMPORT   0x1082  /* APPLE: request local port randomization */
+#define SO_NP_EXTENSIONS        0x1083  /* To turn off some POSIX behavior */
+#endif
+
+#define SO_NUMRCVPKT            0x1112  /* number of datagrams in receive socket buffer */
+#define SO_NET_SERVICE_TYPE     0x1116  /* Network service type */
+
+
+#define SO_NETSVC_MARKING_LEVEL 0x1119  /* Get QoS marking in effect for socket */
+
+/*
+ * Network Service Type for option SO_NET_SERVICE_TYPE
+ *
+ * The vast majority of sockets should use Best Effort that is the default
+ * Network Service Type. Other Network Service Types have to be used only if
+ * the traffic actually matches the description of the Network Service Type.
+ *
+ * Network Service Types do not represent priorities but rather describe
+ * different categories of delay, jitter and loss parameters.
+ * Those parameters may influence protocols from layer 4 protocols like TCP
+ * to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+ * how the traffic is queued and scheduled by the host networking stack and
+ * by other entities on the network like switches and routers. For example
+ * for Wi-Fi, the Network Service Type can select the marking of the
+ * layer 2 packet with the appropriate WMM Access Category.
+ *
+ * There is no point in attempting to game the system and use
+ * a Network Service Type that does not correspond to the actual
+ * traffic characteristic but one that seems to have a higher precedence.
+ * The reason is that for service classes that have lower tolerance
+ * for delay and jitter, the queues size is lower than for service
+ * classes that are more tolerant to delay and jitter.
+ *
+ * For example using a voice service type for bulk data transfer will lead
+ * to disastrous results as soon as congestion happens because the voice
+ * queue overflows and packets get dropped. This is not only bad for the bulk
+ * data transfer but it is also bad for VoIP apps that legitimately are using
+ * the voice  service type.
+ *
+ * The characteristics of the Network Service Types are based on the service
+ * classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+ * Classes"
+ *
+ * When system detects the outgoing interface belongs to a DiffServ domain
+ * that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+ * IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+ * that corresponds to Network Service Type.
+ *
+ * NET_SERVICE_TYPE_BE
+ *	"Best Effort", unclassified/standard.  This is the default service
+ *	class and cover the majority of the traffic.
+ *
+ * NET_SERVICE_TYPE_BK
+ *	"Background", high delay tolerant, loss tolerant. elastic flow,
+ *	variable size & long-lived. E.g: non-interactive network bulk transfer
+ *	like synching or backup.
+ *
+ * NET_SERVICE_TYPE_RD
+ *	"Responsive Data", a notch higher than "Best Effort", medium delay
+ *	tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+ *	instant messaging, for which there is a sense of interactivity and
+ *	urgency (user waiting for output).
+ *
+ * NET_SERVICE_TYPE_OAM
+ *	"Operations, Administration, and Management", medium delay tolerant,
+ *	low-medium loss tolerant, elastic & inelastic flows, variable size.
+ *	E.g. VPN tunnels.
+ *
+ * NET_SERVICE_TYPE_AV
+ *	"Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+ *	loss tolerant, elastic flow, constant packet interval, variable rate
+ *	and size. E.g. video and audio playback with buffering.
+ *
+ * NET_SERVICE_TYPE_RV
+ *	"Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+ *	loss tolerant, elastic flow, variable packet interval, rate and size.
+ *	E.g. screen sharing.
+ *
+ * NET_SERVICE_TYPE_VI
+ *	"Interactive Video", low delay tolerant, low-medium loss tolerant,
+ *	elastic flow, constant packet interval, variable rate & size. E.g.
+ *	video telephony.
+ *
+ * NET_SERVICE_TYPE_SIG
+ *	"Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+ *	jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+ *
+ * NET_SERVICE_TYPE_VO
+ *	"Interactive Voice", very low delay tolerant, very low loss tolerant,
+ *	inelastic flow, constant packet rate, somewhat fixed size.
+ *	E.g. VoIP.
+ */
+
+#define NET_SERVICE_TYPE_BE     0 /* Best effort */
+#define NET_SERVICE_TYPE_BK     1 /* Background system initiated */
+#define NET_SERVICE_TYPE_SIG    2 /* Signaling */
+#define NET_SERVICE_TYPE_VI     3 /* Interactive Video */
+#define NET_SERVICE_TYPE_VO     4 /* Interactive Voice */
+#define NET_SERVICE_TYPE_RV     5 /* Responsive Multimedia Audio/Video */
+#define NET_SERVICE_TYPE_AV     6 /* Multimedia Audio/Video Streaming */
+#define NET_SERVICE_TYPE_OAM    7 /* Operations, Administration, and Management */
+#define NET_SERVICE_TYPE_RD     8 /* Responsive Data */
+
+
+/* These are supported values for SO_NETSVC_MARKING_LEVEL */
+#define NETSVC_MRKNG_UNKNOWN            0       /* The outgoing network interface is not known */
+#define NETSVC_MRKNG_LVL_L2             1       /* Default marking at layer 2 (for example Wi-Fi WMM) */
+#define NETSVC_MRKNG_LVL_L3L2_ALL       2       /* Layer 3 DSCP marking and layer 2 marking for all Network Service Types */
+#define NETSVC_MRKNG_LVL_L3L2_BK        3       /* The system policy limits layer 3 DSCP marking and layer 2 marking
+	                                         * to background Network Service Types */
+
+
+typedef __uint32_t sae_associd_t;
+#define SAE_ASSOCID_ANY 0
+#define SAE_ASSOCID_ALL ((sae_associd_t)(-1ULL))
+
+typedef __uint32_t sae_connid_t;
+#define SAE_CONNID_ANY  0
+#define SAE_CONNID_ALL  ((sae_connid_t)(-1ULL))
+
+/* connectx() flag parameters */
+#define CONNECT_RESUME_ON_READ_WRITE    0x1 /* resume connect() on read/write */
+#define CONNECT_DATA_IDEMPOTENT         0x2 /* data is idempotent */
+#define CONNECT_DATA_AUTHENTICATED      0x4 /* data includes security that replaces the TFO-cookie */
+
+/* sockaddr endpoints */
+typedef struct sa_endpoints {
+	unsigned int            sae_srcif;      /* optional source interface */
+	const struct sockaddr   *sae_srcaddr;   /* optional source address */
+	socklen_t               sae_srcaddrlen; /* size of source address */
+	const struct sockaddr   *sae_dstaddr;   /* destination address */
+	socklen_t               sae_dstaddrlen; /* size of destination address */
+} sa_endpoints_t;
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Structure used for manipulating linger option.
+ */
+struct  linger {
+	int     l_onoff;                /* option on/off */
+	int     l_linger;               /* linger time */
+};
+
+#ifndef __APPLE__
+struct  accept_filter_arg {
+	char    af_name[16];
+	char    af_arg[256 - 16];
+};
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifdef __APPLE__
+
+/*
+ * Structure to control non-portable Sockets extension to POSIX
+ */
+struct so_np_extensions {
+	u_int32_t       npx_flags;
+	u_int32_t       npx_mask;
+};
+
+#define SONPX_SETOPTSHUT        0x000000001     /* flag for allowing setsockopt after shutdown */
+
+
+
+#endif
+#endif
+
+/*
+ * Level number for (get/set)sockopt() to apply to socket itself.
+ */
+#define SOL_SOCKET      0xffff          /* options for socket level */
+
+
+/*
+ * Address families.
+ */
+#define AF_UNSPEC       0               /* unspecified */
+#define AF_UNIX         1               /* local to host (pipes) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_LOCAL        AF_UNIX         /* backward compatibility */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define AF_INET         2               /* internetwork: UDP, TCP, etc. */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_IMPLINK      3               /* arpanet imp addresses */
+#define AF_PUP          4               /* pup protocols: e.g. BSP */
+#define AF_CHAOS        5               /* mit CHAOS protocols */
+#define AF_NS           6               /* XEROX NS protocols */
+#define AF_ISO          7               /* ISO protocols */
+#define AF_OSI          AF_ISO
+#define AF_ECMA         8               /* European computer manufacturers */
+#define AF_DATAKIT      9               /* datakit protocols */
+#define AF_CCITT        10              /* CCITT protocols, X.25 etc */
+#define AF_SNA          11              /* IBM SNA */
+#define AF_DECnet       12              /* DECnet */
+#define AF_DLI          13              /* DEC Direct data link interface */
+#define AF_LAT          14              /* LAT */
+#define AF_HYLINK       15              /* NSC Hyperchannel */
+#define AF_APPLETALK    16              /* Apple Talk */
+#define AF_ROUTE        17              /* Internal Routing Protocol */
+#define AF_LINK         18              /* Link layer interface */
+#define pseudo_AF_XTP   19              /* eXpress Transfer Protocol (no AF) */
+#define AF_COIP         20              /* connection-oriented IP, aka ST II */
+#define AF_CNT          21              /* Computer Network Technology */
+#define pseudo_AF_RTIP  22              /* Help Identify RTIP packets */
+#define AF_IPX          23              /* Novell Internet Protocol */
+#define AF_SIP          24              /* Simple Internet Protocol */
+#define pseudo_AF_PIP   25              /* Help Identify PIP packets */
+#define AF_NDRV         27              /* Network Driver 'raw' access */
+#define AF_ISDN         28              /* Integrated Services Digital Network */
+#define AF_E164         AF_ISDN         /* CCITT E.164 recommendation */
+#define pseudo_AF_KEY   29              /* Internal key-management function */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define AF_INET6        30              /* IPv6 */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_NATM         31              /* native ATM access */
+#define AF_SYSTEM       32              /* Kernel event messages */
+#define AF_NETBIOS      33              /* NetBIOS */
+#define AF_PPP          34              /* PPP communication protocol */
+#define pseudo_AF_HDRCMPLT 35           /* Used by BPF to not rewrite headers
+	                                 *  in interface output routine */
+#define AF_RESERVED_36  36              /* Reserved for internal usage */
+#define AF_IEEE80211    37              /* IEEE 802.11 protocol */
+#define AF_UTUN         38
+#define AF_MAX          40
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * [XSI] Structure used by kernel to store most addresses.
+ */
+struct sockaddr {
+	__uint8_t       sa_len;         /* total length */
+	sa_family_t     sa_family;      /* [XSI] address family */
+	char            sa_data[14];    /* [XSI] addr value (actually larger) */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SOCK_MAXADDRLEN 255             /* longest possible addresses */
+
+/*
+ * Structure used by kernel to pass protocol
+ * information in raw sockets.
+ */
+struct sockproto {
+	__uint16_t      sp_family;              /* address family */
+	__uint16_t      sp_protocol;            /* protocol */
+};
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * RFC 2553: protocol-independent placeholder for socket addresses
+ */
+#define _SS_MAXSIZE     128
+#define _SS_ALIGNSIZE   (sizeof(__int64_t))
+#define _SS_PAD1SIZE    \
+	        (_SS_ALIGNSIZE - sizeof(__uint8_t) - sizeof(sa_family_t))
+#define _SS_PAD2SIZE    \
+	        (_SS_MAXSIZE - sizeof(__uint8_t) - sizeof(sa_family_t) - \
+	                        _SS_PAD1SIZE - _SS_ALIGNSIZE)
+
+/*
+ * [XSI] sockaddr_storage
+ */
+struct sockaddr_storage {
+	__uint8_t       ss_len;         /* address length */
+	sa_family_t     ss_family;      /* [XSI] address family */
+	char                    __ss_pad1[_SS_PAD1SIZE];
+	__int64_t       __ss_align;     /* force structure storage alignment */
+	char                    __ss_pad2[_SS_PAD2SIZE];
+};
+
+/*
+ * Protocol families, same as address families for now.
+ */
+#define PF_UNSPEC       AF_UNSPEC
+#define PF_LOCAL        AF_LOCAL
+#define PF_UNIX         PF_LOCAL        /* backward compatibility */
+#define PF_INET         AF_INET
+#define PF_IMPLINK      AF_IMPLINK
+#define PF_PUP          AF_PUP
+#define PF_CHAOS        AF_CHAOS
+#define PF_NS           AF_NS
+#define PF_ISO          AF_ISO
+#define PF_OSI          AF_ISO
+#define PF_ECMA         AF_ECMA
+#define PF_DATAKIT      AF_DATAKIT
+#define PF_CCITT        AF_CCITT
+#define PF_SNA          AF_SNA
+#define PF_DECnet       AF_DECnet
+#define PF_DLI          AF_DLI
+#define PF_LAT          AF_LAT
+#define PF_HYLINK       AF_HYLINK
+#define PF_APPLETALK    AF_APPLETALK
+#define PF_ROUTE        AF_ROUTE
+#define PF_LINK         AF_LINK
+#define PF_XTP          pseudo_AF_XTP   /* really just proto family, no AF */
+#define PF_COIP         AF_COIP
+#define PF_CNT          AF_CNT
+#define PF_SIP          AF_SIP
+#define PF_IPX          AF_IPX          /* same format as AF_NS */
+#define PF_RTIP         pseudo_AF_RTIP  /* same format as AF_INET */
+#define PF_PIP          pseudo_AF_PIP
+#define PF_NDRV         AF_NDRV
+#define PF_ISDN         AF_ISDN
+#define PF_KEY          pseudo_AF_KEY
+#define PF_INET6        AF_INET6
+#define PF_NATM         AF_NATM
+#define PF_SYSTEM       AF_SYSTEM
+#define PF_NETBIOS      AF_NETBIOS
+#define PF_PPP          AF_PPP
+#define PF_RESERVED_36  AF_RESERVED_36
+#define PF_UTUN         AF_UTUN
+#define PF_MAX          AF_MAX
+
+/*
+ * These do not have socket-layer support:
+ */
+#define PF_VLAN         ((uint32_t)0x766c616e)  /* 'vlan' */
+#define PF_BOND         ((uint32_t)0x626f6e64)  /* 'bond' */
+
+/*
+ * Definitions for network related sysctl, CTL_NET.
+ *
+ * Second level is protocol family.
+ * Third level is protocol number.
+ *
+ * Further levels are defined by the individual families below.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define NET_MAXID       AF_MAX
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * PF_ROUTE - Routing table
+ *
+ * Three additional levels are defined:
+ *	Fourth: address family, 0 is wildcard
+ *	Fifth: type of info, defined below
+ *	Sixth: flag(s) to mask with for NET_RT_FLAGS
+ */
+#define NET_RT_DUMP             1       /* dump; may limit to a.f. */
+#define NET_RT_FLAGS            2       /* by flags, e.g. RESOLVING */
+#define NET_RT_IFLIST           3       /* survey interface list */
+#define NET_RT_STAT             4       /* routing statistics */
+#define NET_RT_TRASH            5       /* routes not in table but not freed */
+#define NET_RT_IFLIST2          6       /* interface list with addresses */
+#define NET_RT_DUMP2            7       /* dump; may limit to a.f. */
+/*
+ * Allows read access non-local host's MAC address
+ * if the process has neighbor cache entitlement.
+ */
+#define NET_RT_FLAGS_PRIV       10
+#define NET_RT_MAXID            11
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+
+
+/*
+ * Maximum queue length specifiable by listen.
+ */
+#define SOMAXCONN       128
+
+/*
+ * [XSI] Message header for recvmsg and sendmsg calls.
+ * Used value-result for recvmsg, value only for sendmsg.
+ */
+struct msghdr {
+	void            *msg_name;      /* [XSI] optional address */
+	socklen_t       msg_namelen;    /* [XSI] size of address */
+	struct          iovec *msg_iov; /* [XSI] scatter/gather array */
+	int             msg_iovlen;     /* [XSI] # elements in msg_iov */
+	void            *msg_control;   /* [XSI] ancillary data, see below */
+	socklen_t       msg_controllen; /* [XSI] ancillary data buffer len */
+	int             msg_flags;      /* [XSI] flags on received message */
+};
+
+
+
+#define MSG_OOB         0x1             /* process out-of-band data */
+#define MSG_PEEK        0x2             /* peek at incoming message */
+#define MSG_DONTROUTE   0x4             /* send without using routing tables */
+#define MSG_EOR         0x8             /* data completes record */
+#define MSG_TRUNC       0x10            /* data discarded before delivery */
+#define MSG_CTRUNC      0x20            /* control data lost before delivery */
+#define MSG_WAITALL     0x40            /* wait for full request or error */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MSG_DONTWAIT    0x80            /* this message should be nonblocking */
+#define MSG_EOF         0x100           /* data completes connection */
+#ifdef __APPLE__
+#ifdef __APPLE_API_OBSOLETE
+#define MSG_WAITSTREAM  0x200           /* wait up to full request.. may return partial */
+#endif
+#define MSG_FLUSH       0x400           /* Start of 'hold' seq; dump so_temp, deprecated */
+#define MSG_HOLD        0x800           /* Hold frag in so_temp, deprecated */
+#define MSG_SEND        0x1000          /* Send the packet in so_temp, deprecated */
+#define MSG_HAVEMORE    0x2000          /* Data ready to be read */
+#define MSG_RCVMORE     0x4000          /* Data remains in current pkt */
+#endif
+#define MSG_NEEDSA      0x10000         /* Fail receive if socket address cannot be allocated */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Header for ancillary data objects in msg_control buffer.
+ * Used for additional information with/about a datagram
+ * not expressible by flags.  The format is a sequence
+ * of message elements headed by cmsghdr structures.
+ */
+struct cmsghdr {
+	socklen_t       cmsg_len;       /* [XSI] data byte count, including hdr */
+	int             cmsg_level;     /* [XSI] originating protocol */
+	int             cmsg_type;      /* [XSI] protocol-specific type */
+/* followed by	unsigned char  cmsg_data[]; */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifndef __APPLE__
+/*
+ * While we may have more groups than this, the cmsgcred struct must
+ * be able to fit in an mbuf, and NGROUPS_MAX is too large to allow
+ * this.
+ */
+#define CMGROUP_MAX 16
+
+/*
+ * Credentials structure, used to verify the identity of a peer
+ * process that has sent us a message. This is allocated by the
+ * peer process but filled in by the kernel. This prevents the
+ * peer from lying about its identity. (Note that cmcred_groups[0]
+ * is the effective GID.)
+ */
+struct cmsgcred {
+	pid_t   cmcred_pid;             /* PID of sending process */
+	uid_t   cmcred_uid;             /* real UID of sending process */
+	uid_t   cmcred_euid;            /* effective UID of sending process */
+	gid_t   cmcred_gid;             /* real GID of sending process */
+	short   cmcred_ngroups;         /* number or groups */
+	gid_t   cmcred_groups[CMGROUP_MAX];     /* groups */
+};
+#endif
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* given pointer to struct cmsghdr, return pointer to data */
+#define CMSG_DATA(cmsg)         ((unsigned char *)(cmsg) + \
+	__DARWIN_ALIGN32(sizeof(struct cmsghdr)))
+
+/*
+ * RFC 2292 requires to check msg_controllen, in case that the kernel returns
+ * an empty list for some reasons.
+ */
+#define CMSG_FIRSTHDR(mhdr) \
+	((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \
+	    (struct cmsghdr *)(mhdr)->msg_control : \
+	    (struct cmsghdr *)0L)
+
+
+/*
+ * Given pointer to struct cmsghdr, return pointer to next cmsghdr
+ * RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+ */
+#define CMSG_NXTHDR(mhdr, cmsg)                                         \
+	((char *)(cmsg) == (char *)0L ? CMSG_FIRSTHDR(mhdr) :           \
+	    ((((unsigned char *)(cmsg) +                                \
+	    __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len) +            \
+	    __DARWIN_ALIGN32(sizeof(struct cmsghdr))) >                 \
+	    ((unsigned char *)(mhdr)->msg_control +                     \
+	    (mhdr)->msg_controllen)) ?                                  \
+	        (struct cmsghdr *)0L /* NULL */ :                       \
+	        (struct cmsghdr *)(void *)((unsigned char *)(cmsg) +    \
+	            __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len))))
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* RFC 2292 additions */
+#define CMSG_SPACE(l)           (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + __DARWIN_ALIGN32(l))
+#define CMSG_LEN(l)             (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l))
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* "Socket"-level control message types: */
+#define SCM_RIGHTS                      0x01    /* access rights (array of int) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SCM_TIMESTAMP                   0x02    /* timestamp (struct timeval) */
+#define SCM_CREDS                       0x03    /* process creds (struct cmsgcred) */
+#define SCM_TIMESTAMP_MONOTONIC         0x04    /* timestamp (uint64_t) */
+
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * howto arguments for shutdown(2), specified by Posix.1g.
+ */
+#define SHUT_RD         0               /* shut down the reading side */
+#define SHUT_WR         1               /* shut down the writing side */
+#define SHUT_RDWR       2               /* shut down both sides */
+
+#if !defined(_POSIX_C_SOURCE)
+/*
+ * sendfile(2) header/trailer struct
+ */
+struct sf_hdtr {
+	struct iovec *headers;  /* pointer to an array of header struct iovec's */
+	int hdr_cnt;            /* number of header iovec's */
+	struct iovec *trailers; /* pointer to an array of trailer struct iovec's */
+	int trl_cnt;            /* number of trailer iovec's */
+};
+
+
+#endif  /* !_POSIX_C_SOURCE */
+
+
+__BEGIN_DECLS
+
+int     accept(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS_C(accept);
+int     bind(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS(bind);
+int     connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect);
+int     getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS(getpeername);
+int     getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS(getsockname);
+int     getsockopt(int, int, int, void * __restrict, socklen_t * __restrict);
+int     listen(int, int) __DARWIN_ALIAS(listen);
+ssize_t recv(int, void *, size_t, int) __DARWIN_ALIAS_C(recv);
+ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict,
+    socklen_t * __restrict) __DARWIN_ALIAS_C(recvfrom);
+ssize_t recvmsg(int, struct msghdr *, int) __DARWIN_ALIAS_C(recvmsg);
+ssize_t send(int, const void *, size_t, int) __DARWIN_ALIAS_C(send);
+ssize_t sendmsg(int, const struct msghdr *, int) __DARWIN_ALIAS_C(sendmsg);
+ssize_t sendto(int, const void *, size_t,
+    int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(sendto);
+int     setsockopt(int, int, int, const void *, socklen_t);
+int     shutdown(int, int);
+int     sockatmark(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     socket(int, int, int);
+int     socketpair(int, int, int, int *) __DARWIN_ALIAS(socketpair);
+
+#if !defined(_POSIX_C_SOURCE)
+int     sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int);
+#endif  /* !_POSIX_C_SOURCE */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void    pfctlinput(int, struct sockaddr *);
+
+__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+int connectx(int, const sa_endpoints_t *, sae_associd_t, unsigned int,
+    const struct iovec *, unsigned int, size_t *, sae_connid_t *);
+
+__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+int disconnectx(int, sae_associd_t, sae_connid_t);
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+
+#endif /* !_SYS_SOCKET_H_ */
lib/libc/include/x86_64-macos-gnu/sys/spawn.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+/*
+ * [SPN] Support for _POSIX_SPAWN
+ *
+ * This header contains information that is shared between the user space
+ * and kernel versions of the posix_spawn() code.  Shared elements are all
+ * manifest constants, at the current time.
+ */
+
+#ifndef _SYS_SPAWN_H_
+#define _SYS_SPAWN_H_
+
+/*
+ * Possible bit values which may be OR'ed together and provided as the second
+ * parameter to posix_spawnattr_setflags() or implicit returned in the value of
+ * the second parameter to posix_spawnattr_getflags().
+ */
+#define POSIX_SPAWN_RESETIDS            0x0001  /* [SPN] R[UG]ID not E[UG]ID */
+#define POSIX_SPAWN_SETPGROUP           0x0002  /* [SPN] set non-parent PGID */
+#define POSIX_SPAWN_SETSIGDEF           0x0004  /* [SPN] reset sigset default */
+#define POSIX_SPAWN_SETSIGMASK          0x0008  /* [SPN] set signal mask */
+
+#if 0   /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
+#define POSIX_SPAWN_SETSCHEDPARAM       0x0010
+#define POSIX_SPAWN_SETSCHEDULER        0x0020
+#endif  /* 0 */
+
+#if     !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Darwin-specific flags
+ */
+#define POSIX_SPAWN_SETEXEC             0x0040
+#define POSIX_SPAWN_START_SUSPENDED     0x0080
+#define POSIX_SPAWN_SETSID              0x0400
+#define POSIX_SPAWN_CLOEXEC_DEFAULT     0x4000
+
+/*
+ * Possible values to be set for the process control actions on resource starvation.
+ * POSIX_SPAWN_PCONTROL_THROTTLE indicates that the process is to be throttled on starvation.
+ * POSIX_SPAWN_PCONTROL_SUSPEND indicates that the process is to be suspended on starvation.
+ * POSIX_SPAWN_PCONTROL_KILL indicates that the process is to be terminated  on starvation.
+ */
+#define POSIX_SPAWN_PCONTROL_NONE       0x0000
+#define POSIX_SPAWN_PCONTROL_THROTTLE   0x0001
+#define POSIX_SPAWN_PCONTROL_SUSPEND    0x0002
+#define POSIX_SPAWN_PCONTROL_KILL       0x0003
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+#endif  /* _SYS_SPAWN_H_ */
lib/libc/include/x86_64-macos-gnu/sys/stat.h
@@ -0,0 +1,430 @@
+/*
+ * Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)stat.h	8.9 (Berkeley) 8/17/94
+ */
+
+
+#ifndef _SYS_STAT_H_
+#define _SYS_STAT_H_
+
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+/* [XSI] The timespec structure may be defined as described in <time.h> */
+#include <sys/_types/_timespec.h>
+
+/*
+ * [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+ * gid_t, off_t, and time_t types shall be defined as described in
+ * <sys/types.h>.
+ */
+#include <sys/_types/_blkcnt_t.h>
+#include <sys/_types/_blksize_t.h>
+#include <sys/_types/_dev_t.h>                  /* device number */
+#include <sys/_types/_ino_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_ino64_t.h>
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_nlink_t.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_time_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * XXX So deprecated, it would make your head spin
+ *
+ * The old stat structure.  In fact, this is not used by the kernel at all,
+ * and should not be used by user space, and should be removed from this
+ * header file entirely (along with the unused cvtstat() prototype in
+ * vnode_internal.h).
+ */
+struct ostat {
+	__uint16_t      st_dev;         /* inode's device */
+	ino_t           st_ino;         /* inode's number */
+	mode_t          st_mode;        /* inode protection mode */
+	nlink_t         st_nlink;       /* number of hard links */
+	__uint16_t      st_uid;         /* user ID of the file's owner */
+	__uint16_t      st_gid;         /* group ID of the file's group */
+	__uint16_t      st_rdev;        /* device type */
+	__int32_t       st_size;        /* file size, in bytes */
+	struct  timespec st_atimespec;  /* time of last access */
+	struct  timespec st_mtimespec;  /* time of last data modification */
+	struct  timespec st_ctimespec;  /* time of last file status change */
+	__int32_t       st_blksize;     /* optimal blocksize for I/O */
+	__int32_t       st_blocks;      /* blocks allocated for file */
+	__uint32_t      st_flags;       /* user defined flags for file */
+	__uint32_t      st_gen;         /* file generation number */
+};
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+	struct timespec st_atimespec;           /* time of last access */ \
+	struct timespec st_mtimespec;           /* time of last data modification */ \
+	struct timespec st_ctimespec;           /* time of last status change */ \
+	struct timespec st_birthtimespec;       /* time of file creation(birth) */
+
+#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+	time_t		st_atime;               /* [XSI] Time of last access */ \
+	long		st_atimensec;           /* nsec of last access */ \
+	time_t		st_mtime;               /* [XSI] Last data modification time */ \
+	long		st_mtimensec;           /* last data modification nsec */ \
+	time_t		st_ctime;               /* [XSI] Time of last status change */ \
+	long		st_ctimensec;           /* nsec of last status change */ \
+	time_t		st_birthtime;           /*  File creation time(birth)  */ \
+	long		st_birthtimensec;       /* nsec of File creation time */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * This structure is used as the second parameter to the fstat64(),
+ * lstat64(), and stat64() functions, and for struct stat when
+ * __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+ * above, depending on whether we use struct timespec or the direct
+ * components.
+ *
+ * This is simillar to stat except for 64bit inode number
+ * number instead of 32bit ino_t and the addition of create(birth) time.
+ */
+#define __DARWIN_STRUCT_STAT64 { \
+	dev_t		st_dev;                 /* [XSI] ID of device containing file */ \
+	mode_t		st_mode;                /* [XSI] Mode of file (see below) */ \
+	nlink_t		st_nlink;               /* [XSI] Number of hard links */ \
+	__darwin_ino64_t st_ino;                /* [XSI] File serial number */ \
+	uid_t		st_uid;                 /* [XSI] User ID of the file */ \
+	gid_t		st_gid;                 /* [XSI] Group ID of the file */ \
+	dev_t		st_rdev;                /* [XSI] Device ID */ \
+	__DARWIN_STRUCT_STAT64_TIMES \
+	off_t		st_size;                /* [XSI] file size, in bytes */ \
+	blkcnt_t	st_blocks;              /* [XSI] blocks allocated for file */ \
+	blksize_t	st_blksize;             /* [XSI] optimal blocksize for I/O */ \
+	__uint32_t	st_flags;               /* user defined flags for file */ \
+	__uint32_t	st_gen;                 /* file generation number */ \
+	__int32_t	st_lspare;              /* RESERVED: DO NOT USE! */ \
+	__int64_t	st_qspare[2];           /* RESERVED: DO NOT USE! */ \
+}
+
+/*
+ * [XSI] This structure is used as the second parameter to the fstat(),
+ * lstat(), and stat() functions.
+ */
+#if __DARWIN_64_BIT_INO_T
+
+struct stat __DARWIN_STRUCT_STAT64;
+
+#else /* !__DARWIN_64_BIT_INO_T */
+
+struct stat {
+	dev_t           st_dev;         /* [XSI] ID of device containing file */
+	ino_t           st_ino;         /* [XSI] File serial number */
+	mode_t          st_mode;        /* [XSI] Mode of file (see below) */
+	nlink_t         st_nlink;       /* [XSI] Number of hard links */
+	uid_t           st_uid;         /* [XSI] User ID of the file */
+	gid_t           st_gid;         /* [XSI] Group ID of the file */
+	dev_t           st_rdev;        /* [XSI] Device ID */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+	struct  timespec st_atimespec;  /* time of last access */
+	struct  timespec st_mtimespec;  /* time of last data modification */
+	struct  timespec st_ctimespec;  /* time of last status change */
+#else
+	time_t          st_atime;       /* [XSI] Time of last access */
+	long            st_atimensec;   /* nsec of last access */
+	time_t          st_mtime;       /* [XSI] Last data modification time */
+	long            st_mtimensec;   /* last data modification nsec */
+	time_t          st_ctime;       /* [XSI] Time of last status change */
+	long            st_ctimensec;   /* nsec of last status change */
+#endif
+	off_t           st_size;        /* [XSI] file size, in bytes */
+	blkcnt_t        st_blocks;      /* [XSI] blocks allocated for file */
+	blksize_t       st_blksize;     /* [XSI] optimal blocksize for I/O */
+	__uint32_t      st_flags;       /* user defined flags for file */
+	__uint32_t      st_gen;         /* file generation number */
+	__int32_t       st_lspare;      /* RESERVED: DO NOT USE! */
+	__int64_t       st_qspare[2];   /* RESERVED: DO NOT USE! */
+};
+
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+
+struct stat64 __DARWIN_STRUCT_STAT64;
+
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define st_atime st_atimespec.tv_sec
+#define st_mtime st_mtimespec.tv_sec
+#define st_ctime st_ctimespec.tv_sec
+#define st_birthtime st_birthtimespec.tv_sec
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * [XSI] The following are symbolic names for the values of type mode_t.  They
+ * are bitmap values.
+ */
+#include <sys/_types/_s_ifmt.h>
+
+/*
+ * [XSI] The following macros shall be provided to test whether a file is
+ * of the specified type.  The value m supplied to the macros is the value
+ * of st_mode from a stat structure.  The macro shall evaluate to a non-zero
+ * value if the test is true; 0 if the test is false.
+ */
+#define S_ISBLK(m)      (((m) & S_IFMT) == S_IFBLK)     /* block special */
+#define S_ISCHR(m)      (((m) & S_IFMT) == S_IFCHR)     /* char special */
+#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)     /* directory */
+#define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)     /* fifo or socket */
+#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)     /* regular file */
+#define S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)     /* symbolic link */
+#define S_ISSOCK(m)     (((m) & S_IFMT) == S_IFSOCK)    /* socket */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define S_ISWHT(m)      (((m) & S_IFMT) == S_IFWHT)     /* OBSOLETE: whiteout */
+#endif
+
+/*
+ * [XSI] The implementation may implement message queues, semaphores, or
+ * shared memory objects as distinct file types.  The following macros
+ * shall be provided to test whether a file is of the specified type.
+ * The value of the buf argument supplied to the macros is a pointer to
+ * a stat structure.  The macro shall evaluate to a non-zero value if
+ * the specified object is implemented as a distinct file type and the
+ * specified file type is contained in the stat structure referenced by
+ * buf.  Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE:	The current implementation does not do this, although
+ *		this may change in future revisions, and co currently only
+ *		provides these macros to ensure source compatability with
+ *		implementations which do.
+ */
+#define S_TYPEISMQ(buf)         (0)     /* Test for a message queue */
+#define S_TYPEISSEM(buf)        (0)     /* Test for a semaphore */
+#define S_TYPEISSHM(buf)        (0)     /* Test for a shared memory object */
+
+/*
+ * [TYM] The implementation may implement typed memory objects as distinct
+ * file types, and the following macro shall test whether a file is of the
+ * specified type.  The value of the buf argument supplied to the macros is
+ * a pointer to a stat structure.  The macro shall evaluate to a non-zero
+ * value if the specified object is implemented as a distinct file type and
+ * the specified file type is contained in the stat structure referenced by
+ * buf.  Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE:	The current implementation does not do this, although
+ *		this may change in future revisions, and co currently only
+ *		provides this macro to ensure source compatability with
+ *		implementations which do.
+ */
+#define S_TYPEISTMO(buf)        (0)     /* Test for a typed memory object */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ACCESSPERMS     (S_IRWXU|S_IRWXG|S_IRWXO)       /* 0777 */
+                                                        /* 7777 */
+#define ALLPERMS        (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
+/* 0666 */
+#define DEFFILEMODE     (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+#define S_BLKSIZE       512             /* block size used in the stat struct */
+
+/*
+ * Definitions of flags stored in file flags word.
+ *
+ * Super-user and owner changeable flags.
+ */
+#define UF_SETTABLE     0x0000ffff      /* mask of owner changeable flags */
+#define UF_NODUMP       0x00000001      /* do not dump file */
+#define UF_IMMUTABLE    0x00000002      /* file may not be changed */
+#define UF_APPEND       0x00000004      /* writes to file may only append */
+#define UF_OPAQUE       0x00000008      /* directory is opaque wrt. union */
+/*
+ * The following bit is reserved for FreeBSD.  It is not implemented
+ * in Mac OS X.
+ */
+/* #define UF_NOUNLINK	0x00000010 */	/* file may not be removed or renamed */
+#define UF_COMPRESSED   0x00000020      /* file is compressed (some file-systems) */
+
+/* UF_TRACKED is used for dealing with document IDs.  We no longer issue
+ *  notifications for deletes or renames for files which have UF_TRACKED set. */
+#define UF_TRACKED              0x00000040
+
+#define UF_DATAVAULT    0x00000080      /* entitlement required for reading */
+                                        /* and writing */
+
+/* Bits 0x0100 through 0x4000 are currently undefined. */
+#define UF_HIDDEN       0x00008000      /* hint that this item should not be */
+                                        /* displayed in a GUI */
+/*
+ * Super-user changeable flags.
+ */
+#define SF_SUPPORTED    0x009f0000      /* mask of superuser supported flags */
+#define SF_SETTABLE     0x3fff0000      /* mask of superuser changeable flags */
+#define SF_SYNTHETIC    0xc0000000      /* mask of system read-only synthetic flags */
+#define SF_ARCHIVED     0x00010000      /* file is archived */
+#define SF_IMMUTABLE    0x00020000      /* file may not be changed */
+#define SF_APPEND       0x00040000      /* writes to file may only append */
+#define SF_RESTRICTED   0x00080000      /* entitlement required for writing */
+#define SF_NOUNLINK     0x00100000      /* Item may not be removed, renamed or mounted on */
+
+/*
+ * The following two bits are reserved for FreeBSD.  They are not
+ * implemented in Mac OS X.
+ */
+/* #define SF_SNAPSHOT	0x00200000 */	/* snapshot inode */
+/* NOTE: There is no SF_HIDDEN bit. */
+
+#define SF_FIRMLINK     0x00800000      /* file is a firmlink */
+
+/*
+ * Synthetic flags.
+ *
+ * These are read-only.  We keep them out of SF_SUPPORTED so that
+ * attempts to set them will fail.
+ */
+#define SF_DATALESS     0x40000000     /* file is dataless object */
+
+
+#endif
+
+/*
+ * Extended flags ("EF") returned by ATTR_CMNEXT_EXT_FLAGS from getattrlist/getattrlistbulk
+ */
+#define EF_MAY_SHARE_BLOCKS     0x00000001      /* file may share blocks with another file */
+#define EF_NO_XATTRS            0x00000002      /* file has no xattrs at all */
+#define EF_IS_SYNC_ROOT         0x00000004      /* file is a sync root for iCloud */
+#define EF_IS_PURGEABLE         0x00000008      /* file is purgeable */
+#define EF_IS_SPARSE            0x00000010      /* file has at least one sparse region */
+
+
+
+
+__BEGIN_DECLS
+/* [XSI] */
+int     chmod(const char *, mode_t) __DARWIN_ALIAS(chmod);
+int     fchmod(int, mode_t) __DARWIN_ALIAS(fchmod);
+int     fstat(int, struct stat *) __DARWIN_INODE64(fstat);
+int     lstat(const char *, struct stat *) __DARWIN_INODE64(lstat);
+int     mkdir(const char *, mode_t);
+int     mkfifo(const char *, mode_t);
+int     stat(const char *, struct stat *) __DARWIN_INODE64(stat);
+int     mknod(const char *, mode_t, dev_t);
+mode_t  umask(mode_t);
+
+#if __DARWIN_C_LEVEL >= 200809L
+int     fchmodat(int, const char *, mode_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     fstatat(int, const char *, struct stat *, int) __DARWIN_INODE64(fstatat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     mkdirat(int, const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+#define UTIME_NOW       -1
+#define UTIME_OMIT      -2
+
+int     futimens(int __fd, const struct timespec __times[2]) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+int     utimensat(int __fd, const char *__path, const struct timespec __times[2],
+    int __flag) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_filesec_t.h>
+
+int     chflags(const char *, __uint32_t);
+int     chmodx_np(const char *, filesec_t);
+int     fchflags(int, __uint32_t);
+int     fchmodx_np(int, filesec_t);
+int     fstatx_np(int, struct stat *, filesec_t) __DARWIN_INODE64(fstatx_np);
+int     lchflags(const char *, __uint32_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     lchmod(const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     lstatx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(lstatx_np);
+int     mkdirx_np(const char *, filesec_t);
+int     mkfifox_np(const char *, filesec_t);
+int     statx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(statx_np);
+int     umaskx_np(filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+/* The following deprecated routines are simillar to stat and friends except provide struct stat64 instead of struct stat  */
+int     fstatx64_np(int, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     lstatx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     statx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__END_DECLS
+#endif /* !_SYS_STAT_H_ */
lib/libc/include/x86_64-macos-gnu/sys/statvfs.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+ * sys/statvfs.h
+ */
+#ifndef _SYS_STATVFS_H_
+#define	_SYS_STATVFS_H_
+
+#include <sys/_types.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types/_fsblkcnt_t.h>
+#include <sys/_types/_fsfilcnt_t.h>
+
+/* Following structure is used as a statvfs/fstatvfs function parameter */
+struct statvfs {
+	unsigned long	f_bsize;	/* File system block size */
+	unsigned long	f_frsize;	/* Fundamental file system block size */
+	fsblkcnt_t	f_blocks;	/* Blocks on FS in units of f_frsize */
+	fsblkcnt_t	f_bfree;	/* Free blocks */
+	fsblkcnt_t	f_bavail;	/* Blocks available to non-root */
+	fsfilcnt_t	f_files;	/* Total inodes */
+	fsfilcnt_t	f_ffree;	/* Free inodes */
+	fsfilcnt_t	f_favail;	/* Free inodes for non-root */
+	unsigned long	f_fsid;		/* Filesystem ID */
+	unsigned long	f_flag;		/* Bit mask of values */
+	unsigned long	f_namemax;	/* Max file name length */
+};
+
+/* Defined bits for f_flag field value */
+#define	ST_RDONLY	0x00000001	/* Read-only file system */
+#define	ST_NOSUID	0x00000002	/* Does not honor setuid/setgid */
+
+__BEGIN_DECLS
+int fstatvfs(int, struct statvfs *);
+int statvfs(const char * __restrict, struct statvfs * __restrict);
+__END_DECLS
+
+#endif	/* _SYS_STATVFS_H_ */
lib/libc/include/x86_64-macos-gnu/sys/syslog.h
@@ -0,0 +1,236 @@
+/*
+ * 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 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.
+ *
+ *	@(#)syslog.h	8.1 (Berkeley) 6/2/93
+ * $FreeBSD: src/sys/sys/syslog.h,v 1.27.2.1.4.1 2010/06/14 02:09:06 kensmith Exp $
+ */
+
+#ifndef _SYS_SYSLOG_H_
+#define _SYS_SYSLOG_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+
+#define _PATH_LOG       "/var/run/syslog"
+
+/*
+ * priorities/facilities are encoded into a single 32-bit quantity, where the
+ * bottom 3 bits are the priority (0-7) and the top 28 bits are the facility
+ * (0-big number).  Both the priorities and the facilities map roughly
+ * one-to-one to strings in the syslogd(8) source code.  This mapping is
+ * included in this file.
+ *
+ * priorities (these are ordered)
+ */
+#define LOG_EMERG       0       /* system is unusable */
+#define LOG_ALERT       1       /* action must be taken immediately */
+#define LOG_CRIT        2       /* critical conditions */
+#define LOG_ERR         3       /* error conditions */
+#define LOG_WARNING     4       /* warning conditions */
+#define LOG_NOTICE      5       /* normal but significant condition */
+#define LOG_INFO        6       /* informational */
+#define LOG_DEBUG       7       /* debug-level messages */
+
+#define LOG_PRIMASK     0x07    /* mask to extract priority part (internal) */
+/* extract priority */
+#define LOG_PRI(p)      ((p) & LOG_PRIMASK)
+#define LOG_MAKEPRI(fac, pri)   ((fac) | (pri))
+
+#ifdef SYSLOG_NAMES
+#define INTERNAL_NOPRI  0x10    /* the "no priority" priority */
+/* mark "facility" */
+#define INTERNAL_MARK   LOG_MAKEPRI((LOG_NFACILITIES<<3), 0)
+typedef struct _code {
+	const char      *c_name;
+	int             c_val;
+} CODE;
+
+CODE prioritynames[] = {
+	{ "alert", LOG_ALERT, },
+	{ "crit", LOG_CRIT, },
+	{ "debug", LOG_DEBUG, },
+	{ "emerg", LOG_EMERG, },
+	{ "err", LOG_ERR, },
+	{ "error", LOG_ERR, },                  /* DEPRECATED */
+	{ "info", LOG_INFO, },
+	{ "none", INTERNAL_NOPRI, },            /* INTERNAL */
+	{ "notice", LOG_NOTICE, },
+	{ "panic", LOG_EMERG, },                /* DEPRECATED */
+	{ "warn", LOG_WARNING, },               /* DEPRECATED */
+	{ "warning", LOG_WARNING, },
+	{ NULL, -1, }
+};
+#endif
+
+/* facility codes */
+#define LOG_KERN        (0<<3)  /* kernel messages */
+#define LOG_USER        (1<<3)  /* random user-level messages */
+#define LOG_MAIL        (2<<3)  /* mail system */
+#define LOG_DAEMON      (3<<3)  /* system daemons */
+#define LOG_AUTH        (4<<3)  /* authorization messages */
+#define LOG_SYSLOG      (5<<3)  /* messages generated internally by syslogd */
+#define LOG_LPR         (6<<3)  /* line printer subsystem */
+#define LOG_NEWS        (7<<3)  /* network news subsystem */
+#define LOG_UUCP        (8<<3)  /* UUCP subsystem */
+#define LOG_CRON        (9<<3)  /* clock daemon */
+#define LOG_AUTHPRIV    (10<<3) /* authorization messages (private) */
+/* Facility #10 clashes in DEC UNIX, where */
+/* it's defined as LOG_MEGASAFE for AdvFS  */
+/* event logging.                          */
+#define LOG_FTP         (11<<3) /* ftp daemon */
+//#define	LOG_NTP		(12<<3)	/* NTP subsystem */
+//#define	LOG_SECURITY	(13<<3) /* security subsystems (firewalling, etc.) */
+//#define	LOG_CONSOLE	(14<<3) /* /dev/console output */
+#define LOG_NETINFO     (12<<3) /* NetInfo */
+#define LOG_REMOTEAUTH  (13<<3) /* remote authentication/authorization */
+#define LOG_INSTALL     (14<<3) /* installer subsystem */
+#define LOG_RAS         (15<<3) /* Remote Access Service (VPN / PPP) */
+
+/* other codes through 15 reserved for system use */
+#define LOG_LOCAL0      (16<<3) /* reserved for local use */
+#define LOG_LOCAL1      (17<<3) /* reserved for local use */
+#define LOG_LOCAL2      (18<<3) /* reserved for local use */
+#define LOG_LOCAL3      (19<<3) /* reserved for local use */
+#define LOG_LOCAL4      (20<<3) /* reserved for local use */
+#define LOG_LOCAL5      (21<<3) /* reserved for local use */
+#define LOG_LOCAL6      (22<<3) /* reserved for local use */
+#define LOG_LOCAL7      (23<<3) /* reserved for local use */
+
+#define LOG_LAUNCHD     (24<<3) /* launchd - general bootstrap daemon */
+
+#define LOG_NFACILITIES 25      /* current number of facilities */
+#define LOG_FACMASK     0x03f8  /* mask to extract facility part */
+/* facility of pri */
+#define LOG_FAC(p)      (((p) & LOG_FACMASK) >> 3)
+
+#ifdef SYSLOG_NAMES
+CODE facilitynames[] = {
+	{ "auth", LOG_AUTH, },
+	{ "authpriv", LOG_AUTHPRIV, },
+	{ "cron", LOG_CRON, },
+	{ "daemon", LOG_DAEMON, },
+	{ "ftp", LOG_FTP, },
+	{ "install", LOG_INSTALL     },
+	{ "kern", LOG_KERN, },
+	{ "lpr", LOG_LPR, },
+	{ "mail", LOG_MAIL, },
+	{ "mark", INTERNAL_MARK, },             /* INTERNAL */
+	{ "netinfo", LOG_NETINFO, },
+	{ "ras", LOG_RAS         },
+	{ "remoteauth", LOG_REMOTEAUTH  },
+	{ "news", LOG_NEWS, },
+	{ "security", LOG_AUTH        },        /* DEPRECATED */
+	{ "syslog", LOG_SYSLOG, },
+	{ "user", LOG_USER, },
+	{ "uucp", LOG_UUCP, },
+	{ "local0", LOG_LOCAL0, },
+	{ "local1", LOG_LOCAL1, },
+	{ "local2", LOG_LOCAL2, },
+	{ "local3", LOG_LOCAL3, },
+	{ "local4", LOG_LOCAL4, },
+	{ "local5", LOG_LOCAL5, },
+	{ "local6", LOG_LOCAL6, },
+	{ "local7", LOG_LOCAL7, },
+	{ "launchd", LOG_LAUNCHD     },
+	{ NULL, -1, }
+};
+#endif
+
+
+/*
+ * arguments to setlogmask.
+ */
+#define LOG_MASK(pri)   (1 << (pri))            /* mask for one priority */
+#define LOG_UPTO(pri)   ((1 << ((pri)+1)) - 1)  /* all priorities through pri */
+
+/*
+ * Option flags for openlog.
+ *
+ * LOG_ODELAY no longer does anything.
+ * LOG_NDELAY is the inverse of what it used to be.
+ */
+#define LOG_PID         0x01    /* log the pid with each message */
+#define LOG_CONS        0x02    /* log on the console if errors in sending */
+#define LOG_ODELAY      0x04    /* delay open until first syslog() (default) */
+#define LOG_NDELAY      0x08    /* don't delay open */
+#define LOG_NOWAIT      0x10    /* don't wait for console forks: DEPRECATED */
+#define LOG_PERROR      0x20    /* log to stderr as well */
+
+
+/*
+ * Don't use va_list in the vsyslog() prototype.   Va_list is typedef'd in two
+ * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one
+ * of them here we may collide with the utility's includes.  It's unreasonable
+ * for utilities to have to include one of them to include syslog.h, so we get
+ * __va_list from <sys/_types.h> and use it.
+ */
+#include <sys/_types.h>
+
+__BEGIN_DECLS
+void    closelog(void);
+void    openlog(const char *, int, int);
+int     setlogmask(int);
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+void    syslog(int, const char *, ...) __DARWIN_ALIAS_STARTING(__MAC_10_13, __IPHONE_NA, __DARWIN_EXTSN(syslog)) __printflike(2, 3) __not_tail_called;
+#else
+void    syslog(int, const char *, ...) __printflike(2, 3) __not_tail_called;
+#endif
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+void    vsyslog(int, const char *, __darwin_va_list) __printflike(2, 0) __not_tail_called;
+#endif
+__END_DECLS
+
+#endif /* !_SYS_SYSLOG_H_ */
lib/libc/include/x86_64-macos-gnu/sys/termios.h
@@ -0,0 +1,366 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1988, 1989, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by the University of
+ *      California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)termios.h	8.3 (Berkeley) 3/28/94
+ */
+
+#ifndef _SYS_TERMIOS_H_
+#define _SYS_TERMIOS_H_
+
+#include <sys/cdefs.h>
+
+/*
+ * Special Control Characters
+ *
+ * Index into c_cc[] character array.
+ *
+ *	Name	     Subscript	Enabled by
+ */
+#define VEOF            0       /* ICANON */
+#define VEOL            1       /* ICANON */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VEOL2           2       /* ICANON together with IEXTEN */
+#endif
+#define VERASE          3       /* ICANON */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VWERASE         4       /* ICANON together with IEXTEN */
+#endif
+#define VKILL           5       /* ICANON */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VREPRINT        6       /* ICANON together with IEXTEN */
+#endif
+/*			7	   spare 1 */
+#define VINTR           8       /* ISIG */
+#define VQUIT           9       /* ISIG */
+#define VSUSP           10      /* ISIG */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VDSUSP          11      /* ISIG together with IEXTEN */
+#endif
+#define VSTART          12      /* IXON, IXOFF */
+#define VSTOP           13      /* IXON, IXOFF */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VLNEXT          14      /* IEXTEN */
+#define VDISCARD        15      /* IEXTEN */
+#endif
+#define VMIN            16      /* !ICANON */
+#define VTIME           17      /* !ICANON */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define VSTATUS         18      /* ICANON together with IEXTEN */
+/*			19	   spare 2 */
+#endif
+#define NCCS            20
+
+#include <sys/_types/_posix_vdisable.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CCEQ(val, c)    ((c) == (val) ? (val) != _POSIX_VDISABLE : 0)
+#endif
+
+/*
+ * Input flags - software input processing
+ */
+#define IGNBRK          0x00000001      /* ignore BREAK condition */
+#define BRKINT          0x00000002      /* map BREAK to SIGINTR */
+#define IGNPAR          0x00000004      /* ignore (discard) parity errors */
+#define PARMRK          0x00000008      /* mark parity and framing errors */
+#define INPCK           0x00000010      /* enable checking of parity errors */
+#define ISTRIP          0x00000020      /* strip 8th bit off chars */
+#define INLCR           0x00000040      /* map NL into CR */
+#define IGNCR           0x00000080      /* ignore CR */
+#define ICRNL           0x00000100      /* map CR to NL (ala CRMOD) */
+#define IXON            0x00000200      /* enable output flow control */
+#define IXOFF           0x00000400      /* enable input flow control */
+#define IXANY           0x00000800      /* any char will restart after stop */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IMAXBEL         0x00002000      /* ring bell on input queue full */
+#define IUTF8           0x00004000      /* maintain state for UTF-8 VERASE */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Output flags - software output processing
+ */
+#define OPOST           0x00000001      /* enable following output processing */
+#define ONLCR           0x00000002      /* map NL to CR-NL (ala CRMOD) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define OXTABS          0x00000004      /* expand tabs to spaces */
+#define ONOEOT          0x00000008      /* discard EOT's (^D) on output) */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+/*
+ * The following block of features is unimplemented.  Use of these flags in
+ * programs will currently result in unexpected behaviour.
+ *
+ * - Begin unimplemented features
+ */
+#define OCRNL           0x00000010      /* map CR to NL on output */
+#define ONOCR           0x00000020      /* no CR output at column 0 */
+#define ONLRET          0x00000040      /* NL performs CR function */
+#define OFILL           0x00000080      /* use fill characters for delay */
+#define NLDLY           0x00000300      /* \n delay */
+#define TABDLY          0x00000c04      /* horizontal tab delay */
+#define CRDLY           0x00003000      /* \r delay */
+#define FFDLY           0x00004000      /* form feed delay */
+#define BSDLY           0x00008000      /* \b delay */
+#define VTDLY           0x00010000      /* vertical tab delay */
+#define OFDEL           0x00020000      /* fill is DEL, else NUL */
+#if !defined(_SYS_IOCTL_COMPAT_H_) || __DARWIN_UNIX03
+/*
+ * These manifest constants have the same names as those in the header
+ * <sys/ioctl_compat.h>, so you are not permitted to have both definitions
+ * in scope simultaneously in the same compilation unit.  Nevertheless,
+ * they are required to be in scope when _POSIX_C_SOURCE is requested;
+ * this means that including the <sys/ioctl_compat.h> header before this
+ * one when _POSIX_C_SOURCE is in scope will result in redefintions.  We
+ * attempt to maintain these as the same values so as to avoid this being
+ * an outright error in most compilers.
+ */
+#define         NL0     0x00000000
+#define         NL1     0x00000100
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define         NL2     0x00000200
+#define         NL3     0x00000300
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define         TAB0    0x00000000
+#define         TAB1    0x00000400
+#define         TAB2    0x00000800
+/* not in sys/ioctl_compat.h, use OXTABS value */
+#define         TAB3    0x00000004
+#define         CR0     0x00000000
+#define         CR1     0x00001000
+#define         CR2     0x00002000
+#define         CR3     0x00003000
+#define         FF0     0x00000000
+#define         FF1     0x00004000
+#define         BS0     0x00000000
+#define         BS1     0x00008000
+#define         VT0     0x00000000
+#define         VT1     0x00010000
+#endif  /* !_SYS_IOCTL_COMPAT_H_ */
+/*
+ * + End unimplemented features
+ */
+
+/*
+ * Control flags - hardware control of terminal
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CIGNORE         0x00000001      /* ignore control flags */
+#endif
+#define CSIZE           0x00000300      /* character size mask */
+#define     CS5             0x00000000      /* 5 bits (pseudo) */
+#define     CS6             0x00000100      /* 6 bits */
+#define     CS7             0x00000200      /* 7 bits */
+#define     CS8             0x00000300      /* 8 bits */
+#define CSTOPB          0x00000400      /* send 2 stop bits */
+#define CREAD           0x00000800      /* enable receiver */
+#define PARENB          0x00001000      /* parity enable */
+#define PARODD          0x00002000      /* odd parity, else even */
+#define HUPCL           0x00004000      /* hang up on last close */
+#define CLOCAL          0x00008000      /* ignore modem status lines */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CCTS_OFLOW      0x00010000      /* CTS flow control of output */
+#define CRTSCTS         (CCTS_OFLOW | CRTS_IFLOW)
+#define CRTS_IFLOW      0x00020000      /* RTS flow control of input */
+#define CDTR_IFLOW      0x00040000      /* DTR flow control of input */
+#define CDSR_OFLOW      0x00080000      /* DSR flow control of output */
+#define CCAR_OFLOW      0x00100000      /* DCD flow control of output */
+#define MDMBUF          0x00100000      /* old name for CCAR_OFLOW */
+#endif
+
+
+/*
+ * "Local" flags - dumping ground for other state
+ *
+ * Warning: some flags in this structure begin with
+ * the letter "I" and look like they belong in the
+ * input flag.
+ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ECHOKE          0x00000001      /* visual erase for line kill */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define ECHOE           0x00000002      /* visually erase chars */
+#define ECHOK           0x00000004      /* echo NL after line kill */
+#define ECHO            0x00000008      /* enable echoing */
+#define ECHONL          0x00000010      /* echo NL even if ECHO is off */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ECHOPRT         0x00000020      /* visual erase mode for hardcopy */
+#define ECHOCTL         0x00000040      /* echo control chars as ^(Char) */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define ISIG            0x00000080      /* enable signals INTR, QUIT, [D]SUSP */
+#define ICANON          0x00000100      /* canonicalize input lines */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ALTWERASE       0x00000200      /* use alternate WERASE algorithm */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define IEXTEN          0x00000400      /* enable DISCARD and LNEXT */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define EXTPROC         0x00000800      /* external processing */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define TOSTOP          0x00400000      /* stop background jobs from output */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FLUSHO          0x00800000      /* output being flushed (state) */
+#define NOKERNINFO      0x02000000      /* no kernel output from VSTATUS */
+#define PENDIN          0x20000000      /* XXX retype pending input (state) */
+#endif  /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define NOFLSH          0x80000000      /* don't flush after interrupt */
+
+typedef unsigned long   tcflag_t;
+typedef unsigned char   cc_t;
+typedef unsigned long   speed_t;
+
+struct termios {
+	tcflag_t        c_iflag;        /* input flags */
+	tcflag_t        c_oflag;        /* output flags */
+	tcflag_t        c_cflag;        /* control flags */
+	tcflag_t        c_lflag;        /* local flags */
+	cc_t            c_cc[NCCS];     /* control chars */
+	speed_t         c_ispeed;       /* input speed */
+	speed_t         c_ospeed;       /* output speed */
+};
+
+
+/*
+ * Commands passed to tcsetattr() for setting the termios structure.
+ */
+#define TCSANOW         0               /* make change immediate */
+#define TCSADRAIN       1               /* drain output, then change */
+#define TCSAFLUSH       2               /* drain output, flush input */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define TCSASOFT        0x10            /* flag - don't alter h.w. state */
+#endif
+
+/*
+ * Standard speeds
+ */
+#define B0      0
+#define B50     50
+#define B75     75
+#define B110    110
+#define B134    134
+#define B150    150
+#define B200    200
+#define B300    300
+#define B600    600
+#define B1200   1200
+#define B1800   1800
+#define B2400   2400
+#define B4800   4800
+#define B9600   9600
+#define B19200  19200
+#define B38400  38400
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define B7200   7200
+#define B14400  14400
+#define B28800  28800
+#define B57600  57600
+#define B76800  76800
+#define B115200 115200
+#define B230400 230400
+#define EXTA    19200
+#define EXTB    38400
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+#define TCIFLUSH        1
+#define TCOFLUSH        2
+#define TCIOFLUSH       3
+#define TCOOFF          1
+#define TCOON           2
+#define TCIOFF          3
+#define TCION           4
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+speed_t cfgetispeed(const struct termios *);
+speed_t cfgetospeed(const struct termios *);
+int     cfsetispeed(struct termios *, speed_t);
+int     cfsetospeed(struct termios *, speed_t);
+int     tcgetattr(int, struct termios *);
+int     tcsetattr(int, int, const struct termios *);
+int     tcdrain(int) __DARWIN_ALIAS_C(tcdrain);
+int     tcflow(int, int);
+int     tcflush(int, int);
+int     tcsendbreak(int, int);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void    cfmakeraw(struct termios *);
+int     cfsetspeed(struct termios *, speed_t);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/*
+ * Include tty ioctl's that aren't just for backwards compatibility
+ * with the old tty driver.  These ioctl definitions were previously
+ * in <sys/ioctl.h>.
+ */
+#include <sys/ttycom.h>
+#endif
+
+/*
+ * END OF PROTECTED INCLUDE.
+ */
+#endif /* !_SYS_TERMIOS_H_ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/ttydefaults.h>
+#endif
lib/libc/include/x86_64-macos-gnu/sys/time.h
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)time.h	8.2 (Berkeley) 7/10/94
+ */
+
+#ifndef _SYS_TIME_H_
+#define _SYS_TIME_H_
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+#include <Availability.h>
+
+/*
+ * [XSI] The fd_set type shall be defined as described in <sys/select.h>.
+ * The timespec structure shall be defined as described in <time.h>
+ */
+#include <sys/_types/_fd_def.h>
+#include <sys/_types/_timespec.h>
+#include <sys/_types/_timeval.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_timeval64.h>
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_suseconds_t.h>
+
+/*
+ * Structure used as a parameter by getitimer(2) and setitimer(2) system
+ * calls.
+ */
+struct  itimerval {
+	struct  timeval it_interval;    /* timer interval */
+	struct  timeval it_value;       /* current value */
+};
+
+/*
+ * Names of the interval timers, and structure
+ * defining a timer setting.
+ */
+#define ITIMER_REAL     0
+#define ITIMER_VIRTUAL  1
+#define ITIMER_PROF     2
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#include <sys/_types/_fd_setsize.h>
+#include <sys/_types/_fd_set.h>
+#include <sys/_types/_fd_clr.h>
+#include <sys/_types/_fd_isset.h>
+#include <sys/_types/_fd_zero.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_fd_copy.h>
+
+#define TIMEVAL_TO_TIMESPEC(tv, ts) {                                   \
+	(ts)->tv_sec = (tv)->tv_sec;                                    \
+	(ts)->tv_nsec = (tv)->tv_usec * 1000;                           \
+}
+#define TIMESPEC_TO_TIMEVAL(tv, ts) {                                   \
+	(tv)->tv_sec = (ts)->tv_sec;                                    \
+	(tv)->tv_usec = (ts)->tv_nsec / 1000;                           \
+}
+
+struct timezone {
+	int     tz_minuteswest; /* minutes west of Greenwich */
+	int     tz_dsttime;     /* type of dst correction */
+};
+#define DST_NONE        0       /* not on dst */
+#define DST_USA         1       /* USA style dst */
+#define DST_AUST        2       /* Australian style dst */
+#define DST_WET         3       /* Western European dst */
+#define DST_MET         4       /* Middle European dst */
+#define DST_EET         5       /* Eastern European dst */
+#define DST_CAN         6       /* Canada */
+
+/* Operations on timevals. */
+#define timerclear(tvp)         (tvp)->tv_sec = (tvp)->tv_usec = 0
+#define timerisset(tvp)         ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timercmp(tvp, uvp, cmp)                                         \
+	(((tvp)->tv_sec == (uvp)->tv_sec) ?                             \
+	    ((tvp)->tv_usec cmp (uvp)->tv_usec) :                       \
+	    ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#define timeradd(tvp, uvp, vvp)                                         \
+	do {                                                            \
+	        (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;          \
+	        (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;       \
+	        if ((vvp)->tv_usec >= 1000000) {                        \
+	                (vvp)->tv_sec++;                                \
+	                (vvp)->tv_usec -= 1000000;                      \
+	        }                                                       \
+	} while (0)
+#define timersub(tvp, uvp, vvp)                                         \
+	do {                                                            \
+	        (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;          \
+	        (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;       \
+	        if ((vvp)->tv_usec < 0) {                               \
+	                (vvp)->tv_sec--;                                \
+	                (vvp)->tv_usec += 1000000;                      \
+	        }                                                       \
+	} while (0)
+
+#define timevalcmp(l, r, cmp)   timercmp(l, r, cmp) /* freebsd */
+
+/*
+ * Getkerninfo clock information structure
+ */
+struct clockinfo {
+	int     hz;             /* clock frequency */
+	int     tick;           /* micro-seconds per hz tick */
+	int     tickadj;        /* clock skew rate for adjtime() */
+	int     stathz;         /* statistics clock frequency */
+	int     profhz;         /* profiling clock frequency */
+};
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <time.h>
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     adjtime(const struct timeval *, struct timeval *);
+int     futimes(int, const struct timeval *);
+int     lutimes(const char *, const struct timeval *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     settimeofday(const struct timeval *, const struct timezone *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+int     getitimer(int, struct itimerval *);
+int     gettimeofday(struct timeval * __restrict, void * __restrict);
+
+#include <sys/_select.h>        /* select() prototype */
+
+int     setitimer(int, const struct itimerval * __restrict,
+    struct itimerval * __restrict);
+int     utimes(const char *, const struct timeval *);
+
+__END_DECLS
+
+
+#endif /* !_SYS_TIME_H_ */
lib/libc/include/x86_64-macos-gnu/sys/times.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)times.h	8.4 (Berkeley) 1/21/94
+ */
+
+#ifndef _SYS_TIMES_H_
+#define _SYS_TIMES_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/* [XSI] The clock_t type shall be defined as described in <sys/types.h> */
+#include <sys/_types/_clock_t.h>
+
+/*
+ * [XSI] Structure whose address is passed as the first parameter to times()
+ */
+struct tms {
+	clock_t tms_utime;      /* [XSI] User CPU time */
+	clock_t tms_stime;      /* [XSI] System CPU time */
+	clock_t tms_cutime;     /* [XSI] Terminated children user CPU time */
+	clock_t tms_cstime;     /* [XSI] Terminated children System CPU time */
+};
+
+__BEGIN_DECLS
+clock_t times(struct tms *);
+__END_DECLS
+#endif /* !_SYS_TIMES_H_ */
lib/libc/include/x86_64-macos-gnu/sys/ttycom.h
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1990, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by the University of
+ *      California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ttycom.h	8.1 (Berkeley) 3/28/94
+ */
+
+#ifndef _SYS_TTYCOM_H_
+#define _SYS_TTYCOM_H_
+
+#include <sys/ioccom.h>
+/*
+ * Tty ioctl's except for those supported only for backwards compatibility
+ * with the old tty driver.
+ */
+
+/*
+ * Window/terminal size structure.  This information is stored by the kernel
+ * in order to provide a consistent interface, but is not used by the kernel.
+ */
+struct winsize {
+	unsigned short  ws_row;         /* rows, in characters */
+	unsigned short  ws_col;         /* columns, in characters */
+	unsigned short  ws_xpixel;      /* horizontal size, pixels */
+	unsigned short  ws_ypixel;      /* vertical size, pixels */
+};
+
+#define TIOCMODG        _IOR('t', 3, int)       /* get modem control state */
+#define TIOCMODS        _IOW('t', 4, int)       /* set modem control state */
+#define         TIOCM_LE        0001            /* line enable */
+#define         TIOCM_DTR       0002            /* data terminal ready */
+#define         TIOCM_RTS       0004            /* request to send */
+#define         TIOCM_ST        0010            /* secondary transmit */
+#define         TIOCM_SR        0020            /* secondary receive */
+#define         TIOCM_CTS       0040            /* clear to send */
+#define         TIOCM_CAR       0100            /* carrier detect */
+#define         TIOCM_CD        TIOCM_CAR
+#define         TIOCM_RNG       0200            /* ring */
+#define         TIOCM_RI        TIOCM_RNG
+#define         TIOCM_DSR       0400            /* data set ready */
+                                                /* 8-10 compat */
+#define TIOCEXCL         _IO('t', 13)           /* set exclusive use of tty */
+#define TIOCNXCL         _IO('t', 14)           /* reset exclusive use of tty */
+                                                /* 15 unused */
+#define TIOCFLUSH       _IOW('t', 16, int)      /* flush buffers */
+                                                /* 17-18 compat */
+#define TIOCGETA        _IOR('t', 19, struct termios) /* get termios struct */
+#define TIOCSETA        _IOW('t', 20, struct termios) /* set termios struct */
+#define TIOCSETAW       _IOW('t', 21, struct termios) /* drain output, set */
+#define TIOCSETAF       _IOW('t', 22, struct termios) /* drn out, fls in, set */
+#define TIOCGETD        _IOR('t', 26, int)      /* get line discipline */
+#define TIOCSETD        _IOW('t', 27, int)      /* set line discipline */
+#define TIOCIXON         _IO('t', 129)          /* internal input VSTART */
+#define TIOCIXOFF        _IO('t', 128)          /* internal input VSTOP */
+                                                /* 127-124 compat */
+#define TIOCSBRK         _IO('t', 123)          /* set break bit */
+#define TIOCCBRK         _IO('t', 122)          /* clear break bit */
+#define TIOCSDTR         _IO('t', 121)          /* set data terminal ready */
+#define TIOCCDTR         _IO('t', 120)          /* clear data terminal ready */
+#define TIOCGPGRP       _IOR('t', 119, int)     /* get pgrp of tty */
+#define TIOCSPGRP       _IOW('t', 118, int)     /* set pgrp of tty */
+                                                /* 117-116 compat */
+#define TIOCOUTQ        _IOR('t', 115, int)     /* output queue size */
+#define TIOCSTI         _IOW('t', 114, char)    /* simulate terminal input */
+#define TIOCNOTTY        _IO('t', 113)          /* void tty association */
+#define TIOCPKT         _IOW('t', 112, int)     /* pty: set/clear packet mode */
+#define         TIOCPKT_DATA            0x00    /* data packet */
+#define         TIOCPKT_FLUSHREAD       0x01    /* flush packet */
+#define         TIOCPKT_FLUSHWRITE      0x02    /* flush packet */
+#define         TIOCPKT_STOP            0x04    /* stop output */
+#define         TIOCPKT_START           0x08    /* start output */
+#define         TIOCPKT_NOSTOP          0x10    /* no more ^S, ^Q */
+#define         TIOCPKT_DOSTOP          0x20    /* now do ^S ^Q */
+#define         TIOCPKT_IOCTL           0x40    /* state change of pty driver */
+#define TIOCSTOP         _IO('t', 111)          /* stop output, like ^S */
+#define TIOCSTART        _IO('t', 110)          /* start output, like ^Q */
+#define TIOCMSET        _IOW('t', 109, int)     /* set all modem bits */
+#define TIOCMBIS        _IOW('t', 108, int)     /* bis modem bits */
+#define TIOCMBIC        _IOW('t', 107, int)     /* bic modem bits */
+#define TIOCMGET        _IOR('t', 106, int)     /* get all modem bits */
+#define TIOCREMOTE      _IOW('t', 105, int)     /* remote input editing */
+#define TIOCGWINSZ      _IOR('t', 104, struct winsize)  /* get window size */
+#define TIOCSWINSZ      _IOW('t', 103, struct winsize)  /* set window size */
+#define TIOCUCNTL       _IOW('t', 102, int)     /* pty: set/clr usr cntl mode */
+#define TIOCSTAT         _IO('t', 101)          /* simulate ^T status message */
+#define         UIOCCMD(n)      _IO('u', n)     /* usr cntl op "n" */
+#define TIOCSCONS       _IO('t', 99)            /* 4.2 compatibility */
+#define TIOCCONS        _IOW('t', 98, int)      /* become virtual console */
+#define TIOCSCTTY        _IO('t', 97)           /* become controlling tty */
+#define TIOCEXT         _IOW('t', 96, int)      /* pty: external processing */
+#define TIOCSIG          _IO('t', 95)           /* pty: generate signal */
+#define TIOCDRAIN        _IO('t', 94)           /* wait till output drained */
+#define TIOCMSDTRWAIT   _IOW('t', 91, int)      /* modem: set wait on close */
+#define TIOCMGDTRWAIT   _IOR('t', 90, int)      /* modem: get wait on close */
+#define TIOCTIMESTAMP   _IOR('t', 89, struct timeval)   /* enable/get timestamp
+	                                                 * of last input event */
+#define TIOCDCDTIMESTAMP _IOR('t', 88, struct timeval)  /* enable/get timestamp
+	                                                 * of last DCd rise */
+#define TIOCSDRAINWAIT  _IOW('t', 87, int)      /* set ttywait timeout */
+#define TIOCGDRAINWAIT  _IOR('t', 86, int)      /* get ttywait timeout */
+#define TIOCDSIMICROCODE _IO('t', 85)           /* download microcode to
+	                                         * DSI Softmodem */
+#define TIOCPTYGRANT    _IO('t', 84)            /* grantpt(3) */
+#define TIOCPTYGNAME    _IOC(IOC_OUT, 't', 83, 128)     /* ptsname(3) */
+#define TIOCPTYUNLK     _IO('t', 82)            /* unlockpt(3) */
+
+#define TTYDISC         0               /* termios tty line discipline */
+#define TABLDISC        3               /* tablet discipline */
+#define SLIPDISC        4               /* serial IP discipline */
+#define PPPDISC         5               /* PPP discipline */
+
+#endif /* !_SYS_TTYCOM_H_ */
lib/libc/include/x86_64-macos-gnu/sys/ttydefaults.h
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by the University of
+ *      California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ttydefaults.h	8.4 (Berkeley) 1/21/94
+ */
+
+/*
+ * System wide defaults for terminal state.
+ */
+#ifndef _SYS_TTYDEFAULTS_H_
+#define _SYS_TTYDEFAULTS_H_
+
+/*
+ * Defaults on "first" open.
+ */
+#define TTYDEF_IFLAG    (BRKINT	| ICRNL	| IMAXBEL | IXON | IXANY)
+#define TTYDEF_OFLAG    (OPOST | ONLCR)
+#define TTYDEF_LFLAG    (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
+#define TTYDEF_CFLAG    (CREAD | CS8 | HUPCL)
+#define TTYDEF_SPEED    (B9600)
+
+/*
+ * Control Character Defaults
+ */
+#define CTRL(x) (x&037)
+#define CEOF            CTRL('d')
+#define CEOL            0xff            /* XXX avoid _POSIX_VDISABLE */
+#define CERASE          0177
+#define CINTR           CTRL('c')
+#define CSTATUS         CTRL('t')
+#define CKILL           CTRL('u')
+#define CMIN            1
+#define CQUIT           034             /* FS, ^\ */
+#define CSUSP           CTRL('z')
+#define CTIME           0
+#define CDSUSP          CTRL('y')
+#define CSTART          CTRL('q')
+#define CSTOP           CTRL('s')
+#define CLNEXT          CTRL('v')
+#define CDISCARD        CTRL('o')
+#define CWERASE         CTRL('w')
+#define CREPRINT        CTRL('r')
+#define CEOT            CEOF
+/* compat */
+#define CBRK            CEOL
+#define CRPRNT          CREPRINT
+#define CFLUSH          CDISCARD
+
+/* PROTECTED INCLUSION ENDS HERE */
+#endif /* !_SYS_TTYDEFAULTS_H_ */
+
+/*
+ * #define TTYDEFCHARS to include an array of default control characters.
+ */
+#ifdef TTYDEFCHARS
+static cc_t     ttydefchars[NCCS] = {
+	CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
+	_POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
+	CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE
+};
+#undef TTYDEFCHARS
+#endif
lib/libc/include/x86_64-macos-gnu/sys/types.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1986, 1991, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)types.h	8.4 (Berkeley) 1/21/94
+ */
+
+#ifndef _SYS_TYPES_H_
+#define _SYS_TYPES_H_
+
+#include <sys/appleapiopts.h>
+
+#ifndef __ASSEMBLER__
+#include <sys/cdefs.h>
+
+/* Machine type dependent parameters. */
+#include <machine/types.h>
+#include <sys/_types.h>
+
+#include <machine/endian.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_u_char.h>
+#include <sys/_types/_u_short.h>
+#include <sys/_types/_u_int.h>
+#ifndef _U_LONG
+typedef unsigned long           u_long;
+#define _U_LONG
+#endif
+typedef unsigned short          ushort;         /* Sys V compatibility */
+typedef unsigned int            uint;           /* Sys V compatibility */
+#endif
+
+typedef u_int64_t               u_quad_t;       /* quads */
+typedef int64_t                 quad_t;
+typedef quad_t *                qaddr_t;
+
+#include <sys/_types/_caddr_t.h>        /* core address */
+
+typedef int32_t                 daddr_t;        /* disk address */
+
+#include <sys/_types/_dev_t.h>                  /* device number */
+
+typedef u_int32_t               fixpt_t;        /* fixed point number */
+
+#include <sys/_types/_blkcnt_t.h>
+#include <sys/_types/_blksize_t.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_in_addr_t.h>
+#include <sys/_types/_in_port_t.h>
+#include <sys/_types/_ino_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_ino64_t.h>                        /* 64bit inode number */
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+#include <sys/_types/_key_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_nlink_t.h>
+#include <sys/_types/_id_t.h>
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_off_t.h>
+
+typedef int32_t                 segsz_t;        /* segment size */
+typedef int32_t                 swblk_t;        /* swap offset */
+
+#include <sys/_types/_uid_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* Major, minor numbers, dev_t's. */
+#if defined(__cplusplus)
+/*
+ * These lowercase macros tend to match member functions in some C++ code,
+ * so for C++, we must use inline functions instead.
+ */
+
+static inline __int32_t
+major(__uint32_t _x)
+{
+	return (__int32_t)(((__uint32_t)_x >> 24) & 0xff);
+}
+
+static inline __int32_t
+minor(__uint32_t _x)
+{
+	return (__int32_t)((_x) & 0xffffff);
+}
+
+static inline dev_t
+makedev(__uint32_t _major, __uint32_t _minor)
+{
+	return (dev_t)(((_major) << 24) | (_minor));
+}
+
+#else   /* !__cplusplus */
+
+#define major(x)        ((int32_t)(((u_int32_t)(x) >> 24) & 0xff))
+#define minor(x)        ((int32_t)((x) & 0xffffff))
+#define makedev(x, y)    ((dev_t)(((x) << 24) | (y)))
+
+#endif  /* !__cplusplus */
+#endif  /* !_POSIX_C_SOURCE */
+
+#include <sys/_types/_clock_t.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <sys/_types/_time_t.h>
+
+#include <sys/_types/_useconds_t.h>
+#include <sys/_types/_suseconds_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_rsize_t.h>
+#include <sys/_types/_errno_t.h>
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * This code is present here in order to maintain historical backward
+ * compatability, and is intended to be removed at some point in the
+ * future; please include <sys/select.h> instead.
+ */
+#include <sys/_types/_fd_def.h>
+
+#define NBBY            __DARWIN_NBBY           /* bits in a byte */
+#define NFDBITS         __DARWIN_NFDBITS        /* bits per mask */
+#define howmany(x, y)   __DARWIN_howmany(x, y)  /* # y's == x bits? */
+typedef __int32_t       fd_mask;
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#include <sys/_types/_fd_setsize.h>
+#include <sys/_types/_fd_set.h>
+#include <sys/_types/_fd_clr.h>
+#include <sys/_types/_fd_zero.h>
+#include <sys/_types/_fd_isset.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_fd_copy.h>
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif /* __ASSEMBLER__ */
+
+
+#ifndef __POSIX_LIB__
+
+#include <sys/_pthread/_pthread_attr_t.h>
+#include <sys/_pthread/_pthread_cond_t.h>
+#include <sys/_pthread/_pthread_condattr_t.h>
+#include <sys/_pthread/_pthread_mutex_t.h>
+#include <sys/_pthread/_pthread_mutexattr_t.h>
+#include <sys/_pthread/_pthread_once_t.h>
+#include <sys/_pthread/_pthread_rwlock_t.h>
+#include <sys/_pthread/_pthread_rwlockattr_t.h>
+#include <sys/_pthread/_pthread_t.h>
+
+#endif /* __POSIX_LIB__ */
+
+#include <sys/_pthread/_pthread_key_t.h>
+
+
+/* statvfs and fstatvfs */
+
+#include <sys/_types/_fsblkcnt_t.h>
+#include <sys/_types/_fsfilcnt_t.h>
+
+#endif /* !_SYS_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/sys/uio.h
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1986, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)uio.h	8.5 (Berkeley) 2/22/94
+ */
+
+#ifndef _SYS_UIO_H_
+#define _SYS_UIO_H_
+
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/*
+ * [XSI] The ssize_t and size_t types shall be defined as described
+ * in <sys/types.h>.
+ */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+
+/*
+ * [XSI] Structure whose address is passed as the second parameter to the
+ * readv() and writev() functions.
+ */
+#include <sys/_types/_iovec_t.h>
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * IO direction for uio_t.
+ *	UIO_READ - data moves into iovec(s) associated with uio_t
+ *	UIO_WRITE - data moves out of iovec(s) associated with uio_t
+ */
+enum uio_rw { UIO_READ, UIO_WRITE };
+#endif
+
+
+
+__BEGIN_DECLS
+ssize_t readv(int, const struct iovec *, int) __DARWIN_ALIAS_C(readv);
+ssize_t writev(int, const struct iovec *, int) __DARWIN_ALIAS_C(writev);
+__END_DECLS
+
+#endif /* !_SYS_UIO_H_ */
lib/libc/include/x86_64-macos-gnu/sys/un.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)un.h	8.3 (Berkeley) 2/19/95
+ */
+
+#ifndef _SYS_UN_H_
+#define _SYS_UN_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+/* [XSI] The sa_family_t type shall be defined as described in <sys/socket.h> */
+#include <sys/_types/_sa_family_t.h>
+
+/*
+ * [XSI] Definitions for UNIX IPC domain.
+ */
+struct  sockaddr_un {
+	unsigned char   sun_len;        /* sockaddr len including null */
+	sa_family_t     sun_family;     /* [XSI] AF_UNIX */
+	char            sun_path[104];  /* [XSI] path name (gag) */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/* Level number of get/setsockopt for local domain sockets */
+#define SOL_LOCAL               0
+
+/* Socket options. */
+#define LOCAL_PEERCRED          0x001           /* retrieve peer credentials */
+#define LOCAL_PEERPID           0x002           /* retrieve peer pid */
+#define LOCAL_PEEREPID          0x003           /* retrieve eff. peer pid */
+#define LOCAL_PEERUUID          0x004           /* retrieve peer UUID */
+#define LOCAL_PEEREUUID         0x005           /* retrieve eff. peer UUID */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* actual length of an initialized sockaddr_un */
+#define SUN_LEN(su) \
+	(sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+#endif /* !_SYS_UN_H_ */
lib/libc/include/x86_64-macos-gnu/sys/unistd.h
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)unistd.h	8.2 (Berkeley) 1/7/94
+ */
+
+#ifndef _SYS_UNISTD_H_
+#define _SYS_UNISTD_H_
+
+#include <sys/cdefs.h>
+
+/*
+ * Although we have saved user/group IDs, we do not use them in setuid
+ * as described in POSIX 1003.1, because the feature does not work for
+ * root.  We use the saved IDs in seteuid/setegid, which are not currently
+ * part of the POSIX 1003.1 specification.
+ */
+#ifdef  _NOT_AVAILABLE
+#define _POSIX_SAVED_IDS        /* saved set-user-ID and set-group-ID */
+#endif
+
+#define _POSIX_VERSION          200112L
+#define _POSIX2_VERSION         200112L
+
+/* execution-time symbolic constants */
+/* may disable terminal special characters */
+#include <sys/_types/_posix_vdisable.h>
+
+#define _POSIX_THREAD_KEYS_MAX 128
+
+/* access function */
+#define F_OK            0       /* test for existence of file */
+#define X_OK            (1<<0)  /* test for execute or search permission */
+#define W_OK            (1<<1)  /* test for write permission */
+#define R_OK            (1<<2)  /* test for read permission */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Extended access functions.
+ * Note that we depend on these matching the definitions in sys/kauth.h,
+ * but with the bits shifted left by 8.
+ */
+#define _READ_OK        (1<<9)  /* read file data / read directory */
+#define _WRITE_OK       (1<<10) /* write file data / add file to directory */
+#define _EXECUTE_OK     (1<<11) /* execute file / search in directory*/
+#define _DELETE_OK      (1<<12) /* delete file / delete directory */
+#define _APPEND_OK      (1<<13) /* append to file / add subdirectory to directory */
+#define _RMFILE_OK      (1<<14) /* - / remove file from directory */
+#define _RATTR_OK       (1<<15) /* read basic attributes */
+#define _WATTR_OK       (1<<16) /* write basic attributes */
+#define _REXT_OK        (1<<17) /* read extended attributes */
+#define _WEXT_OK        (1<<18) /* write extended attributes */
+#define _RPERM_OK       (1<<19) /* read permissions */
+#define _WPERM_OK       (1<<20) /* write permissions */
+#define _CHOWN_OK       (1<<21) /* change ownership */
+
+#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | \
+	                        _DELETE_OK | _APPEND_OK | \
+	                        _RMFILE_OK | _REXT_OK | \
+	                        _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | \
+	                        _WPERM_OK | _CHOWN_OK)
+#endif
+
+/* whence values for lseek(2) */
+#include <sys/_types/_seek_set.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* whence values for lseek(2); renamed by POSIX 1003.1 */
+#define L_SET           SEEK_SET
+#define L_INCR          SEEK_CUR
+#define L_XTND          SEEK_END
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct accessx_descriptor {
+	unsigned int ad_name_offset;
+	int ad_flags;
+	int ad_pad[2];
+};
+#define ACCESSX_MAX_DESCRIPTORS 100
+#define ACCESSX_MAX_TABLESIZE   (16 * 1024)
+#endif
+
+/* configurable pathname variables */
+#define _PC_LINK_MAX             1
+#define _PC_MAX_CANON            2
+#define _PC_MAX_INPUT            3
+#define _PC_NAME_MAX             4
+#define _PC_PATH_MAX             5
+#define _PC_PIPE_BUF             6
+#define _PC_CHOWN_RESTRICTED     7
+#define _PC_NO_TRUNC             8
+#define _PC_VDISABLE             9
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define _PC_NAME_CHARS_MAX       10
+#define _PC_CASE_SENSITIVE               11
+#define _PC_CASE_PRESERVING              12
+#define _PC_EXTENDED_SECURITY_NP        13
+#define _PC_AUTH_OPAQUE_NP      14
+#endif
+
+#define _PC_2_SYMLINKS          15      /* Symlink supported in directory */
+#define _PC_ALLOC_SIZE_MIN      16      /* Minimum storage actually allocated */
+#define _PC_ASYNC_IO            17      /* Async I/O [AIO] supported? */
+#define _PC_FILESIZEBITS        18      /* # of bits to represent file size */
+#define _PC_PRIO_IO             19      /* Priority I/O [PIO] supported? */
+#define _PC_REC_INCR_XFER_SIZE  20      /* Recommended increment for next two */
+#define _PC_REC_MAX_XFER_SIZE   21      /* Recommended max file transfer size */
+#define _PC_REC_MIN_XFER_SIZE   22      /* Recommended min file transfer size */
+#define _PC_REC_XFER_ALIGN      23      /* Recommended buffer alignment */
+#define _PC_SYMLINK_MAX         24      /* Max # of bytes in symlink name */
+#define _PC_SYNC_IO             25      /* Sync I/O [SIO] supported? */
+#define _PC_XATTR_SIZE_BITS     26      /* # of bits to represent maximum xattr size */
+#define _PC_MIN_HOLE_SIZE       27      /* Recommended minimum hole size for sparse files */
+
+/* configurable system strings */
+#define _CS_PATH                 1
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#include <machine/_types.h>
+#include <sys/_types/_size_t.h>
+#include <_types/_uint64_t.h>
+#include <_types/_uint32_t.h>
+#include <Availability.h>
+
+__BEGIN_DECLS
+
+int     getattrlistbulk(int, void *, void *, size_t, uint64_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 200809L
+
+#include <machine/_types.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <sys/_types.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_gid_t.h>
+#include <Availability.h>
+
+__BEGIN_DECLS
+
+int     faccessat(int, const char *, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     fchownat(int, const char *, uid_t, gid_t, int)  __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     linkat(int, const char *, int, const char *, int)       __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+ssize_t readlinkat(int, const char *, char *, size_t)   __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     symlinkat(const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     unlinkat(int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#endif /* !_SYS_UNISTD_H_ */
lib/libc/include/x86_64-macos-gnu/sys/utsname.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* Copyright 1993,1995 NeXT Computer Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chuck Karish of Mindcraft, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)utsname.h	8.1 (Berkeley) 1/4/94
+ */
+
+#ifndef _SYS_UTSNAME_H
+#define _SYS_UTSNAME_H
+
+#include <sys/cdefs.h>
+
+#define _SYS_NAMELEN    256
+
+struct  utsname {
+	char    sysname[_SYS_NAMELEN];  /* [XSI] Name of OS */
+	char    nodename[_SYS_NAMELEN]; /* [XSI] Name of this network node */
+	char    release[_SYS_NAMELEN];  /* [XSI] Release level */
+	char    version[_SYS_NAMELEN];  /* [XSI] Version level */
+	char    machine[_SYS_NAMELEN];  /* [XSI] Hardware type */
+};
+
+__BEGIN_DECLS
+int uname(struct utsname *);
+__END_DECLS
+
+#endif  /* !_SYS_UTSNAME_H */
lib/libc/include/x86_64-macos-gnu/uuid/uuid.h
@@ -0,0 +1,79 @@
+/*
+ * Public include file for the UUID library
+ *
+ * Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, and the entire permission notice in its entirety,
+ *    including the disclaimer of warranties.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ * %End-Header%
+ */
+
+#ifndef _UUID_UUID_H
+#define _UUID_UUID_H
+
+#include <sys/_types.h>
+#include <sys/_types/_uuid_t.h>
+
+#ifndef _UUID_STRING_T
+#define _UUID_STRING_T
+typedef __darwin_uuid_string_t  uuid_string_t;
+#endif /* _UUID_STRING_T */
+
+#define UUID_DEFINE(name, u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) \
+	static const uuid_t name __attribute__ ((unused)) = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15}
+
+UUID_DEFINE(UUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void uuid_clear(uuid_t uu);
+
+int uuid_compare(const uuid_t uu1, const uuid_t uu2);
+
+void uuid_copy(uuid_t dst, const uuid_t src);
+
+void uuid_generate(uuid_t out);
+void uuid_generate_random(uuid_t out);
+void uuid_generate_time(uuid_t out);
+
+void uuid_generate_early_random(uuid_t out);
+
+int uuid_is_null(const uuid_t uu);
+
+int uuid_parse(const uuid_string_t in, uuid_t uu);
+
+void uuid_unparse(const uuid_t uu, uuid_string_t out);
+void uuid_unparse_lower(const uuid_t uu, uuid_string_t out);
+void uuid_unparse_upper(const uuid_t uu, uuid_string_t out);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UUID_UUID_H */
lib/libc/include/x86_64-macos-gnu/_regex.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2000, 2011 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 2001-2009 Ville Laurikari <vl@iki.fi>
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ * 
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER 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 COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*-
+ * Copyright (c) 1992 Henry Spencer.
+ * Copyright (c) 1992, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Henry Spencer of the University of Toronto.
+ *
+ * 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.
+ *
+ *	@(#)regex.h	8.2 (Berkeley) 1/3/94
+ */
+
+/*
+ * Common header for regex.h and xlocale/_regex.h
+ */
+
+#ifndef __REGEX_H_
+#define	__REGEX_H_
+
+#include <_types.h>
+#include <Availability.h>
+#include <sys/_types/_size_t.h>
+
+/*********/
+/* types */
+/*********/
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#include <sys/_types/_wchar_t.h>
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+typedef __darwin_off_t regoff_t;
+
+typedef struct {
+	int re_magic;
+	size_t re_nsub;		/* number of parenthesized subexpressions */
+	const char *re_endp;	/* end pointer for REG_PEND */
+	struct re_guts *re_g;	/* none of your business :-) */
+} regex_t;
+
+typedef struct {
+	regoff_t rm_so;		/* start of match */
+	regoff_t rm_eo;		/* end of match */
+} regmatch_t;
+
+#endif /* !__REGEX_H_ */
lib/libc/include/x86_64-macos-gnu/aio.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/* 
+ *	File:	aio.h
+ *	Author:	Umesh Vaishampayan [umeshv@apple.com]
+ *			05-Feb-2003	umeshv	Created.
+ *
+ *	Header file for POSIX Asynchronous IO APIs
+ *
+ */ 
+
+#ifndef _AIO_H_
+#define	_AIO_H_
+
+#include <sys/aio.h>
+
+#endif /* _AIO_H_ */
lib/libc/include/x86_64-macos-gnu/cpio.h
@@ -0,0 +1,55 @@
+/*-
+ * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/include/cpio.h,v 1.1 2002/08/01 07:18:38 mike Exp $
+ */
+
+#ifndef _CPIO_H_
+#define	_CPIO_H_
+
+#define	C_ISSOCK 0140000	/* Socket. */
+#define	C_ISLNK	0120000		/* Symbolic link. */
+#define	C_ISCTG	0110000		/* Reserved. */
+#define	C_ISREG	0100000		/* Regular file. */
+#define	C_ISBLK	0060000		/* Block special. */
+#define	C_ISDIR	0040000		/* Directory. */
+#define	C_ISCHR	0020000		/* Character special. */
+#define	C_ISFIFO 0010000	/* FIFO. */
+#define	C_ISUID	0004000		/* Set user ID. */
+#define	C_ISGID	0002000		/* Set group ID. */
+#define	C_ISVTX	0001000		/* On directories, restricted deletion flag. */
+#define	C_IRUSR	0000400		/* Read by owner. */
+#define	C_IWUSR	0000200		/* Write by owner. */
+#define	C_IXUSR	0000100		/* Execute by owner. */
+#define	C_IRGRP	0000040		/* Read by group. */
+#define	C_IWGRP	0000020		/* Write by group. */
+#define	C_IXGRP	0000010		/* Execute by group. */
+#define	C_IROTH	0000004		/* Read by others. */
+#define	C_IWOTH	0000002		/* Write by others. */
+#define	C_IXOTH	0000001		/* Execute by others. */
+
+#define	MAGIC	"070707"
+
+#endif /* _CPIO_H_ */
lib/libc/include/x86_64-macos-gnu/dirent.h
@@ -0,0 +1,191 @@
+/*
+ * Copyright (c) 2000, 2002-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)dirent.h	8.2 (Berkeley) 7/28/94
+ */
+
+#ifndef _DIRENT_H_
+#define _DIRENT_H_
+
+/*
+ * The kernel defines the format of directory entries
+ */
+#include <_types.h>
+#include <sys/dirent.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+#include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutex_t */
+
+struct _telldir;		/* forward reference */
+
+/* structure describing an open directory. */
+typedef struct {
+	int	__dd_fd;	/* file descriptor associated with directory */
+	long	__dd_loc;	/* offset in current buffer */
+	long	__dd_size;	/* amount of data returned */
+	char	*__dd_buf;	/* data buffer */
+	int	__dd_len;	/* size of data buffer */
+	long	__dd_seek;	/* magic cookie returned */
+	__unused long	__padding; /* (__dd_rewind space left for bincompat) */
+	int	__dd_flags;	/* flags for readdir */
+	__darwin_pthread_mutex_t __dd_lock; /* for thread locking */
+	struct _telldir *__dd_td; /* telldir position recording */
+} DIR;
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+/* definitions for library routines operating on directories. */
+#define	DIRBLKSIZ	1024
+
+/* flags for opendir2 */
+#define DTF_HIDEW	0x0001	/* hide whiteout entries */
+#define DTF_NODUP	0x0002	/* don't return duplicate names */
+#define DTF_REWIND	0x0004	/* rewind after reading union stack */
+#define __DTF_READALL	0x0008	/* everything has been read */
+#define __DTF_SKIPREAD  0x0010  /* assume internal buffer is populated */
+#define __DTF_ATEND     0x0020  /* there's nothing more to read in the kernel */
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#ifndef KERNEL
+
+__BEGIN_DECLS
+
+int closedir(DIR *) __DARWIN_ALIAS(closedir);
+
+DIR *opendir(const char *) __DARWIN_ALIAS_I(opendir);
+
+struct dirent *readdir(DIR *) __DARWIN_INODE64(readdir);
+int readdir_r(DIR *, struct dirent *, struct dirent **) __DARWIN_INODE64(readdir_r);
+
+void rewinddir(DIR *) __DARWIN_ALIAS_I(rewinddir);
+
+void seekdir(DIR *, long) __DARWIN_ALIAS_I(seekdir);
+
+long telldir(DIR *) __DARWIN_ALIAS_I(telldir);
+
+__END_DECLS
+
+
+/* Additional functionality provided by:
+ * POSIX.1-2008
+ */
+
+#if __DARWIN_C_LEVEL >= 200809L
+__BEGIN_DECLS
+
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
+DIR *fdopendir(int) __DARWIN_ALIAS_I(fdopendir);
+
+int alphasort(const struct dirent **, const struct dirent **) __DARWIN_INODE64(alphasort);
+
+#if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_8) || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0)
+#include <errno.h>
+#include <stdlib.h>
+#define dirfd(dirp) ({                         \
+    DIR *_dirp = (dirp);                       \
+    int ret = -1;                              \
+    if (_dirp == NULL || _dirp->__dd_fd < 0)   \
+        errno = EINVAL;                        \
+    else                                       \
+       ret = _dirp->__dd_fd;                   \
+    ret;                                       \
+})
+#else
+int dirfd(DIR *dirp) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+#endif
+
+int scandir(const char *, struct dirent ***,
+    int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)) __DARWIN_INODE64(scandir);
+#ifdef __BLOCKS__
+#if __has_attribute(noescape)
+#define __scandir_noescape __attribute__((__noescape__))
+#else
+#define __scandir_noescape
+#endif
+
+int scandir_b(const char *, struct dirent ***,
+    int (^)(const struct dirent *) __scandir_noescape,
+    int (^)(const struct dirent **, const struct dirent **) __scandir_noescape)
+    __DARWIN_INODE64(scandir_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+__BEGIN_DECLS
+
+int getdirentries(int, char *, int, long *)
+
+#if __DARWIN_64_BIT_INO_T
+/*
+ * getdirentries() doesn't work when 64-bit inodes is in effect, so we
+ * generate a link error.
+ */
+						__asm("_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect")
+#else /* !__DARWIN_64_BIT_INO_T */
+						__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_6, __IPHONE_2_0,__IPHONE_2_0)
+#endif /* __DARWIN_64_BIT_INO_T */
+;
+
+DIR *__opendir2(const char *, int) __DARWIN_ALIAS_I(__opendir2);
+
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#endif /* !KERNEL */
+
+#endif /* !_DIRENT_H_ */
lib/libc/include/x86_64-macos-gnu/dlfcn.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2004-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+  Based on the dlcompat work done by:
+		Jorge Acereda  <jacereda@users.sourceforge.net> &
+		Peter O'Gorman <ogorman@users.sourceforge.net>
+*/
+
+#ifndef _DLFCN_H_
+#define _DLFCN_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/cdefs.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <stdbool.h>
+#include <Availability.h>
+
+#ifdef __DRIVERKIT_19_0
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit)
+#else
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE
+#endif
+
+/*
+ * Structure filled in by dladdr().
+ */
+typedef struct dl_info {
+        const char      *dli_fname;     /* Pathname of shared object */
+        void            *dli_fbase;     /* Base address of shared object */
+        const char      *dli_sname;     /* Name of nearest symbol */
+        void            *dli_saddr;     /* Address of nearest symbol */
+} Dl_info;
+
+extern int dladdr(const void *, Dl_info *);
+#else
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE
+#endif /* not POSIX */
+
+extern int dlclose(void * __handle) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern char * dlerror(void) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern void * dlopen(const char * __path, int __mode) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern void * dlsym(void * __handle, const char * __symbol) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+extern bool dlopen_preflight(const char* __path) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+#endif /* not POSIX */
+
+
+#define RTLD_LAZY	0x1
+#define RTLD_NOW	0x2
+#define RTLD_LOCAL	0x4
+#define RTLD_GLOBAL	0x8
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define RTLD_NOLOAD	0x10
+#define RTLD_NODELETE	0x80
+#define RTLD_FIRST	0x100	/* Mac OS X 10.5 and later */
+
+/*
+ * Special handle arguments for dlsym().
+ */
+#define	RTLD_NEXT	((void *) -1)	/* Search subsequent objects. */
+#define	RTLD_DEFAULT	((void *) -2)	/* Use default search algorithm. */
+#define	RTLD_SELF	((void *) -3)	/* Search this and subsequent objects (Mac OS X 10.5 and later) */
+#define	RTLD_MAIN_ONLY	((void *) -5)	/* Search main executable only (Mac OS X 10.5 and later) */
+#endif /* not POSIX */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DLFCN_H_ */
lib/libc/include/x86_64-macos-gnu/fcntl.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#include <sys/fcntl.h>
lib/libc/include/x86_64-macos-gnu/fmtmsg.h
@@ -0,0 +1,73 @@
+/*-
+ * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/include/fmtmsg.h,v 1.2 2002/08/05 16:37:05 mike Exp $
+ */
+
+#ifndef _FMTMSG_H_
+#define	_FMTMSG_H_
+
+/* Source of condition is... */
+#define	MM_HARD		0x0001	/* ...hardware. */
+#define	MM_SOFT		0x0002	/* ...software. */
+#define	MM_FIRM		0x0004	/* ...fireware. */
+
+/* Condition detected by... */
+#define	MM_APPL		0x0010	/* ...application. */
+#define	MM_UTIL		0x0020	/* ...utility. */
+#define	MM_OPSYS	0x0040	/* ...operating system. */
+
+/* Display on... */
+#define	MM_PRINT	0x0100	/* ...standard error. */
+#define	MM_CONSOLE	0x0200	/* ...system console. */
+
+#define	MM_RECOVER	0x1000	/* Recoverable error. */
+#define	MM_NRECOV	0x2000	/* Non-recoverable error. */
+
+/* Severity levels. */
+#define	MM_NOSEV	0	/* No severity level provided. */
+#define	MM_HALT		1	/* Error causing application to halt. */
+#define	MM_ERROR	2	/* Non-fault fault. */
+#define	MM_WARNING	3	/* Unusual non-error condition. */
+#define	MM_INFO		4	/* Informative message. */
+
+/* Null options. */
+#define	MM_NULLLBL	(char *)0
+#define	MM_NULLSEV	0
+#define	MM_NULLMC	0L
+#define	MM_NULLTXT	(char *)0
+#define	MM_NULLACT	(char *)0
+#define	MM_NULLTAG	(char *)0
+
+/* Return values. */
+#define	MM_OK		0	/* Success. */
+#define	MM_NOMSG	1	/* Failed to output to stderr. */
+#define	MM_NOCON	2	/* Failed to output to console. */
+#define	MM_NOTOK	3	/* Failed to output anything. */
+
+int	fmtmsg(long, const char *, int, const char *, const char *,
+	    const char *);
+
+#endif /* !_FMTMSG_H_ */
lib/libc/include/x86_64-macos-gnu/fnmatch.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1992, 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.
+ *
+ *	@(#)fnmatch.h	8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef	_FNMATCH_H_
+#define	_FNMATCH_H_
+
+#include <sys/cdefs.h>
+
+#define	FNM_NOMATCH	1	/* Match failed. */
+
+#define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */
+#define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */
+#define	FNM_PERIOD	0x04	/* Period must be matched by period. */
+
+#define	FNM_NOSYS	(-1)	/* Reserved. */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#define	FNM_LEADING_DIR	0x08	/* Ignore /<tail> after Imatch. */
+#define	FNM_CASEFOLD	0x10	/* Case insensitive search. */
+#define	FNM_IGNORECASE	FNM_CASEFOLD
+#define	FNM_FILE_NAME	FNM_PATHNAME
+#endif
+
+__BEGIN_DECLS
+int	 fnmatch(const char *, const char *, int) __DARWIN_ALIAS(fnmatch);
+__END_DECLS
+
+#endif /* !_FNMATCH_H_ */
lib/libc/include/x86_64-macos-gnu/ftw.h
@@ -0,0 +1,60 @@
+/*	$OpenBSD: ftw.h,v 1.1 2003/07/21 21:13:18 millert Exp $	*/
+
+/*
+ * Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Sponsored in part by the Defense Advanced Research Projects
+ * Agency (DARPA) and Air Force Research Laboratory, Air Force
+ * Materiel Command, USAF, under agreement number F39502-99-1-0512.
+ */
+
+#ifndef	_FTW_H
+#define	_FTW_H
+
+#include <sys/stat.h>
+
+/*
+ * Valid flags for the 3rd argument to the function that is passed as the
+ * second argument to ftw(3) and nftw(3).  Say it three times fast!
+ */
+#define	FTW_F		0	/* File.  */
+#define	FTW_D		1	/* Directory.  */
+#define	FTW_DNR		2	/* Directory without read permission.  */
+#define	FTW_DP		3	/* Directory with subdirectories visited.  */
+#define	FTW_NS		4	/* Unknown type; stat() failed.  */
+#define	FTW_SL		5	/* Symbolic link.  */
+#define	FTW_SLN		6	/* Sym link that names a nonexistent file.  */
+
+/*
+ * Flags for use as the 4th argument to nftw(3).  These may be ORed together.
+ */
+#define	FTW_PHYS	0x01	/* Physical walk, don't follow sym links.  */
+#define	FTW_MOUNT	0x02	/* The walk does not cross a mount point.  */
+#define	FTW_DEPTH	0x04	/* Subdirs visited before the dir itself. */
+#define	FTW_CHDIR	0x08	/* Change to a directory before reading it. */
+
+struct FTW {
+	int base;
+	int level;
+};
+
+__BEGIN_DECLS
+int	ftw(const char *, int (*)(const char *, const struct stat *, int), int) 
+	__DARWIN_ALIAS_I(ftw);
+int	nftw(const char *, int (*)(const char *, const struct stat *, int,
+	    struct FTW *), int, int) __DARWIN_ALIAS_I(nftw);
+__END_DECLS
+
+#endif	/* !_FTW_H */
lib/libc/include/x86_64-macos-gnu/gethostuuid.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef __GETHOSTUUID_H
+#define __GETHOSTUUID_H
+
+#include <sys/_types/_timespec.h>
+#include <sys/_types/_uuid_t.h>
+#include <Availability.h>
+
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0)
+int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, __IPHONE_2_0, __IPHONE_5_0, "gethostuuid() is no longer supported");
+#else
+int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
+#endif
+
+#endif /* __GETHOSTUUID_H */
lib/libc/include/x86_64-macos-gnu/glob.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Guido van Rossum.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the 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.
+ *
+ *	@(#)glob.h	8.1 (Berkeley) 6/2/93
+ * $FreeBSD: /repoman/r/ncvs/src/include/glob.h,v 1.7 2002/07/17 04:58:09 mikeh Exp $
+ */
+
+#ifndef _GLOB_H_
+#define	_GLOB_H_
+
+#include <_types.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+#include <sys/_types/_size_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct dirent;
+struct stat;
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+typedef struct {
+	size_t gl_pathc;	/* Count of total paths so far. */
+	int gl_matchc;		/* Count of paths matching pattern. */
+	size_t gl_offs;		/* Reserved at beginning of gl_pathv. */
+	int gl_flags;		/* Copy of flags parameter to glob. */
+	char **gl_pathv;	/* List of paths matching pattern. */
+				/* Copy of errfunc parameter to glob. */
+#ifdef __BLOCKS__
+	union {
+#endif /* __BLOCKS__ */
+		int (*gl_errfunc)(const char *, int);
+#ifdef __BLOCKS__
+		int (^gl_errblk)(const char *, int);
+	};
+#endif /* __BLOCKS__ */
+
+	/*
+	 * Alternate filesystem access methods for glob; replacement
+	 * versions of closedir(3), readdir(3), opendir(3), stat(2)
+	 * and lstat(2).
+	 */
+	void (*gl_closedir)(void *);
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+	struct dirent *(*gl_readdir)(void *);
+#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+	void *(*gl_readdir)(void *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+	void *(*gl_opendir)(const char *);
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+	int (*gl_lstat)(const char *, struct stat *);
+	int (*gl_stat)(const char *, struct stat *);
+#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+	int (*gl_lstat)(const char *, void *);
+	int (*gl_stat)(const char *, void *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+} glob_t;
+
+/* Believed to have been introduced in 1003.2-1992 */
+#define	GLOB_APPEND	0x0001	/* Append to output from previous call. */
+#define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */
+#define	GLOB_ERR	0x0004	/* Return on error. */
+#define	GLOB_MARK	0x0008	/* Append / to matching directories. */
+#define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */
+#define	GLOB_NOSORT	0x0020	/* Don't sort. */
+#define	GLOB_NOESCAPE	0x2000	/* Disable backslash escaping. */
+
+/* Error values returned by glob(3) */
+#define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */
+#define	GLOB_ABORTED	(-2)	/* Unignored error. */
+#define	GLOB_NOMATCH	(-3)	/* No match and GLOB_NOCHECK was not set. */
+#define	GLOB_NOSYS	(-4)	/* Obsolete: source comptability only. */
+
+#define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */
+#define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */
+#define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */
+#define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */
+#define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */
+#define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */
+#define	GLOB_LIMIT	0x1000	/* limit number of returned paths */
+#ifdef __BLOCKS__
+#define	_GLOB_ERR_BLOCK	0x80000000 /* (internal) error callback is a block */
+#endif /* __BLOCKS__ */
+
+/* source compatibility, these are the old names */
+#define GLOB_MAXPATH	GLOB_LIMIT
+#define	GLOB_ABEND	GLOB_ABORTED
+
+__BEGIN_DECLS
+int	glob(const char * __restrict, int, int (*)(const char *, int), 
+	     glob_t * __restrict) __DARWIN_INODE64(glob);
+#ifdef __BLOCKS__
+#if __has_attribute(noescape)
+#define __glob_noescape __attribute__((__noescape__))
+#else
+#define __glob_noescape
+#endif
+int	glob_b(const char * __restrict, int, int (^)(const char *, int) __glob_noescape,
+	     glob_t * __restrict) __DARWIN_INODE64(glob_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void	globfree(glob_t *);
+__END_DECLS
+
+#endif /* !_GLOB_H_ */
lib/libc/include/x86_64-macos-gnu/grp.h
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)grp.h	8.2 (Berkeley) 1/21/94
+ */
+/* Portions copyright (c) 2000-2018 Apple Inc. All rights reserved. */ 
+
+#ifndef _GRP_H_
+#define	_GRP_H_
+
+#include <_types.h>
+#include <sys/_types/_gid_t.h>	/* [XBD] */
+#include <sys/_types/_size_t.h> /* SUSv4 */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	_PATH_GROUP		"/etc/group"
+#endif
+
+struct group {
+	char	*gr_name;		/* [XBD] group name */
+	char	*gr_passwd;		/* [???] group password */
+	gid_t	gr_gid;			/* [XBD] group id */
+	char	**gr_mem;		/* [XBD] group members */
+};
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+/* [XBD] */
+struct group *getgrgid(gid_t);
+struct group *getgrnam(const char *);
+/* [TSF] */
+int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
+int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
+/* [XSI] */
+struct group *getgrent(void);
+void setgrent(void);
+void endgrent(void);
+__END_DECLS
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+#include <uuid/uuid.h>
+__BEGIN_DECLS
+char *group_from_gid(gid_t, int);
+struct group *getgruuid(uuid_t);
+int getgruuid_r(uuid_t, struct group *, char *, size_t, struct group **);
+__END_DECLS
+#endif
+
+#if !defined(_XOPEN_SOURCE) || defined(_DARWIN_C_SOURCE)
+__BEGIN_DECLS
+#if (!defined(LIBINFO_INSTALL_API) || !LIBINFO_INSTALL_API)
+void setgrfile(const char *);
+#endif
+int setgroupent(int);
+__END_DECLS
+#endif
+
+#endif /* !_GRP_H_ */
lib/libc/include/x86_64-macos-gnu/iconv.h
@@ -0,0 +1,193 @@
+/* Copyright (C) 1999-2003, 2005-2006 Free Software Foundation, Inc.
+   This file is part of the GNU LIBICONV Library.
+
+   The GNU LIBICONV Library is free software; you can redistribute it
+   and/or modify it under the terms of the GNU Library General Public
+   License as published by the Free Software Foundation; either version 2
+   of the License, or (at your option) any later version.
+
+   The GNU LIBICONV Library is distributed in the hope that it will be
+   useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+   If not, write to the Free Software Foundation, Inc., 51 Franklin Street,
+   Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* When installed, this file is called "iconv.h". */
+
+#ifndef _LIBICONV_H
+#define _LIBICONV_H
+
+#include <sys/cdefs.h>
+#include <_types.h>
+#include <sys/_types/_size_t.h>
+
+#define _LIBICONV_VERSION 0x010B    /* version number: (major<<8) + minor */
+
+#if BUILDING_LIBICONV
+#define __LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default")))
+#else
+#define __LIBICONV_DLL_EXPORTED
+#endif
+extern __LIBICONV_DLL_EXPORTED  int _libiconv_version; /* Likewise */
+
+/* We would like to #include any system header file which could define
+   iconv_t, 1. in order to eliminate the risk that the user gets compilation
+   errors because some other system header file includes /usr/include/iconv.h
+   which defines iconv_t or declares iconv after this file, 2. when compiling
+   for LIBICONV_PLUG, we need the proper iconv_t type in order to produce
+   binary compatible code.
+   But gcc's #include_next is not portable. Thus, once libiconv's iconv.h
+   has been installed in /usr/local/include, there is no way any more to
+   include the original /usr/include/iconv.h. We simply have to get away
+   without it.
+   Ad 1. The risk that a system header file does
+   #include "iconv.h"  or  #include_next "iconv.h"
+   is small. They all do #include <iconv.h>.
+   Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It
+   has to be a scalar type because (iconv_t)(-1) is a possible return value
+   from iconv_open().) */
+
+/* Define iconv_t ourselves. */
+#ifndef _ICONV_T
+#define _ICONV_T
+typedef void* iconv_t;
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Allocates descriptor for code conversion from encoding `fromcode' to
+   encoding `tocode'. */
+extern __LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* __tocode, const char* __fromcode);
+
+/* Converts, using conversion descriptor `cd', at most `*inbytesleft' bytes
+   starting at `*inbuf', writing at most `*outbytesleft' bytes starting at
+   `*outbuf'.
+   Decrements `*inbytesleft' and increments `*inbuf' by the same amount.
+   Decrements `*outbytesleft' and increments `*outbuf' by the same amount. */
+extern __LIBICONV_DLL_EXPORTED size_t iconv (iconv_t __cd, char* * __restrict __inbuf, size_t * __restrict __inbytesleft, char* * __restrict __outbuf, size_t * __restrict __outbytesleft);
+
+/* Frees resources allocated for conversion descriptor `cd'. */
+extern __LIBICONV_DLL_EXPORTED int iconv_close (iconv_t _cd);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+/* Nonstandard extensions. */
+
+#include <sys/_types/_wchar_t.h>
+
+/* Control of attributes. */
+extern __LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument);
+
+/* Hook performed after every successful conversion of a Unicode character. */
+typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data);
+/* Hook performed after every successful conversion of a wide character. */
+typedef void (*iconv_wide_char_hook) (wchar_t wc, void* data);
+/* Set of hooks. */
+struct iconv_hooks {
+  iconv_unicode_char_hook uc_hook;
+  iconv_wide_char_hook wc_hook;
+  void* data;
+};
+
+/* Fallback function.  Invoked when a small number of bytes could not be
+   converted to a Unicode character.  This function should process all
+   bytes from inbuf and may produce replacement Unicode characters by calling
+   the write_replacement callback repeatedly.  */
+typedef void (*iconv_unicode_mb_to_uc_fallback)
+             (const char* inbuf, size_t inbufsize,
+              void (*write_replacement) (const unsigned int *buf, size_t buflen,
+                                         void* callback_arg),
+              void* callback_arg,
+              void* data);
+/* Fallback function.  Invoked when a Unicode character could not be converted
+   to the target encoding.  This function should process the character and
+   may produce replacement bytes (in the target encoding) by calling the
+   write_replacement callback repeatedly.  */
+typedef void (*iconv_unicode_uc_to_mb_fallback)
+             (unsigned int code,
+              void (*write_replacement) (const char *buf, size_t buflen,
+                                         void* callback_arg),
+              void* callback_arg,
+              void* data);
+#if 1
+/* Fallback function.  Invoked when a number of bytes could not be converted to
+   a wide character.  This function should process all bytes from inbuf and may
+   produce replacement wide characters by calling the write_replacement
+   callback repeatedly.  */
+typedef void (*iconv_wchar_mb_to_wc_fallback)
+             (const char* inbuf, size_t inbufsize,
+              void (*write_replacement) (const wchar_t *buf, size_t buflen,
+                                         void* callback_arg),
+              void* callback_arg,
+              void* data);
+/* Fallback function.  Invoked when a wide character could not be converted to
+   the target encoding.  This function should process the character and may
+   produce replacement bytes (in the target encoding) by calling the
+   write_replacement callback repeatedly.  */
+typedef void (*iconv_wchar_wc_to_mb_fallback)
+             (wchar_t code,
+              void (*write_replacement) (const char *buf, size_t buflen,
+                                         void* callback_arg),
+              void* callback_arg,
+              void* data);
+#else
+/* If the wchar_t type does not exist, these two fallback functions are never
+   invoked.  Their argument list therefore does not matter.  */
+typedef void (*iconv_wchar_mb_to_wc_fallback) ();
+typedef void (*iconv_wchar_wc_to_mb_fallback) ();
+#endif
+/* Set of fallbacks. */
+struct iconv_fallbacks {
+  iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback;
+  iconv_unicode_uc_to_mb_fallback uc_to_mb_fallback;
+  iconv_wchar_mb_to_wc_fallback mb_to_wc_fallback;
+  iconv_wchar_wc_to_mb_fallback wc_to_mb_fallback;
+  void* data;
+};
+
+/* Requests for iconvctl. */
+#define ICONV_TRIVIALP            0  /* int *argument */
+#define ICONV_GET_TRANSLITERATE   1  /* int *argument */
+#define ICONV_SET_TRANSLITERATE   2  /* const int *argument */
+#define ICONV_GET_DISCARD_ILSEQ   3  /* int *argument */
+#define ICONV_SET_DISCARD_ILSEQ   4  /* const int *argument */
+#define ICONV_SET_HOOKS           5  /* const struct iconv_hooks *argument */
+#define ICONV_SET_FALLBACKS       6  /* const struct iconv_fallbacks *argument */
+
+/* Listing of locale independent encodings. */
+extern __LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount,
+                                      const char * const * names,
+                                      void* data),
+                       void* data);
+
+/* Canonicalize an encoding name.
+   The result is either a canonical encoding name, or name itself. */
+extern __LIBICONV_DLL_EXPORTED const char * iconv_canonicalize (const char * name);
+
+/* Support for relocatable packages.  */
+
+/* Sets the original and the current installation prefix of the package.
+   Relocation simply replaces a pathname starting with the original prefix
+   by the corresponding pathname with the current prefix instead.  Both
+   prefixes should be directory names without trailing slash (i.e. use ""
+   instead of "/").  */
+extern __LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix,
+					    const char *curr_prefix);
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LIBICONV_H */
lib/libc/include/x86_64-macos-gnu/langinfo.h
@@ -0,0 +1,120 @@
+/*-
+ * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: /repoman/r/ncvs/src/include/langinfo.h,v 1.6 2002/09/18 05:54:25 mike Exp $
+ */
+
+#ifndef _LANGINFO_H_
+#define	_LANGINFO_H_
+
+#include <_types.h>
+#include <_types/_nl_item.h>
+
+#define	CODESET		0	/* codeset name */
+#define	D_T_FMT		1	/* string for formatting date and time */
+#define	D_FMT		2	/* date format string */
+#define	T_FMT		3	/* time format string */
+#define	T_FMT_AMPM	4	/* a.m. or p.m. time formatting string */
+#define	AM_STR		5	/* Ante Meridian affix */
+#define	PM_STR		6	/* Post Meridian affix */
+
+/* week day names */
+#define	DAY_1		7
+#define	DAY_2		8
+#define	DAY_3		9
+#define	DAY_4		10
+#define	DAY_5		11
+#define	DAY_6		12
+#define	DAY_7		13
+
+/* abbreviated week day names */
+#define	ABDAY_1		14
+#define	ABDAY_2		15
+#define	ABDAY_3		16
+#define	ABDAY_4		17
+#define	ABDAY_5		18
+#define	ABDAY_6		19
+#define	ABDAY_7		20
+
+/* month names */
+#define	MON_1		21
+#define	MON_2		22
+#define	MON_3		23
+#define	MON_4		24
+#define	MON_5		25
+#define	MON_6		26
+#define	MON_7		27
+#define	MON_8		28
+#define	MON_9		29
+#define	MON_10		30
+#define	MON_11		31
+#define	MON_12		32
+
+/* abbreviated month names */
+#define	ABMON_1		33
+#define	ABMON_2		34
+#define	ABMON_3		35
+#define	ABMON_4		36
+#define	ABMON_5		37
+#define	ABMON_6		38
+#define	ABMON_7		39
+#define	ABMON_8		40
+#define	ABMON_9		41
+#define	ABMON_10	42
+#define	ABMON_11	43
+#define	ABMON_12	44
+
+#define	ERA		45	/* era description segments */
+#define	ERA_D_FMT	46	/* era date format string */
+#define	ERA_D_T_FMT	47	/* era date and time format string */
+#define	ERA_T_FMT	48	/* era time format string */
+#define	ALT_DIGITS	49	/* alternative symbols for digits */
+
+#define	RADIXCHAR	50	/* radix char */
+#define	THOUSEP		51	/* separator for thousands */
+
+#define	YESEXPR		52	/* affirmative response expression */
+#define	NOEXPR		53	/* negative response expression */
+
+#if (__DARWIN_C_LEVEL > __DARWIN_C_ANSI && __DARWIN_C_LEVEL < 200112L) || __DARWIN_C_LEVEL == __DARWIN_C_FULL
+#define	YESSTR		54	/* affirmative response for yes/no queries */
+#define	NOSTR		55	/* negative response for yes/no queries */
+#endif
+
+#define	CRNCYSTR	56	/* currency symbol */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#define	D_MD_ORDER	57	/* month/day order (local extension) */
+#endif
+
+__BEGIN_DECLS
+char	*nl_langinfo(nl_item);
+__END_DECLS
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include <xlocale/_langinfo.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* !_LANGINFO_H_ */
lib/libc/include/x86_64-macos-gnu/libgen.h
@@ -0,0 +1,63 @@
+/*	$OpenBSD: libgen.h,v 1.4 1999/05/28 22:00:22 espie Exp $	*/
+/*	$FreeBSD: src/include/libgen.h,v 1.1.2.1 2000/11/12 18:01:51 adrian Exp $	*/
+
+/*
+ * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
+ * 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. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _LIBGEN_H_
+#define _LIBGEN_H_
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+#if __DARWIN_UNIX03
+
+char	*basename(char *);
+char	*dirname(char *);
+
+#else  /* !__DARWIN_UNIX03 */
+
+char	*basename(const char *);
+char	*dirname(const char *);
+
+#endif /* __DARWIN_UNIX_03 */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#include <Availability.h>
+char	*basename_r(const char *, char *)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+
+char	*dirname_r(const char *, char *)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+__END_DECLS
+
+#endif /* _LIBGEN_H_ */
lib/libc/include/x86_64-macos-gnu/monetary.h
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: /repoman/r/ncvs/src/include/monetary.h,v 1.7 2002/09/20 08:22:48 mike Exp $
+ */
+
+#ifndef _MONETARY_H_
+#define	_MONETARY_H_
+
+#include <sys/cdefs.h>
+#include <_types.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+
+__BEGIN_DECLS
+ssize_t	strfmon(char *, size_t, const char *, ...);
+__END_DECLS
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include <xlocale/_monetary.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* !_MONETARY_H_ */
lib/libc/include/x86_64-macos-gnu/ndbm.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Margo Seltzer.
+ *
+ * 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.
+ *
+ *	@(#)ndbm.h	8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef _NDBM_H_
+#define	_NDBM_H_
+
+#include <_types.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_size_t.h>
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+/* Map dbm interface onto db(3). */
+#include <fcntl.h>
+#define DBM_RDONLY	O_RDONLY
+#endif
+
+/* Flags to dbm_store(). */
+#define DBM_INSERT      0
+#define DBM_REPLACE     1
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+/*
+ * The db(3) support for ndbm(3) always appends this suffix to the
+ * file name to avoid overwriting the user's original database.
+ */
+#define	DBM_SUFFIX	".db"
+#endif
+
+typedef struct {
+	void *dptr;
+	size_t dsize;
+} datum;
+
+#ifndef _DBM
+#define _DBM
+typedef struct {
+    char __opaque[sizeof(int) + 8 * sizeof(void *)];
+} DBM;
+#endif /* _DBM */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#define	dbm_pagfno(a)	DBM_PAGFNO_NOT_AVAILABLE
+#endif
+
+__BEGIN_DECLS
+int	 dbm_clearerr( DBM *);
+void	 dbm_close(DBM *);
+int	 dbm_delete(DBM *, datum);
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+int	 dbm_dirfno(DBM *);
+#endif
+int	 dbm_error( DBM *);
+datum	 dbm_fetch(DBM *, datum);
+datum	 dbm_firstkey(DBM *);
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+long	 dbm_forder(DBM *, datum);
+#endif
+datum	 dbm_nextkey(DBM *);
+DBM	*dbm_open(const char *, int, mode_t);
+int	 dbm_store(DBM *, datum, datum, int);
+__END_DECLS
+
+#endif /* !_NDBM_H_ */
lib/libc/include/x86_64-macos-gnu/netdb.h
@@ -0,0 +1,319 @@
+/*
+ * Copyright (c) 2000-2009 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * ++Copyright++ 1980, 1983, 1988, 1993
+ * -
+ * Copyright (c) 1980, 1983, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * -
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ * -
+ * --Copyright--
+ */
+
+/*
+ *      @(#)netdb.h	8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef _NETDB_H_
+#define _NETDB_H_
+
+#include <_types.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_socklen_t.h>
+
+#include <stdint.h>
+#include <netinet/in.h>		/* IPPORT_RESERVED */
+
+#ifndef _PATH_HEQUIV
+# define	_PATH_HEQUIV	"/etc/hosts.equiv"
+#endif
+#define	_PATH_HOSTS	"/etc/hosts"
+#define	_PATH_NETWORKS	"/etc/networks"
+#define	_PATH_PROTOCOLS	"/etc/protocols"
+#define	_PATH_SERVICES	"/etc/services"
+
+extern int h_errno;
+
+#ifndef IPPORT_RESERVED
+#define	IPPORT_RESERVED		__DARWIN_IPPORT_RESERVED
+#endif
+
+/*
+ * Structures returned by network data base library.  All addresses are
+ * supplied in host order, and returned in network order (suitable for
+ * use in system calls).
+ */
+struct hostent {
+	char	*h_name;	/* official name of host */
+	char	**h_aliases;	/* alias list */
+	int	h_addrtype;	/* host address type */
+	int	h_length;	/* length of address */
+	char	**h_addr_list;	/* list of addresses from name server */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	h_addr	h_addr_list[0]	/* address, for backward compatibility */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+};
+
+/*
+ * Assumption here is that a network number
+ * fits in an unsigned long -- probably a poor one.
+ */
+struct netent {
+	char		*n_name;	/* official name of net */
+	char		**n_aliases;	/* alias list */
+	int		n_addrtype;	/* net address type */
+	uint32_t	n_net;		/* network # */
+};
+
+struct servent {
+	char	*s_name;	/* official service name */
+	char	**s_aliases;	/* alias list */
+	int	s_port;		/* port # */
+	char	*s_proto;	/* protocol to use */
+};
+
+struct protoent {
+	char	*p_name;	/* official protocol name */
+	char	**p_aliases;	/* alias list */
+	int	p_proto;	/* protocol # */
+};
+
+struct addrinfo {
+	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
+	int	ai_family;	/* PF_xxx */
+	int	ai_socktype;	/* SOCK_xxx */
+	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+	socklen_t ai_addrlen;	/* length of ai_addr */
+	char	*ai_canonname;	/* canonical name for hostname */
+	struct	sockaddr *ai_addr;	/* binary address */
+	struct	addrinfo *ai_next;	/* next structure in linked list */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct rpcent {
+        char    *r_name;        /* name of server for this rpc program */
+        char    **r_aliases;    /* alias list */
+        int     r_number;       /* rpc program number */
+};
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Error return codes from gethostbyname() and gethostbyaddr()
+ * (left in h_errno).
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	NETDB_INTERNAL	-1	/* see errno */
+#define	NETDB_SUCCESS	0	/* no problem */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
+#define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */
+#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
+#define	NO_DATA		4 /* Valid name, no data record of requested type */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+/*
+ * Error return codes from getaddrinfo()
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	EAI_AGAIN	 2	/* temporary failure in name resolution */
+#define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */
+#define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */
+#define	EAI_FAMILY	 5	/* ai_family not supported */
+#define	EAI_MEMORY	 6	/* memory allocation failure */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	EAI_NODATA	 7	/* no address associated with hostname */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	EAI_NONAME	 8	/* hostname nor servname provided, or not known */
+#define	EAI_SERVICE	 9	/* servname not supported for ai_socktype */
+#define	EAI_SOCKTYPE	10	/* ai_socktype not supported */
+#define	EAI_SYSTEM	11	/* system error returned in errno */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	EAI_BADHINTS	12	/* invalid value for hints */
+#define	EAI_PROTOCOL	13	/* resolved protocol is unknown */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	EAI_OVERFLOW	14	/* argument buffer overflow */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	EAI_MAX		15
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Flag values for getaddrinfo()
+ */
+#define	AI_PASSIVE	0x00000001 /* get address to use bind() */
+#define	AI_CANONNAME	0x00000002 /* fill ai_canonname */
+#define	AI_NUMERICHOST	0x00000004 /* prevent host name resolution */
+#define	AI_NUMERICSERV	0x00001000 /* prevent service name resolution */
+/* valid flags for addrinfo (not a standard def, apps should not use it) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AI_MASK \
+    (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | \
+    AI_ADDRCONFIG)
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	AI_ALL		0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	AI_V4MAPPED_CFG	0x00000200 /* accept IPv4-mapped if kernel supports */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define	AI_ADDRCONFIG	0x00000400 /* only if any address is assigned */
+#define	AI_V4MAPPED	0x00000800 /* accept IPv4-mapped IPv6 address */
+/* special recommended flags for getipnodebyname */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	AI_DEFAULT	(AI_V4MAPPED_CFG | AI_ADDRCONFIG)
+/* If the hints pointer is null or ai_flags is zero, getaddrinfo() automatically defaults to the AI_DEFAULT behavior.
+ * To override this default behavior, thereby causing unusable addresses to be included in the results, pass any nonzero
+ * value for ai_flags, by setting any desired flag values, or by setting AI_UNUSABLE if no other flags are desired. */
+#define	AI_UNUSABLE	0x10000000 /* return addresses even if unusable (i.e. opposite of AI_DEFAULT) */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Constants for getnameinfo()
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	NI_MAXHOST	1025
+#define	NI_MAXSERV	32
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+/*
+ * Flag values for getnameinfo()
+ */
+#define	NI_NOFQDN	0x00000001
+#define	NI_NUMERICHOST	0x00000002
+#define	NI_NAMEREQD	0x00000004
+#define	NI_NUMERICSERV	0x00000008
+#define	NI_NUMERICSCOPE 0x00000100
+#define	NI_DGRAM	0x00000010
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define NI_WITHSCOPEID	0x00000020
+
+/*
+ * Scope delimit character
+ */
+#define	SCOPE_DELIMITER	'%'
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+
+void		endhostent(void);
+void		endnetent(void);
+void		endprotoent(void);
+void		endservent(void);
+
+void		freeaddrinfo(struct addrinfo *);
+const char	*gai_strerror(int);
+int		getaddrinfo(const char * __restrict, const char * __restrict,
+			    const struct addrinfo * __restrict,
+			    struct addrinfo ** __restrict);
+struct hostent	*gethostbyaddr(const void *, socklen_t, int);
+struct hostent	*gethostbyname(const char *);
+struct hostent	*gethostent(void);
+int             getnameinfo(const struct sockaddr * __restrict, socklen_t,
+			      char * __restrict, socklen_t, char * __restrict,
+			      socklen_t, int);
+struct netent	*getnetbyaddr(uint32_t, int);
+struct netent	*getnetbyname(const char *);
+struct netent	*getnetent(void);
+struct protoent	*getprotobyname(const char *);
+struct protoent	*getprotobynumber(int);
+struct protoent	*getprotoent(void);
+struct servent	*getservbyname(const char *, const char *);
+struct servent	*getservbyport(int, const char *);
+struct servent	*getservent(void);
+void		sethostent(int);
+/* void		sethostfile(const char *); */
+void		setnetent(int);
+void		setprotoent(int);
+void		setservent(int);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void		freehostent(struct hostent *);
+struct hostent	*gethostbyname2(const char *, int);
+struct hostent	*getipnodebyaddr(const void *, size_t, int, int *);
+struct hostent	*getipnodebyname(const char *, int, int, int *);
+struct rpcent	*getrpcbyname(const char *name);
+#ifdef __LP64__
+struct rpcent	*getrpcbynumber(int number);
+#else
+struct rpcent	*getrpcbynumber(long number);
+#endif
+struct rpcent	*getrpcent(void);
+void		setrpcent(int stayopen);
+void		endrpcent(void);
+void		herror(const char *);
+const char	*hstrerror(int);
+int			innetgr(const char *, const char *, const char *, const char *);
+int			getnetgrent(char **, char **, char **);
+void		endnetgrent(void);
+void		setnetgrent(const char *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__END_DECLS
+
+#endif /* !_NETDB_H_ */
lib/libc/include/x86_64-macos-gnu/nl_types.h
@@ -0,0 +1,103 @@
+/*	$NetBSD: nl_types.h,v 1.9 2000/10/03 19:53:32 sommerfeld Exp $	*/
+
+/*-
+ * Copyright (c) 1996 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by J.T. Conklin.
+ *
+ * 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 NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD: src/include/nl_types.h,v 1.11 2005/02/27 16:20:53 phantom Exp $
+ */
+
+#ifndef _NL_TYPES_H_
+#define _NL_TYPES_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <_types.h>
+
+#ifdef _NLS_PRIVATE
+/*
+ * MESSAGE CATALOG FILE FORMAT.
+ *
+ * The NetBSD/FreeBSD message catalog format is similar to the format used by
+ * Svr4 systems.  The differences are:
+ *   * fixed byte order (big endian)
+ *   * fixed data field sizes
+ *
+ * A message catalog contains four data types: a catalog header, one
+ * or more set headers, one or more message headers, and one or more
+ * text strings.
+ */
+
+#define _NLS_MAGIC	0xff88ff89
+
+struct _nls_cat_hdr {
+	int32_t __magic;
+	int32_t __nsets;
+	int32_t __mem;
+	int32_t __msg_hdr_offset;
+	int32_t __msg_txt_offset;
+} ;
+
+struct _nls_set_hdr {
+	int32_t __setno;	/* set number: 0 < x <= NL_SETMAX */
+	int32_t __nmsgs;	/* number of messages in the set  */
+	int32_t __index;	/* index of first msg_hdr in msg_hdr table */
+} ;
+
+struct _nls_msg_hdr {
+	int32_t __msgno;	/* msg number: 0 < x <= NL_MSGMAX */
+	int32_t __msglen;
+	int32_t __offset;
+} ;
+
+#endif	/* _NLS_PRIVATE */
+
+#define	NL_SETD		1
+#define	NL_CAT_LOCALE	1
+
+typedef struct __nl_cat_d {
+	void	*__data;
+	int	__size;
+} *nl_catd;
+
+#include <_types/_nl_item.h>
+
+__BEGIN_DECLS
+nl_catd  catopen(const char *, int);
+char    *catgets(nl_catd, int, int, const char *)
+	__attribute__((__format_arg__(4)));
+int	 catclose(nl_catd);
+__END_DECLS
+
+#endif	/* _NL_TYPES_H_ */
lib/libc/include/x86_64-macos-gnu/poll.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2004 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@
+ */
+#include <sys/poll.h>
+
+
+
lib/libc/include/x86_64-macos-gnu/pthread.h
@@ -0,0 +1,568 @@
+/*
+ * Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
+ *              All Rights Reserved
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appears in all copies and
+ * that both the copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+ * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+/*
+ * MkLinux
+ */
+
+/*
+ * POSIX Threads - IEEE 1003.1c
+ */
+
+#ifndef _PTHREAD_H
+#define _PTHREAD_H
+
+#include <_types.h>
+#ifndef __POSIX_LIB__
+#include <pthread/pthread_impl.h>
+#endif
+#include <pthread/sched.h>
+#include <time.h>
+#include <sys/_pthread/_pthread_types.h>
+#include <sys/_pthread/_pthread_attr_t.h>
+#include <sys/_pthread/_pthread_cond_t.h>
+#include <sys/_pthread/_pthread_condattr_t.h>
+#include <sys/_pthread/_pthread_key_t.h>
+#include <sys/_pthread/_pthread_mutex_t.h>
+#include <sys/_pthread/_pthread_mutexattr_t.h>
+#include <sys/_pthread/_pthread_once_t.h>
+#include <sys/_pthread/_pthread_rwlock_t.h>
+#include <sys/_pthread/_pthread_rwlockattr_t.h>
+#include <sys/_pthread/_pthread_t.h>
+
+#include <pthread/qos.h>
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
+
+#include <sys/_types/_mach_port_t.h>
+#include <sys/_types/_sigset_t.h>
+
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
+
+/*
+ * These symbols indicate which [optional] features are available
+ * They can be tested at compile time via '#ifdef XXX'
+ * The way to check for pthreads is like so:
+
+ * #include <unistd.h>
+ * #ifdef _POSIX_THREADS
+ * #include <pthread.h>
+ * #endif
+
+ */
+
+/* These will be moved to unistd.h */
+
+/*
+ * Note: These data structures are meant to be opaque.  Only enough
+ * structure is exposed to support initializers.
+ * All of the typedefs will be moved to <sys/types.h>
+ */
+
+#include <sys/cdefs.h>
+#include <Availability.h>
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+__BEGIN_DECLS
+/*
+ * Threads
+ */
+
+
+/*
+ * Cancel cleanup handler management.  Note, since these are implemented as macros,
+ * they *MUST* occur in matched pairs!
+ */
+
+#define pthread_cleanup_push(func, val) \
+   { \
+	     struct __darwin_pthread_handler_rec __handler; \
+	     pthread_t __self = pthread_self(); \
+	     __handler.__routine = func; \
+	     __handler.__arg = val; \
+	     __handler.__next = __self->__cleanup_stack; \
+	     __self->__cleanup_stack = &__handler;
+
+#define pthread_cleanup_pop(execute) \
+	     /* Note: 'handler' must be in this same lexical context! */ \
+	     __self->__cleanup_stack = __handler.__next; \
+	     if (execute) (__handler.__routine)(__handler.__arg); \
+   }
+
+/*
+ * Thread attributes
+ */
+
+#define PTHREAD_CREATE_JOINABLE      1
+#define PTHREAD_CREATE_DETACHED      2
+
+#define PTHREAD_INHERIT_SCHED        1
+#define PTHREAD_EXPLICIT_SCHED       2
+
+#define PTHREAD_CANCEL_ENABLE        0x01  /* Cancel takes place at next cancellation point */
+#define PTHREAD_CANCEL_DISABLE       0x00  /* Cancel postponed */
+#define PTHREAD_CANCEL_DEFERRED      0x02  /* Cancel waits until cancellation point */
+#define PTHREAD_CANCEL_ASYNCHRONOUS  0x00  /* Cancel occurs immediately */
+
+/* Value returned from pthread_join() when a thread is canceled */
+#define PTHREAD_CANCELED	     ((void *) 1)
+
+/* We only support PTHREAD_SCOPE_SYSTEM */
+#define PTHREAD_SCOPE_SYSTEM         1
+#define PTHREAD_SCOPE_PROCESS        2
+
+#define PTHREAD_PROCESS_SHARED         1
+#define PTHREAD_PROCESS_PRIVATE        2
+
+/*
+ * Mutex protocol attributes
+ */
+#define PTHREAD_PRIO_NONE            0
+#define PTHREAD_PRIO_INHERIT         1
+#define PTHREAD_PRIO_PROTECT         2
+
+/*
+ * Mutex type attributes
+ */
+#define PTHREAD_MUTEX_NORMAL		0
+#define PTHREAD_MUTEX_ERRORCHECK	1
+#define PTHREAD_MUTEX_RECURSIVE		2
+#define PTHREAD_MUTEX_DEFAULT		PTHREAD_MUTEX_NORMAL
+
+/*
+ * Mutex policy attributes
+ */
+#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP   1
+#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP    3
+
+/*
+ * RWLock variables
+ */
+#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}}
+
+/*
+ * Mutex variables
+ */
+#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}}
+
+/* <rdar://problem/10854763> */
+#if ((__MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070) || (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED >= 50000)) || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#	if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+#		define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}}
+#		define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}}
+#	endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
+#endif
+
+/* <rdar://problem/25944576> */
+#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT \
+	defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1))
+
+/*
+ * Condition variable attributes
+ */
+
+/*
+ * Condition variables
+ */
+
+#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}}
+
+/*
+ * Initialization control (once) variables
+ */
+
+#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}}
+
+/*
+ * Prototypes for all PTHREAD interfaces
+ */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void),
+		void (* _Nullable)(void));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_destroy(pthread_attr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getguardsize(const pthread_attr_t * __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getinheritsched(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getschedparam(const pthread_attr_t * __restrict,
+		struct sched_param * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getscope(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstack(const pthread_attr_t * __restrict,
+		void * _Nullable * _Nonnull __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstackaddr(const pthread_attr_t * __restrict,
+		void * _Nullable * _Nonnull __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstacksize(const pthread_attr_t * __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_init(pthread_attr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setdetachstate(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setguardsize(pthread_attr_t *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setinheritsched(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setschedparam(pthread_attr_t * __restrict,
+		const struct sched_param * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setschedpolicy(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setscope(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstack(pthread_attr_t *, void *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstackaddr(pthread_attr_t *, void *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstacksize(pthread_attr_t *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cancel(pthread_t) __DARWIN_ALIAS(pthread_cancel);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_broadcast(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_destroy(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_init(
+		pthread_cond_t * __restrict,
+		const pthread_condattr_t * _Nullable __restrict)
+		__DARWIN_ALIAS(pthread_cond_init);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_signal(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_timedwait(
+		pthread_cond_t * __restrict, pthread_mutex_t * __restrict,
+		const struct timespec * _Nullable __restrict)
+		__DARWIN_ALIAS_C(pthread_cond_timedwait);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_wait(pthread_cond_t * __restrict,
+		pthread_mutex_t * __restrict) __DARWIN_ALIAS_C(pthread_cond_wait);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_destroy(pthread_condattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_init(pthread_condattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_getpshared(const pthread_condattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_setpshared(pthread_condattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
+		const pthread_attr_t * _Nullable __restrict,
+		void * _Nullable (* _Nonnull)(void * _Nullable),
+		void * _Nullable __restrict);
+#else
+int pthread_create(pthread_t * __restrict,
+		const pthread_attr_t * _Nullable __restrict,
+		void *(* _Nonnull)(void *), void * _Nullable __restrict);
+#endif // _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_detach(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_equal(pthread_t _Nullable, pthread_t _Nullable);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void pthread_exit(void * _Nullable) __dead2;
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_getconcurrency(void);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_getschedparam(pthread_t , int * _Nullable __restrict,
+		struct sched_param * _Nullable __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void* _Nullable pthread_getspecific(pthread_key_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_join(pthread_t , void * _Nullable * _Nullable)
+		__DARWIN_ALIAS_C(pthread_join);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_key_delete(pthread_key_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_destroy(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_init(pthread_mutex_t * __restrict,
+		const pthread_mutexattr_t * _Nullable __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_lock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict, int,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_trylock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_unlock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_destroy(pthread_mutexattr_t *) __DARWIN_ALIAS(pthread_mutexattr_destroy);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.13.4), ios(11.3), watchos(4.3), tvos(11.3))
+int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_init(pthread_mutexattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.7), ios(5.0))
+int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int);
+
+__SWIFT_UNAVAILABLE_MSG("Use lazily initialized globals instead")
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_once(pthread_once_t *, void (* _Nonnull)(void));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_destroy(pthread_rwlock_t * ) __DARWIN_ALIAS(pthread_rwlock_destroy);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_init(pthread_rwlock_t * __restrict,
+		const pthread_rwlockattr_t * _Nullable __restrict)
+		__DARWIN_ALIAS(pthread_rwlock_init);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_rdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_rdlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_tryrdlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_trywrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_trywrlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_wrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_wrlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_unlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_unlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_init(pthread_rwlockattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+pthread_t pthread_self(void);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setcancelstate(int , int * _Nullable)
+		__DARWIN_ALIAS(pthread_setcancelstate);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setcanceltype(int , int * _Nullable)
+		__DARWIN_ALIAS(pthread_setcanceltype);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setconcurrency(int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setschedparam(pthread_t, int, const struct sched_param *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setspecific(pthread_key_t , const void * _Nullable);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void pthread_testcancel(void) __DARWIN_ALIAS(pthread_testcancel);
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
+
+/* returns non-zero if pthread_create or cthread_fork have been called */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_is_threaded_np(void);
+
+__API_AVAILABLE(macos(10.6), ios(3.2))
+int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable);
+
+/*SPI to set and get pthread name*/
+__API_AVAILABLE(macos(10.6), ios(3.2))
+int	pthread_getname_np(pthread_t,char*,size_t);
+
+__API_AVAILABLE(macos(10.6), ios(3.2))
+int	pthread_setname_np(const char*);
+
+/* returns non-zero if the current thread is the main thread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int	pthread_main_np(void);
+
+/* return the mach thread bound to the pthread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+mach_port_t pthread_mach_thread_np(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+size_t pthread_get_stacksize_np(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void* pthread_get_stackaddr_np(pthread_t);
+
+/* Like pthread_cond_signal(), but only wake up the specified pthread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable);
+
+/* Like pthread_cond_timedwait, but use a relative timeout */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *,
+		const struct timespec * _Nullable);
+
+/* Like pthread_create(), but leaves the thread suspended */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+int pthread_create_suspended_np(
+		pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable,
+		void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable);
+#else
+int pthread_create_suspended_np(pthread_t *, const pthread_attr_t * _Nullable,
+		void *(* _Nonnull)(void *), void * _Nullable);
+#endif
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_kill(pthread_t, int);
+
+__API_AVAILABLE(macos(10.5), ios(2.0))
+_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable)
+		__DARWIN_ALIAS(pthread_sigmask);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void pthread_yield_np(void);
+
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
+__END_DECLS
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif /* _PTHREAD_H */
lib/libc/include/x86_64-macos-gnu/pthread_impl.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _PTHREAD_IMPL_H_
+#define _PTHREAD_IMPL_H_
+/*
+ * Internal implementation details
+ */
+
+/* This whole header file will disappear, so don't depend on it... */
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+
+#ifndef __POSIX_LIB__
+
+/*
+ * [Internal] data structure signatures
+ */
+#define _PTHREAD_MUTEX_SIG_init		0x32AAABA7
+
+#define _PTHREAD_ERRORCHECK_MUTEX_SIG_init      0x32AAABA1
+#define _PTHREAD_RECURSIVE_MUTEX_SIG_init       0x32AAABA2
+#define _PTHREAD_FIRSTFIT_MUTEX_SIG_init       0x32AAABA3
+
+#define _PTHREAD_COND_SIG_init		0x3CB0B1BB
+#define _PTHREAD_ONCE_SIG_init		0x30B1BCBA
+#define _PTHREAD_RWLOCK_SIG_init    0x2DA8B3B4
+
+/*
+ * POSIX scheduling policies
+ */
+#define SCHED_OTHER                1
+#define SCHED_FIFO                 4
+#define SCHED_RR                   2
+
+#define __SCHED_PARAM_SIZE__       4
+
+#endif /* __POSIX_LIB__ */
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif /* _PTHREAD_IMPL_H_ */
lib/libc/include/x86_64-macos-gnu/pwd.h
@@ -0,0 +1,119 @@
+/*-
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ * Portions Copyright(C) 1995, Jason Downs.  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.
+ *
+ *	@(#)pwd.h	8.2 (Berkeley) 1/21/94
+ */
+/* Portions copyright (c) 2000-2011 Apple Inc. All rights reserved. */
+
+#ifndef _PWD_H_
+#define	_PWD_H_
+
+#include <_types.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_uid_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	_PATH_PWD		"/etc"
+#define	_PATH_PASSWD		"/etc/passwd"
+#define	_PASSWD			"passwd"
+#define	_PATH_MASTERPASSWD	"/etc/master.passwd"
+#define	_PATH_MASTERPASSWD_LOCK	"/etc/ptmp"
+#define	_MASTERPASSWD		"master.passwd"
+
+#define	_PATH_MP_DB		"/etc/pwd.db"
+#define	_MP_DB			"pwd.db"
+#define	_PATH_SMP_DB		"/etc/spwd.db"
+#define	_SMP_DB			"spwd.db"
+
+#define	_PATH_PWD_MKDB		"/usr/sbin/pwd_mkdb"
+
+#define	_PW_KEYBYNAME		'1'	/* stored by name */
+#define	_PW_KEYBYNUM		'2'	/* stored by entry in the "file" */
+#define	_PW_KEYBYUID		'3'	/* stored by uid */
+
+#define	_PASSWORD_EFMT1		'_'	/* extended encryption format */
+
+#define	_PASSWORD_LEN		128	/* max length, not counting NULL */
+
+#define _PASSWORD_NOUID		0x01	/* flag for no specified uid. */
+#define _PASSWORD_NOGID		0x02	/* flag for no specified gid. */
+#define _PASSWORD_NOCHG		0x04	/* flag for no specified change. */
+#define _PASSWORD_NOEXP		0x08	/* flag for no specified expire. */
+
+#define _PASSWORD_WARNDAYS	14	/* days to warn about expiry */
+#define _PASSWORD_CHGNOW	-1	/* special day to force password
+					 * change at next login */
+#endif
+
+struct passwd {
+	char	*pw_name;		/* user name */
+	char	*pw_passwd;		/* encrypted password */
+	uid_t	pw_uid;			/* user uid */
+	gid_t	pw_gid;			/* user gid */
+	__darwin_time_t pw_change;		/* password change time */
+	char	*pw_class;		/* user access class */
+	char	*pw_gecos;		/* Honeywell login info */
+	char	*pw_dir;		/* home directory */
+	char	*pw_shell;		/* default shell */
+	__darwin_time_t pw_expire;		/* account expiration */
+};
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+struct passwd	*getpwuid(uid_t);
+struct passwd	*getpwnam(const char *);
+int		 getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **);
+int		 getpwnam_r(const char *, struct passwd *, char *, size_t, struct passwd **);
+struct passwd	*getpwent(void);
+void		 setpwent(void);
+void		 endpwent(void);
+__END_DECLS
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+#include <uuid/uuid.h>
+__BEGIN_DECLS
+int		 setpassent(int);
+char 		*user_from_uid(uid_t, int);
+struct passwd	*getpwuuid(uuid_t);
+int		 getpwuuid_r(uuid_t, struct passwd *, char *, size_t, struct passwd **);
+__END_DECLS
+#endif
+
+#endif /* !_PWD_H_ */
lib/libc/include/x86_64-macos-gnu/regex.h
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2000, 2011 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 2001-2009 Ville Laurikari <vl@iki.fi>
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ * 
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER 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 COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*-
+ * Copyright (c) 1992 Henry Spencer.
+ * Copyright (c) 1992, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Henry Spencer of the University of Toronto.
+ *
+ * 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.
+ *
+ *	@(#)regex.h	8.2 (Berkeley) 1/3/94
+ */
+
+#ifndef _REGEX_H_
+#define	_REGEX_H_
+
+#include <_regex.h>
+
+/*******************/
+/* regcomp() flags */
+/*******************/
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	REG_BASIC	0000	/* Basic regular expressions (synonym for 0) */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#define	REG_EXTENDED	0001	/* Extended regular expressions */
+#define	REG_ICASE	0002	/* Compile ignoring upper/lower case */
+#define	REG_NOSUB	0004	/* Compile only reporting success/failure */
+#define	REG_NEWLINE	0010	/* Compile for newline-sensitive matching */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	REG_NOSPEC	0020	/* Compile turning off all special characters */
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED  >= __MAC_10_8 \
+ || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \
+ || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#define	REG_LITERAL	REG_NOSPEC
+#endif
+
+#define	REG_PEND	0040	/* Use re_endp as end pointer */
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED  >= __MAC_10_8 \
+ || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \
+ || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#define	REG_MINIMAL	0100	/* Compile using minimal repetition */
+#define	REG_UNGREEDY	REG_MINIMAL
+#endif
+
+#define	REG_DUMP	0200	/* Unused */
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED  >= __MAC_10_8 \
+ || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \
+ || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#define	REG_ENHANCED	0400	/* Additional (non-POSIX) features */
+#endif
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+/********************/
+/* regerror() flags */
+/********************/
+#define	REG_ENOSYS	 (-1)	/* Reserved */
+#define	REG_NOMATCH	 1	/* regexec() function failed to match */
+#define	REG_BADPAT	 2	/* invalid regular expression */
+#define	REG_ECOLLATE	 3	/* invalid collating element */
+#define	REG_ECTYPE	 4	/* invalid character class */
+#define	REG_EESCAPE	 5	/* trailing backslash (\) */
+#define	REG_ESUBREG	 6	/* invalid backreference number */
+#define	REG_EBRACK	 7	/* brackets ([ ]) not balanced */
+#define	REG_EPAREN	 8	/* parentheses not balanced */
+#define	REG_EBRACE	 9	/* braces not balanced */
+#define	REG_BADBR	10	/* invalid repetition count(s) */
+#define	REG_ERANGE	11	/* invalid character range */
+#define	REG_ESPACE	12	/* out of memory */
+#define	REG_BADRPT	13	/* repetition-operator operand invalid */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	REG_EMPTY	14	/* Unused */
+#define	REG_ASSERT	15	/* Unused */
+#define	REG_INVARG	16	/* invalid argument to regex routine */
+#define	REG_ILLSEQ	17	/* illegal byte sequence */
+
+#define	REG_ATOI	255	/* convert name to number (!) */
+#define	REG_ITOA	0400	/* convert number to name (!) */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+/*******************/
+/* regexec() flags */
+/*******************/
+#define	REG_NOTBOL	00001	/* First character not at beginning of line */
+#define	REG_NOTEOL	00002	/* Last character not at end of line */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	REG_STARTEND	00004	/* String start/end in pmatch[0] */
+#define	REG_TRACE	00400	/* Unused */
+#define	REG_LARGE	01000	/* Unused */
+#define	REG_BACKR	02000	/* force use of backref code */
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED  >= __MAC_10_8 \
+ || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \
+ || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#define	REG_BACKTRACKING_MATCHER	REG_BACKR
+#endif
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+__BEGIN_DECLS
+int	regcomp(regex_t * __restrict, const char * __restrict, int) __DARWIN_ALIAS(regcomp);
+size_t	regerror(int, const regex_t * __restrict, char * __restrict, size_t) __cold;
+/*
+ * gcc under c99 mode won't compile "[ __restrict]" by itself.  As a workaround,
+ * a dummy argument name is added.
+ */
+int	regexec(const regex_t * __restrict, const char * __restrict, size_t,
+	    regmatch_t __pmatch[ __restrict], int);
+void	regfree(regex_t *);
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+/* Darwin extensions */
+int	regncomp(regex_t * __restrict, const char * __restrict, size_t, int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	regnexec(const regex_t * __restrict, const char * __restrict, size_t,
+	    size_t, regmatch_t __pmatch[ __restrict], int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	regwcomp(regex_t * __restrict, const wchar_t * __restrict, int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	regwexec(const regex_t * __restrict, const wchar_t * __restrict, size_t,
+	    regmatch_t __pmatch[ __restrict], int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	regwncomp(regex_t * __restrict, const wchar_t * __restrict, size_t, int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	regwnexec(const regex_t * __restrict, const wchar_t * __restrict,
+	    size_t, size_t, regmatch_t __pmatch[ __restrict], int)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+__END_DECLS
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include <xlocale/_regex.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* !_REGEX_H_ */
lib/libc/include/x86_64-macos-gnu/sched.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SCHED_H_
+#define _SCHED_H_
+
+#include <sys/cdefs.h>
+#include <pthread_impl.h>
+
+__BEGIN_DECLS
+/*
+ * Scheduling paramters
+ */
+#ifndef __POSIX_LIB__
+struct sched_param { int sched_priority;  char __opaque[__SCHED_PARAM_SIZE__]; };
+#endif
+
+extern int sched_yield(void);
+extern int sched_get_priority_min(int);
+extern int sched_get_priority_max(int);
+__END_DECLS
+
+#endif /* _SCHED_H_ */
+
lib/libc/include/x86_64-macos-gnu/search.h
@@ -0,0 +1,62 @@
+/*-
+ * Written by J.T. Conklin <jtc@netbsd.org>
+ * Public domain.
+ *
+ *	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $
+ * $FreeBSD: src/include/search.h,v 1.10 2002/10/16 14:29:23 robert Exp $
+ */
+
+#ifndef _SEARCH_H_
+#define _SEARCH_H_
+
+#include <sys/cdefs.h>
+#include <_types.h>
+#include <sys/_types/_size_t.h>
+
+typedef	struct entry {
+	char	*key;
+	void	*data;
+} ENTRY;
+
+typedef	enum {
+	FIND, ENTER
+} ACTION;
+
+typedef	enum {
+	preorder,
+	postorder,
+	endorder,
+	leaf
+} VISIT;
+
+#ifdef _SEARCH_PRIVATE
+typedef	struct node {
+	char         *key;
+	struct node  *llink, *rlink;
+} node_t;
+
+struct que_elem {
+	struct que_elem *next;
+	struct que_elem *prev;
+};
+#endif
+
+__BEGIN_DECLS
+int	 hcreate(size_t);
+void	 hdestroy(void);
+ENTRY	*hsearch(ENTRY, ACTION);
+void	 insque(void *, void *);
+void	*lfind(const void *, const void *, size_t *, size_t,
+	    int (*)(const void *, const void *));
+void	*lsearch(const void *, void *, size_t *, size_t,
+	    int (*)(const void *, const void *));
+void	 remque(void *);
+void	*tdelete(const void * __restrict, void ** __restrict,
+	    int (*)(const void *, const void *));
+void	*tfind(const void *, void * const *,
+	    int (*)(const void *, const void *));
+void	*tsearch(const void *, void **, int (*)(const void *, const void *));
+void	 twalk(const void *, void (*)(const void *, VISIT, int));
+__END_DECLS
+
+#endif /* !_SEARCH_H_ */
lib/libc/include/x86_64-macos-gnu/semaphore.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _BSD_SEMAPHORE_H
+#define _BSD_SEMAPHORE_H
+
+#include <sys/types.h>
+#include <sys/fcntl.h>
+
+#include <sys/semaphore.h>
+
+#endif /* _BSD_SEMAPHORE_H */
lib/libc/include/x86_64-macos-gnu/spawn.h
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+
+#ifndef _SPAWN_H_
+#define _SPAWN_H_
+
+/*
+ * [SPN] Support for _POSIX_SPAWN
+ */
+
+#include <sys/cdefs.h>
+#include <_types.h>
+#include <sys/spawn.h> /* shared types */
+
+#include <Availability.h>
+
+/*
+ * [SPN] Inclusion of the <spawn.h> header may make visible symbols defined
+ * in the <sched.h>, <signal.h>, and <sys/types.h> headers.
+ */
+#include <sys/_types/_pid_t.h>
+#include <sys/_types/_sigset_t.h>
+#include <sys/_types/_mode_t.h>
+
+/*
+ * Opaque types for use with posix_spawn() family functions.  Internals are
+ * not defined, and should not be accessed directly.  Types are defined as
+ * mandated by POSIX.
+ */
+typedef  void *posix_spawnattr_t;
+typedef  void *posix_spawn_file_actions_t;
+
+__BEGIN_DECLS
+/*
+ * gcc under c99 mode won't compile "[ __restrict]" by itself.  As a workaround,
+ * a dummy argument name is added.
+ */
+
+int     posix_spawn(pid_t * __restrict, const char * __restrict,
+    const posix_spawn_file_actions_t *,
+    const posix_spawnattr_t * __restrict,
+    char *const __argv[__restrict],
+    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnp(pid_t * __restrict, const char * __restrict,
+    const posix_spawn_file_actions_t *,
+    const posix_spawnattr_t * __restrict,
+    char *const __argv[__restrict],
+    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0));
+
+int     posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int,
+    int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_addopen(
+	posix_spawn_file_actions_t * __restrict, int,
+	const char * __restrict, int, mode_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_init(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_destroy(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict,
+    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getflags(const posix_spawnattr_t * __restrict,
+    short * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict,
+    pid_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict,
+    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_init(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict,
+    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setflags(posix_spawnattr_t *, short) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setsigmask(posix_spawnattr_t * __restrict,
+    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+#if 0   /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
+int     posix_spawnattr_setschedparam(posix_spawnattr_t * __restrict,
+    const struct sched_param * __restrict);
+int     posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);
+int     posix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict,
+    struct sched_param * __restrict);
+int     posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict,
+    int * __restrict);
+#endif  /* 0 */
+
+__END_DECLS
+
+#if     !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Darwin-specific extensions below
+ */
+#include <mach/exception_types.h>
+#include <mach/machine.h>
+#include <mach/port.h>
+
+#include <sys/_types/_size_t.h>
+
+__BEGIN_DECLS
+
+int     posix_spawnattr_getbinpref_np(const posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setauditsessionport_np(posix_spawnattr_t * __restrict,
+    mach_port_t) __API_AVAILABLE(macos(10.6), ios(3.2));
+
+int     posix_spawnattr_setbinpref_np(posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setexceptionports_np(posix_spawnattr_t * __restrict,
+    exception_mask_t, mach_port_t,
+    exception_behavior_t, thread_state_flavor_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setspecialport_np(posix_spawnattr_t * __restrict,
+    mach_port_t, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setsuidcredport_np(posix_spawnattr_t * __restrict, mach_port_t) __API_UNAVAILABLE(ios, macos);
+
+int     posix_spawn_file_actions_addinherit_np(posix_spawn_file_actions_t *,
+    int) __API_AVAILABLE(macos(10.7), ios(4.3)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *,
+    const char * __restrict) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
+
+int     posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *,
+    int) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
+
+__END_DECLS
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif  /* _SPAWN_H_ */
lib/libc/include/x86_64-macos-gnu/syslog.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#include <sys/syslog.h>
+
lib/libc/include/x86_64-macos-gnu/tar.h
@@ -0,0 +1,73 @@
+/*-
+ * Copyright (c) 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chuck Karish of Mindcraft, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tar.h	8.2 (Berkeley) 1/4/94
+ */
+
+#ifndef _TAR_H
+#define _TAR_H
+
+#define	TMAGIC		"ustar"	/* ustar and a null */
+#define	TMAGLEN		6
+#define	TVERSION	"00"	/* 00 and no null */
+#define	TVERSLEN	2
+
+/* Values used in typeflag field */
+#define	REGTYPE		'0'	/* Regular file */
+#define	AREGTYPE	'\0'	/* Regular file */
+#define	LNKTYPE		'1'	/* Link */
+#define	SYMTYPE		'2'	/* Reserved */
+#define	CHRTYPE		'3'	/* Character special */
+#define	BLKTYPE		'4'	/* Block special */
+#define	DIRTYPE		'5'	/* Directory */
+#define	FIFOTYPE	'6'	/* FIFO special */
+#define	CONTTYPE	'7'	/* Reserved */
+
+/* Bits used in the mode field - values in octal */
+#define	TSUID		04000	/* Set UID on execution */
+#define	TSGID		02000	/* Set GID on execution */
+#define	TSVTX		01000	/* Reserved */
+				/* File permissions */
+#define	TUREAD		00400	/* Read by owner */
+#define	TUWRITE		00200	/* Write by owner */
+#define	TUEXEC		00100	/* Execute/Search by owner */
+#define	TGREAD		00040	/* Read by group */
+#define	TGWRITE		00020	/* Write by group */
+#define	TGEXEC		00010	/* Execute/Search by group */
+#define	TOREAD		00004	/* Read by other */
+#define	TOWRITE		00002	/* Write by other */
+#define	TOEXEC		00001	/* Execute/Search by other */
+
+#endif
lib/libc/include/x86_64-macos-gnu/termios.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef __TERMIOS_H__
+#define __TERMIOS_H__
+
+#include <sys/cdefs.h>
+#include <sys/termios.h>
+#include <_types.h>
+#include <sys/_types/_pid_t.h>
+
+__BEGIN_DECLS
+pid_t	tcgetsid(int);
+__END_DECLS
+
+#endif /* __TERMIOS_H__ */
lib/libc/include/x86_64-macos-gnu/ulimit.h
@@ -0,0 +1,41 @@
+/*-
+ * Copyright (c) 2002 Kyle Martin <mkm@ieee.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/include/ulimit.h,v 1.4 2003/01/08 01:18:13 tjr Exp $
+ */
+
+#ifndef _ULIMIT_H_
+#define	_ULIMIT_H_
+
+#include <sys/cdefs.h>
+
+#define	UL_GETFSIZE	1
+#define	UL_SETFSIZE	2
+
+__BEGIN_DECLS
+long	ulimit(int, ...);
+__END_DECLS
+
+#endif /* !_ULIMIT_H_ */
lib/libc/include/x86_64-macos-gnu/unistd.h
@@ -0,0 +1,787 @@
+/*
+ * Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
+ * Copyright (c) 1991, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
+ *
+ *  Copyright (c)  1998 Apple Compter, Inc.
+ *  All Rights Reserved
+ */
+
+/* History:
+        7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
+        3/26/98 CHW at Apple added real interface to searchfs call
+  	3/5/98  CHW at Apple added hfs semantic system calls headers
+*/
+
+#ifndef _UNISTD_H_
+#define	_UNISTD_H_
+
+#include <_types.h>
+#include <sys/unistd.h>
+#include <Availability.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_intptr_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_pid_t.h>
+/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+ * _GCC_SIZE_T */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_useconds_t.h>
+#include <sys/_types/_null.h>
+
+#define	 STDIN_FILENO	0	/* standard input file descriptor */
+#define	STDOUT_FILENO	1	/* standard output file descriptor */
+#define	STDERR_FILENO	2	/* standard error file descriptor */
+
+
+/* Version test macros */
+/* _POSIX_VERSION and _POSIX2_VERSION from sys/unistd.h */
+#define	_XOPEN_VERSION			600		/* [XSI] */
+#define	_XOPEN_XCU_VERSION		4		/* Older standard */
+
+
+/* Please keep this list in the same order as the applicable standard */
+#define	_POSIX_ADVISORY_INFO		(-1)		/* [ADV] */
+#define	_POSIX_ASYNCHRONOUS_IO		(-1)		/* [AIO] */
+#define	_POSIX_BARRIERS			(-1)		/* [BAR] */
+#define	_POSIX_CHOWN_RESTRICTED		200112L
+#define	_POSIX_CLOCK_SELECTION		(-1)		/* [CS] */
+#define	_POSIX_CPUTIME			(-1)		/* [CPT] */
+#define	_POSIX_FSYNC			200112L		/* [FSC] */
+#define	_POSIX_IPV6			200112L
+#define	_POSIX_JOB_CONTROL		200112L
+#define	_POSIX_MAPPED_FILES		200112L		/* [MF] */
+#define	_POSIX_MEMLOCK			(-1)		/* [ML] */
+#define	_POSIX_MEMLOCK_RANGE		(-1)		/* [MR] */
+#define	_POSIX_MEMORY_PROTECTION	200112L		/* [MPR] */
+#define	_POSIX_MESSAGE_PASSING		(-1)		/* [MSG] */
+#define	_POSIX_MONOTONIC_CLOCK		(-1)		/* [MON] */
+#define	_POSIX_NO_TRUNC			200112L
+#define	_POSIX_PRIORITIZED_IO		(-1)		/* [PIO] */
+#define	_POSIX_PRIORITY_SCHEDULING	(-1)		/* [PS] */
+#define	_POSIX_RAW_SOCKETS		(-1)		/* [RS] */
+#define	_POSIX_READER_WRITER_LOCKS	200112L		/* [THR] */
+#define	_POSIX_REALTIME_SIGNALS		(-1)		/* [RTS] */
+#define	_POSIX_REGEXP			200112L
+#define	_POSIX_SAVED_IDS		200112L		/* XXX required */
+#define	_POSIX_SEMAPHORES		(-1)		/* [SEM] */
+#define	_POSIX_SHARED_MEMORY_OBJECTS	(-1)		/* [SHM] */
+#define	_POSIX_SHELL			200112L
+#define	_POSIX_SPAWN			(-1)		/* [SPN] */
+#define	_POSIX_SPIN_LOCKS		(-1)		/* [SPI] */
+#define	_POSIX_SPORADIC_SERVER		(-1)		/* [SS] */
+#define	_POSIX_SYNCHRONIZED_IO		(-1)		/* [SIO] */
+#define	_POSIX_THREAD_ATTR_STACKADDR	200112L		/* [TSA] */
+#define	_POSIX_THREAD_ATTR_STACKSIZE	200112L		/* [TSS] */
+#define	_POSIX_THREAD_CPUTIME		(-1)		/* [TCT] */
+#define	_POSIX_THREAD_PRIO_INHERIT	(-1)		/* [TPI] */
+#define	_POSIX_THREAD_PRIO_PROTECT	(-1)		/* [TPP] */
+#define	_POSIX_THREAD_PRIORITY_SCHEDULING	(-1)	/* [TPS] */
+#define	_POSIX_THREAD_PROCESS_SHARED	200112L		/* [TSH] */
+#define	_POSIX_THREAD_SAFE_FUNCTIONS	200112L		/* [TSF] */
+#define	_POSIX_THREAD_SPORADIC_SERVER	(-1)		/* [TSP] */
+#define	_POSIX_THREADS			200112L		/* [THR] */
+#define	_POSIX_TIMEOUTS			(-1)		/* [TMO] */
+#define	_POSIX_TIMERS			(-1)		/* [TMR] */
+#define	_POSIX_TRACE			(-1)		/* [TRC] */
+#define	_POSIX_TRACE_EVENT_FILTER	(-1)		/* [TEF] */
+#define	_POSIX_TRACE_INHERIT		(-1)		/* [TRI] */
+#define	_POSIX_TRACE_LOG		(-1)		/* [TRL] */
+#define	_POSIX_TYPED_MEMORY_OBJECTS	(-1)		/* [TYM] */
+#ifndef _POSIX_VDISABLE
+#define	_POSIX_VDISABLE			0xff		/* same as sys/termios.h */
+#endif /* _POSIX_VDISABLE */
+
+#if __DARWIN_C_LEVEL >= 199209L
+#define	_POSIX2_C_BIND			200112L
+#define	_POSIX2_C_DEV			200112L		/* c99 command */
+#define	_POSIX2_CHAR_TERM		200112L
+#define	_POSIX2_FORT_DEV		(-1)		/* fort77 command */
+#define	_POSIX2_FORT_RUN		200112L
+#define	_POSIX2_LOCALEDEF		200112L		/* localedef command */
+#define	_POSIX2_PBS			(-1)
+#define	_POSIX2_PBS_ACCOUNTING		(-1)
+#define	_POSIX2_PBS_CHECKPOINT		(-1)
+#define	_POSIX2_PBS_LOCATE		(-1)
+#define	_POSIX2_PBS_MESSAGE		(-1)
+#define	_POSIX2_PBS_TRACK		(-1)
+#define	_POSIX2_SW_DEV			200112L
+#define	_POSIX2_UPE			200112L	/* XXXX no fc, newgrp, tabs */
+#endif /* __DARWIN_C_LEVEL */
+
+#define	__ILP32_OFF32          (-1)
+#define	__ILP32_OFFBIG         (-1)
+
+#define	__LP64_OFF64           (1)
+#define	__LPBIG_OFFBIG         (1)
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_POSIX_V6_ILP32_OFF32		__ILP32_OFF32
+#define	_POSIX_V6_ILP32_OFFBIG		__ILP32_OFFBIG
+#define	_POSIX_V6_LP64_OFF64		__LP64_OFF64
+#define	_POSIX_V6_LPBIG_OFFBIG		__LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define	_POSIX_V7_ILP32_OFF32		__ILP32_OFF32
+#define	_POSIX_V7_ILP32_OFFBIG		__ILP32_OFFBIG
+#define	_POSIX_V7_LP64_OFF64		__LP64_OFF64
+#define	_POSIX_V7_LPBIG_OFFBIG		__LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_V6_ILP32_OFF32             __ILP32_OFF32
+#define	_V6_ILP32_OFFBIG            __ILP32_OFFBIG
+#define	_V6_LP64_OFF64              __LP64_OFF64
+#define	_V6_LPBIG_OFFBIG            __LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_XBS5_ILP32_OFF32		    __ILP32_OFF32
+#define	_XBS5_ILP32_OFFBIG		    __ILP32_OFFBIG
+#define	_XBS5_LP64_OFF64		    __LP64_OFF64
+#define	_XBS5_LPBIG_OFFBIG		    __LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL < 200809L */
+
+#if __DARWIN_C_LEVEL >= 199506L /* This really should be XSI */ 
+#define	_XOPEN_CRYPT			(1)
+#define	_XOPEN_ENH_I18N			(1)		/* XXX required */
+#define	_XOPEN_LEGACY			(-1)	/* no ftime gcvt, wcswcs */
+#define	_XOPEN_REALTIME			(-1)	/* no q'ed signals, mq_* */
+#define	_XOPEN_REALTIME_THREADS		(-1)	/* no posix_spawn, et. al. */
+#define	_XOPEN_SHM			(1)
+#define	_XOPEN_STREAMS			(-1)   /* Issue 6 */
+#define	_XOPEN_UNIX			(1)
+#endif /* XSI */
+
+/* configurable system variables */
+#define	_SC_ARG_MAX			 1
+#define	_SC_CHILD_MAX			 2
+#define	_SC_CLK_TCK			 3
+#define	_SC_NGROUPS_MAX			 4
+#define	_SC_OPEN_MAX			 5
+#define	_SC_JOB_CONTROL			 6
+#define	_SC_SAVED_IDS			 7
+#define	_SC_VERSION			 8
+#define	_SC_BC_BASE_MAX			 9
+#define	_SC_BC_DIM_MAX			10
+#define	_SC_BC_SCALE_MAX		11
+#define	_SC_BC_STRING_MAX		12
+#define	_SC_COLL_WEIGHTS_MAX		13
+#define	_SC_EXPR_NEST_MAX		14
+#define	_SC_LINE_MAX			15
+#define	_SC_RE_DUP_MAX			16
+#define	_SC_2_VERSION			17
+#define	_SC_2_C_BIND			18
+#define	_SC_2_C_DEV			19
+#define	_SC_2_CHAR_TERM			20
+#define	_SC_2_FORT_DEV			21
+#define	_SC_2_FORT_RUN			22
+#define	_SC_2_LOCALEDEF			23
+#define	_SC_2_SW_DEV			24
+#define	_SC_2_UPE			25
+#define	_SC_STREAM_MAX			26
+#define	_SC_TZNAME_MAX			27
+
+#if __DARWIN_C_LEVEL >= 199309L
+#define	_SC_ASYNCHRONOUS_IO		28
+#define	_SC_PAGESIZE			29
+#define	_SC_MEMLOCK			30
+#define	_SC_MEMLOCK_RANGE		31
+#define	_SC_MEMORY_PROTECTION		32
+#define	_SC_MESSAGE_PASSING		33
+#define	_SC_PRIORITIZED_IO		34
+#define	_SC_PRIORITY_SCHEDULING		35
+#define	_SC_REALTIME_SIGNALS		36
+#define	_SC_SEMAPHORES			37
+#define	_SC_FSYNC			38
+#define	_SC_SHARED_MEMORY_OBJECTS 	39
+#define	_SC_SYNCHRONIZED_IO		40
+#define	_SC_TIMERS			41
+#define	_SC_AIO_LISTIO_MAX		42
+#define	_SC_AIO_MAX			43
+#define	_SC_AIO_PRIO_DELTA_MAX		44
+#define	_SC_DELAYTIMER_MAX		45
+#define	_SC_MQ_OPEN_MAX			46
+#define	_SC_MAPPED_FILES		47	/* swap _SC_PAGESIZE vs. BSD */
+#define	_SC_RTSIG_MAX			48
+#define	_SC_SEM_NSEMS_MAX		49
+#define	_SC_SEM_VALUE_MAX		50
+#define	_SC_SIGQUEUE_MAX		51
+#define	_SC_TIMER_MAX			52
+#endif /* __DARWIN_C_LEVEL >= 199309L */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_SC_NPROCESSORS_CONF		57
+#define	_SC_NPROCESSORS_ONLN		58
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_SC_2_PBS			59
+#define	_SC_2_PBS_ACCOUNTING		60
+#define	_SC_2_PBS_CHECKPOINT		61
+#define	_SC_2_PBS_LOCATE		62
+#define	_SC_2_PBS_MESSAGE		63
+#define	_SC_2_PBS_TRACK			64
+#define	_SC_ADVISORY_INFO		65
+#define	_SC_BARRIERS			66
+#define	_SC_CLOCK_SELECTION		67
+#define	_SC_CPUTIME			68
+#define	_SC_FILE_LOCKING		69
+#define	_SC_GETGR_R_SIZE_MAX		70
+#define	_SC_GETPW_R_SIZE_MAX		71
+#define	_SC_HOST_NAME_MAX		72
+#define	_SC_LOGIN_NAME_MAX		73
+#define	_SC_MONOTONIC_CLOCK		74
+#define	_SC_MQ_PRIO_MAX			75
+#define	_SC_READER_WRITER_LOCKS		76
+#define	_SC_REGEXP			77
+#define	_SC_SHELL			78
+#define	_SC_SPAWN			79
+#define	_SC_SPIN_LOCKS			80
+#define	_SC_SPORADIC_SERVER		81
+#define	_SC_THREAD_ATTR_STACKADDR	82
+#define	_SC_THREAD_ATTR_STACKSIZE	83
+#define	_SC_THREAD_CPUTIME		84
+#define	_SC_THREAD_DESTRUCTOR_ITERATIONS 85
+#define	_SC_THREAD_KEYS_MAX		86
+#define	_SC_THREAD_PRIO_INHERIT		87
+#define	_SC_THREAD_PRIO_PROTECT		88
+#define	_SC_THREAD_PRIORITY_SCHEDULING	89
+#define	_SC_THREAD_PROCESS_SHARED	90
+#define	_SC_THREAD_SAFE_FUNCTIONS	91
+#define	_SC_THREAD_SPORADIC_SERVER	92
+#define	_SC_THREAD_STACK_MIN		93
+#define	_SC_THREAD_THREADS_MAX		94
+#define	_SC_TIMEOUTS			95
+#define	_SC_THREADS			96
+#define	_SC_TRACE			97
+#define	_SC_TRACE_EVENT_FILTER		98
+#define	_SC_TRACE_INHERIT		99
+#define	_SC_TRACE_LOG			100
+#define	_SC_TTY_NAME_MAX		101
+#define	_SC_TYPED_MEMORY_OBJECTS	102
+#define	_SC_V6_ILP32_OFF32		103
+#define	_SC_V6_ILP32_OFFBIG		104
+#define	_SC_V6_LP64_OFF64		105
+#define	_SC_V6_LPBIG_OFFBIG		106
+#define	_SC_IPV6			118
+#define	_SC_RAW_SOCKETS			119
+#define	_SC_SYMLOOP_MAX			120
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+#if __DARWIN_C_LEVEL >= 199506L /* Really XSI */
+#define	_SC_ATEXIT_MAX			107
+#define	_SC_IOV_MAX			56
+#define	_SC_PAGE_SIZE			_SC_PAGESIZE
+#define	_SC_XOPEN_CRYPT			108
+#define	_SC_XOPEN_ENH_I18N		109
+#define	_SC_XOPEN_LEGACY		110      /* Issue 6 */
+#define	_SC_XOPEN_REALTIME		111      /* Issue 6 */
+#define	_SC_XOPEN_REALTIME_THREADS	112  /* Issue 6 */
+#define	_SC_XOPEN_SHM			113
+#define	_SC_XOPEN_STREAMS		114      /* Issue 6 */
+#define	_SC_XOPEN_UNIX			115
+#define	_SC_XOPEN_VERSION		116
+#define	_SC_XOPEN_XCU_VERSION		121
+#endif /* XSI */
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_SC_XBS5_ILP32_OFF32		122
+#define	_SC_XBS5_ILP32_OFFBIG		123
+#define	_SC_XBS5_LP64_OFF64		124
+#define	_SC_XBS5_LPBIG_OFFBIG		125
+#endif /* __DARWIN_C_LEVEL <= 200809L */
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_SC_SS_REPL_MAX			126
+#define	_SC_TRACE_EVENT_NAME_MAX	127
+#define	_SC_TRACE_NAME_MAX		128
+#define	_SC_TRACE_SYS_MAX		129
+#define	_SC_TRACE_USER_EVENT_MAX	130
+#endif
+
+#if __DARWIN_C_LEVEL < 200112L || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 6 */
+#define	_SC_PASS_MAX			131
+#endif
+
+/* 132-199 available for future use */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_SC_PHYS_PAGES			200
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 199209L
+#ifndef _CS_PATH /* Defined in <sys/unistd.h> */
+#define	_CS_PATH				1
+#endif
+#endif
+
+#if __DARWIN_C_LEVEL >= 200112
+#define	_CS_POSIX_V6_ILP32_OFF32_CFLAGS		2
+#define	_CS_POSIX_V6_ILP32_OFF32_LDFLAGS	3
+#define	_CS_POSIX_V6_ILP32_OFF32_LIBS		4
+#define	_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS	5
+#define	_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS	6
+#define	_CS_POSIX_V6_ILP32_OFFBIG_LIBS		7
+#define	_CS_POSIX_V6_LP64_OFF64_CFLAGS		8
+#define	_CS_POSIX_V6_LP64_OFF64_LDFLAGS		9
+#define	_CS_POSIX_V6_LP64_OFF64_LIBS		10
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS	11
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS	12
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_LIBS		13
+#define	_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	14
+#endif
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_CS_XBS5_ILP32_OFF32_CFLAGS		20
+#define	_CS_XBS5_ILP32_OFF32_LDFLAGS		21
+#define	_CS_XBS5_ILP32_OFF32_LIBS		22
+#define	_CS_XBS5_ILP32_OFF32_LINTFLAGS		23
+#define	_CS_XBS5_ILP32_OFFBIG_CFLAGS		24
+#define	_CS_XBS5_ILP32_OFFBIG_LDFLAGS		25
+#define	_CS_XBS5_ILP32_OFFBIG_LIBS		26
+#define	_CS_XBS5_ILP32_OFFBIG_LINTFLAGS		27
+#define	_CS_XBS5_LP64_OFF64_CFLAGS		28
+#define	_CS_XBS5_LP64_OFF64_LDFLAGS		29
+#define	_CS_XBS5_LP64_OFF64_LIBS		30
+#define	_CS_XBS5_LP64_OFF64_LINTFLAGS		31
+#define	_CS_XBS5_LPBIG_OFFBIG_CFLAGS		32
+#define	_CS_XBS5_LPBIG_OFFBIG_LDFLAGS		33
+#define	_CS_XBS5_LPBIG_OFFBIG_LIBS		34
+#define	_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS		35
+#endif
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_CS_DARWIN_USER_DIR			65536
+#define	_CS_DARWIN_USER_TEMP_DIR		65537
+#define	_CS_DARWIN_USER_CACHE_DIR		65538
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+#ifdef _DARWIN_UNLIMITED_GETGROUPS
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2
+#error "_DARWIN_UNLIMITED_GETGROUPS specified, but -miphoneos-version-min version does not support it."
+#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
+#error "_DARWIN_UNLIMITED_GETGROUPS specified, but -mmacosx-version-min version does not support it."
+#endif
+#endif
+
+/* POSIX.1-1990 */
+
+__BEGIN_DECLS
+void	 _exit(int) __dead2;
+int	 access(const char *, int);
+unsigned int
+	 alarm(unsigned int);
+int	 chdir(const char *);
+int	 chown(const char *, uid_t, gid_t);
+
+int	 close(int) __DARWIN_ALIAS_C(close);
+
+int	 dup(int);
+int	 dup2(int, int);
+int	 execl(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execle(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execlp(const char * __file, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execv(const char * __path, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execve(const char * __file, char * const * __argv, char * const * __envp) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execvp(const char * __file, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+pid_t	 fork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+long	 fpathconf(int, int);
+char	*getcwd(char *, size_t);
+gid_t	 getegid(void);
+uid_t	 geteuid(void);
+gid_t	 getgid(void);
+#if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE)
+int	 getgroups(int, gid_t []) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups));
+#else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */
+int	 getgroups(int, gid_t []);
+#endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */
+char	*getlogin(void);
+pid_t	 getpgrp(void);
+pid_t	 getpid(void);
+pid_t	 getppid(void);
+uid_t	 getuid(void);
+int	 isatty(int);
+int	 link(const char *, const char *);
+off_t	 lseek(int, off_t, int);
+long	 pathconf(const char *, int);
+
+int	 pause(void) __DARWIN_ALIAS_C(pause);
+
+int	 pipe(int [2]);
+
+ssize_t	 read(int, void *, size_t) __DARWIN_ALIAS_C(read);
+
+int	 rmdir(const char *);
+int	 setgid(gid_t);
+int	 setpgid(pid_t, pid_t);
+pid_t	 setsid(void);
+int	 setuid(uid_t);
+
+unsigned int
+	 sleep(unsigned int) __DARWIN_ALIAS_C(sleep);
+
+long	 sysconf(int);
+pid_t	 tcgetpgrp(int);
+int	 tcsetpgrp(int, pid_t);
+char	*ttyname(int);
+
+#if __DARWIN_UNIX03
+int	 ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r);
+#else /* !__DARWIN_UNIX03 */
+char	*ttyname_r(int, char *, size_t);
+#endif /* __DARWIN_UNIX03 */
+
+int	 unlink(const char *);
+
+ssize_t	 write(int __fd, const void * __buf, size_t __nbyte) __DARWIN_ALIAS_C(write);
+__END_DECLS
+
+
+
+/* Additional functionality provided by:
+ * POSIX.2-1992 C Language Binding Option
+ */
+
+#if __DARWIN_C_LEVEL >= 199209L
+__BEGIN_DECLS
+size_t	 confstr(int, char *, size_t) __DARWIN_ALIAS(confstr);
+
+int	 getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt);
+
+extern char *optarg;			/* getopt(3) external variables */
+extern int optind, opterr, optopt;
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 199209L */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1c-1995,
+ * POSIX.1i-1995,
+ * and the omnibus ISO/IEC 9945-1: 1996
+ */
+
+#if __DARWIN_C_LEVEL >= 199506L
+#include <_ctermid.h>
+                               /* These F_* are really XSI or Issue 6 */
+#define F_ULOCK         0      /* unlock locked section */
+#define	F_LOCK          1      /* lock a section for exclusive use */
+#define	F_TLOCK         2      /* test and lock a section for exclusive use */
+#define	F_TEST          3      /* test a section for locks by other procs */
+
+ __BEGIN_DECLS
+
+/* Begin XSI */
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+#if !defined(_POSIX_C_SOURCE)
+__deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED
+#endif
+void	*brk(const void *);
+int	 chroot(const char *) __POSIX_C_DEPRECATED(199506L);
+#endif
+
+char	*crypt(const char *, const char *);
+#if __DARWIN_UNIX03
+void	 encrypt(char *, int) __DARWIN_ALIAS(encrypt);
+#else /* !__DARWIN_UNIX03 */
+int	 encrypt(char *, int);
+#endif /* __DARWIN_UNIX03 */
+int	 fchdir(int);
+long	 gethostid(void);
+pid_t	 getpgid(pid_t);
+pid_t	 getsid(pid_t);
+
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+int	 getdtablesize(void) __POSIX_C_DEPRECATED(199506L);
+int	 getpagesize(void) __pure2 __POSIX_C_DEPRECATED(199506L);
+char	*getpass(const char *) __POSIX_C_DEPRECATED(199506L);
+#endif
+
+/* Removed in Issue 7 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L
+char	*getwd(char *) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */
+#endif
+
+int	 lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown);
+
+int	 lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf);
+
+int	 nice(int) __DARWIN_ALIAS(nice);
+
+ssize_t	 pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pread);
+
+ssize_t	 pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pwrite);
+
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+/* Note that Issue 5 changed the argument as intprt_t,
+ * but we keep it as int for binary compatability. */
+#if !defined(_POSIX_C_SOURCE)
+__deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED
+#endif
+void	*sbrk(int);
+#endif
+
+#if __DARWIN_UNIX03
+pid_t	 setpgrp(void) __DARWIN_ALIAS(setpgrp);
+#else /* !__DARWIN_UNIX03 */
+int	 setpgrp(pid_t pid, pid_t pgrp);	/* obsoleted by setpgid() */
+#endif /* __DARWIN_UNIX03 */
+
+int	 setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid);
+
+int	 setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid);
+
+void     swab(const void * __restrict, void * __restrict, ssize_t);
+void	 sync(void);
+int	 truncate(const char *, off_t);
+useconds_t	 ualarm(useconds_t, useconds_t);
+int	 usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
+pid_t	 vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+/* End XSI */
+
+int	 fsync(int) __DARWIN_ALIAS_C(fsync);
+
+int	 ftruncate(int, off_t);
+int	 getlogin_r(char *, size_t);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 199506L */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1-2001
+ * ISO C99
+ */
+
+#if __DARWIN_C_LEVEL >= 200112L
+__BEGIN_DECLS
+int	 fchown(int, uid_t, gid_t);
+int	 gethostname(char *, size_t);
+ssize_t  readlink(const char * __restrict, char * __restrict, size_t);
+int	 setegid(gid_t);
+int	 seteuid(uid_t);
+int	 symlink(const char *, const char *);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+
+
+/* Darwin extensions */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#include <sys/select.h>
+
+#include <sys/_types/_dev_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_uuid_t.h>
+
+__BEGIN_DECLS
+void	 _Exit(int) __dead2;
+int	 accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t);
+int	 acct(const char *);
+int	 add_profil(char *, size_t, unsigned long, unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+void	 endusershell(void);
+int	 execvP(const char * __file, const char * __searchpath, char * const * __argv)  __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+char	*fflagstostr(unsigned long);
+int	 getdomainname(char *, int);
+int	 getgrouplist(const char *, int, int *, int *);
+#if defined(__has_include)
+#if __has_include(<gethostuuid_private.h>)
+#include <gethostuuid_private.h>
+#else
+#include <gethostuuid.h>
+#endif
+#else
+#include <gethostuuid.h>
+#endif
+mode_t	 getmode(const void *, mode_t);
+int	 getpeereid(int, uid_t *, gid_t *);
+int	 getsgroups_np(int *, uuid_t);
+char	*getusershell(void);
+int	 getwgroups_np(int *, uuid_t);
+int	 initgroups(const char *, int);
+int	 issetugid(void);
+char	*mkdtemp(char *);
+int	 mknod(const char *, mode_t, dev_t);
+int	 mkpath_np(const char *path, mode_t omode) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0); /* returns errno */
+int	 mkpathat_np(int dfd, const char *path, mode_t omode) /* returns errno */
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+int	 mkstemp(char *);
+int	 mkstemps(char *, int);
+char	*mktemp(char *);
+int	 mkostemp(char *path, int oflags)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+int	 mkostemps(char *path, int slen, int oflags)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+/* Non-portable mkstemp that uses open_dprotected_np */
+int	 mkstemp_dprotected_np(char *path, int dpclass, int dpflags)
+		__OSX_UNAVAILABLE __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+char   *mkdtempat_np(int dfd, char *path)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     mkstempsat_np(int dfd, char *path, int slen)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     mkostempsat_np(int dfd, char *path, int slen, int oflags)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int	 nfssvc(int, void *);
+int	 profil(char *, size_t, unsigned long, unsigned int);
+
+__deprecated_msg("Use of per-thread security contexts is error-prone and discouraged.")
+int	 pthread_setugid_np(uid_t, gid_t);
+int	 pthread_getugid_np( uid_t *, gid_t *);
+
+int	 reboot(int);
+int	 revoke(const char *);
+
+__deprecated int	 rcmd(char **, int, const char *, const char *, const char *, int *);
+__deprecated int	 rcmd_af(char **, int, const char *, const char *, const char *, int *,
+		int);
+__deprecated int	 rresvport(int *);
+__deprecated int	 rresvport_af(int *, int);
+__deprecated int	 iruserok(unsigned long, int, const char *, const char *);
+__deprecated int	 iruserok_sa(const void *, int, int, const char *, const char *);
+__deprecated int	 ruserok(const char *, int, const char *, const char *);
+
+int	 setdomainname(const char *, int);
+int	 setgroups(int, const gid_t *);
+void	 sethostid(long);
+int	 sethostname(const char *, int);
+#if __DARWIN_UNIX03
+void	 setkey(const char *) __DARWIN_ALIAS(setkey);
+#else /* !__DARWIN_UNIX03 */
+int	 setkey(const char *);
+#endif /* __DARWIN_UNIX03 */
+int	 setlogin(const char *);
+void	*setmode(const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(setmode));
+int	 setrgid(gid_t);
+int	 setruid(uid_t);
+int	 setsgroups_np(int, const uuid_t);
+void	 setusershell(void);
+int	 setwgroups_np(int, const uuid_t);
+int	 strtofflags(char **, unsigned long *, unsigned long *);
+int	 swapon(const char *);
+int	 ttyslot(void);
+int	 undelete(const char *);
+int	 unwhiteout(const char *);
+void	*valloc(size_t);			
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+__OS_AVAILABILITY_MSG(ios,deprecated=10.0,"syscall(2) is unsupported; "
+    "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().")
+__OS_AVAILABILITY_MSG(macosx,deprecated=10.12,"syscall(2) is unsupported; "
+    "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().")
+int	 syscall(int, ...);
+
+extern char *suboptarg;			/* getsubopt(3) external variable */
+int	 getsubopt(char **, char * const *, char **);
+
+/*  HFS & HFS Plus semantics system calls go here */
+#ifdef __LP64__
+int    fgetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int    fsetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int    getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist);
+int    setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist);
+int exchangedata(const char*,const char*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int    getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+#else /* __LP64__ */
+int	fgetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int	fsetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int	getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist);
+int	setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist);
+int exchangedata(const char*,const char*,unsigned long)
+		__OSX_DEPRECATED(10.0, 10.13, "use renamex_np with the RENAME_SWAP flag")
+		__IOS_DEPRECATED(2.0, 11.0, "use renamex_np with the RENAME_SWAP flag")
+		__WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+#endif /* __LP64__ */
+
+struct fssearchblock;
+struct searchstate;
+
+int	 searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 fsctl(const char *,unsigned long,void*,unsigned int);
+int	 ffsctl(int,unsigned long,void*,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+
+#define	SYNC_VOLUME_FULLSYNC	0x01	/* Flush data and metadata to platter, not just to disk cache */
+#define SYNC_VOLUME_WAIT	0x02	/* Wait for sync to complete */
+
+int	fsync_volume_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	sync_volume_np(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+
+extern int optreset;
+
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#endif /* _UNISTD_H_ */
lib/libc/include/x86_64-macos-gnu/utime.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)utime.h	8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef	_UTIME_H_
+#define	_UTIME_H_
+
+#include <_types.h>
+#include <sys/_types/_time_t.h>
+
+struct utimbuf {
+	time_t actime;		/* Access time */
+	time_t modtime;		/* Modification time */
+};
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+int utime(const char *, const struct utimbuf *);
+__END_DECLS
+
+#endif /* !_UTIME_H_ */
lib/libc/include/x86_64-macos-gnu/utmpx.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2004-2006 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@
+ */
+/*	$NetBSD: utmpx.h,v 1.11 2003/08/26 16:48:32 wiz Exp $	 */
+
+/*-
+ * Copyright (c) 2002 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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 NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+ */
+#ifndef	_UTMPX_H_
+#define	_UTMPX_H_
+
+#include <_types.h>
+#include <sys/time.h>
+#include <sys/cdefs.h>
+#include <Availability.h>
+#include <sys/_types/_pid_t.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_uid_t.h>
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+#define	_PATH_UTMPX		"/var/run/utmpx"
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define	UTMPX_FILE	_PATH_UTMPX
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+#define _UTX_USERSIZE	256	/* matches MAXLOGNAME */
+#define _UTX_LINESIZE	32
+#define	_UTX_IDSIZE	4
+#define _UTX_HOSTSIZE	256
+
+#define EMPTY		0
+#define RUN_LVL		1
+#define BOOT_TIME	2
+#define OLD_TIME	3
+#define NEW_TIME	4
+#define INIT_PROCESS	5
+#define LOGIN_PROCESS	6
+#define USER_PROCESS	7
+#define DEAD_PROCESS	8
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ACCOUNTING	9
+#define SIGNATURE	10
+#define SHUTDOWN_TIME	11
+
+#define UTMPX_AUTOFILL_MASK			0x8000
+#define UTMPX_DEAD_IF_CORRESPONDING_MASK	0x4000
+
+/* notify(3) change notification name */
+#define UTMPX_CHANGE_NOTIFICATION		"com.apple.system.utmpx"
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+/*
+ * The following structure describes the fields of the utmpx entries
+ * stored in _PATH_UTMPX. This is not the format the
+ * entries are stored in the files, and application should only access
+ * entries using routines described in getutxent(3).
+ */
+
+#ifdef _UTMPX_COMPAT
+#define ut_user ut_name
+#define ut_xtime ut_tv.tv_sec
+#endif /* _UTMPX_COMPAT */
+
+struct utmpx {
+	char ut_user[_UTX_USERSIZE];	/* login name */
+	char ut_id[_UTX_IDSIZE];	/* id */
+	char ut_line[_UTX_LINESIZE];	/* tty name */
+	pid_t ut_pid;			/* process id creating the entry */
+	short ut_type;			/* type of this entry */
+	struct timeval ut_tv;		/* time entry was created */
+	char ut_host[_UTX_HOSTSIZE];	/* host name */
+	__uint32_t ut_pad[16];		/* reserved for future use */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct lastlogx {
+	struct timeval ll_tv;		/* time entry was created */
+	char ll_line[_UTX_LINESIZE];	/* tty name */
+	char ll_host[_UTX_HOSTSIZE];	/* host name */
+};
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+__BEGIN_DECLS
+
+void	endutxent(void);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void	endutxent_wtmp(void) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+struct lastlogx *
+	getlastlogx(uid_t, struct lastlogx *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+struct lastlogx *
+	getlastlogxbyname(const char*, struct lastlogx *)__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+struct utmp;	/* forward reference */
+void	getutmp(const struct utmpx *, struct utmp *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_9, __IPHONE_2_0, __IPHONE_7_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+void	getutmpx(const struct utmp *, struct utmpx *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_9, __IPHONE_2_0, __IPHONE_7_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+struct utmpx *
+	getutxent(void);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct utmpx *
+	getutxent_wtmp(void) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+struct utmpx *
+	getutxid(const struct utmpx *);
+struct utmpx *
+	getutxline(const struct utmpx *);
+struct utmpx *
+	pututxline(const struct utmpx *);
+void	setutxent(void);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void	setutxent_wtmp(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int	utmpxname(const char *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int	wtmpxname(const char *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+
+__END_DECLS
+
+#endif /* !_UTMPX_H_ */
lib/libc/include/x86_64-macos-gnu/wordexp.h
@@ -0,0 +1,85 @@
+/*
+ *   Copyright 1994, University Corporation for Atmospheric Research
+ *   See ../COPYRIGHT file for copying and redistribution conditions.
+ */
+/*
+ * Reproduction of ../COPYRIGHT file:
+ *
+ *********************************************************************
+ 
+Copyright 1995-2002 University Corporation for Atmospheric Research/Unidata
+
+Portions of this software were developed by the Unidata Program at the 
+University Corporation for Atmospheric Research.
+
+Access and use of this software shall impose the following obligations
+and understandings on the user. The user is granted the right, without
+any fee or cost, to use, copy, modify, alter, enhance and distribute
+this software, and any derivative works thereof, and its supporting
+documentation for any purpose whatsoever, provided that this entire
+notice appears in all copies of the software, derivative works and
+supporting documentation.  Further, UCAR requests that the user credit
+UCAR/Unidata in any publications that result from the use of this
+software or in any product that includes this software. The names UCAR
+and/or Unidata, however, may not be used in any advertising or publicity
+to endorse or promote any products or commercial entity unless specific
+written permission is obtained from UCAR/Unidata. The user also
+understands that UCAR/Unidata is not obligated to provide the user with
+any support, consulting, training or assistance of any kind with regard
+to the use, operation and performance of this software nor to provide
+the user with any updates, revisions, new versions or "bug fixes."
+
+THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "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 UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ *********************************************************************
+ *
+ */
+
+/* $Id: wordexp.h,v 1.5 1994/05/12 20:46:40 davis Exp $ */
+#ifndef _WORDEXP_H
+#define _WORDEXP_H
+
+#include <sys/cdefs.h>
+#include <_types.h>
+#include <sys/_types/_size_t.h>
+#include <Availability.h>
+
+typedef struct {
+	size_t we_wordc;
+	char **we_wordv;
+	size_t we_offs;
+} wordexp_t;
+
+/* wordexp() flags Argument */
+#define WRDE_APPEND	0x01
+#define WRDE_DOOFFS	0x02
+#define WRDE_NOCMD	0x04
+#define WRDE_REUSE	0x08
+#define WRDE_SHOWERR	0x10
+#define WRDE_UNDEF	0x20
+
+/*
+ * wordexp() Return Values
+ */
+/* required */
+#define WRDE_BADCHAR	1
+#define WRDE_BADVAL	2
+#define WRDE_CMDSUB	3
+#define WRDE_NOSPACE	4
+#define WRDE_NOSYS	5
+#define WRDE_SYNTAX	6
+
+
+__BEGIN_DECLS
+int wordexp(const char * __restrict, wordexp_t * __restrict, int) __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA);
+void wordfree(wordexp_t *) __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA);
+__END_DECLS
+
+#endif  /* _WORDEXP_H */