| author | |
| committer | |
| log | eed5814d7594e64b08b9a51697f2766df5fcb5f0 |
| tree | ad8d530075a70e39612ec909b52647ec24eca24d |
| parent | 4d67c3d8878b99fc7b5912dafc50c9a5c01ba169 |
147 files changed, 19922 insertions(+), 0 deletions(-)
lib/libc/include/x86_64-macos-gnu/_regex.h created+121| ... | @@ -0,0 +1,121 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000, 2011 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /* | ||
| 24 | * Copyright (c) 2001-2009 Ville Laurikari <vl@iki.fi> | ||
| 25 | * All rights reserved. | ||
| 26 | * | ||
| 27 | * Redistribution and use in source and binary forms, with or without | ||
| 28 | * modification, are permitted provided that the following conditions | ||
| 29 | * are met: | ||
| 30 | * | ||
| 31 | * 1. Redistributions of source code must retain the above copyright | ||
| 32 | * notice, this list of conditions and the following disclaimer. | ||
| 33 | * | ||
| 34 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 35 | * notice, this list of conditions and the following disclaimer in the | ||
| 36 | * documentation and/or other materials provided with the distribution. | ||
| 37 | * | ||
| 38 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS | ||
| 39 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 40 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 41 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 42 | * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 43 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 44 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 45 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 46 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 47 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 48 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 49 | */ | ||
| 50 | /*- | ||
| 51 | * Copyright (c) 1992 Henry Spencer. | ||
| 52 | * Copyright (c) 1992, 1993 | ||
| 53 | *	The Regents of the University of California. All rights reserved. | ||
| 54 | * | ||
| 55 | * This code is derived from software contributed to Berkeley by | ||
| 56 | * Henry Spencer of the University of Toronto. | ||
| 57 | * | ||
| 58 | * Redistribution and use in source and binary forms, with or without | ||
| 59 | * modification, are permitted provided that the following conditions | ||
| 60 | * are met: | ||
| 61 | * 1. Redistributions of source code must retain the above copyright | ||
| 62 | * notice, this list of conditions and the following disclaimer. | ||
| 63 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 64 | * notice, this list of conditions and the following disclaimer in the | ||
| 65 | * documentation and/or other materials provided with the distribution. | ||
| 66 | * 3. All advertising materials mentioning features or use of this software | ||
| 67 | * must display the following acknowledgement: | ||
| 68 | *	This product includes software developed by the University of | ||
| 69 | *	California, Berkeley and its contributors. | ||
| 70 | * 4. Neither the name of the University nor the names of its contributors | ||
| 71 | * may be used to endorse or promote products derived from this software | ||
| 72 | * without specific prior written permission. | ||
| 73 | * | ||
| 74 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 75 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 76 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 77 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 78 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 79 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 80 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 81 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 82 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 83 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 84 | * SUCH DAMAGE. | ||
| 85 | * | ||
| 86 | *	@(#)regex.h	8.2 (Berkeley) 1/3/94 | ||
| 87 | */ | ||
| 88 | |||
| 89 | /* | ||
| 90 | * Common header for regex.h and xlocale/_regex.h | ||
| 91 | */ | ||
| 92 | |||
| 93 | #ifndef __REGEX_H_ | ||
| 94 | #define	__REGEX_H_ | ||
| 95 | |||
| 96 | #include <_types.h> | ||
| 97 | #include <Availability.h> | ||
| 98 | #include <sys/_types/_size_t.h> | ||
| 99 | |||
| 100 | /*********/ | ||
| 101 | /* types */ | ||
| 102 | /*********/ | ||
| 103 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 104 | #include <sys/_types/_wchar_t.h> | ||
| 105 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 106 | |||
| 107 | typedef __darwin_off_t regoff_t; | ||
| 108 | |||
| 109 | typedef struct { | ||
| 110 | 	int re_magic; | ||
| 111 | 	size_t re_nsub;		/* number of parenthesized subexpressions */ | ||
| 112 | 	const char *re_endp;	/* end pointer for REG_PEND */ | ||
| 113 | 	struct re_guts *re_g;	/* none of your business :-) */ | ||
| 114 | } regex_t; | ||
| 115 | |||
| 116 | typedef struct { | ||
| 117 | 	regoff_t rm_so;		/* start of match */ | ||
| 118 | 	regoff_t rm_eo;		/* end of match */ | ||
| 119 | } regmatch_t; | ||
| 120 | |||
| 121 | #endif /* !__REGEX_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/_types/_nl_item.h created+33| ... | @@ -0,0 +1,33 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _NL_ITEM | ||
| 30 | #define _NL_ITEM | ||
| 31 | #include <_types.h> | ||
| 32 | typedef __darwin_nl_item nl_item; | ||
| 33 | #endif /* _NL_ITEM */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-macos-gnu/aio.h created+37| ... | @@ -0,0 +1,37 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /* | ||
| 24 | *	File:	aio.h | ||
| 25 | *	Author:	Umesh Vaishampayan [umeshv@apple.com] | ||
| 26 | *			05-Feb-2003	umeshv	Created. | ||
| 27 | * | ||
| 28 | *	Header file for POSIX Asynchronous IO APIs | ||
| 29 | * | ||
| 30 | */ | ||
| 31 | |||
| 32 | #ifndef _AIO_H_ | ||
| 33 | #define	_AIO_H_ | ||
| 34 | |||
| 35 | #include <sys/aio.h> | ||
| 36 | |||
| 37 | #endif /* _AIO_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/arpa/inet.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* | ||
| 2 | * ++Copyright++ 1983, 1993 | ||
| 3 | * - | ||
| 4 | * Copyright (c) 1983, 1993 | ||
| 5 | * The Regents of the University of California. All rights reserved. | ||
| 6 | * | ||
| 7 | * Redistribution and use in source and binary forms, with or without | ||
| 8 | * modification, are permitted provided that the following conditions | ||
| 9 | * are met: | ||
| 10 | * 1. Redistributions of source code must retain the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer. | ||
| 12 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer in the | ||
| 14 | * documentation and/or other materials provided with the distribution. | ||
| 15 | * 3. All advertising materials mentioning features or use of this software | ||
| 16 | * must display the following acknowledgement: | ||
| 17 | * 	This product includes software developed by the University of | ||
| 18 | * 	California, Berkeley and its contributors. | ||
| 19 | * 4. Neither the name of the University nor the names of its contributors | ||
| 20 | * may be used to endorse or promote products derived from this software | ||
| 21 | * without specific prior written permission. | ||
| 22 | * | ||
| 23 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 24 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 25 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 26 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 27 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 28 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 29 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 30 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 32 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 33 | * SUCH DAMAGE. | ||
| 34 | * - | ||
| 35 | * Portions Copyright (c) 1993 by Digital Equipment Corporation. | ||
| 36 | * | ||
| 37 | * Permission to use, copy, modify, and distribute this software for any | ||
| 38 | * purpose with or without fee is hereby granted, provided that the above | ||
| 39 | * copyright notice and this permission notice appear in all copies, and that | ||
| 40 | * the name of Digital Equipment Corporation not be used in advertising or | ||
| 41 | * publicity pertaining to distribution of the document or software without | ||
| 42 | * specific, written prior permission. | ||
| 43 | * | ||
| 44 | * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL | ||
| 45 | * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES | ||
| 46 | * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT | ||
| 47 | * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | ||
| 48 | * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | ||
| 49 | * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS | ||
| 50 | * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | ||
| 51 | * SOFTWARE. | ||
| 52 | * - | ||
| 53 | * --Copyright-- | ||
| 54 | */ | ||
| 55 | |||
| 56 | /* | ||
| 57 | *	@(#)inet.h	8.1 (Berkeley) 6/2/93 | ||
| 58 | *	$Id: inet.h,v 1.10 2006/02/01 18:09:47 majka Exp $ | ||
| 59 | */ | ||
| 60 | |||
| 61 | #ifndef _ARPA_INET_H_ | ||
| 62 | #define	_ARPA_INET_H_ | ||
| 63 | |||
| 64 | /* External definitions for functions in inet(3), addr2ascii(3) */ | ||
| 65 | |||
| 66 | #include <sys/cdefs.h> | ||
| 67 | #include <sys/_types.h> | ||
| 68 | #include <stdint.h>		/* uint32_t uint16_t */ | ||
| 69 | #include <machine/endian.h>	/* htonl() and family if (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 70 | #include <sys/_endian.h>	/* htonl() and family if (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 71 | #include <netinet/in.h>		/* in_addr */ | ||
| 72 | |||
| 73 | __BEGIN_DECLS | ||
| 74 | |||
| 75 | in_addr_t	 inet_addr(const char *); | ||
| 76 | char		*inet_ntoa(struct in_addr); | ||
| 77 | const char	*inet_ntop(int, const void *, char *, socklen_t); | ||
| 78 | int		 inet_pton(int, const char *, void *); | ||
| 79 | |||
| 80 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 81 | int		 ascii2addr(int, const char *, void *); | ||
| 82 | char		*addr2ascii(int, const void *, int, char *); | ||
| 83 | int		 inet_aton(const char *, struct in_addr *); | ||
| 84 | in_addr_t	 inet_lnaof(struct in_addr); | ||
| 85 | struct in_addr	 inet_makeaddr(in_addr_t, in_addr_t); | ||
| 86 | in_addr_t	 inet_netof(struct in_addr); | ||
| 87 | in_addr_t	 inet_network(const char *); | ||
| 88 | char		*inet_net_ntop(int, const void *, int, char *, __darwin_size_t); | ||
| 89 | int		 inet_net_pton(int, const char *, void *, __darwin_size_t); | ||
| 90 | char	 	*inet_neta(in_addr_t, char *, __darwin_size_t); | ||
| 91 | unsigned int	 inet_nsap_addr(const char *, unsigned char *, int); | ||
| 92 | char	*inet_nsap_ntoa(int, const unsigned char *, char *); | ||
| 93 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 94 | |||
| 95 | __END_DECLS | ||
| 96 | |||
| 97 | #endif /* !_ARPA_INET_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/cpio.h created+55| ... | @@ -0,0 +1,55 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer in the | ||
| 12 | * documentation and/or other materials provided with the distribution. | ||
| 13 | * | ||
| 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 24 | * SUCH DAMAGE. | ||
| 25 | * | ||
| 26 | * $FreeBSD: src/include/cpio.h,v 1.1 2002/08/01 07:18:38 mike Exp $ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _CPIO_H_ | ||
| 30 | #define	_CPIO_H_ | ||
| 31 | |||
| 32 | #define	C_ISSOCK 0140000	/* Socket. */ | ||
| 33 | #define	C_ISLNK	0120000		/* Symbolic link. */ | ||
| 34 | #define	C_ISCTG	0110000		/* Reserved. */ | ||
| 35 | #define	C_ISREG	0100000		/* Regular file. */ | ||
| 36 | #define	C_ISBLK	0060000		/* Block special. */ | ||
| 37 | #define	C_ISDIR	0040000		/* Directory. */ | ||
| 38 | #define	C_ISCHR	0020000		/* Character special. */ | ||
| 39 | #define	C_ISFIFO 0010000	/* FIFO. */ | ||
| 40 | #define	C_ISUID	0004000		/* Set user ID. */ | ||
| 41 | #define	C_ISGID	0002000		/* Set group ID. */ | ||
| 42 | #define	C_ISVTX	0001000		/* On directories, restricted deletion flag. */ | ||
| 43 | #define	C_IRUSR	0000400		/* Read by owner. */ | ||
| 44 | #define	C_IWUSR	0000200		/* Write by owner. */ | ||
| 45 | #define	C_IXUSR	0000100		/* Execute by owner. */ | ||
| 46 | #define	C_IRGRP	0000040		/* Read by group. */ | ||
| 47 | #define	C_IWGRP	0000020		/* Write by group. */ | ||
| 48 | #define	C_IXGRP	0000010		/* Execute by group. */ | ||
| 49 | #define	C_IROTH	0000004		/* Read by others. */ | ||
| 50 | #define	C_IWOTH	0000002		/* Write by others. */ | ||
| 51 | #define	C_IXOTH	0000001		/* Execute by others. */ | ||
| 52 | |||
| 53 | #define	MAGIC	"070707" | ||
| 54 | |||
| 55 | #endif /* _CPIO_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/dirent.h created+191| ... | @@ -0,0 +1,191 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000, 2002-2008 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*- | ||
| 24 | * Copyright (c) 1989, 1993 | ||
| 25 | *	The Regents of the University of California. All rights reserved. | ||
| 26 | * | ||
| 27 | * Redistribution and use in source and binary forms, with or without | ||
| 28 | * modification, are permitted provided that the following conditions | ||
| 29 | * are met: | ||
| 30 | * 1. Redistributions of source code must retain the above copyright | ||
| 31 | * notice, this list of conditions and the following disclaimer. | ||
| 32 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 33 | * notice, this list of conditions and the following disclaimer in the | ||
| 34 | * documentation and/or other materials provided with the distribution. | ||
| 35 | * 3. All advertising materials mentioning features or use of this software | ||
| 36 | * must display the following acknowledgement: | ||
| 37 | *	This product includes software developed by the University of | ||
| 38 | *	California, Berkeley and its contributors. | ||
| 39 | * 4. Neither the name of the University nor the names of its contributors | ||
| 40 | * may be used to endorse or promote products derived from this software | ||
| 41 | * without specific prior written permission. | ||
| 42 | * | ||
| 43 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 44 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 45 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 46 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 47 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 48 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 49 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 50 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 51 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 52 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 53 | * SUCH DAMAGE. | ||
| 54 | * | ||
| 55 | *	@(#)dirent.h	8.2 (Berkeley) 7/28/94 | ||
| 56 | */ | ||
| 57 | |||
| 58 | #ifndef _DIRENT_H_ | ||
| 59 | #define _DIRENT_H_ | ||
| 60 | |||
| 61 | /* | ||
| 62 | * The kernel defines the format of directory entries | ||
| 63 | */ | ||
| 64 | #include <_types.h> | ||
| 65 | #include <sys/dirent.h> | ||
| 66 | #include <sys/cdefs.h> | ||
| 67 | #include <Availability.h> | ||
| 68 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutex_t */ | ||
| 69 | |||
| 70 | struct _telldir;		/* forward reference */ | ||
| 71 | |||
| 72 | /* structure describing an open directory. */ | ||
| 73 | typedef struct { | ||
| 74 | 	int	__dd_fd;	/* file descriptor associated with directory */ | ||
| 75 | 	long	__dd_loc;	/* offset in current buffer */ | ||
| 76 | 	long	__dd_size;	/* amount of data returned */ | ||
| 77 | 	char	*__dd_buf;	/* data buffer */ | ||
| 78 | 	int	__dd_len;	/* size of data buffer */ | ||
| 79 | 	long	__dd_seek;	/* magic cookie returned */ | ||
| 80 | 	__unused long	__padding; /* (__dd_rewind space left for bincompat) */ | ||
| 81 | 	int	__dd_flags;	/* flags for readdir */ | ||
| 82 | 	__darwin_pthread_mutex_t __dd_lock; /* for thread locking */ | ||
| 83 | 	struct _telldir *__dd_td; /* telldir position recording */ | ||
| 84 | } DIR; | ||
| 85 | |||
| 86 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 87 | |||
| 88 | /* definitions for library routines operating on directories. */ | ||
| 89 | #define	DIRBLKSIZ	1024 | ||
| 90 | |||
| 91 | /* flags for opendir2 */ | ||
| 92 | #define DTF_HIDEW	0x0001	/* hide whiteout entries */ | ||
| 93 | #define DTF_NODUP	0x0002	/* don't return duplicate names */ | ||
| 94 | #define DTF_REWIND	0x0004	/* rewind after reading union stack */ | ||
| 95 | #define __DTF_READALL	0x0008	/* everything has been read */ | ||
| 96 | #define __DTF_SKIPREAD 0x0010 /* assume internal buffer is populated */ | ||
| 97 | #define __DTF_ATEND 0x0020 /* there's nothing more to read in the kernel */ | ||
| 98 | |||
| 99 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 100 | |||
| 101 | #ifndef KERNEL | ||
| 102 | |||
| 103 | __BEGIN_DECLS | ||
| 104 | |||
| 105 | int closedir(DIR *) __DARWIN_ALIAS(closedir); | ||
| 106 | |||
| 107 | DIR *opendir(const char *) __DARWIN_ALIAS_I(opendir); | ||
| 108 | |||
| 109 | struct dirent *readdir(DIR *) __DARWIN_INODE64(readdir); | ||
| 110 | int readdir_r(DIR *, struct dirent *, struct dirent **) __DARWIN_INODE64(readdir_r); | ||
| 111 | |||
| 112 | void rewinddir(DIR *) __DARWIN_ALIAS_I(rewinddir); | ||
| 113 | |||
| 114 | void seekdir(DIR *, long) __DARWIN_ALIAS_I(seekdir); | ||
| 115 | |||
| 116 | long telldir(DIR *) __DARWIN_ALIAS_I(telldir); | ||
| 117 | |||
| 118 | __END_DECLS | ||
| 119 | |||
| 120 | |||
| 121 | /* Additional functionality provided by: | ||
| 122 | * POSIX.1-2008 | ||
| 123 | */ | ||
| 124 | |||
| 125 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 126 | __BEGIN_DECLS | ||
| 127 | |||
| 128 | __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0) | ||
| 129 | DIR *fdopendir(int) __DARWIN_ALIAS_I(fdopendir); | ||
| 130 | |||
| 131 | int alphasort(const struct dirent **, const struct dirent **) __DARWIN_INODE64(alphasort); | ||
| 132 | |||
| 133 | #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) | ||
| 134 | #include <errno.h> | ||
| 135 | #include <stdlib.h> | ||
| 136 | #define dirfd(dirp) ({ \ | ||
| 137 | DIR *_dirp = (dirp); \ | ||
| 138 | int ret = -1; \ | ||
| 139 | if (_dirp == NULL || _dirp->__dd_fd < 0) \ | ||
| 140 | errno = EINVAL; \ | ||
| 141 | else \ | ||
| 142 | ret = _dirp->__dd_fd; \ | ||
| 143 | ret; \ | ||
| 144 | }) | ||
| 145 | #else | ||
| 146 | int dirfd(DIR *dirp) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 147 | #endif | ||
| 148 | |||
| 149 | int scandir(const char *, struct dirent ***, | ||
| 150 | int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)) __DARWIN_INODE64(scandir); | ||
| 151 | #ifdef __BLOCKS__ | ||
| 152 | #if __has_attribute(noescape) | ||
| 153 | #define __scandir_noescape __attribute__((__noescape__)) | ||
| 154 | #else | ||
| 155 | #define __scandir_noescape | ||
| 156 | #endif | ||
| 157 | |||
| 158 | int scandir_b(const char *, struct dirent ***, | ||
| 159 | int (^)(const struct dirent *) __scandir_noescape, | ||
| 160 | int (^)(const struct dirent **, const struct dirent **) __scandir_noescape) | ||
| 161 | __DARWIN_INODE64(scandir_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); | ||
| 162 | #endif /* __BLOCKS__ */ | ||
| 163 | |||
| 164 | __END_DECLS | ||
| 165 | #endif /* __DARWIN_C_LEVEL >= 200809L */ | ||
| 166 | |||
| 167 | |||
| 168 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 169 | __BEGIN_DECLS | ||
| 170 | |||
| 171 | int getdirentries(int, char *, int, long *) | ||
| 172 | |||
| 173 | #if __DARWIN_64_BIT_INO_T | ||
| 174 | /* | ||
| 175 | * getdirentries() doesn't work when 64-bit inodes is in effect, so we | ||
| 176 | * generate a link error. | ||
| 177 | */ | ||
| 178 | 						__asm("_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect") | ||
| 179 | #else /* !__DARWIN_64_BIT_INO_T */ | ||
| 180 | 						__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_6, __IPHONE_2_0,__IPHONE_2_0) | ||
| 181 | #endif /* __DARWIN_64_BIT_INO_T */ | ||
| 182 | ; | ||
| 183 | |||
| 184 | DIR *__opendir2(const char *, int) __DARWIN_ALIAS_I(__opendir2); | ||
| 185 | |||
| 186 | __END_DECLS | ||
| 187 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 188 | |||
| 189 | #endif /* !KERNEL */ | ||
| 190 | |||
| 191 | #endif /* !_DIRENT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/dlfcn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2004-2008 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | /* | ||
| 25 | Based on the dlcompat work done by: | ||
| 26 | 		Jorge Acereda <jacereda@users.sourceforge.net> & | ||
| 27 | 		Peter O'Gorman <ogorman@users.sourceforge.net> | ||
| 28 | */ | ||
| 29 | |||
| 30 | #ifndef _DLFCN_H_ | ||
| 31 | #define _DLFCN_H_ | ||
| 32 | |||
| 33 | #ifdef __cplusplus | ||
| 34 | extern "C" { | ||
| 35 | #endif | ||
| 36 | |||
| 37 | #include <sys/cdefs.h> | ||
| 38 | |||
| 39 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 40 | #include <stdbool.h> | ||
| 41 | #include <Availability.h> | ||
| 42 | |||
| 43 | #ifdef __DRIVERKIT_19_0 | ||
| 44 | #define __DYLDDL_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit) | ||
| 45 | #else | ||
| 46 | #define __DYLDDL_DRIVERKIT_UNAVAILABLE | ||
| 47 | #endif | ||
| 48 | |||
| 49 | /* | ||
| 50 | * Structure filled in by dladdr(). | ||
| 51 | */ | ||
| 52 | typedef struct dl_info { | ||
| 53 | const char *dli_fname; /* Pathname of shared object */ | ||
| 54 | void *dli_fbase; /* Base address of shared object */ | ||
| 55 | const char *dli_sname; /* Name of nearest symbol */ | ||
| 56 | void *dli_saddr; /* Address of nearest symbol */ | ||
| 57 | } Dl_info; | ||
| 58 | |||
| 59 | extern int dladdr(const void *, Dl_info *); | ||
| 60 | #else | ||
| 61 | #define __DYLDDL_DRIVERKIT_UNAVAILABLE | ||
| 62 | #endif /* not POSIX */ | ||
| 63 | |||
| 64 | extern int dlclose(void * __handle) __DYLDDL_DRIVERKIT_UNAVAILABLE; | ||
| 65 | extern char * dlerror(void) __DYLDDL_DRIVERKIT_UNAVAILABLE; | ||
| 66 | extern void * dlopen(const char * __path, int __mode) __DYLDDL_DRIVERKIT_UNAVAILABLE; | ||
| 67 | extern void * dlsym(void * __handle, const char * __symbol) __DYLDDL_DRIVERKIT_UNAVAILABLE; | ||
| 68 | |||
| 69 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 70 | extern bool dlopen_preflight(const char* __path) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) __DYLDDL_DRIVERKIT_UNAVAILABLE; | ||
| 71 | #endif /* not POSIX */ | ||
| 72 | |||
| 73 | |||
| 74 | #define RTLD_LAZY	0x1 | ||
| 75 | #define RTLD_NOW	0x2 | ||
| 76 | #define RTLD_LOCAL	0x4 | ||
| 77 | #define RTLD_GLOBAL	0x8 | ||
| 78 | |||
| 79 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 80 | #define RTLD_NOLOAD	0x10 | ||
| 81 | #define RTLD_NODELETE	0x80 | ||
| 82 | #define RTLD_FIRST	0x100	/* Mac OS X 10.5 and later */ | ||
| 83 | |||
| 84 | /* | ||
| 85 | * Special handle arguments for dlsym(). | ||
| 86 | */ | ||
| 87 | #define	RTLD_NEXT	((void *) -1)	/* Search subsequent objects. */ | ||
| 88 | #define	RTLD_DEFAULT	((void *) -2)	/* Use default search algorithm. */ | ||
| 89 | #define	RTLD_SELF	((void *) -3)	/* Search this and subsequent objects (Mac OS X 10.5 and later) */ | ||
| 90 | #define	RTLD_MAIN_ONLY	((void *) -5)	/* Search main executable only (Mac OS X 10.5 and later) */ | ||
| 91 | #endif /* not POSIX */ | ||
| 92 | |||
| 93 | #ifdef __cplusplus | ||
| 94 | } | ||
| 95 | #endif | ||
| 96 | |||
| 97 | #endif /* _DLFCN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/fcntl.h created+23| ... | @@ -0,0 +1,23 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | #include <sys/fcntl.h> | ||
lib/libc/include/x86_64-macos-gnu/fmtmsg.h created+73| ... | @@ -0,0 +1,73 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer in the | ||
| 12 | * documentation and/or other materials provided with the distribution. | ||
| 13 | * | ||
| 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 24 | * SUCH DAMAGE. | ||
| 25 | * | ||
| 26 | * $FreeBSD: src/include/fmtmsg.h,v 1.2 2002/08/05 16:37:05 mike Exp $ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _FMTMSG_H_ | ||
| 30 | #define	_FMTMSG_H_ | ||
| 31 | |||
| 32 | /* Source of condition is... */ | ||
| 33 | #define	MM_HARD		0x0001	/* ...hardware. */ | ||
| 34 | #define	MM_SOFT		0x0002	/* ...software. */ | ||
| 35 | #define	MM_FIRM		0x0004	/* ...fireware. */ | ||
| 36 | |||
| 37 | /* Condition detected by... */ | ||
| 38 | #define	MM_APPL		0x0010	/* ...application. */ | ||
| 39 | #define	MM_UTIL		0x0020	/* ...utility. */ | ||
| 40 | #define	MM_OPSYS	0x0040	/* ...operating system. */ | ||
| 41 | |||
| 42 | /* Display on... */ | ||
| 43 | #define	MM_PRINT	0x0100	/* ...standard error. */ | ||
| 44 | #define	MM_CONSOLE	0x0200	/* ...system console. */ | ||
| 45 | |||
| 46 | #define	MM_RECOVER	0x1000	/* Recoverable error. */ | ||
| 47 | #define	MM_NRECOV	0x2000	/* Non-recoverable error. */ | ||
| 48 | |||
| 49 | /* Severity levels. */ | ||
| 50 | #define	MM_NOSEV	0	/* No severity level provided. */ | ||
| 51 | #define	MM_HALT		1	/* Error causing application to halt. */ | ||
| 52 | #define	MM_ERROR	2	/* Non-fault fault. */ | ||
| 53 | #define	MM_WARNING	3	/* Unusual non-error condition. */ | ||
| 54 | #define	MM_INFO		4	/* Informative message. */ | ||
| 55 | |||
| 56 | /* Null options. */ | ||
| 57 | #define	MM_NULLLBL	(char *)0 | ||
| 58 | #define	MM_NULLSEV	0 | ||
| 59 | #define	MM_NULLMC	0L | ||
| 60 | #define	MM_NULLTXT	(char *)0 | ||
| 61 | #define	MM_NULLACT	(char *)0 | ||
| 62 | #define	MM_NULLTAG	(char *)0 | ||
| 63 | |||
| 64 | /* Return values. */ | ||
| 65 | #define	MM_OK		0	/* Success. */ | ||
| 66 | #define	MM_NOMSG	1	/* Failed to output to stderr. */ | ||
| 67 | #define	MM_NOCON	2	/* Failed to output to console. */ | ||
| 68 | #define	MM_NOTOK	3	/* Failed to output anything. */ | ||
| 69 | |||
| 70 | int	fmtmsg(long, const char *, int, const char *, const char *, | ||
| 71 | 	 const char *); | ||
| 72 | |||
| 73 | #endif /* !_FMTMSG_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/fnmatch.h created+82| ... | @@ -0,0 +1,82 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*- | ||
| 24 | * Copyright (c) 1992, 1993 | ||
| 25 | *	The Regents of the University of California. All rights reserved. | ||
| 26 | * | ||
| 27 | * Redistribution and use in source and binary forms, with or without | ||
| 28 | * modification, are permitted provided that the following conditions | ||
| 29 | * are met: | ||
| 30 | * 1. Redistributions of source code must retain the above copyright | ||
| 31 | * notice, this list of conditions and the following disclaimer. | ||
| 32 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 33 | * notice, this list of conditions and the following disclaimer in the | ||
| 34 | * documentation and/or other materials provided with the distribution. | ||
| 35 | * 3. All advertising materials mentioning features or use of this software | ||
| 36 | * must display the following acknowledgement: | ||
| 37 | *	This product includes software developed by the University of | ||
| 38 | *	California, Berkeley and its contributors. | ||
| 39 | * 4. Neither the name of the University nor the names of its contributors | ||
| 40 | * may be used to endorse or promote products derived from this software | ||
| 41 | * without specific prior written permission. | ||
| 42 | * | ||
| 43 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 44 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 45 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 46 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 47 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 48 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 49 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 50 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 51 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 52 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 53 | * SUCH DAMAGE. | ||
| 54 | * | ||
| 55 | *	@(#)fnmatch.h	8.1 (Berkeley) 6/2/93 | ||
| 56 | */ | ||
| 57 | |||
| 58 | #ifndef	_FNMATCH_H_ | ||
| 59 | #define	_FNMATCH_H_ | ||
| 60 | |||
| 61 | #include <sys/cdefs.h> | ||
| 62 | |||
| 63 | #define	FNM_NOMATCH	1	/* Match failed. */ | ||
| 64 | |||
| 65 | #define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */ | ||
| 66 | #define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */ | ||
| 67 | #define	FNM_PERIOD	0x04	/* Period must be matched by period. */ | ||
| 68 | |||
| 69 | #define	FNM_NOSYS	(-1)	/* Reserved. */ | ||
| 70 | |||
| 71 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 72 | #define	FNM_LEADING_DIR	0x08	/* Ignore /<tail> after Imatch. */ | ||
| 73 | #define	FNM_CASEFOLD	0x10	/* Case insensitive search. */ | ||
| 74 | #define	FNM_IGNORECASE	FNM_CASEFOLD | ||
| 75 | #define	FNM_FILE_NAME	FNM_PATHNAME | ||
| 76 | #endif | ||
| 77 | |||
| 78 | __BEGIN_DECLS | ||
| 79 | int	 fnmatch(const char *, const char *, int) __DARWIN_ALIAS(fnmatch); | ||
| 80 | __END_DECLS | ||
| 81 | |||
| 82 | #endif /* !_FNMATCH_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/ftw.h created+60| ... | @@ -0,0 +1,60 @@ | ||
| 1 | /*	$OpenBSD: ftw.h,v 1.1 2003/07/21 21:13:18 millert Exp $	*/ | ||
| 2 | |||
| 3 | /* | ||
| 4 | * Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com> | ||
| 5 | * | ||
| 6 | * Permission to use, copy, modify, and distribute this software for any | ||
| 7 | * purpose with or without fee is hereby granted, provided that the above | ||
| 8 | * copyright notice and this permission notice appear in all copies. | ||
| 9 | * | ||
| 10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
| 11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
| 12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
| 13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
| 14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
| 15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
| 16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
| 17 | * | ||
| 18 | * Sponsored in part by the Defense Advanced Research Projects | ||
| 19 | * Agency (DARPA) and Air Force Research Laboratory, Air Force | ||
| 20 | * Materiel Command, USAF, under agreement number F39502-99-1-0512. | ||
| 21 | */ | ||
| 22 | |||
| 23 | #ifndef	_FTW_H | ||
| 24 | #define	_FTW_H | ||
| 25 | |||
| 26 | #include <sys/stat.h> | ||
| 27 | |||
| 28 | /* | ||
| 29 | * Valid flags for the 3rd argument to the function that is passed as the | ||
| 30 | * second argument to ftw(3) and nftw(3). Say it three times fast! | ||
| 31 | */ | ||
| 32 | #define	FTW_F		0	/* File. */ | ||
| 33 | #define	FTW_D		1	/* Directory. */ | ||
| 34 | #define	FTW_DNR		2	/* Directory without read permission. */ | ||
| 35 | #define	FTW_DP		3	/* Directory with subdirectories visited. */ | ||
| 36 | #define	FTW_NS		4	/* Unknown type; stat() failed. */ | ||
| 37 | #define	FTW_SL		5	/* Symbolic link. */ | ||
| 38 | #define	FTW_SLN		6	/* Sym link that names a nonexistent file. */ | ||
| 39 | |||
| 40 | /* | ||
| 41 | * Flags for use as the 4th argument to nftw(3). These may be ORed together. | ||
| 42 | */ | ||
| 43 | #define	FTW_PHYS	0x01	/* Physical walk, don't follow sym links. */ | ||
| 44 | #define	FTW_MOUNT	0x02	/* The walk does not cross a mount point. */ | ||
| 45 | #define	FTW_DEPTH	0x04	/* Subdirs visited before the dir itself. */ | ||
| 46 | #define	FTW_CHDIR	0x08	/* Change to a directory before reading it. */ | ||
| 47 | |||
| 48 | struct FTW { | ||
| 49 | 	int base; | ||
| 50 | 	int level; | ||
| 51 | }; | ||
| 52 | |||
| 53 | __BEGIN_DECLS | ||
| 54 | int	ftw(const char *, int (*)(const char *, const struct stat *, int), int) | ||
| 55 | 	__DARWIN_ALIAS_I(ftw); | ||
| 56 | int	nftw(const char *, int (*)(const char *, const struct stat *, int, | ||
| 57 | 	 struct FTW *), int, int) __DARWIN_ALIAS_I(nftw); | ||
| 58 | __END_DECLS | ||
| 59 | |||
| 60 | #endif	/* !_FTW_H */ | ||
lib/libc/include/x86_64-macos-gnu/gethostuuid.h created+42| ... | @@ -0,0 +1,42 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2013 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef __GETHOSTUUID_H | ||
| 30 | #define __GETHOSTUUID_H | ||
| 31 | |||
| 32 | #include <sys/_types/_timespec.h> | ||
| 33 | #include <sys/_types/_uuid_t.h> | ||
| 34 | #include <Availability.h> | ||
| 35 | |||
| 36 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0) | ||
| 37 | 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"); | ||
| 38 | #else | ||
| 39 | int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA); | ||
| 40 | #endif | ||
| 41 | |||
| 42 | #endif /* __GETHOSTUUID_H */ | ||
lib/libc/include/x86_64-macos-gnu/glob.h created+130| ... | @@ -0,0 +1,130 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 1989, 1993 | ||
| 3 | *	The Regents of the University of California. All rights reserved. | ||
| 4 | * | ||
| 5 | * This code is derived from software contributed to Berkeley by | ||
| 6 | * Guido van Rossum. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * 1. Redistributions of source code must retain the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer. | ||
| 13 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer in the | ||
| 15 | * documentation and/or other materials provided with the distribution. | ||
| 16 | * 3. Neither the name of the University nor the names of its contributors | ||
| 17 | * may be used to endorse or promote products derived from this software | ||
| 18 | * without specific prior written permission. | ||
| 19 | * | ||
| 20 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 21 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 22 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 23 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 24 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 25 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 26 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 27 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 28 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 29 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 30 | * SUCH DAMAGE. | ||
| 31 | * | ||
| 32 | *	@(#)glob.h	8.1 (Berkeley) 6/2/93 | ||
| 33 | * $FreeBSD: /repoman/r/ncvs/src/include/glob.h,v 1.7 2002/07/17 04:58:09 mikeh Exp $ | ||
| 34 | */ | ||
| 35 | |||
| 36 | #ifndef _GLOB_H_ | ||
| 37 | #define	_GLOB_H_ | ||
| 38 | |||
| 39 | #include <_types.h> | ||
| 40 | #include <sys/cdefs.h> | ||
| 41 | #include <Availability.h> | ||
| 42 | #include <sys/_types/_size_t.h> | ||
| 43 | |||
| 44 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 45 | struct dirent; | ||
| 46 | struct stat; | ||
| 47 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 48 | typedef struct { | ||
| 49 | 	size_t gl_pathc;	/* Count of total paths so far. */ | ||
| 50 | 	int gl_matchc;		/* Count of paths matching pattern. */ | ||
| 51 | 	size_t gl_offs;		/* Reserved at beginning of gl_pathv. */ | ||
| 52 | 	int gl_flags;		/* Copy of flags parameter to glob. */ | ||
| 53 | 	char **gl_pathv;	/* List of paths matching pattern. */ | ||
| 54 | 				/* Copy of errfunc parameter to glob. */ | ||
| 55 | #ifdef __BLOCKS__ | ||
| 56 | 	union { | ||
| 57 | #endif /* __BLOCKS__ */ | ||
| 58 | 		int (*gl_errfunc)(const char *, int); | ||
| 59 | #ifdef __BLOCKS__ | ||
| 60 | 		int (^gl_errblk)(const char *, int); | ||
| 61 | 	}; | ||
| 62 | #endif /* __BLOCKS__ */ | ||
| 63 | |||
| 64 | 	/* | ||
| 65 | 	 * Alternate filesystem access methods for glob; replacement | ||
| 66 | 	 * versions of closedir(3), readdir(3), opendir(3), stat(2) | ||
| 67 | 	 * and lstat(2). | ||
| 68 | 	 */ | ||
| 69 | 	void (*gl_closedir)(void *); | ||
| 70 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 71 | 	struct dirent *(*gl_readdir)(void *); | ||
| 72 | #else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 73 | 	void *(*gl_readdir)(void *); | ||
| 74 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 75 | 	void *(*gl_opendir)(const char *); | ||
| 76 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 77 | 	int (*gl_lstat)(const char *, struct stat *); | ||
| 78 | 	int (*gl_stat)(const char *, struct stat *); | ||
| 79 | #else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 80 | 	int (*gl_lstat)(const char *, void *); | ||
| 81 | 	int (*gl_stat)(const char *, void *); | ||
| 82 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 83 | } glob_t; | ||
| 84 | |||
| 85 | /* Believed to have been introduced in 1003.2-1992 */ | ||
| 86 | #define	GLOB_APPEND	0x0001	/* Append to output from previous call. */ | ||
| 87 | #define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */ | ||
| 88 | #define	GLOB_ERR	0x0004	/* Return on error. */ | ||
| 89 | #define	GLOB_MARK	0x0008	/* Append / to matching directories. */ | ||
| 90 | #define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */ | ||
| 91 | #define	GLOB_NOSORT	0x0020	/* Don't sort. */ | ||
| 92 | #define	GLOB_NOESCAPE	0x2000	/* Disable backslash escaping. */ | ||
| 93 | |||
| 94 | /* Error values returned by glob(3) */ | ||
| 95 | #define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */ | ||
| 96 | #define	GLOB_ABORTED	(-2)	/* Unignored error. */ | ||
| 97 | #define	GLOB_NOMATCH	(-3)	/* No match and GLOB_NOCHECK was not set. */ | ||
| 98 | #define	GLOB_NOSYS	(-4)	/* Obsolete: source comptability only. */ | ||
| 99 | |||
| 100 | #define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */ | ||
| 101 | #define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */ | ||
| 102 | #define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */ | ||
| 103 | #define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */ | ||
| 104 | #define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */ | ||
| 105 | #define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */ | ||
| 106 | #define	GLOB_LIMIT	0x1000	/* limit number of returned paths */ | ||
| 107 | #ifdef __BLOCKS__ | ||
| 108 | #define	_GLOB_ERR_BLOCK	0x80000000 /* (internal) error callback is a block */ | ||
| 109 | #endif /* __BLOCKS__ */ | ||
| 110 | |||
| 111 | /* source compatibility, these are the old names */ | ||
| 112 | #define GLOB_MAXPATH	GLOB_LIMIT | ||
| 113 | #define	GLOB_ABEND	GLOB_ABORTED | ||
| 114 | |||
| 115 | __BEGIN_DECLS | ||
| 116 | int	glob(const char * __restrict, int, int (*)(const char *, int), | ||
| 117 | 	 glob_t * __restrict) __DARWIN_INODE64(glob); | ||
| 118 | #ifdef __BLOCKS__ | ||
| 119 | #if __has_attribute(noescape) | ||
| 120 | #define __glob_noescape __attribute__((__noescape__)) | ||
| 121 | #else | ||
| 122 | #define __glob_noescape | ||
| 123 | #endif | ||
| 124 | int	glob_b(const char * __restrict, int, int (^)(const char *, int) __glob_noescape, | ||
| 125 | 	 glob_t * __restrict) __DARWIN_INODE64(glob_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); | ||
| 126 | #endif /* __BLOCKS__ */ | ||
| 127 | void	globfree(glob_t *); | ||
| 128 | __END_DECLS | ||
| 129 | |||
| 130 | #endif /* !_GLOB_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/grp.h created+93| ... | @@ -0,0 +1,93 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 1989, 1993 | ||
| 3 | *	The Regents of the University of California. All rights reserved. | ||
| 4 | * (c) UNIX System Laboratories, Inc. | ||
| 5 | * All or some portions of this file are derived from material licensed | ||
| 6 | * to the University of California by American Telephone and Telegraph | ||
| 7 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 8 | * the permission of UNIX System Laboratories, Inc. | ||
| 9 | * | ||
| 10 | * Redistribution and use in source and binary forms, with or without | ||
| 11 | * modification, are permitted provided that the following conditions | ||
| 12 | * are met: | ||
| 13 | * 1. Redistributions of source code must retain the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer. | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in the | ||
| 17 | * documentation and/or other materials provided with the distribution. | ||
| 18 | * 3. All advertising materials mentioning features or use of this software | ||
| 19 | * must display the following acknowledgement: | ||
| 20 | *	This product includes software developed by the University of | ||
| 21 | *	California, Berkeley and its contributors. | ||
| 22 | * 4. Neither the name of the University nor the names of its contributors | ||
| 23 | * may be used to endorse or promote products derived from this software | ||
| 24 | * without specific prior written permission. | ||
| 25 | * | ||
| 26 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 27 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 29 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 32 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 33 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 35 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 36 | * SUCH DAMAGE. | ||
| 37 | * | ||
| 38 | *	@(#)grp.h	8.2 (Berkeley) 1/21/94 | ||
| 39 | */ | ||
| 40 | /* Portions copyright (c) 2000-2018 Apple Inc. All rights reserved. */ | ||
| 41 | |||
| 42 | #ifndef _GRP_H_ | ||
| 43 | #define	_GRP_H_ | ||
| 44 | |||
| 45 | #include <_types.h> | ||
| 46 | #include <sys/_types/_gid_t.h>	/* [XBD] */ | ||
| 47 | #include <sys/_types/_size_t.h> /* SUSv4 */ | ||
| 48 | |||
| 49 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 50 | #define	_PATH_GROUP		"/etc/group" | ||
| 51 | #endif | ||
| 52 | |||
| 53 | struct group { | ||
| 54 | 	char	*gr_name;		/* [XBD] group name */ | ||
| 55 | 	char	*gr_passwd;		/* [???] group password */ | ||
| 56 | 	gid_t	gr_gid;			/* [XBD] group id */ | ||
| 57 | 	char	**gr_mem;		/* [XBD] group members */ | ||
| 58 | }; | ||
| 59 | |||
| 60 | #include <sys/cdefs.h> | ||
| 61 | |||
| 62 | __BEGIN_DECLS | ||
| 63 | /* [XBD] */ | ||
| 64 | struct group *getgrgid(gid_t); | ||
| 65 | struct group *getgrnam(const char *); | ||
| 66 | /* [TSF] */ | ||
| 67 | int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); | ||
| 68 | int getgrnam_r(const char *, struct group *, char *, size_t, struct group **); | ||
| 69 | /* [XSI] */ | ||
| 70 | struct group *getgrent(void); | ||
| 71 | void setgrent(void); | ||
| 72 | void endgrent(void); | ||
| 73 | __END_DECLS | ||
| 74 | |||
| 75 | #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) | ||
| 76 | #include <uuid/uuid.h> | ||
| 77 | __BEGIN_DECLS | ||
| 78 | char *group_from_gid(gid_t, int); | ||
| 79 | struct group *getgruuid(uuid_t); | ||
| 80 | int getgruuid_r(uuid_t, struct group *, char *, size_t, struct group **); | ||
| 81 | __END_DECLS | ||
| 82 | #endif | ||
| 83 | |||
| 84 | #if !defined(_XOPEN_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 85 | __BEGIN_DECLS | ||
| 86 | #if (!defined(LIBINFO_INSTALL_API) || !LIBINFO_INSTALL_API) | ||
| 87 | void setgrfile(const char *); | ||
| 88 | #endif | ||
| 89 | int setgroupent(int); | ||
| 90 | __END_DECLS | ||
| 91 | #endif | ||
| 92 | |||
| 93 | #endif /* !_GRP_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/i386/_param.h created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2008 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _I386__PARAM_H_ | ||
| 30 | #define _I386__PARAM_H_ | ||
| 31 | |||
| 32 | #include <i386/_types.h> | ||
| 33 | |||
| 34 | /* | ||
| 35 | * Round p (pointer or byte index) up to a correctly-aligned value for all | ||
| 36 | * data types (int, long, ...). The result is unsigned int and must be | ||
| 37 | * cast to any desired pointer type. | ||
| 38 | */ | ||
| 39 | #define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1) | ||
| 40 | #define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) | ||
| 41 | |||
| 42 | #define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1) | ||
| 43 | #define __DARWIN_ALIGN32(p) ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32) | ||
| 44 | |||
| 45 | |||
| 46 | #endif /* _I386__PARAM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/i386/eflags.h created+94| ... | @@ -0,0 +1,94 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef _I386_EFLAGS_H_ | ||
| 60 | #define _I386_EFLAGS_H_ | ||
| 61 | |||
| 62 | /* | ||
| 63 | *	i386 flags register | ||
| 64 | */ | ||
| 65 | |||
| 66 | #ifndef EFL_CF | ||
| 67 | #define EFL_CF 0x00000001 /* carry */ | ||
| 68 | #define EFL_PF 0x00000004 /* parity of low 8 bits */ | ||
| 69 | #define EFL_AF 0x00000010 /* carry out of bit 3 */ | ||
| 70 | #define EFL_ZF 0x00000040 /* zero */ | ||
| 71 | #define EFL_SF 0x00000080 /* sign */ | ||
| 72 | #define EFL_TF 0x00000100 /* trace trap */ | ||
| 73 | #define EFL_IF 0x00000200 /* interrupt enable */ | ||
| 74 | #define EFL_DF 0x00000400 /* direction */ | ||
| 75 | #define EFL_OF 0x00000800 /* overflow */ | ||
| 76 | #define EFL_IOPL 0x00003000 /* IO privilege level: */ | ||
| 77 | #define EFL_IOPL_KERNEL 0x00000000 /* kernel */ | ||
| 78 | #define EFL_IOPL_USER 0x00003000 /* user */ | ||
| 79 | #define EFL_NT 0x00004000 /* nested task */ | ||
| 80 | #define EFL_RF 0x00010000 /* resume without tracing */ | ||
| 81 | #define EFL_VM 0x00020000 /* virtual 8086 mode */ | ||
| 82 | #define EFL_AC 0x00040000 /* alignment check */ | ||
| 83 | #define EFL_VIF 0x00080000 /* virtual interrupt flag */ | ||
| 84 | #define EFL_VIP 0x00100000 /* virtual interrupt pending */ | ||
| 85 | #define EFL_ID 0x00200000 /* cpuID instruction */ | ||
| 86 | #endif | ||
| 87 | |||
| 88 | #define EFL_CLR 0xfff88028 | ||
| 89 | #define EFL_SET 0x00000002 | ||
| 90 | |||
| 91 | #define EFL_USER_SET (EFL_IF) | ||
| 92 | #define EFL_USER_CLEAR (EFL_IOPL|EFL_NT|EFL_RF) | ||
| 93 | |||
| 94 | #endif /* _I386_EFLAGS_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/iconv.h created+193| ... | @@ -0,0 +1,193 @@ | ||
| 1 | /* Copyright (C) 1999-2003, 2005-2006 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU LIBICONV Library. | ||
| 3 | |||
| 4 | The GNU LIBICONV Library is free software; you can redistribute it | ||
| 5 | and/or modify it under the terms of the GNU Library General Public | ||
| 6 | License as published by the Free Software Foundation; either version 2 | ||
| 7 | of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU LIBICONV Library is distributed in the hope that it will be | ||
| 10 | useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Library General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Library General Public | ||
| 15 | License along with the GNU LIBICONV Library; see the file COPYING.LIB. | ||
| 16 | If not, write to the Free Software Foundation, Inc., 51 Franklin Street, | ||
| 17 | Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
| 18 | |||
| 19 | /* When installed, this file is called "iconv.h". */ | ||
| 20 | |||
| 21 | #ifndef _LIBICONV_H | ||
| 22 | #define _LIBICONV_H | ||
| 23 | |||
| 24 | #include <sys/cdefs.h> | ||
| 25 | #include <_types.h> | ||
| 26 | #include <sys/_types/_size_t.h> | ||
| 27 | |||
| 28 | #define _LIBICONV_VERSION 0x010B /* version number: (major<<8) + minor */ | ||
| 29 | |||
| 30 | #if BUILDING_LIBICONV | ||
| 31 | #define __LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default"))) | ||
| 32 | #else | ||
| 33 | #define __LIBICONV_DLL_EXPORTED | ||
| 34 | #endif | ||
| 35 | extern __LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */ | ||
| 36 | |||
| 37 | /* We would like to #include any system header file which could define | ||
| 38 | iconv_t, 1. in order to eliminate the risk that the user gets compilation | ||
| 39 | errors because some other system header file includes /usr/include/iconv.h | ||
| 40 | which defines iconv_t or declares iconv after this file, 2. when compiling | ||
| 41 | for LIBICONV_PLUG, we need the proper iconv_t type in order to produce | ||
| 42 | binary compatible code. | ||
| 43 | But gcc's #include_next is not portable. Thus, once libiconv's iconv.h | ||
| 44 | has been installed in /usr/local/include, there is no way any more to | ||
| 45 | include the original /usr/include/iconv.h. We simply have to get away | ||
| 46 | without it. | ||
| 47 | Ad 1. The risk that a system header file does | ||
| 48 | #include "iconv.h" or #include_next "iconv.h" | ||
| 49 | is small. They all do #include <iconv.h>. | ||
| 50 | Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It | ||
| 51 | has to be a scalar type because (iconv_t)(-1) is a possible return value | ||
| 52 | from iconv_open().) */ | ||
| 53 | |||
| 54 | /* Define iconv_t ourselves. */ | ||
| 55 | #ifndef _ICONV_T | ||
| 56 | #define _ICONV_T | ||
| 57 | typedef void* iconv_t; | ||
| 58 | #endif | ||
| 59 | |||
| 60 | |||
| 61 | #ifdef __cplusplus | ||
| 62 | extern "C" { | ||
| 63 | #endif | ||
| 64 | |||
| 65 | |||
| 66 | /* Allocates descriptor for code conversion from encoding `fromcode' to | ||
| 67 | encoding `tocode'. */ | ||
| 68 | extern __LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* __tocode, const char* __fromcode); | ||
| 69 | |||
| 70 | /* Converts, using conversion descriptor `cd', at most `*inbytesleft' bytes | ||
| 71 | starting at `*inbuf', writing at most `*outbytesleft' bytes starting at | ||
| 72 | `*outbuf'. | ||
| 73 | Decrements `*inbytesleft' and increments `*inbuf' by the same amount. | ||
| 74 | Decrements `*outbytesleft' and increments `*outbuf' by the same amount. */ | ||
| 75 | extern __LIBICONV_DLL_EXPORTED size_t iconv (iconv_t __cd, char* * __restrict __inbuf, size_t * __restrict __inbytesleft, char* * __restrict __outbuf, size_t * __restrict __outbytesleft); | ||
| 76 | |||
| 77 | /* Frees resources allocated for conversion descriptor `cd'. */ | ||
| 78 | extern __LIBICONV_DLL_EXPORTED int iconv_close (iconv_t _cd); | ||
| 79 | |||
| 80 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 81 | |||
| 82 | /* Nonstandard extensions. */ | ||
| 83 | |||
| 84 | #include <sys/_types/_wchar_t.h> | ||
| 85 | |||
| 86 | /* Control of attributes. */ | ||
| 87 | extern __LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument); | ||
| 88 | |||
| 89 | /* Hook performed after every successful conversion of a Unicode character. */ | ||
| 90 | typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data); | ||
| 91 | /* Hook performed after every successful conversion of a wide character. */ | ||
| 92 | typedef void (*iconv_wide_char_hook) (wchar_t wc, void* data); | ||
| 93 | /* Set of hooks. */ | ||
| 94 | struct iconv_hooks { | ||
| 95 | iconv_unicode_char_hook uc_hook; | ||
| 96 | iconv_wide_char_hook wc_hook; | ||
| 97 | void* data; | ||
| 98 | }; | ||
| 99 | |||
| 100 | /* Fallback function. Invoked when a small number of bytes could not be | ||
| 101 | converted to a Unicode character. This function should process all | ||
| 102 | bytes from inbuf and may produce replacement Unicode characters by calling | ||
| 103 | the write_replacement callback repeatedly. */ | ||
| 104 | typedef void (*iconv_unicode_mb_to_uc_fallback) | ||
| 105 | (const char* inbuf, size_t inbufsize, | ||
| 106 | void (*write_replacement) (const unsigned int *buf, size_t buflen, | ||
| 107 | void* callback_arg), | ||
| 108 | void* callback_arg, | ||
| 109 | void* data); | ||
| 110 | /* Fallback function. Invoked when a Unicode character could not be converted | ||
| 111 | to the target encoding. This function should process the character and | ||
| 112 | may produce replacement bytes (in the target encoding) by calling the | ||
| 113 | write_replacement callback repeatedly. */ | ||
| 114 | typedef void (*iconv_unicode_uc_to_mb_fallback) | ||
| 115 | (unsigned int code, | ||
| 116 | void (*write_replacement) (const char *buf, size_t buflen, | ||
| 117 | void* callback_arg), | ||
| 118 | void* callback_arg, | ||
| 119 | void* data); | ||
| 120 | #if 1 | ||
| 121 | /* Fallback function. Invoked when a number of bytes could not be converted to | ||
| 122 | a wide character. This function should process all bytes from inbuf and may | ||
| 123 | produce replacement wide characters by calling the write_replacement | ||
| 124 | callback repeatedly. */ | ||
| 125 | typedef void (*iconv_wchar_mb_to_wc_fallback) | ||
| 126 | (const char* inbuf, size_t inbufsize, | ||
| 127 | void (*write_replacement) (const wchar_t *buf, size_t buflen, | ||
| 128 | void* callback_arg), | ||
| 129 | void* callback_arg, | ||
| 130 | void* data); | ||
| 131 | /* Fallback function. Invoked when a wide character could not be converted to | ||
| 132 | the target encoding. This function should process the character and may | ||
| 133 | produce replacement bytes (in the target encoding) by calling the | ||
| 134 | write_replacement callback repeatedly. */ | ||
| 135 | typedef void (*iconv_wchar_wc_to_mb_fallback) | ||
| 136 | (wchar_t code, | ||
| 137 | void (*write_replacement) (const char *buf, size_t buflen, | ||
| 138 | void* callback_arg), | ||
| 139 | void* callback_arg, | ||
| 140 | void* data); | ||
| 141 | #else | ||
| 142 | /* If the wchar_t type does not exist, these two fallback functions are never | ||
| 143 | invoked. Their argument list therefore does not matter. */ | ||
| 144 | typedef void (*iconv_wchar_mb_to_wc_fallback) (); | ||
| 145 | typedef void (*iconv_wchar_wc_to_mb_fallback) (); | ||
| 146 | #endif | ||
| 147 | /* Set of fallbacks. */ | ||
| 148 | struct iconv_fallbacks { | ||
| 149 | iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback; | ||
| 150 | iconv_unicode_uc_to_mb_fallback uc_to_mb_fallback; | ||
| 151 | iconv_wchar_mb_to_wc_fallback mb_to_wc_fallback; | ||
| 152 | iconv_wchar_wc_to_mb_fallback wc_to_mb_fallback; | ||
| 153 | void* data; | ||
| 154 | }; | ||
| 155 | |||
| 156 | /* Requests for iconvctl. */ | ||
| 157 | #define ICONV_TRIVIALP 0 /* int *argument */ | ||
| 158 | #define ICONV_GET_TRANSLITERATE 1 /* int *argument */ | ||
| 159 | #define ICONV_SET_TRANSLITERATE 2 /* const int *argument */ | ||
| 160 | #define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */ | ||
| 161 | #define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */ | ||
| 162 | #define ICONV_SET_HOOKS 5 /* const struct iconv_hooks *argument */ | ||
| 163 | #define ICONV_SET_FALLBACKS 6 /* const struct iconv_fallbacks *argument */ | ||
| 164 | |||
| 165 | /* Listing of locale independent encodings. */ | ||
| 166 | extern __LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount, | ||
| 167 | const char * const * names, | ||
| 168 | void* data), | ||
| 169 | void* data); | ||
| 170 | |||
| 171 | /* Canonicalize an encoding name. | ||
| 172 | The result is either a canonical encoding name, or name itself. */ | ||
| 173 | extern __LIBICONV_DLL_EXPORTED const char * iconv_canonicalize (const char * name); | ||
| 174 | |||
| 175 | /* Support for relocatable packages. */ | ||
| 176 | |||
| 177 | /* Sets the original and the current installation prefix of the package. | ||
| 178 | Relocation simply replaces a pathname starting with the original prefix | ||
| 179 | by the corresponding pathname with the current prefix instead. Both | ||
| 180 | prefixes should be directory names without trailing slash (i.e. use "" | ||
| 181 | instead of "/"). */ | ||
| 182 | extern __LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix, | ||
| 183 | 					 const char *curr_prefix); | ||
| 184 | |||
| 185 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 186 | |||
| 187 | |||
| 188 | #ifdef __cplusplus | ||
| 189 | } | ||
| 190 | #endif | ||
| 191 | |||
| 192 | |||
| 193 | #endif /* _LIBICONV_H */ | ||
lib/libc/include/x86_64-macos-gnu/langinfo.h created+120| ... | @@ -0,0 +1,120 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer in the | ||
| 12 | * documentation and/or other materials provided with the distribution. | ||
| 13 | * | ||
| 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 24 | * SUCH DAMAGE. | ||
| 25 | * | ||
| 26 | * $FreeBSD: /repoman/r/ncvs/src/include/langinfo.h,v 1.6 2002/09/18 05:54:25 mike Exp $ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _LANGINFO_H_ | ||
| 30 | #define	_LANGINFO_H_ | ||
| 31 | |||
| 32 | #include <_types.h> | ||
| 33 | #include <_types/_nl_item.h> | ||
| 34 | |||
| 35 | #define	CODESET		0	/* codeset name */ | ||
| 36 | #define	D_T_FMT		1	/* string for formatting date and time */ | ||
| 37 | #define	D_FMT		2	/* date format string */ | ||
| 38 | #define	T_FMT		3	/* time format string */ | ||
| 39 | #define	T_FMT_AMPM	4	/* a.m. or p.m. time formatting string */ | ||
| 40 | #define	AM_STR		5	/* Ante Meridian affix */ | ||
| 41 | #define	PM_STR		6	/* Post Meridian affix */ | ||
| 42 | |||
| 43 | /* week day names */ | ||
| 44 | #define	DAY_1		7 | ||
| 45 | #define	DAY_2		8 | ||
| 46 | #define	DAY_3		9 | ||
| 47 | #define	DAY_4		10 | ||
| 48 | #define	DAY_5		11 | ||
| 49 | #define	DAY_6		12 | ||
| 50 | #define	DAY_7		13 | ||
| 51 | |||
| 52 | /* abbreviated week day names */ | ||
| 53 | #define	ABDAY_1		14 | ||
| 54 | #define	ABDAY_2		15 | ||
| 55 | #define	ABDAY_3		16 | ||
| 56 | #define	ABDAY_4		17 | ||
| 57 | #define	ABDAY_5		18 | ||
| 58 | #define	ABDAY_6		19 | ||
| 59 | #define	ABDAY_7		20 | ||
| 60 | |||
| 61 | /* month names */ | ||
| 62 | #define	MON_1		21 | ||
| 63 | #define	MON_2		22 | ||
| 64 | #define	MON_3		23 | ||
| 65 | #define	MON_4		24 | ||
| 66 | #define	MON_5		25 | ||
| 67 | #define	MON_6		26 | ||
| 68 | #define	MON_7		27 | ||
| 69 | #define	MON_8		28 | ||
| 70 | #define	MON_9		29 | ||
| 71 | #define	MON_10		30 | ||
| 72 | #define	MON_11		31 | ||
| 73 | #define	MON_12		32 | ||
| 74 | |||
| 75 | /* abbreviated month names */ | ||
| 76 | #define	ABMON_1		33 | ||
| 77 | #define	ABMON_2		34 | ||
| 78 | #define	ABMON_3		35 | ||
| 79 | #define	ABMON_4		36 | ||
| 80 | #define	ABMON_5		37 | ||
| 81 | #define	ABMON_6		38 | ||
| 82 | #define	ABMON_7		39 | ||
| 83 | #define	ABMON_8		40 | ||
| 84 | #define	ABMON_9		41 | ||
| 85 | #define	ABMON_10	42 | ||
| 86 | #define	ABMON_11	43 | ||
| 87 | #define	ABMON_12	44 | ||
| 88 | |||
| 89 | #define	ERA		45	/* era description segments */ | ||
| 90 | #define	ERA_D_FMT	46	/* era date format string */ | ||
| 91 | #define	ERA_D_T_FMT	47	/* era date and time format string */ | ||
| 92 | #define	ERA_T_FMT	48	/* era time format string */ | ||
| 93 | #define	ALT_DIGITS	49	/* alternative symbols for digits */ | ||
| 94 | |||
| 95 | #define	RADIXCHAR	50	/* radix char */ | ||
| 96 | #define	THOUSEP		51	/* separator for thousands */ | ||
| 97 | |||
| 98 | #define	YESEXPR		52	/* affirmative response expression */ | ||
| 99 | #define	NOEXPR		53	/* negative response expression */ | ||
| 100 | |||
| 101 | #if (__DARWIN_C_LEVEL > __DARWIN_C_ANSI && __DARWIN_C_LEVEL < 200112L) || __DARWIN_C_LEVEL == __DARWIN_C_FULL | ||
| 102 | #define	YESSTR		54	/* affirmative response for yes/no queries */ | ||
| 103 | #define	NOSTR		55	/* negative response for yes/no queries */ | ||
| 104 | #endif | ||
| 105 | |||
| 106 | #define	CRNCYSTR	56	/* currency symbol */ | ||
| 107 | |||
| 108 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 109 | #define	D_MD_ORDER	57	/* month/day order (local extension) */ | ||
| 110 | #endif | ||
| 111 | |||
| 112 | __BEGIN_DECLS | ||
| 113 | char	*nl_langinfo(nl_item); | ||
| 114 | __END_DECLS | ||
| 115 | |||
| 116 | #ifdef _USE_EXTENDED_LOCALES_ | ||
| 117 | #include <xlocale/_langinfo.h> | ||
| 118 | #endif /* _USE_EXTENDED_LOCALES_ */ | ||
| 119 | |||
| 120 | #endif /* !_LANGINFO_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/libgen.h created+63| ... | @@ -0,0 +1,63 @@ | ||
| 1 | /*	$OpenBSD: libgen.h,v 1.4 1999/05/28 22:00:22 espie Exp $	*/ | ||
| 2 | /*	$FreeBSD: src/include/libgen.h,v 1.1.2.1 2000/11/12 18:01:51 adrian Exp $	*/ | ||
| 3 | |||
| 4 | /* | ||
| 5 | * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com> | ||
| 6 | * All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * 1. Redistributions of source code must retain the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer. | ||
| 13 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer in the | ||
| 15 | * documentation and/or other materials provided with the distribution. | ||
| 16 | * 3. The name of the author may not be used to endorse or promote products | ||
| 17 | * derived from this software without specific prior written permission. | ||
| 18 | * | ||
| 19 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
| 20 | * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| 21 | * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | ||
| 22 | * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
| 23 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||
| 24 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | ||
| 25 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | ||
| 26 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | ||
| 27 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | ||
| 28 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 29 | */ | ||
| 30 | |||
| 31 | #ifndef _LIBGEN_H_ | ||
| 32 | #define _LIBGEN_H_ | ||
| 33 | |||
| 34 | #include <sys/cdefs.h> | ||
| 35 | |||
| 36 | __BEGIN_DECLS | ||
| 37 | |||
| 38 | #if __DARWIN_UNIX03 | ||
| 39 | |||
| 40 | char	*basename(char *); | ||
| 41 | char	*dirname(char *); | ||
| 42 | |||
| 43 | #else /* !__DARWIN_UNIX03 */ | ||
| 44 | |||
| 45 | char	*basename(const char *); | ||
| 46 | char	*dirname(const char *); | ||
| 47 | |||
| 48 | #endif /* __DARWIN_UNIX_03 */ | ||
| 49 | |||
| 50 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 51 | #include <Availability.h> | ||
| 52 | char	*basename_r(const char *, char *) | ||
| 53 | 		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) | ||
| 54 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 55 | |||
| 56 | char	*dirname_r(const char *, char *) | ||
| 57 | 		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) | ||
| 58 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 59 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 60 | |||
| 61 | __END_DECLS | ||
| 62 | |||
| 63 | #endif /* _LIBGEN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/boolean.h created+88| ... | @@ -0,0 +1,88 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | /* | ||
| 59 | *	File:	mach/boolean.h | ||
| 60 | * | ||
| 61 | *	Boolean data type. | ||
| 62 | * | ||
| 63 | */ | ||
| 64 | |||
| 65 | #ifndef _MACH_BOOLEAN_H_ | ||
| 66 | #define _MACH_BOOLEAN_H_ | ||
| 67 | |||
| 68 | /* | ||
| 69 | *	Pick up "boolean_t" type definition | ||
| 70 | */ | ||
| 71 | |||
| 72 | #ifndef ASSEMBLER | ||
| 73 | #include <mach/machine/boolean.h> | ||
| 74 | #endif /* ASSEMBLER */ | ||
| 75 | |||
| 76 | /* | ||
| 77 | *	Define TRUE and FALSE if not defined. | ||
| 78 | */ | ||
| 79 | |||
| 80 | #ifndef TRUE | ||
| 81 | #define TRUE 1 | ||
| 82 | #endif /* TRUE */ | ||
| 83 | |||
| 84 | #ifndef FALSE | ||
| 85 | #define FALSE 0 | ||
| 86 | #endif /* FALSE */ | ||
| 87 | |||
| 88 | #endif /* _MACH_BOOLEAN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/exception_types.h created+204| ... | @@ -0,0 +1,204 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef _MACH_EXCEPTION_TYPES_H_ | ||
| 60 | #define _MACH_EXCEPTION_TYPES_H_ | ||
| 61 | |||
| 62 | #include <mach/machine/exception.h> | ||
| 63 | |||
| 64 | /* | ||
| 65 | *	Machine-independent exception definitions. | ||
| 66 | */ | ||
| 67 | |||
| 68 | #define EXC_BAD_ACCESS 1 /* Could not access memory */ | ||
| 69 | /* Code contains kern_return_t describing error. */ | ||
| 70 | /* Subcode contains bad memory address. */ | ||
| 71 | |||
| 72 | #define EXC_BAD_INSTRUCTION 2 /* Instruction failed */ | ||
| 73 | /* Illegal or undefined instruction or operand */ | ||
| 74 | |||
| 75 | #define EXC_ARITHMETIC 3 /* Arithmetic exception */ | ||
| 76 | /* Exact nature of exception is in code field */ | ||
| 77 | |||
| 78 | #define EXC_EMULATION 4 /* Emulation instruction */ | ||
| 79 | /* Emulation support instruction encountered */ | ||
| 80 | /* Details in code and subcode fields	*/ | ||
| 81 | |||
| 82 | #define EXC_SOFTWARE 5 /* Software generated exception */ | ||
| 83 | /* Exact exception is in code field. */ | ||
| 84 | /* Codes 0 - 0xFFFF reserved to hardware */ | ||
| 85 | /* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */ | ||
| 86 | |||
| 87 | #define EXC_BREAKPOINT 6 /* Trace, breakpoint, etc. */ | ||
| 88 | /* Details in code field. */ | ||
| 89 | |||
| 90 | #define EXC_SYSCALL 7 /* System calls. */ | ||
| 91 | |||
| 92 | #define EXC_MACH_SYSCALL 8 /* Mach system calls. */ | ||
| 93 | |||
| 94 | #define EXC_RPC_ALERT 9 /* RPC alert */ | ||
| 95 | |||
| 96 | #define EXC_CRASH 10 /* Abnormal process exit */ | ||
| 97 | |||
| 98 | #define EXC_RESOURCE 11 /* Hit resource consumption limit */ | ||
| 99 | /* Exact resource is in code field. */ | ||
| 100 | |||
| 101 | #define EXC_GUARD 12 /* Violated guarded resource protections */ | ||
| 102 | |||
| 103 | #define EXC_CORPSE_NOTIFY 13 /* Abnormal process exited to corpse state */ | ||
| 104 | |||
| 105 | #define EXC_CORPSE_VARIANT_BIT 0x100 /* bit set for EXC_*_CORPSE variants of EXC_* */ | ||
| 106 | |||
| 107 | |||
| 108 | /* | ||
| 109 | *	Machine-independent exception behaviors | ||
| 110 | */ | ||
| 111 | |||
| 112 | # define EXCEPTION_DEFAULT 1 | ||
| 113 | /*	Send a catch_exception_raise message including the identity. | ||
| 114 | */ | ||
| 115 | |||
| 116 | # define EXCEPTION_STATE 2 | ||
| 117 | /*	Send a catch_exception_raise_state message including the | ||
| 118 | *	thread state. | ||
| 119 | */ | ||
| 120 | |||
| 121 | # define EXCEPTION_STATE_IDENTITY 3 | ||
| 122 | /*	Send a catch_exception_raise_state_identity message including | ||
| 123 | *	the thread identity and state. | ||
| 124 | */ | ||
| 125 | |||
| 126 | #define MACH_EXCEPTION_ERRORS 0x40000000 | ||
| 127 | /*	include additional exception specific errors, not used yet. */ | ||
| 128 | |||
| 129 | #define MACH_EXCEPTION_CODES 0x80000000 | ||
| 130 | /*	Send 64-bit code and subcode in the exception header */ | ||
| 131 | |||
| 132 | #define MACH_EXCEPTION_MASK (MACH_EXCEPTION_CODES | MACH_EXCEPTION_ERRORS) | ||
| 133 | /* | ||
| 134 | * Masks for exception definitions, above | ||
| 135 | * bit zero is unused, therefore 1 word = 31 exception types | ||
| 136 | */ | ||
| 137 | |||
| 138 | #define EXC_MASK_BAD_ACCESS (1 << EXC_BAD_ACCESS) | ||
| 139 | #define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION) | ||
| 140 | #define EXC_MASK_ARITHMETIC (1 << EXC_ARITHMETIC) | ||
| 141 | #define EXC_MASK_EMULATION (1 << EXC_EMULATION) | ||
| 142 | #define EXC_MASK_SOFTWARE (1 << EXC_SOFTWARE) | ||
| 143 | #define EXC_MASK_BREAKPOINT (1 << EXC_BREAKPOINT) | ||
| 144 | #define EXC_MASK_SYSCALL (1 << EXC_SYSCALL) | ||
| 145 | #define EXC_MASK_MACH_SYSCALL (1 << EXC_MACH_SYSCALL) | ||
| 146 | #define EXC_MASK_RPC_ALERT (1 << EXC_RPC_ALERT) | ||
| 147 | #define EXC_MASK_CRASH (1 << EXC_CRASH) | ||
| 148 | #define EXC_MASK_RESOURCE (1 << EXC_RESOURCE) | ||
| 149 | #define EXC_MASK_GUARD (1 << EXC_GUARD) | ||
| 150 | #define EXC_MASK_CORPSE_NOTIFY (1 << EXC_CORPSE_NOTIFY) | ||
| 151 | |||
| 152 | #define EXC_MASK_ALL (EXC_MASK_BAD_ACCESS | \ | ||
| 153 | 	 EXC_MASK_BAD_INSTRUCTION | \ | ||
| 154 | 	 EXC_MASK_ARITHMETIC | \ | ||
| 155 | 	 EXC_MASK_EMULATION | \ | ||
| 156 | 	 EXC_MASK_SOFTWARE | \ | ||
| 157 | 	 EXC_MASK_BREAKPOINT | \ | ||
| 158 | 	 EXC_MASK_SYSCALL | \ | ||
| 159 | 	 EXC_MASK_MACH_SYSCALL | \ | ||
| 160 | 	 EXC_MASK_RPC_ALERT | \ | ||
| 161 | 	 EXC_MASK_RESOURCE | \ | ||
| 162 | 	 EXC_MASK_GUARD | \ | ||
| 163 | 	 EXC_MASK_MACHINE) | ||
| 164 | |||
| 165 | |||
| 166 | #define FIRST_EXCEPTION 1 /* ZERO is illegal */ | ||
| 167 | |||
| 168 | /* | ||
| 169 | * Machine independent codes for EXC_SOFTWARE | ||
| 170 | * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) | ||
| 171 | * 0x10000 - 0x10002 in use for unix signals | ||
| 172 | * 0x20000 - 0x2FFFF reserved for MACF | ||
| 173 | */ | ||
| 174 | #define EXC_SOFT_SIGNAL 0x10003 /* Unix signal exceptions */ | ||
| 175 | |||
| 176 | #define EXC_MACF_MIN 0x20000 /* MACF exceptions */ | ||
| 177 | #define EXC_MACF_MAX 0x2FFFF | ||
| 178 | |||
| 179 | #ifndef ASSEMBLER | ||
| 180 | |||
| 181 | #include <mach/port.h> | ||
| 182 | #include <mach/thread_status.h> | ||
| 183 | #include <mach/machine/vm_types.h> | ||
| 184 | /* | ||
| 185 | * Exported types | ||
| 186 | */ | ||
| 187 | |||
| 188 | typedef int exception_type_t; | ||
| 189 | typedef integer_t exception_data_type_t; | ||
| 190 | typedef int64_t mach_exception_data_type_t; | ||
| 191 | typedef int exception_behavior_t; | ||
| 192 | typedef exception_data_type_t *exception_data_t; | ||
| 193 | typedef mach_exception_data_type_t *mach_exception_data_t; | ||
| 194 | typedef unsigned int exception_mask_t; | ||
| 195 | typedef exception_mask_t *exception_mask_array_t; | ||
| 196 | typedef exception_behavior_t *exception_behavior_array_t; | ||
| 197 | typedef thread_state_flavor_t *exception_flavor_array_t; | ||
| 198 | typedef mach_port_t *exception_port_array_t; | ||
| 199 | typedef mach_exception_data_type_t mach_exception_code_t; | ||
| 200 | typedef mach_exception_data_type_t mach_exception_subcode_t; | ||
| 201 | |||
| 202 | #endif /* ASSEMBLER */ | ||
| 203 | |||
| 204 | #endif /* _MACH_EXCEPTION_TYPES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/boolean.h created+74| ... | @@ -0,0 +1,74 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | /* | ||
| 60 | *	File:	boolean.h | ||
| 61 | * | ||
| 62 | *	Boolean type, for I386. | ||
| 63 | */ | ||
| 64 | |||
| 65 | #ifndef _MACH_I386_BOOLEAN_H_ | ||
| 66 | #define _MACH_I386_BOOLEAN_H_ | ||
| 67 | |||
| 68 | #if defined(__x86_64__) && !defined(KERNEL) | ||
| 69 | typedef unsigned int boolean_t; | ||
| 70 | #else | ||
| 71 | typedef int boolean_t; | ||
| 72 | #endif | ||
| 73 | |||
| 74 | #endif /* _MACH_I386_BOOLEAN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/exception.h created+135| ... | @@ -0,0 +1,135 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef _MACH_I386_EXCEPTION_H_ | ||
| 60 | #define _MACH_I386_EXCEPTION_H_ | ||
| 61 | |||
| 62 | /* | ||
| 63 | * No machine dependent types for the 80386 | ||
| 64 | */ | ||
| 65 | |||
| 66 | #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ | ||
| 67 | |||
| 68 | /* | ||
| 69 | *	Codes and subcodes for 80386 exceptions. | ||
| 70 | */ | ||
| 71 | |||
| 72 | #define EXCEPTION_CODE_MAX 2 /* currently code and subcode */ | ||
| 73 | |||
| 74 | /* | ||
| 75 | *	EXC_BAD_INSTRUCTION | ||
| 76 | */ | ||
| 77 | |||
| 78 | #define EXC_I386_INVOP 1 | ||
| 79 | |||
| 80 | /* | ||
| 81 | *	EXC_ARITHMETIC | ||
| 82 | */ | ||
| 83 | |||
| 84 | #define EXC_I386_DIV 1 | ||
| 85 | #define EXC_I386_INTO 2 | ||
| 86 | #define EXC_I386_NOEXT 3 | ||
| 87 | #define EXC_I386_EXTOVR 4 | ||
| 88 | #define EXC_I386_EXTERR 5 | ||
| 89 | #define EXC_I386_EMERR 6 | ||
| 90 | #define EXC_I386_BOUND 7 | ||
| 91 | #define EXC_I386_SSEEXTERR 8 | ||
| 92 | |||
| 93 | /* | ||
| 94 | *	EXC_SOFTWARE | ||
| 95 | *	Note: 0x10000-0x10003 in use for unix signal | ||
| 96 | */ | ||
| 97 | |||
| 98 | /* | ||
| 99 | *	EXC_BAD_ACCESS | ||
| 100 | */ | ||
| 101 | |||
| 102 | /* | ||
| 103 | *	EXC_BREAKPOINT | ||
| 104 | */ | ||
| 105 | |||
| 106 | #define EXC_I386_SGL 1 | ||
| 107 | #define EXC_I386_BPT 2 | ||
| 108 | |||
| 109 | #define EXC_I386_DIVERR 0 /* divide by 0 eprror		*/ | ||
| 110 | #define EXC_I386_SGLSTP 1 /* single step			*/ | ||
| 111 | #define EXC_I386_NMIFLT 2 /* NMI				*/ | ||
| 112 | #define EXC_I386_BPTFLT 3 /* breakpoint fault		*/ | ||
| 113 | #define EXC_I386_INTOFLT 4 /* INTO overflow fault		*/ | ||
| 114 | #define EXC_I386_BOUNDFLT 5 /* BOUND instruction fault	*/ | ||
| 115 | #define EXC_I386_INVOPFLT 6 /* invalid opcode fault		*/ | ||
| 116 | #define EXC_I386_NOEXTFLT 7 /* extension not available fault*/ | ||
| 117 | #define EXC_I386_DBLFLT 8 /* double fault			*/ | ||
| 118 | #define EXC_I386_EXTOVRFLT 9 /* extension overrun fault	*/ | ||
| 119 | #define EXC_I386_INVTSSFLT 10 /* invalid TSS fault		*/ | ||
| 120 | #define EXC_I386_SEGNPFLT 11 /* segment not present fault	*/ | ||
| 121 | #define EXC_I386_STKFLT 12 /* stack fault			*/ | ||
| 122 | #define EXC_I386_GPFLT 13 /* general protection fault	*/ | ||
| 123 | #define EXC_I386_PGFLT 14 /* page fault			*/ | ||
| 124 | #define EXC_I386_EXTERRFLT 16 /* extension error fault	*/ | ||
| 125 | #define EXC_I386_ALIGNFLT 17 /* Alignment fault */ | ||
| 126 | #define EXC_I386_ENDPERR 33 /* emulated extension error flt	*/ | ||
| 127 | #define EXC_I386_ENOEXTFLT 32 /* emulated ext not present	*/ | ||
| 128 | |||
| 129 | |||
| 130 | /* | ||
| 131 | *	machine dependent exception masks | ||
| 132 | */ | ||
| 133 | #define EXC_MASK_MACHINE 0 | ||
| 134 | |||
| 135 | #endif /* _MACH_I386_EXCEPTION_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/fp_reg.h created+118| ... | @@ -0,0 +1,118 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1992-1989 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef _I386_FP_SAVE_H_ | ||
| 60 | #define _I386_FP_SAVE_H_ | ||
| 61 | |||
| 62 | /* | ||
| 63 | * Control register | ||
| 64 | */ | ||
| 65 | #define FPC_IE 0x0001 /* enable invalid operation | ||
| 66 | 	 * exception */ | ||
| 67 | #define FPC_IM FPC_IE | ||
| 68 | #define FPC_DE 0x0002 /* enable denormalized operation | ||
| 69 | 	 * exception */ | ||
| 70 | #define FPC_DM FPC_DE | ||
| 71 | #define FPC_ZE 0x0004 /* enable zero-divide exception */ | ||
| 72 | #define FPC_ZM FPC_ZE | ||
| 73 | #define FPC_OE 0x0008 /* enable overflow exception */ | ||
| 74 | #define FPC_OM FPC_OE | ||
| 75 | #define FPC_UE 0x0010 /* enable underflow exception */ | ||
| 76 | #define FPC_PE 0x0020 /* enable precision exception */ | ||
| 77 | #define FPC_PC 0x0300 /* precision control: */ | ||
| 78 | #define FPC_PC_24 0x0000 /* 24 bits */ | ||
| 79 | #define FPC_PC_53 0x0200 /* 53 bits */ | ||
| 80 | #define FPC_PC_64 0x0300 /* 64 bits */ | ||
| 81 | #define FPC_RC 0x0c00 /* rounding control: */ | ||
| 82 | #define FPC_RC_RN 0x0000 /* round to nearest or even */ | ||
| 83 | #define FPC_RC_RD 0x0400 /* round down */ | ||
| 84 | #define FPC_RC_RU 0x0800 /* round up */ | ||
| 85 | #define FPC_RC_CHOP 0x0c00 /* chop */ | ||
| 86 | #define FPC_IC 0x1000 /* infinity control (obsolete) */ | ||
| 87 | #define FPC_IC_PROJ 0x0000 /* projective infinity */ | ||
| 88 | #define FPC_IC_AFF 0x1000 /* affine infinity (std) */ | ||
| 89 | |||
| 90 | /* | ||
| 91 | * Status register | ||
| 92 | */ | ||
| 93 | #define FPS_IE 0x0001 /* invalid operation */ | ||
| 94 | #define FPS_DE 0x0002 /* denormalized operand */ | ||
| 95 | #define FPS_ZE 0x0004 /* divide by zero */ | ||
| 96 | #define FPS_OE 0x0008 /* overflow */ | ||
| 97 | #define FPS_UE 0x0010 /* underflow */ | ||
| 98 | #define FPS_PE 0x0020 /* precision */ | ||
| 99 | #define FPS_SF 0x0040 /* stack flag */ | ||
| 100 | #define FPS_ES 0x0080 /* error summary */ | ||
| 101 | #define FPS_C0 0x0100 /* condition code bit 0 */ | ||
| 102 | #define FPS_C1 0x0200 /* condition code bit 1 */ | ||
| 103 | #define FPS_C2 0x0400 /* condition code bit 2 */ | ||
| 104 | #define FPS_TOS 0x3800 /* top-of-stack pointer */ | ||
| 105 | #define FPS_TOS_SHIFT 11 | ||
| 106 | #define FPS_C3 0x4000 /* condition code bit 3 */ | ||
| 107 | #define FPS_BUSY 0x8000 /* FPU busy */ | ||
| 108 | |||
| 109 | /* | ||
| 110 | * Kind of floating-point support provided by kernel. | ||
| 111 | */ | ||
| 112 | #define FP_NO 0 /* no floating point */ | ||
| 113 | #define FP_SOFT 1 /* software FP emulator */ | ||
| 114 | #define FP_287 2 /* 80287 */ | ||
| 115 | #define FP_387 3 /* 80387 or 80486 */ | ||
| 116 | #define FP_FXSR 4 /* Fast save/restore SIMD Extension */ | ||
| 117 | |||
| 118 | #endif /* _I386_FP_SAVE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/kern_return.h created+74| ... | @@ -0,0 +1,74 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | /* | ||
| 60 | *	File:	kern_return.h | ||
| 61 | *	Author:	Avadis Tevanian, Jr., Michael Wayne Young | ||
| 62 | *	Date:	1985 | ||
| 63 | * | ||
| 64 | *	Machine-dependent kernel return definitions. | ||
| 65 | */ | ||
| 66 | |||
| 67 | #ifndef _MACH_I386_KERN_RETURN_H_ | ||
| 68 | #define _MACH_I386_KERN_RETURN_H_ | ||
| 69 | |||
| 70 | #ifndef ASSEMBLER | ||
| 71 | typedef int kern_return_t; | ||
| 72 | #endif /* ASSEMBLER */ | ||
| 73 | |||
| 74 | #endif /* _MACH_I386_KERN_RETURN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/thread_state.h created+42| ... | @@ -0,0 +1,42 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | |||
| 32 | #ifndef _MACH_I386_THREAD_STATE_H_ | ||
| 33 | #define _MACH_I386_THREAD_STATE_H_ | ||
| 34 | |||
| 35 | /* Size of maximum exported thread state in words */ | ||
| 36 | #define I386_THREAD_STATE_MAX (614) /* Size of biggest state possible */ | ||
| 37 | |||
| 38 | #if defined (__i386__) || defined(__x86_64__) | ||
| 39 | #define THREAD_STATE_MAX I386_THREAD_STATE_MAX | ||
| 40 | #endif | ||
| 41 | |||
| 42 | #endif /* _MACH_I386_THREAD_STATE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/thread_status.h created+345| ... | @@ -0,0 +1,345 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | /* | ||
| 59 | *	File:	thread_status.h | ||
| 60 | *	Author:	Avadis Tevanian, Jr. | ||
| 61 | *	Date:	1985 | ||
| 62 | * | ||
| 63 | *	This file contains the structure definitions for the thread | ||
| 64 | *	state as applied to I386 processors. | ||
| 65 | */ | ||
| 66 | |||
| 67 | #ifndef _MACH_I386_THREAD_STATUS_H_ | ||
| 68 | #define _MACH_I386_THREAD_STATUS_H_ | ||
| 69 | |||
| 70 | #include <mach/machine/_structs.h> | ||
| 71 | #include <mach/message.h> | ||
| 72 | #include <mach/i386/fp_reg.h> | ||
| 73 | #include <mach/i386/thread_state.h> | ||
| 74 | #include <i386/eflags.h> | ||
| 75 | |||
| 76 | |||
| 77 | /* | ||
| 78 | * the i386_xxxx form is kept for legacy purposes since these types | ||
| 79 | * are externally known... eventually they should be deprecated. | ||
| 80 | * our internal implementation has moved to the following naming convention | ||
| 81 | * | ||
| 82 | * x86_xxxx32 names are used to deal with 32 bit states | ||
| 83 | * x86_xxxx64 names are used to deal with 64 bit states | ||
| 84 | * x86_xxxx names are used to deal with either 32 or 64 bit states | ||
| 85 | *	via a self-describing mechanism | ||
| 86 | */ | ||
| 87 | |||
| 88 | /* | ||
| 89 | * these are the legacy names which should be deprecated in the future | ||
| 90 | * they are externally known which is the only reason we don't just get | ||
| 91 | * rid of them | ||
| 92 | */ | ||
| 93 | #define i386_THREAD_STATE 1 | ||
| 94 | #define i386_FLOAT_STATE 2 | ||
| 95 | #define i386_EXCEPTION_STATE 3 | ||
| 96 | |||
| 97 | /* | ||
| 98 | * THREAD_STATE_FLAVOR_LIST 0 | ||
| 99 | * these are the supported flavors | ||
| 100 | */ | ||
| 101 | #define x86_THREAD_STATE32 1 | ||
| 102 | #define x86_FLOAT_STATE32 2 | ||
| 103 | #define x86_EXCEPTION_STATE32 3 | ||
| 104 | #define x86_THREAD_STATE64 4 | ||
| 105 | #define x86_FLOAT_STATE64 5 | ||
| 106 | #define x86_EXCEPTION_STATE64 6 | ||
| 107 | #define x86_THREAD_STATE 7 | ||
| 108 | #define x86_FLOAT_STATE 8 | ||
| 109 | #define x86_EXCEPTION_STATE 9 | ||
| 110 | #define x86_DEBUG_STATE32 10 | ||
| 111 | #define x86_DEBUG_STATE64 11 | ||
| 112 | #define x86_DEBUG_STATE 12 | ||
| 113 | #define THREAD_STATE_NONE 13 | ||
| 114 | /* 14 and 15 are used for the internal x86_SAVED_STATE flavours */ | ||
| 115 | /* Arrange for flavors to take sequential values, 32-bit, 64-bit, non-specific */ | ||
| 116 | #define x86_AVX_STATE32 16 | ||
| 117 | #define x86_AVX_STATE64 (x86_AVX_STATE32 + 1) | ||
| 118 | #define x86_AVX_STATE (x86_AVX_STATE32 + 2) | ||
| 119 | #define x86_AVX512_STATE32 19 | ||
| 120 | #define x86_AVX512_STATE64 (x86_AVX512_STATE32 + 1) | ||
| 121 | #define x86_AVX512_STATE (x86_AVX512_STATE32 + 2) | ||
| 122 | #define x86_PAGEIN_STATE 22 | ||
| 123 | #define x86_THREAD_FULL_STATE64 23 | ||
| 124 | |||
| 125 | /* | ||
| 126 | * Largest state on this machine: | ||
| 127 | * (be sure mach/machine/thread_state.h matches!) | ||
| 128 | */ | ||
| 129 | #define THREAD_MACHINE_STATE_MAX THREAD_STATE_MAX | ||
| 130 | |||
| 131 | /* | ||
| 132 | * VALID_THREAD_STATE_FLAVOR is a platform specific macro that when passed | ||
| 133 | * an exception flavor will return if that is a defined flavor for that | ||
| 134 | * platform. The macro must be manually updated to include all of the valid | ||
| 135 | * exception flavors as defined above. | ||
| 136 | */ | ||
| 137 | #define VALID_THREAD_STATE_FLAVOR(x) \ | ||
| 138 | 	 ((x == x86_THREAD_STATE32)		|| \ | ||
| 139 | 	 (x == x86_FLOAT_STATE32)		|| \ | ||
| 140 | 	 (x == x86_EXCEPTION_STATE32)		|| \ | ||
| 141 | 	 (x == x86_DEBUG_STATE32)		|| \ | ||
| 142 | 	 (x == x86_THREAD_STATE64)		|| \ | ||
| 143 | 	 (x == x86_THREAD_FULL_STATE64)	|| \ | ||
| 144 | 	 (x == x86_FLOAT_STATE64)		|| \ | ||
| 145 | 	 (x == x86_EXCEPTION_STATE64)		|| \ | ||
| 146 | 	 (x == x86_DEBUG_STATE64)		|| \ | ||
| 147 | 	 (x == x86_THREAD_STATE)		|| \ | ||
| 148 | 	 (x == x86_FLOAT_STATE)		|| \ | ||
| 149 | 	 (x == x86_EXCEPTION_STATE)		|| \ | ||
| 150 | 	 (x == x86_DEBUG_STATE)		|| \ | ||
| 151 | 	 (x == x86_AVX_STATE32)		|| \ | ||
| 152 | 	 (x == x86_AVX_STATE64)		|| \ | ||
| 153 | 	 (x == x86_AVX_STATE)			|| \ | ||
| 154 | 	 (x == x86_AVX512_STATE32)		|| \ | ||
| 155 | 	 (x == x86_AVX512_STATE64)		|| \ | ||
| 156 | 	 (x == x86_AVX512_STATE)		|| \ | ||
| 157 | 	 (x == x86_PAGEIN_STATE)		|| \ | ||
| 158 | 	 (x == THREAD_STATE_NONE)) | ||
| 159 | |||
| 160 | struct x86_state_hdr { | ||
| 161 | 	uint32_t flavor; | ||
| 162 | 	uint32_t count; | ||
| 163 | }; | ||
| 164 | typedef struct x86_state_hdr x86_state_hdr_t; | ||
| 165 | |||
| 166 | /* | ||
| 167 | * Default segment register values. | ||
| 168 | */ | ||
| 169 | |||
| 170 | #define USER_CODE_SELECTOR 0x0017 | ||
| 171 | #define USER_DATA_SELECTOR 0x001f | ||
| 172 | #define KERN_CODE_SELECTOR 0x0008 | ||
| 173 | #define KERN_DATA_SELECTOR 0x0010 | ||
| 174 | |||
| 175 | /* | ||
| 176 | * to be deprecated in the future | ||
| 177 | */ | ||
| 178 | typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t; | ||
| 179 | #define i386_THREAD_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 180 | ( sizeof (i386_thread_state_t) / sizeof (int) )) | ||
| 181 | |||
| 182 | typedef _STRUCT_X86_THREAD_STATE32 x86_thread_state32_t; | ||
| 183 | #define x86_THREAD_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 184 | ( sizeof (x86_thread_state32_t) / sizeof (int) )) | ||
| 185 | |||
| 186 | /* | ||
| 187 | * to be deprecated in the future | ||
| 188 | */ | ||
| 189 | typedef _STRUCT_X86_FLOAT_STATE32 i386_float_state_t; | ||
| 190 | #define i386_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 191 | 	 (sizeof(i386_float_state_t)/sizeof(unsigned int))) | ||
| 192 | |||
| 193 | typedef _STRUCT_X86_FLOAT_STATE32 x86_float_state32_t; | ||
| 194 | #define x86_FLOAT_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 195 | 	 (sizeof(x86_float_state32_t)/sizeof(unsigned int))) | ||
| 196 | |||
| 197 | typedef _STRUCT_X86_AVX_STATE32 x86_avx_state32_t; | ||
| 198 | #define x86_AVX_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 199 | 	 (sizeof(x86_avx_state32_t)/sizeof(unsigned int))) | ||
| 200 | |||
| 201 | typedef _STRUCT_X86_AVX512_STATE32 x86_avx512_state32_t; | ||
| 202 | #define x86_AVX512_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 203 | 	 (sizeof(x86_avx512_state32_t)/sizeof(unsigned int))) | ||
| 204 | |||
| 205 | /* | ||
| 206 | * to be deprecated in the future | ||
| 207 | */ | ||
| 208 | typedef _STRUCT_X86_EXCEPTION_STATE32 i386_exception_state_t; | ||
| 209 | #define i386_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 210 | ( sizeof (i386_exception_state_t) / sizeof (int) )) | ||
| 211 | |||
| 212 | typedef _STRUCT_X86_EXCEPTION_STATE32 x86_exception_state32_t; | ||
| 213 | #define x86_EXCEPTION_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 214 | ( sizeof (x86_exception_state32_t) / sizeof (int) )) | ||
| 215 | |||
| 216 | #define I386_EXCEPTION_STATE_COUNT i386_EXCEPTION_STATE_COUNT | ||
| 217 | |||
| 218 | typedef _STRUCT_X86_DEBUG_STATE32 x86_debug_state32_t; | ||
| 219 | #define x86_DEBUG_STATE32_COUNT ((mach_msg_type_number_t) \ | ||
| 220 | 	( sizeof (x86_debug_state32_t) / sizeof (int) )) | ||
| 221 | |||
| 222 | #define X86_DEBUG_STATE32_COUNT x86_DEBUG_STATE32_COUNT | ||
| 223 | |||
| 224 | typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t; | ||
| 225 | #define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 226 | ( sizeof (x86_thread_state64_t) / sizeof (int) )) | ||
| 227 | |||
| 228 | typedef _STRUCT_X86_THREAD_FULL_STATE64 x86_thread_full_state64_t; | ||
| 229 | #define x86_THREAD_FULL_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 230 | ( sizeof (x86_thread_full_state64_t) / sizeof (int) )) | ||
| 231 | |||
| 232 | typedef _STRUCT_X86_FLOAT_STATE64 x86_float_state64_t; | ||
| 233 | #define x86_FLOAT_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 234 | 	 (sizeof(x86_float_state64_t)/sizeof(unsigned int))) | ||
| 235 | |||
| 236 | typedef _STRUCT_X86_AVX_STATE64 x86_avx_state64_t; | ||
| 237 | #define x86_AVX_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 238 | 	 (sizeof(x86_avx_state64_t)/sizeof(unsigned int))) | ||
| 239 | |||
| 240 | typedef _STRUCT_X86_AVX512_STATE64 x86_avx512_state64_t; | ||
| 241 | #define x86_AVX512_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 242 | 	 (sizeof(x86_avx512_state64_t)/sizeof(unsigned int))) | ||
| 243 | |||
| 244 | typedef _STRUCT_X86_EXCEPTION_STATE64 x86_exception_state64_t; | ||
| 245 | #define x86_EXCEPTION_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 246 | ( sizeof (x86_exception_state64_t) / sizeof (int) )) | ||
| 247 | |||
| 248 | #define X86_EXCEPTION_STATE64_COUNT x86_EXCEPTION_STATE64_COUNT | ||
| 249 | |||
| 250 | typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t; | ||
| 251 | #define x86_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \ | ||
| 252 | ( sizeof (x86_debug_state64_t) / sizeof (int) )) | ||
| 253 | |||
| 254 | #define X86_DEBUG_STATE64_COUNT x86_DEBUG_STATE64_COUNT | ||
| 255 | |||
| 256 | typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t; | ||
| 257 | #define x86_PAGEIN_STATE_COUNT \ | ||
| 258 | ((mach_msg_type_number_t)(sizeof(x86_pagein_state_t) / sizeof(int))) | ||
| 259 | |||
| 260 | #define X86_PAGEIN_STATE_COUNT x86_PAGEIN_STATE_COUNT | ||
| 261 | |||
| 262 | /* | ||
| 263 | * Combined thread, float and exception states | ||
| 264 | */ | ||
| 265 | struct x86_thread_state { | ||
| 266 | 	x86_state_hdr_t tsh; | ||
| 267 | 	union { | ||
| 268 | 		x86_thread_state32_t ts32; | ||
| 269 | 		x86_thread_state64_t ts64; | ||
| 270 | 	} uts; | ||
| 271 | }; | ||
| 272 | |||
| 273 | struct x86_float_state { | ||
| 274 | 	x86_state_hdr_t fsh; | ||
| 275 | 	union { | ||
| 276 | 		x86_float_state32_t fs32; | ||
| 277 | 		x86_float_state64_t fs64; | ||
| 278 | 	} ufs; | ||
| 279 | }; | ||
| 280 | |||
| 281 | struct x86_exception_state { | ||
| 282 | 	x86_state_hdr_t esh; | ||
| 283 | 	union { | ||
| 284 | 		x86_exception_state32_t es32; | ||
| 285 | 		x86_exception_state64_t es64; | ||
| 286 | 	} ues; | ||
| 287 | }; | ||
| 288 | |||
| 289 | struct x86_debug_state { | ||
| 290 | 	x86_state_hdr_t dsh; | ||
| 291 | 	union { | ||
| 292 | 		x86_debug_state32_t ds32; | ||
| 293 | 		x86_debug_state64_t ds64; | ||
| 294 | 	} uds; | ||
| 295 | }; | ||
| 296 | |||
| 297 | struct x86_avx_state { | ||
| 298 | 	x86_state_hdr_t ash; | ||
| 299 | 	union { | ||
| 300 | 		x86_avx_state32_t as32; | ||
| 301 | 		x86_avx_state64_t as64; | ||
| 302 | 	} ufs; | ||
| 303 | }; | ||
| 304 | |||
| 305 | struct x86_avx512_state { | ||
| 306 | 	x86_state_hdr_t ash; | ||
| 307 | 	union { | ||
| 308 | 		x86_avx512_state32_t as32; | ||
| 309 | 		x86_avx512_state64_t as64; | ||
| 310 | 	} ufs; | ||
| 311 | }; | ||
| 312 | |||
| 313 | typedef struct x86_thread_state x86_thread_state_t; | ||
| 314 | #define x86_THREAD_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 315 | 	 ( sizeof (x86_thread_state_t) / sizeof (int) )) | ||
| 316 | |||
| 317 | typedef struct x86_float_state x86_float_state_t; | ||
| 318 | #define x86_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 319 | 	 (sizeof(x86_float_state_t)/sizeof(unsigned int))) | ||
| 320 | |||
| 321 | typedef struct x86_exception_state x86_exception_state_t; | ||
| 322 | #define x86_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 323 | 	 (sizeof(x86_exception_state_t)/sizeof(unsigned int))) | ||
| 324 | |||
| 325 | typedef struct x86_debug_state x86_debug_state_t; | ||
| 326 | #define x86_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 327 | 	 (sizeof(x86_debug_state_t)/sizeof(unsigned int))) | ||
| 328 | |||
| 329 | typedef struct x86_avx_state x86_avx_state_t; | ||
| 330 | #define x86_AVX_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 331 | 	 (sizeof(x86_avx_state_t)/sizeof(unsigned int))) | ||
| 332 | |||
| 333 | typedef struct x86_avx512_state x86_avx512_state_t; | ||
| 334 | #define x86_AVX512_STATE_COUNT ((mach_msg_type_number_t) \ | ||
| 335 | 	 (sizeof(x86_avx512_state_t)/sizeof(unsigned int))) | ||
| 336 | |||
| 337 | /* | ||
| 338 | * Machine-independent way for servers and Mach's exception mechanism to | ||
| 339 | * choose the most efficient state flavor for exception RPC's: | ||
| 340 | */ | ||
| 341 | #define MACHINE_THREAD_STATE x86_THREAD_STATE | ||
| 342 | #define MACHINE_THREAD_STATE_COUNT x86_THREAD_STATE_COUNT | ||
| 343 | |||
| 344 | |||
| 345 | #endif /* _MACH_I386_THREAD_STATUS_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/vm_param.h created+170| ... | @@ -0,0 +1,170 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | |||
| 57 | /* | ||
| 58 | * Copyright (c) 1994 The University of Utah and | ||
| 59 | * the Computer Systems Laboratory at the University of Utah (CSL). | ||
| 60 | * All rights reserved. | ||
| 61 | * | ||
| 62 | * Permission to use, copy, modify and distribute this software is hereby | ||
| 63 | * granted provided that (1) source code retains these copyright, permission, | ||
| 64 | * and disclaimer notices, and (2) redistributions including binaries | ||
| 65 | * reproduce the notices in supporting documentation, and (3) all advertising | ||
| 66 | * materials mentioning features or use of this software display the following | ||
| 67 | * acknowledgement: ``This product includes software developed by the | ||
| 68 | * Computer Systems Laboratory at the University of Utah.'' | ||
| 69 | * | ||
| 70 | * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS | ||
| 71 | * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF | ||
| 72 | * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 73 | * | ||
| 74 | * CSL requests users of this software to return to csl-dist@cs.utah.edu any | ||
| 75 | * improvements that they make and grant CSL redistribution rights. | ||
| 76 | * | ||
| 77 | */ | ||
| 78 | |||
| 79 | /* | ||
| 80 | *	File:	vm_param.h | ||
| 81 | *	Author:	Avadis Tevanian, Jr. | ||
| 82 | *	Date:	1985 | ||
| 83 | * | ||
| 84 | *	I386 machine dependent virtual memory parameters. | ||
| 85 | *	Most of the declarations are preceeded by I386_ (or i386_) | ||
| 86 | *	which is OK because only I386 specific code will be using | ||
| 87 | *	them. | ||
| 88 | */ | ||
| 89 | |||
| 90 | #ifndef _MACH_I386_VM_PARAM_H_ | ||
| 91 | #define _MACH_I386_VM_PARAM_H_ | ||
| 92 | |||
| 93 | #define BYTE_SIZE 8 /* byte size in bits */ | ||
| 94 | |||
| 95 | #define I386_PGBYTES 4096 /* bytes per 80386 page */ | ||
| 96 | #define I386_PGSHIFT 12 /* bitshift for pages */ | ||
| 97 | |||
| 98 | #define PAGE_SIZE I386_PGBYTES | ||
| 99 | #define PAGE_SHIFT I386_PGSHIFT | ||
| 100 | #define PAGE_MASK (PAGE_SIZE - 1) | ||
| 101 | |||
| 102 | #define PAGE_MAX_SHIFT PAGE_SHIFT | ||
| 103 | #define PAGE_MAX_SIZE PAGE_SIZE | ||
| 104 | #define PAGE_MAX_MASK PAGE_MASK | ||
| 105 | |||
| 106 | #define PAGE_MIN_SHIFT PAGE_SHIFT | ||
| 107 | #define PAGE_MIN_SIZE PAGE_SIZE | ||
| 108 | #define PAGE_MIN_MASK PAGE_MASK | ||
| 109 | |||
| 110 | #define I386_LPGBYTES 2*1024*1024 /* bytes per large page */ | ||
| 111 | #define I386_LPGSHIFT 21 /* bitshift for large pages */ | ||
| 112 | #define I386_LPGMASK (I386_LPGBYTES-1) | ||
| 113 | |||
| 114 | /* | ||
| 115 | *	Convert bytes to pages and convert pages to bytes. | ||
| 116 | *	No rounding is used. | ||
| 117 | */ | ||
| 118 | |||
| 119 | #define i386_btop(x) ((ppnum_t)((x) >> I386_PGSHIFT)) | ||
| 120 | #define machine_btop(x) i386_btop(x) | ||
| 121 | #define i386_ptob(x) (((pmap_paddr_t)(x)) << I386_PGSHIFT) | ||
| 122 | #define machine_ptob(x) i386_ptob(x) | ||
| 123 | |||
| 124 | /* | ||
| 125 | *	Round off or truncate to the nearest page. These will work | ||
| 126 | *	for either addresses or counts. (i.e. 1 byte rounds to 1 page | ||
| 127 | *	bytes. | ||
| 128 | */ | ||
| 129 | |||
| 130 | #define i386_round_page(x) ((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \ | ||
| 131 | 	 ~(I386_PGBYTES-1)) | ||
| 132 | #define i386_trunc_page(x) (((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1)) | ||
| 133 | |||
| 134 | |||
| 135 | |||
| 136 | #define VM_MIN_ADDRESS64 ((user_addr_t) 0x0000000000000000ULL) | ||
| 137 | /* | ||
| 138 | * default top of user stack... it grows down from here | ||
| 139 | */ | ||
| 140 | #define VM_USRSTACK64 ((user_addr_t) 0x00007FFEEFC00000ULL) | ||
| 141 | |||
| 142 | /* | ||
| 143 | * XXX TODO: Obsolete? | ||
| 144 | */ | ||
| 145 | #define VM_DYLD64 ((user_addr_t) 0x00007FFF5FC00000ULL) | ||
| 146 | #define VM_LIB64_SHR_DATA ((user_addr_t) 0x00007FFF60000000ULL) | ||
| 147 | #define VM_LIB64_SHR_TEXT ((user_addr_t) 0x00007FFF80000000ULL) | ||
| 148 | /* | ||
| 149 | * the end of the usable user address space , for now about 47 bits. | ||
| 150 | * the 64 bit commpage is past the end of this | ||
| 151 | */ | ||
| 152 | #define VM_MAX_PAGE_ADDRESS ((user_addr_t) 0x00007FFFFFE00000ULL) | ||
| 153 | /* | ||
| 154 | * canonical end of user address space for limits checking | ||
| 155 | */ | ||
| 156 | #define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL) | ||
| 157 | |||
| 158 | |||
| 159 | /* system-wide values */ | ||
| 160 | #define MACH_VM_MIN_ADDRESS ((mach_vm_offset_t) 0) | ||
| 161 | #define MACH_VM_MAX_ADDRESS ((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS) | ||
| 162 | |||
| 163 | /* process-relative values (all 32-bit legacy only for now) */ | ||
| 164 | #define VM_MIN_ADDRESS ((vm_offset_t) 0) | ||
| 165 | #define VM_USRSTACK32 ((vm_offset_t) 0xC0000000) /* ASLR slides stack down by up to 1 MB */ | ||
| 166 | #define VM_MAX_ADDRESS ((vm_offset_t) 0xFFE00000) | ||
| 167 | |||
| 168 | |||
| 169 | |||
| 170 | #endif /* _MACH_I386_VM_PARAM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/i386/vm_types.h created+142| ... | @@ -0,0 +1,142 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | |||
| 59 | /* | ||
| 60 | *	File:	vm_types.h | ||
| 61 | *	Author:	Avadis Tevanian, Jr. | ||
| 62 | *	Date: 1985 | ||
| 63 | * | ||
| 64 | *	Header file for VM data types. I386 version. | ||
| 65 | */ | ||
| 66 | |||
| 67 | #ifndef _MACH_I386_VM_TYPES_H_ | ||
| 68 | #define _MACH_I386_VM_TYPES_H_ | ||
| 69 | |||
| 70 | #ifndef ASSEMBLER | ||
| 71 | |||
| 72 | #include <i386/_types.h> | ||
| 73 | #include <mach/i386/vm_param.h> | ||
| 74 | #include <stdint.h> | ||
| 75 | |||
| 76 | /* | ||
| 77 | * natural_t and integer_t are Mach's legacy types for machine- | ||
| 78 | * independent integer types (unsigned, and signed, respectively). | ||
| 79 | * Their original purpose was to define other types in a machine/ | ||
| 80 | * compiler independent way. | ||
| 81 | * | ||
| 82 | * They also had an implicit "same size as pointer" characteristic | ||
| 83 | * to them (i.e. Mach's traditional types are very ILP32 or ILP64 | ||
| 84 | * centric). We support x86 ABIs that do not follow either of | ||
| 85 | * these models (specifically LP64). Therefore, we had to make a | ||
| 86 | * choice between making these types scale with pointers or stay | ||
| 87 | * tied to integers. Because their use is predominantly tied to | ||
| 88 | * to the size of an integer, we are keeping that association and | ||
| 89 | * breaking free from pointer size guarantees. | ||
| 90 | * | ||
| 91 | * New use of these types is discouraged. | ||
| 92 | */ | ||
| 93 | typedef __darwin_natural_t natural_t; | ||
| 94 | typedef int integer_t; | ||
| 95 | |||
| 96 | /* | ||
| 97 | * A vm_offset_t is a type-neutral pointer, | ||
| 98 | * e.g. an offset into a virtual memory space. | ||
| 99 | */ | ||
| 100 | #ifdef __LP64__ | ||
| 101 | typedef uintptr_t vm_offset_t; | ||
| 102 | #else /* __LP64__ */ | ||
| 103 | typedef natural_t vm_offset_t; | ||
| 104 | #endif /* __LP64__ */ | ||
| 105 | |||
| 106 | /* | ||
| 107 | * A vm_size_t is the proper type for e.g. | ||
| 108 | * expressing the difference between two | ||
| 109 | * vm_offset_t entities. | ||
| 110 | */ | ||
| 111 | #ifdef __LP64__ | ||
| 112 | typedef uintptr_t vm_size_t; | ||
| 113 | #else /* __LP64__ */ | ||
| 114 | typedef natural_t vm_size_t; | ||
| 115 | #endif /* __LP64__ */ | ||
| 116 | |||
| 117 | /* | ||
| 118 | * This new type is independent of a particular vm map's | ||
| 119 | * implementation size - and represents appropriate types | ||
| 120 | * for all possible maps. This is used for interfaces | ||
| 121 | * where the size of the map is not known - or we don't | ||
| 122 | * want to have to distinguish. | ||
| 123 | */ | ||
| 124 | typedef uint64_t mach_vm_address_t; | ||
| 125 | typedef uint64_t mach_vm_offset_t; | ||
| 126 | typedef uint64_t mach_vm_size_t; | ||
| 127 | |||
| 128 | typedef uint64_t vm_map_offset_t; | ||
| 129 | typedef uint64_t vm_map_address_t; | ||
| 130 | typedef uint64_t vm_map_size_t; | ||
| 131 | |||
| 132 | typedef mach_vm_address_t mach_port_context_t; | ||
| 133 | |||
| 134 | |||
| 135 | #endif /* ASSEMBLER */ | ||
| 136 | |||
| 137 | /* | ||
| 138 | * If composing messages by hand (please do not) | ||
| 139 | */ | ||
| 140 | #define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32 | ||
| 141 | |||
| 142 | #endif /* _MACH_I386_VM_TYPES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/kern_return.h created+330| ... | @@ -0,0 +1,330 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | /* | ||
| 59 | *	File:	h/kern_return.h | ||
| 60 | *	Author:	Avadis Tevanian, Jr. | ||
| 61 | *	Date:	1985 | ||
| 62 | * | ||
| 63 | *	Kernel return codes. | ||
| 64 | * | ||
| 65 | */ | ||
| 66 | |||
| 67 | #ifndef _MACH_KERN_RETURN_H_ | ||
| 68 | #define _MACH_KERN_RETURN_H_ | ||
| 69 | |||
| 70 | #include <mach/machine/kern_return.h> | ||
| 71 | |||
| 72 | #define KERN_SUCCESS 0 | ||
| 73 | |||
| 74 | #define KERN_INVALID_ADDRESS 1 | ||
| 75 | /* Specified address is not currently valid. | ||
| 76 | */ | ||
| 77 | |||
| 78 | #define KERN_PROTECTION_FAILURE 2 | ||
| 79 | /* Specified memory is valid, but does not permit the | ||
| 80 | * required forms of access. | ||
| 81 | */ | ||
| 82 | |||
| 83 | #define KERN_NO_SPACE 3 | ||
| 84 | /* The address range specified is already in use, or | ||
| 85 | * no address range of the size specified could be | ||
| 86 | * found. | ||
| 87 | */ | ||
| 88 | |||
| 89 | #define KERN_INVALID_ARGUMENT 4 | ||
| 90 | /* The function requested was not applicable to this | ||
| 91 | * type of argument, or an argument is invalid | ||
| 92 | */ | ||
| 93 | |||
| 94 | #define KERN_FAILURE 5 | ||
| 95 | /* The function could not be performed. A catch-all. | ||
| 96 | */ | ||
| 97 | |||
| 98 | #define KERN_RESOURCE_SHORTAGE 6 | ||
| 99 | /* A system resource could not be allocated to fulfill | ||
| 100 | * this request. This failure may not be permanent. | ||
| 101 | */ | ||
| 102 | |||
| 103 | #define KERN_NOT_RECEIVER 7 | ||
| 104 | /* The task in question does not hold receive rights | ||
| 105 | * for the port argument. | ||
| 106 | */ | ||
| 107 | |||
| 108 | #define KERN_NO_ACCESS 8 | ||
| 109 | /* Bogus access restriction. | ||
| 110 | */ | ||
| 111 | |||
| 112 | #define KERN_MEMORY_FAILURE 9 | ||
| 113 | /* During a page fault, the target address refers to a | ||
| 114 | * memory object that has been destroyed. This | ||
| 115 | * failure is permanent. | ||
| 116 | */ | ||
| 117 | |||
| 118 | #define KERN_MEMORY_ERROR 10 | ||
| 119 | /* During a page fault, the memory object indicated | ||
| 120 | * that the data could not be returned. This failure | ||
| 121 | * may be temporary; future attempts to access this | ||
| 122 | * same data may succeed, as defined by the memory | ||
| 123 | * object. | ||
| 124 | */ | ||
| 125 | |||
| 126 | #define KERN_ALREADY_IN_SET 11 | ||
| 127 | /* The receive right is already a member of the portset. | ||
| 128 | */ | ||
| 129 | |||
| 130 | #define KERN_NOT_IN_SET 12 | ||
| 131 | /* The receive right is not a member of a port set. | ||
| 132 | */ | ||
| 133 | |||
| 134 | #define KERN_NAME_EXISTS 13 | ||
| 135 | /* The name already denotes a right in the task. | ||
| 136 | */ | ||
| 137 | |||
| 138 | #define KERN_ABORTED 14 | ||
| 139 | /* The operation was aborted. Ipc code will | ||
| 140 | * catch this and reflect it as a message error. | ||
| 141 | */ | ||
| 142 | |||
| 143 | #define KERN_INVALID_NAME 15 | ||
| 144 | /* The name doesn't denote a right in the task. | ||
| 145 | */ | ||
| 146 | |||
| 147 | #define KERN_INVALID_TASK 16 | ||
| 148 | /* Target task isn't an active task. | ||
| 149 | */ | ||
| 150 | |||
| 151 | #define KERN_INVALID_RIGHT 17 | ||
| 152 | /* The name denotes a right, but not an appropriate right. | ||
| 153 | */ | ||
| 154 | |||
| 155 | #define KERN_INVALID_VALUE 18 | ||
| 156 | /* A blatant range error. | ||
| 157 | */ | ||
| 158 | |||
| 159 | #define KERN_UREFS_OVERFLOW 19 | ||
| 160 | /* Operation would overflow limit on user-references. | ||
| 161 | */ | ||
| 162 | |||
| 163 | #define KERN_INVALID_CAPABILITY 20 | ||
| 164 | /* The supplied (port) capability is improper. | ||
| 165 | */ | ||
| 166 | |||
| 167 | #define KERN_RIGHT_EXISTS 21 | ||
| 168 | /* The task already has send or receive rights | ||
| 169 | * for the port under another name. | ||
| 170 | */ | ||
| 171 | |||
| 172 | #define KERN_INVALID_HOST 22 | ||
| 173 | /* Target host isn't actually a host. | ||
| 174 | */ | ||
| 175 | |||
| 176 | #define KERN_MEMORY_PRESENT 23 | ||
| 177 | /* An attempt was made to supply "precious" data | ||
| 178 | * for memory that is already present in a | ||
| 179 | * memory object. | ||
| 180 | */ | ||
| 181 | |||
| 182 | #define KERN_MEMORY_DATA_MOVED 24 | ||
| 183 | /* A page was requested of a memory manager via | ||
| 184 | * memory_object_data_request for an object using | ||
| 185 | * a MEMORY_OBJECT_COPY_CALL strategy, with the | ||
| 186 | * VM_PROT_WANTS_COPY flag being used to specify | ||
| 187 | * that the page desired is for a copy of the | ||
| 188 | * object, and the memory manager has detected | ||
| 189 | * the page was pushed into a copy of the object | ||
| 190 | * while the kernel was walking the shadow chain | ||
| 191 | * from the copy to the object. This error code | ||
| 192 | * is delivered via memory_object_data_error | ||
| 193 | * and is handled by the kernel (it forces the | ||
| 194 | * kernel to restart the fault). It will not be | ||
| 195 | * seen by users. | ||
| 196 | */ | ||
| 197 | |||
| 198 | #define KERN_MEMORY_RESTART_COPY 25 | ||
| 199 | /* A strategic copy was attempted of an object | ||
| 200 | * upon which a quicker copy is now possible. | ||
| 201 | * The caller should retry the copy using | ||
| 202 | * vm_object_copy_quickly. This error code | ||
| 203 | * is seen only by the kernel. | ||
| 204 | */ | ||
| 205 | |||
| 206 | #define KERN_INVALID_PROCESSOR_SET 26 | ||
| 207 | /* An argument applied to assert processor set privilege | ||
| 208 | * was not a processor set control port. | ||
| 209 | */ | ||
| 210 | |||
| 211 | #define KERN_POLICY_LIMIT 27 | ||
| 212 | /* The specified scheduling attributes exceed the thread's | ||
| 213 | * limits. | ||
| 214 | */ | ||
| 215 | |||
| 216 | #define KERN_INVALID_POLICY 28 | ||
| 217 | /* The specified scheduling policy is not currently | ||
| 218 | * enabled for the processor set. | ||
| 219 | */ | ||
| 220 | |||
| 221 | #define KERN_INVALID_OBJECT 29 | ||
| 222 | /* The external memory manager failed to initialize the | ||
| 223 | * memory object. | ||
| 224 | */ | ||
| 225 | |||
| 226 | #define KERN_ALREADY_WAITING 30 | ||
| 227 | /* A thread is attempting to wait for an event for which | ||
| 228 | * there is already a waiting thread. | ||
| 229 | */ | ||
| 230 | |||
| 231 | #define KERN_DEFAULT_SET 31 | ||
| 232 | /* An attempt was made to destroy the default processor | ||
| 233 | * set. | ||
| 234 | */ | ||
| 235 | |||
| 236 | #define KERN_EXCEPTION_PROTECTED 32 | ||
| 237 | /* An attempt was made to fetch an exception port that is | ||
| 238 | * protected, or to abort a thread while processing a | ||
| 239 | * protected exception. | ||
| 240 | */ | ||
| 241 | |||
| 242 | #define KERN_INVALID_LEDGER 33 | ||
| 243 | /* A ledger was required but not supplied. | ||
| 244 | */ | ||
| 245 | |||
| 246 | #define KERN_INVALID_MEMORY_CONTROL 34 | ||
| 247 | /* The port was not a memory cache control port. | ||
| 248 | */ | ||
| 249 | |||
| 250 | #define KERN_INVALID_SECURITY 35 | ||
| 251 | /* An argument supplied to assert security privilege | ||
| 252 | * was not a host security port. | ||
| 253 | */ | ||
| 254 | |||
| 255 | #define KERN_NOT_DEPRESSED 36 | ||
| 256 | /* thread_depress_abort was called on a thread which | ||
| 257 | * was not currently depressed. | ||
| 258 | */ | ||
| 259 | |||
| 260 | #define KERN_TERMINATED 37 | ||
| 261 | /* Object has been terminated and is no longer available | ||
| 262 | */ | ||
| 263 | |||
| 264 | #define KERN_LOCK_SET_DESTROYED 38 | ||
| 265 | /* Lock set has been destroyed and is no longer available. | ||
| 266 | */ | ||
| 267 | |||
| 268 | #define KERN_LOCK_UNSTABLE 39 | ||
| 269 | /* The thread holding the lock terminated before releasing | ||
| 270 | * the lock | ||
| 271 | */ | ||
| 272 | |||
| 273 | #define KERN_LOCK_OWNED 40 | ||
| 274 | /* The lock is already owned by another thread | ||
| 275 | */ | ||
| 276 | |||
| 277 | #define KERN_LOCK_OWNED_SELF 41 | ||
| 278 | /* The lock is already owned by the calling thread | ||
| 279 | */ | ||
| 280 | |||
| 281 | #define KERN_SEMAPHORE_DESTROYED 42 | ||
| 282 | /* Semaphore has been destroyed and is no longer available. | ||
| 283 | */ | ||
| 284 | |||
| 285 | #define KERN_RPC_SERVER_TERMINATED 43 | ||
| 286 | /* Return from RPC indicating the target server was | ||
| 287 | * terminated before it successfully replied | ||
| 288 | */ | ||
| 289 | |||
| 290 | #define KERN_RPC_TERMINATE_ORPHAN 44 | ||
| 291 | /* Terminate an orphaned activation. | ||
| 292 | */ | ||
| 293 | |||
| 294 | #define KERN_RPC_CONTINUE_ORPHAN 45 | ||
| 295 | /* Allow an orphaned activation to continue executing. | ||
| 296 | */ | ||
| 297 | |||
| 298 | #define KERN_NOT_SUPPORTED 46 | ||
| 299 | /* Empty thread activation (No thread linked to it) | ||
| 300 | */ | ||
| 301 | |||
| 302 | #define KERN_NODE_DOWN 47 | ||
| 303 | /* Remote node down or inaccessible. | ||
| 304 | */ | ||
| 305 | |||
| 306 | #define KERN_NOT_WAITING 48 | ||
| 307 | /* A signalled thread was not actually waiting. */ | ||
| 308 | |||
| 309 | #define KERN_OPERATION_TIMED_OUT 49 | ||
| 310 | /* Some thread-oriented operation (semaphore_wait) timed out | ||
| 311 | */ | ||
| 312 | |||
| 313 | #define KERN_CODESIGN_ERROR 50 | ||
| 314 | /* During a page fault, indicates that the page was rejected | ||
| 315 | * as a result of a signature check. | ||
| 316 | */ | ||
| 317 | |||
| 318 | #define KERN_POLICY_STATIC 51 | ||
| 319 | /* The requested property cannot be changed at this time. | ||
| 320 | */ | ||
| 321 | |||
| 322 | #define KERN_INSUFFICIENT_BUFFER_SIZE 52 | ||
| 323 | /* The provided buffer is of insufficient size for the requested data. | ||
| 324 | */ | ||
| 325 | |||
| 326 | #define KERN_RETURN_MAX 0x100 | ||
| 327 | /* Maximum return value allowable | ||
| 328 | */ | ||
| 329 | |||
| 330 | #endif /* _MACH_KERN_RETURN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine.h created+395| ... | @@ -0,0 +1,395 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2007-2016 Apple, Inc. All rights reserved. | ||
| 3 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 4 | * | ||
| 5 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 6 | * | ||
| 7 | * This file contains Original Code and/or Modifications of Original Code | ||
| 8 | * as defined in and that are subject to the Apple Public Source License | ||
| 9 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 10 | * compliance with the License. The rights granted to you under the License | ||
| 11 | * may not be used to create, or enable the creation or redistribution of, | ||
| 12 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 13 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 14 | * terms of an Apple operating system software license agreement. | ||
| 15 | * | ||
| 16 | * Please obtain a copy of the License at | ||
| 17 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 18 | * | ||
| 19 | * The Original Code and all software distributed under the License are | ||
| 20 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 21 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 22 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 23 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 24 | * Please see the License for the specific language governing rights and | ||
| 25 | * limitations under the License. | ||
| 26 | * | ||
| 27 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 28 | */ | ||
| 29 | /* | ||
| 30 | * Mach Operating System | ||
| 31 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 32 | * All Rights Reserved. | ||
| 33 | * | ||
| 34 | * Permission to use, copy, modify and distribute this software and its | ||
| 35 | * documentation is hereby granted, provided that both the copyright | ||
| 36 | * notice and this permission notice appear in all copies of the | ||
| 37 | * software, derivative works or modified versions, and any portions | ||
| 38 | * thereof, and that both notices appear in supporting documentation. | ||
| 39 | * | ||
| 40 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 41 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 42 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 43 | * | ||
| 44 | * Carnegie Mellon requests users of this software to return to | ||
| 45 | * | ||
| 46 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 47 | * School of Computer Science | ||
| 48 | * Carnegie Mellon University | ||
| 49 | * Pittsburgh PA 15213-3890 | ||
| 50 | * | ||
| 51 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 52 | * the rights to redistribute these changes. | ||
| 53 | */ | ||
| 54 | /*	File:	machine.h | ||
| 55 | *	Author:	Avadis Tevanian, Jr. | ||
| 56 | *	Date:	1986 | ||
| 57 | * | ||
| 58 | *	Machine independent machine abstraction. | ||
| 59 | */ | ||
| 60 | |||
| 61 | #ifndef _MACH_MACHINE_H_ | ||
| 62 | #define _MACH_MACHINE_H_ | ||
| 63 | |||
| 64 | #ifndef __ASSEMBLER__ | ||
| 65 | |||
| 66 | #include <stdint.h> | ||
| 67 | #include <mach/machine/vm_types.h> | ||
| 68 | #include <mach/boolean.h> | ||
| 69 | |||
| 70 | typedef integer_t cpu_type_t; | ||
| 71 | typedef integer_t cpu_subtype_t; | ||
| 72 | typedef integer_t cpu_threadtype_t; | ||
| 73 | |||
| 74 | #define CPU_STATE_MAX 4 | ||
| 75 | |||
| 76 | #define CPU_STATE_USER 0 | ||
| 77 | #define CPU_STATE_SYSTEM 1 | ||
| 78 | #define CPU_STATE_IDLE 2 | ||
| 79 | #define CPU_STATE_NICE 3 | ||
| 80 | |||
| 81 | |||
| 82 | |||
| 83 | /* | ||
| 84 | * Capability bits used in the definition of cpu_type. | ||
| 85 | */ | ||
| 86 | #define CPU_ARCH_MASK 0xff000000 /* mask for architecture bits */ | ||
| 87 | #define CPU_ARCH_ABI64 0x01000000 /* 64 bit ABI */ | ||
| 88 | #define CPU_ARCH_ABI64_32 0x02000000 /* ABI for 64-bit hardware with 32-bit types; LP32 */ | ||
| 89 | |||
| 90 | /* | ||
| 91 | *	Machine types known by all. | ||
| 92 | */ | ||
| 93 | |||
| 94 | #define CPU_TYPE_ANY ((cpu_type_t) -1) | ||
| 95 | |||
| 96 | #define CPU_TYPE_VAX ((cpu_type_t) 1) | ||
| 97 | /* skip				((cpu_type_t) 2)	*/ | ||
| 98 | /* skip				((cpu_type_t) 3)	*/ | ||
| 99 | /* skip				((cpu_type_t) 4)	*/ | ||
| 100 | /* skip				((cpu_type_t) 5)	*/ | ||
| 101 | #define CPU_TYPE_MC680x0 ((cpu_type_t) 6) | ||
| 102 | #define CPU_TYPE_X86 ((cpu_type_t) 7) | ||
| 103 | #define CPU_TYPE_I386 CPU_TYPE_X86 /* compatibility */ | ||
| 104 | #define CPU_TYPE_X86_64 (CPU_TYPE_X86 | CPU_ARCH_ABI64) | ||
| 105 | |||
| 106 | /* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/ | ||
| 107 | /* skip ((cpu_type_t) 9)	*/ | ||
| 108 | #define CPU_TYPE_MC98000 ((cpu_type_t) 10) | ||
| 109 | #define CPU_TYPE_HPPA ((cpu_type_t) 11) | ||
| 110 | #define CPU_TYPE_ARM ((cpu_type_t) 12) | ||
| 111 | #define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64) | ||
| 112 | #define CPU_TYPE_ARM64_32 (CPU_TYPE_ARM | CPU_ARCH_ABI64_32) | ||
| 113 | #define CPU_TYPE_MC88000 ((cpu_type_t) 13) | ||
| 114 | #define CPU_TYPE_SPARC ((cpu_type_t) 14) | ||
| 115 | #define CPU_TYPE_I860 ((cpu_type_t) 15) | ||
| 116 | /* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/ | ||
| 117 | /* skip				((cpu_type_t) 17)	*/ | ||
| 118 | #define CPU_TYPE_POWERPC ((cpu_type_t) 18) | ||
| 119 | #define CPU_TYPE_POWERPC64 (CPU_TYPE_POWERPC | CPU_ARCH_ABI64) | ||
| 120 | /* skip				((cpu_type_t) 19)	*/ | ||
| 121 | |||
| 122 | /* | ||
| 123 | *	Machine subtypes (these are defined here, instead of in a machine | ||
| 124 | *	dependent directory, so that any program can get all definitions | ||
| 125 | *	regardless of where is it compiled). | ||
| 126 | */ | ||
| 127 | |||
| 128 | /* | ||
| 129 | * Capability bits used in the definition of cpu_subtype. | ||
| 130 | */ | ||
| 131 | #define CPU_SUBTYPE_MASK 0xff000000 /* mask for feature flags */ | ||
| 132 | #define CPU_SUBTYPE_LIB64 0x80000000 /* 64 bit libraries */ | ||
| 133 | |||
| 134 | |||
| 135 | /* | ||
| 136 | *	Object files that are hand-crafted to run on any | ||
| 137 | *	implementation of an architecture are tagged with | ||
| 138 | *	CPU_SUBTYPE_MULTIPLE. This functions essentially the same as | ||
| 139 | *	the "ALL" subtype of an architecture except that it allows us | ||
| 140 | *	to easily find object files that may need to be modified | ||
| 141 | *	whenever a new implementation of an architecture comes out. | ||
| 142 | * | ||
| 143 | *	It is the responsibility of the implementor to make sure the | ||
| 144 | *	software handles unsupported implementations elegantly. | ||
| 145 | */ | ||
| 146 | #define CPU_SUBTYPE_MULTIPLE ((cpu_subtype_t) -1) | ||
| 147 | #define CPU_SUBTYPE_LITTLE_ENDIAN ((cpu_subtype_t) 0) | ||
| 148 | #define CPU_SUBTYPE_BIG_ENDIAN ((cpu_subtype_t) 1) | ||
| 149 | |||
| 150 | /* | ||
| 151 | * Machine threadtypes. | ||
| 152 | * This is none - not defined - for most machine types/subtypes. | ||
| 153 | */ | ||
| 154 | #define CPU_THREADTYPE_NONE ((cpu_threadtype_t) 0) | ||
| 155 | |||
| 156 | /* | ||
| 157 | *	VAX subtypes (these do *not* necessary conform to the actual cpu | ||
| 158 | *	ID assigned by DEC available via the SID register). | ||
| 159 | */ | ||
| 160 | |||
| 161 | #define CPU_SUBTYPE_VAX_ALL ((cpu_subtype_t) 0) | ||
| 162 | #define CPU_SUBTYPE_VAX780 ((cpu_subtype_t) 1) | ||
| 163 | #define CPU_SUBTYPE_VAX785 ((cpu_subtype_t) 2) | ||
| 164 | #define CPU_SUBTYPE_VAX750 ((cpu_subtype_t) 3) | ||
| 165 | #define CPU_SUBTYPE_VAX730 ((cpu_subtype_t) 4) | ||
| 166 | #define CPU_SUBTYPE_UVAXI ((cpu_subtype_t) 5) | ||
| 167 | #define CPU_SUBTYPE_UVAXII ((cpu_subtype_t) 6) | ||
| 168 | #define CPU_SUBTYPE_VAX8200 ((cpu_subtype_t) 7) | ||
| 169 | #define CPU_SUBTYPE_VAX8500 ((cpu_subtype_t) 8) | ||
| 170 | #define CPU_SUBTYPE_VAX8600 ((cpu_subtype_t) 9) | ||
| 171 | #define CPU_SUBTYPE_VAX8650 ((cpu_subtype_t) 10) | ||
| 172 | #define CPU_SUBTYPE_VAX8800 ((cpu_subtype_t) 11) | ||
| 173 | #define CPU_SUBTYPE_UVAXIII ((cpu_subtype_t) 12) | ||
| 174 | |||
| 175 | /* | ||
| 176 | * 680x0 subtypes | ||
| 177 | * | ||
| 178 | * The subtype definitions here are unusual for historical reasons. | ||
| 179 | * NeXT used to consider 68030 code as generic 68000 code. For | ||
| 180 | * backwards compatability: | ||
| 181 | * | ||
| 182 | *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code | ||
| 183 | *	compatability. | ||
| 184 | * | ||
| 185 | *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same | ||
| 186 | *	subtype as CPU_SUBTYPE_MC68030 for binary comatability. | ||
| 187 | * | ||
| 188 | *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object | ||
| 189 | *	files to be tagged as containing 68030-specific instructions. | ||
| 190 | */ | ||
| 191 | |||
| 192 | #define CPU_SUBTYPE_MC680x0_ALL ((cpu_subtype_t) 1) | ||
| 193 | #define CPU_SUBTYPE_MC68030 ((cpu_subtype_t) 1) /* compat */ | ||
| 194 | #define CPU_SUBTYPE_MC68040 ((cpu_subtype_t) 2) | ||
| 195 | #define CPU_SUBTYPE_MC68030_ONLY ((cpu_subtype_t) 3) | ||
| 196 | |||
| 197 | /* | ||
| 198 | *	I386 subtypes | ||
| 199 | */ | ||
| 200 | |||
| 201 | #define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4)) | ||
| 202 | |||
| 203 | #define CPU_SUBTYPE_I386_ALL CPU_SUBTYPE_INTEL(3, 0) | ||
| 204 | #define CPU_SUBTYPE_386 CPU_SUBTYPE_INTEL(3, 0) | ||
| 205 | #define CPU_SUBTYPE_486 CPU_SUBTYPE_INTEL(4, 0) | ||
| 206 | #define CPU_SUBTYPE_486SX CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128 | ||
| 207 | #define CPU_SUBTYPE_586 CPU_SUBTYPE_INTEL(5, 0) | ||
| 208 | #define CPU_SUBTYPE_PENT CPU_SUBTYPE_INTEL(5, 0) | ||
| 209 | #define CPU_SUBTYPE_PENTPRO CPU_SUBTYPE_INTEL(6, 1) | ||
| 210 | #define CPU_SUBTYPE_PENTII_M3 CPU_SUBTYPE_INTEL(6, 3) | ||
| 211 | #define CPU_SUBTYPE_PENTII_M5 CPU_SUBTYPE_INTEL(6, 5) | ||
| 212 | #define CPU_SUBTYPE_CELERON CPU_SUBTYPE_INTEL(7, 6) | ||
| 213 | #define CPU_SUBTYPE_CELERON_MOBILE CPU_SUBTYPE_INTEL(7, 7) | ||
| 214 | #define CPU_SUBTYPE_PENTIUM_3 CPU_SUBTYPE_INTEL(8, 0) | ||
| 215 | #define CPU_SUBTYPE_PENTIUM_3_M CPU_SUBTYPE_INTEL(8, 1) | ||
| 216 | #define CPU_SUBTYPE_PENTIUM_3_XEON CPU_SUBTYPE_INTEL(8, 2) | ||
| 217 | #define CPU_SUBTYPE_PENTIUM_M CPU_SUBTYPE_INTEL(9, 0) | ||
| 218 | #define CPU_SUBTYPE_PENTIUM_4 CPU_SUBTYPE_INTEL(10, 0) | ||
| 219 | #define CPU_SUBTYPE_PENTIUM_4_M CPU_SUBTYPE_INTEL(10, 1) | ||
| 220 | #define CPU_SUBTYPE_ITANIUM CPU_SUBTYPE_INTEL(11, 0) | ||
| 221 | #define CPU_SUBTYPE_ITANIUM_2 CPU_SUBTYPE_INTEL(11, 1) | ||
| 222 | #define CPU_SUBTYPE_XEON CPU_SUBTYPE_INTEL(12, 0) | ||
| 223 | #define CPU_SUBTYPE_XEON_MP CPU_SUBTYPE_INTEL(12, 1) | ||
| 224 | |||
| 225 | #define CPU_SUBTYPE_INTEL_FAMILY(x) ((x) & 15) | ||
| 226 | #define CPU_SUBTYPE_INTEL_FAMILY_MAX 15 | ||
| 227 | |||
| 228 | #define CPU_SUBTYPE_INTEL_MODEL(x) ((x) >> 4) | ||
| 229 | #define CPU_SUBTYPE_INTEL_MODEL_ALL 0 | ||
| 230 | |||
| 231 | /* | ||
| 232 | *	X86 subtypes. | ||
| 233 | */ | ||
| 234 | |||
| 235 | #define CPU_SUBTYPE_X86_ALL ((cpu_subtype_t)3) | ||
| 236 | #define CPU_SUBTYPE_X86_64_ALL ((cpu_subtype_t)3) | ||
| 237 | #define CPU_SUBTYPE_X86_ARCH1 ((cpu_subtype_t)4) | ||
| 238 | #define CPU_SUBTYPE_X86_64_H ((cpu_subtype_t)8) /* Haswell feature subset */ | ||
| 239 | |||
| 240 | |||
| 241 | #define CPU_THREADTYPE_INTEL_HTT ((cpu_threadtype_t) 1) | ||
| 242 | |||
| 243 | /* | ||
| 244 | *	Mips subtypes. | ||
| 245 | */ | ||
| 246 | |||
| 247 | #define CPU_SUBTYPE_MIPS_ALL ((cpu_subtype_t) 0) | ||
| 248 | #define CPU_SUBTYPE_MIPS_R2300 ((cpu_subtype_t) 1) | ||
| 249 | #define CPU_SUBTYPE_MIPS_R2600 ((cpu_subtype_t) 2) | ||
| 250 | #define CPU_SUBTYPE_MIPS_R2800 ((cpu_subtype_t) 3) | ||
| 251 | #define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4) /* pmax */ | ||
| 252 | #define CPU_SUBTYPE_MIPS_R2000 ((cpu_subtype_t) 5) | ||
| 253 | #define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6) /* 3max */ | ||
| 254 | #define CPU_SUBTYPE_MIPS_R3000 ((cpu_subtype_t) 7) | ||
| 255 | |||
| 256 | /* | ||
| 257 | *	MC98000 (PowerPC) subtypes | ||
| 258 | */ | ||
| 259 | #define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0) | ||
| 260 | #define CPU_SUBTYPE_MC98601 ((cpu_subtype_t) 1) | ||
| 261 | |||
| 262 | /* | ||
| 263 | *	HPPA subtypes for Hewlett-Packard HP-PA family of | ||
| 264 | *	risc processors. Port by NeXT to 700 series. | ||
| 265 | */ | ||
| 266 | |||
| 267 | #define CPU_SUBTYPE_HPPA_ALL ((cpu_subtype_t) 0) | ||
| 268 | #define CPU_SUBTYPE_HPPA_7100 ((cpu_subtype_t) 0) /* compat */ | ||
| 269 | #define CPU_SUBTYPE_HPPA_7100LC ((cpu_subtype_t) 1) | ||
| 270 | |||
| 271 | /* | ||
| 272 | *	MC88000 subtypes. | ||
| 273 | */ | ||
| 274 | #define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0) | ||
| 275 | #define CPU_SUBTYPE_MC88100 ((cpu_subtype_t) 1) | ||
| 276 | #define CPU_SUBTYPE_MC88110 ((cpu_subtype_t) 2) | ||
| 277 | |||
| 278 | /* | ||
| 279 | *	SPARC subtypes | ||
| 280 | */ | ||
| 281 | #define CPU_SUBTYPE_SPARC_ALL ((cpu_subtype_t) 0) | ||
| 282 | |||
| 283 | /* | ||
| 284 | *	I860 subtypes | ||
| 285 | */ | ||
| 286 | #define CPU_SUBTYPE_I860_ALL ((cpu_subtype_t) 0) | ||
| 287 | #define CPU_SUBTYPE_I860_860 ((cpu_subtype_t) 1) | ||
| 288 | |||
| 289 | /* | ||
| 290 | *	PowerPC subtypes | ||
| 291 | */ | ||
| 292 | #define CPU_SUBTYPE_POWERPC_ALL ((cpu_subtype_t) 0) | ||
| 293 | #define CPU_SUBTYPE_POWERPC_601 ((cpu_subtype_t) 1) | ||
| 294 | #define CPU_SUBTYPE_POWERPC_602 ((cpu_subtype_t) 2) | ||
| 295 | #define CPU_SUBTYPE_POWERPC_603 ((cpu_subtype_t) 3) | ||
| 296 | #define CPU_SUBTYPE_POWERPC_603e ((cpu_subtype_t) 4) | ||
| 297 | #define CPU_SUBTYPE_POWERPC_603ev ((cpu_subtype_t) 5) | ||
| 298 | #define CPU_SUBTYPE_POWERPC_604 ((cpu_subtype_t) 6) | ||
| 299 | #define CPU_SUBTYPE_POWERPC_604e ((cpu_subtype_t) 7) | ||
| 300 | #define CPU_SUBTYPE_POWERPC_620 ((cpu_subtype_t) 8) | ||
| 301 | #define CPU_SUBTYPE_POWERPC_750 ((cpu_subtype_t) 9) | ||
| 302 | #define CPU_SUBTYPE_POWERPC_7400 ((cpu_subtype_t) 10) | ||
| 303 | #define CPU_SUBTYPE_POWERPC_7450 ((cpu_subtype_t) 11) | ||
| 304 | #define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100) | ||
| 305 | |||
| 306 | /* | ||
| 307 | *	ARM subtypes | ||
| 308 | */ | ||
| 309 | #define CPU_SUBTYPE_ARM_ALL ((cpu_subtype_t) 0) | ||
| 310 | #define CPU_SUBTYPE_ARM_V4T ((cpu_subtype_t) 5) | ||
| 311 | #define CPU_SUBTYPE_ARM_V6 ((cpu_subtype_t) 6) | ||
| 312 | #define CPU_SUBTYPE_ARM_V5TEJ ((cpu_subtype_t) 7) | ||
| 313 | #define CPU_SUBTYPE_ARM_XSCALE ((cpu_subtype_t) 8) | ||
| 314 | #define CPU_SUBTYPE_ARM_V7 ((cpu_subtype_t) 9) /* ARMv7-A and ARMv7-R */ | ||
| 315 | #define CPU_SUBTYPE_ARM_V7F ((cpu_subtype_t) 10) /* Cortex A9 */ | ||
| 316 | #define CPU_SUBTYPE_ARM_V7S ((cpu_subtype_t) 11) /* Swift */ | ||
| 317 | #define CPU_SUBTYPE_ARM_V7K ((cpu_subtype_t) 12) | ||
| 318 | #define CPU_SUBTYPE_ARM_V8 ((cpu_subtype_t) 13) | ||
| 319 | #define CPU_SUBTYPE_ARM_V6M ((cpu_subtype_t) 14) /* Not meant to be run under xnu */ | ||
| 320 | #define CPU_SUBTYPE_ARM_V7M ((cpu_subtype_t) 15) /* Not meant to be run under xnu */ | ||
| 321 | #define CPU_SUBTYPE_ARM_V7EM ((cpu_subtype_t) 16) /* Not meant to be run under xnu */ | ||
| 322 | #define CPU_SUBTYPE_ARM_V8M ((cpu_subtype_t) 17) /* Not meant to be run under xnu */ | ||
| 323 | |||
| 324 | /* | ||
| 325 | * ARM64 subtypes | ||
| 326 | */ | ||
| 327 | #define CPU_SUBTYPE_ARM64_ALL ((cpu_subtype_t) 0) | ||
| 328 | #define CPU_SUBTYPE_ARM64_V8 ((cpu_subtype_t) 1) | ||
| 329 | #define CPU_SUBTYPE_ARM64E ((cpu_subtype_t) 2) | ||
| 330 | |||
| 331 | /* CPU subtype feature flags for ptrauth on arm64e platforms */ | ||
| 332 | #define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000 | ||
| 333 | #define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24) | ||
| 334 | |||
| 335 | /* | ||
| 336 | * ARM64_32 subtypes | ||
| 337 | */ | ||
| 338 | #define CPU_SUBTYPE_ARM64_32_ALL ((cpu_subtype_t) 0) | ||
| 339 | #define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1) | ||
| 340 | |||
| 341 | #endif /* !__ASSEMBLER__ */ | ||
| 342 | |||
| 343 | /* | ||
| 344 | *	CPU families (sysctl hw.cpufamily) | ||
| 345 | * | ||
| 346 | * These are meant to identify the CPU's marketing name - an | ||
| 347 | * application can map these to (possibly) localized strings. | ||
| 348 | * NB: the encodings of the CPU families are intentionally arbitrary. | ||
| 349 | * There is no ordering, and you should never try to deduce whether | ||
| 350 | * or not some feature is available based on the family. | ||
| 351 | * Use feature flags (eg, hw.optional.altivec) to test for optional | ||
| 352 | * functionality. | ||
| 353 | */ | ||
| 354 | #define CPUFAMILY_UNKNOWN 0 | ||
| 355 | #define CPUFAMILY_POWERPC_G3 0xcee41549 | ||
| 356 | #define CPUFAMILY_POWERPC_G4 0x77c184ae | ||
| 357 | #define CPUFAMILY_POWERPC_G5 0xed76d8aa | ||
| 358 | #define CPUFAMILY_INTEL_6_13 0xaa33392b | ||
| 359 | #define CPUFAMILY_INTEL_PENRYN 0x78ea4fbc | ||
| 360 | #define CPUFAMILY_INTEL_NEHALEM 0x6b5a4cd2 | ||
| 361 | #define CPUFAMILY_INTEL_WESTMERE 0x573b5eec | ||
| 362 | #define CPUFAMILY_INTEL_SANDYBRIDGE 0x5490b78c | ||
| 363 | #define CPUFAMILY_INTEL_IVYBRIDGE 0x1f65e835 | ||
| 364 | #define CPUFAMILY_INTEL_HASWELL 0x10b282dc | ||
| 365 | #define CPUFAMILY_INTEL_BROADWELL 0x582ed09c | ||
| 366 | #define CPUFAMILY_INTEL_SKYLAKE 0x37fc219f | ||
| 367 | #define CPUFAMILY_INTEL_KABYLAKE 0x0f817246 | ||
| 368 | #if !defined(RC_HIDE_XNU_ICELAKE) | ||
| 369 | #define CPUFAMILY_INTEL_ICELAKE 0x38435547 | ||
| 370 | #endif /* not RC_HIDE_XNU_ICELAKE */ | ||
| 371 | #if !defined(RC_HIDE_XNU_COMETLAKE) | ||
| 372 | #define CPUFAMILY_INTEL_COMETLAKE 0x1cf8a03e | ||
| 373 | #endif /* not RC_HIDE_XNU_COMETLAKE */ | ||
| 374 | #define CPUFAMILY_ARM_9 0xe73283ae | ||
| 375 | #define CPUFAMILY_ARM_11 0x8ff620d8 | ||
| 376 | #define CPUFAMILY_ARM_XSCALE 0x53b005f5 | ||
| 377 | #define CPUFAMILY_ARM_12 0xbd1b0ae9 | ||
| 378 | #define CPUFAMILY_ARM_13 0x0cc90e64 | ||
| 379 | #define CPUFAMILY_ARM_14 0x96077ef1 | ||
| 380 | #define CPUFAMILY_ARM_15 0xa8511bca | ||
| 381 | #define CPUFAMILY_ARM_SWIFT 0x1e2d6381 | ||
| 382 | #define CPUFAMILY_ARM_CYCLONE 0x37a09642 | ||
| 383 | #define CPUFAMILY_ARM_TYPHOON 0x2c91a47e | ||
| 384 | #define CPUFAMILY_ARM_TWISTER 0x92fb37c8 | ||
| 385 | #define CPUFAMILY_ARM_HURRICANE 0x67ceee93 | ||
| 386 | #define CPUFAMILY_ARM_MONSOON_MISTRAL 0xe81e7ef6 | ||
| 387 | #define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07d34b9f | ||
| 388 | #define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2 | ||
| 389 | |||
| 390 | /* The following synonyms are deprecated: */ | ||
| 391 | #define CPUFAMILY_INTEL_6_23 CPUFAMILY_INTEL_PENRYN | ||
| 392 | #define CPUFAMILY_INTEL_6_26 CPUFAMILY_INTEL_NEHALEM | ||
| 393 | |||
| 394 | |||
| 395 | #endif /* _MACH_MACHINE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/boolean.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_BOOLEAN_H_ | ||
| 30 | #define _MACH_MACHINE_BOOLEAN_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/boolean.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_BOOLEAN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/exception.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_EXCEPTION_H_ | ||
| 30 | #define _MACH_MACHINE_EXCEPTION_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/exception.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_EXCEPTION_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/kern_return.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_KERN_RETURN_H_ | ||
| 30 | #define _MACH_MACHINE_KERN_RETURN_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/kern_return.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_KERN_RETURN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/thread_state.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_THREAD_STATE_H_ | ||
| 30 | #define _MACH_MACHINE_THREAD_STATE_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/thread_state.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_THREAD_STATE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/thread_status.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_THREAD_STATUS_H_ | ||
| 30 | #define _MACH_MACHINE_THREAD_STATUS_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/thread_status.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_THREAD_STATUS_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/machine/vm_types.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MACH_MACHINE_VM_TYPES_H_ | ||
| 30 | #define _MACH_MACHINE_VM_TYPES_H_ | ||
| 31 | |||
| 32 | #if defined (__i386__) || defined(__x86_64__) | ||
| 33 | #include "mach/i386/vm_types.h" | ||
| 34 | #else | ||
| 35 | #error architecture not supported | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* _MACH_MACHINE_VM_TYPES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/message.h created+902| ... | @@ -0,0 +1,902 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | * NOTICE: This file was modified by McAfee Research in 2004 to introduce | ||
| 58 | * support for mandatory and extensible security protections. This notice | ||
| 59 | * is included in support of clause 2.2 (b) of the Apple Public License, | ||
| 60 | * Version 2.0. | ||
| 61 | * Copyright (c) 2005 SPARTA, Inc. | ||
| 62 | */ | ||
| 63 | /* | ||
| 64 | */ | ||
| 65 | /* | ||
| 66 | *	File:	mach/message.h | ||
| 67 | * | ||
| 68 | *	Mach IPC message and primitive function definitions. | ||
| 69 | */ | ||
| 70 | |||
| 71 | #ifndef _MACH_MESSAGE_H_ | ||
| 72 | #define _MACH_MESSAGE_H_ | ||
| 73 | |||
| 74 | #include <stdint.h> | ||
| 75 | #include <mach/port.h> | ||
| 76 | #include <mach/boolean.h> | ||
| 77 | #include <mach/kern_return.h> | ||
| 78 | #include <mach/machine/vm_types.h> | ||
| 79 | |||
| 80 | #include <sys/cdefs.h> | ||
| 81 | #include <sys/appleapiopts.h> | ||
| 82 | #include <Availability.h> | ||
| 83 | |||
| 84 | /* | ||
| 85 | * The timeout mechanism uses mach_msg_timeout_t values, | ||
| 86 | * passed by value. The timeout units are milliseconds. | ||
| 87 | * It is controlled with the MACH_SEND_TIMEOUT | ||
| 88 | * and MACH_RCV_TIMEOUT options. | ||
| 89 | */ | ||
| 90 | |||
| 91 | typedef natural_t mach_msg_timeout_t; | ||
| 92 | |||
| 93 | /* | ||
| 94 | * The value to be used when there is no timeout. | ||
| 95 | * (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.) | ||
| 96 | */ | ||
| 97 | |||
| 98 | #define MACH_MSG_TIMEOUT_NONE ((mach_msg_timeout_t) 0) | ||
| 99 | |||
| 100 | /* | ||
| 101 | * The kernel uses MACH_MSGH_BITS_COMPLEX as a hint. If it isn't on, it | ||
| 102 | * assumes the body of the message doesn't contain port rights or OOL | ||
| 103 | * data. The field is set in received messages. A user task must | ||
| 104 | * use caution in interpreting the body of a message if the bit isn't | ||
| 105 | * on, because the mach_msg_type's in the body might "lie" about the | ||
| 106 | * contents. If the bit isn't on, but the mach_msg_types | ||
| 107 | * in the body specify rights or OOL data, the behavior is undefined. | ||
| 108 | * (Ie, an error may or may not be produced.) | ||
| 109 | * | ||
| 110 | * The value of MACH_MSGH_BITS_REMOTE determines the interpretation | ||
| 111 | * of the msgh_remote_port field. It is handled like a msgt_name, | ||
| 112 | * but must result in a send or send-once type right. | ||
| 113 | * | ||
| 114 | * The value of MACH_MSGH_BITS_LOCAL determines the interpretation | ||
| 115 | * of the msgh_local_port field. It is handled like a msgt_name, | ||
| 116 | * and also must result in a send or send-once type right. | ||
| 117 | * | ||
| 118 | * The value of MACH_MSGH_BITS_VOUCHER determines the interpretation | ||
| 119 | * of the msgh_voucher_port field. It is handled like a msgt_name, | ||
| 120 | * but must result in a send right (and the msgh_voucher_port field | ||
| 121 | * must be the name of a send right to a Mach voucher kernel object. | ||
| 122 | * | ||
| 123 | * MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote | ||
| 124 | * and local fields, into a single value suitable for msgh_bits. | ||
| 125 | * | ||
| 126 | * MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally. | ||
| 127 | * | ||
| 128 | * The unused bits should be zero and are reserved for the kernel | ||
| 129 | * or for future interface expansion. | ||
| 130 | */ | ||
| 131 | |||
| 132 | #define MACH_MSGH_BITS_ZERO 0x00000000 | ||
| 133 | |||
| 134 | #define MACH_MSGH_BITS_REMOTE_MASK 0x0000001f | ||
| 135 | #define MACH_MSGH_BITS_LOCAL_MASK 0x00001f00 | ||
| 136 | #define MACH_MSGH_BITS_VOUCHER_MASK 0x001f0000 | ||
| 137 | |||
| 138 | #define MACH_MSGH_BITS_PORTS_MASK \ | ||
| 139 | 	 (MACH_MSGH_BITS_REMOTE_MASK | \ | ||
| 140 | 	 MACH_MSGH_BITS_LOCAL_MASK | \ | ||
| 141 | 	 MACH_MSGH_BITS_VOUCHER_MASK) | ||
| 142 | |||
| 143 | #define MACH_MSGH_BITS_COMPLEX 0x80000000U /* message is complex */ | ||
| 144 | |||
| 145 | #define MACH_MSGH_BITS_USER 0x801f1f1fU /* allowed bits user->kernel */ | ||
| 146 | |||
| 147 | #define MACH_MSGH_BITS_RAISEIMP 0x20000000U /* importance raised due to msg */ | ||
| 148 | #define MACH_MSGH_BITS_DENAP MACH_MSGH_BITS_RAISEIMP | ||
| 149 | |||
| 150 | #define MACH_MSGH_BITS_IMPHOLDASRT 0x10000000U /* assertion help, userland private */ | ||
| 151 | #define MACH_MSGH_BITS_DENAPHOLDASRT MACH_MSGH_BITS_IMPHOLDASRT | ||
| 152 | |||
| 153 | #define MACH_MSGH_BITS_CIRCULAR 0x10000000U /* message circular, kernel private */ | ||
| 154 | |||
| 155 | #define MACH_MSGH_BITS_USED 0xb01f1f1fU | ||
| 156 | |||
| 157 | /* setter macros for the bits */ | ||
| 158 | #define MACH_MSGH_BITS(remote, local) /* legacy */ \ | ||
| 159 | 	 ((remote) | ((local) << 8)) | ||
| 160 | #define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher) \ | ||
| 161 | 	(((remote) & MACH_MSGH_BITS_REMOTE_MASK) | \ | ||
| 162 | 	 (((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) | \ | ||
| 163 | 	 (((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK)) | ||
| 164 | #define MACH_MSGH_BITS_SET(remote, local, voucher, other) \ | ||
| 165 | 	(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \ | ||
| 166 | 	 | ((other) &~ MACH_MSGH_BITS_PORTS_MASK)) | ||
| 167 | |||
| 168 | /* getter macros for pulling values out of the bits field */ | ||
| 169 | #define MACH_MSGH_BITS_REMOTE(bits) \ | ||
| 170 | 	 ((bits) & MACH_MSGH_BITS_REMOTE_MASK) | ||
| 171 | #define MACH_MSGH_BITS_LOCAL(bits) \ | ||
| 172 | 	 (((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8) | ||
| 173 | #define MACH_MSGH_BITS_VOUCHER(bits) \ | ||
| 174 | 	 (((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16) | ||
| 175 | #define MACH_MSGH_BITS_PORTS(bits) \ | ||
| 176 | 	((bits) & MACH_MSGH_BITS_PORTS_MASK) | ||
| 177 | #define MACH_MSGH_BITS_OTHER(bits) \ | ||
| 178 | 	 ((bits) &~ MACH_MSGH_BITS_PORTS_MASK) | ||
| 179 | |||
| 180 | /* checking macros */ | ||
| 181 | #define MACH_MSGH_BITS_HAS_REMOTE(bits) \ | ||
| 182 | 	(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO) | ||
| 183 | #define MACH_MSGH_BITS_HAS_LOCAL(bits) \ | ||
| 184 | 	(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO) | ||
| 185 | #define MACH_MSGH_BITS_HAS_VOUCHER(bits) \ | ||
| 186 | 	(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO) | ||
| 187 | #define MACH_MSGH_BITS_IS_COMPLEX(bits) \ | ||
| 188 | 	(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO) | ||
| 189 | |||
| 190 | /* importance checking macros */ | ||
| 191 | #define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits) \ | ||
| 192 | 	(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO) | ||
| 193 | #define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits) \ | ||
| 194 | 	(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO) | ||
| 195 | |||
| 196 | /* | ||
| 197 | * Every message starts with a message header. | ||
| 198 | * Following the message header, if the message is complex, are a count | ||
| 199 | * of type descriptors and the type descriptors themselves | ||
| 200 | * (mach_msg_descriptor_t). The size of the message must be specified in | ||
| 201 | * bytes, and includes the message header, descriptor count, descriptors, | ||
| 202 | * and inline data. | ||
| 203 | * | ||
| 204 | * The msgh_remote_port field specifies the destination of the message. | ||
| 205 | * It must specify a valid send or send-once right for a port. | ||
| 206 | * | ||
| 207 | * The msgh_local_port field specifies a "reply port". Normally, | ||
| 208 | * This field carries a send-once right that the receiver will use | ||
| 209 | * to reply to the message. It may carry the values MACH_PORT_NULL, | ||
| 210 | * MACH_PORT_DEAD, a send-once right, or a send right. | ||
| 211 | * | ||
| 212 | * The msgh_voucher_port field specifies a Mach voucher port. Only | ||
| 213 | * send rights to kernel-implemented Mach Voucher kernel objects in | ||
| 214 | * addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed. | ||
| 215 | * | ||
| 216 | * The msgh_id field is uninterpreted by the message primitives. | ||
| 217 | * It normally carries information specifying the format | ||
| 218 | * or meaning of the message. | ||
| 219 | */ | ||
| 220 | |||
| 221 | typedef unsigned int mach_msg_bits_t; | ||
| 222 | typedef natural_t mach_msg_size_t; | ||
| 223 | typedef integer_t mach_msg_id_t; | ||
| 224 | |||
| 225 | #define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0 | ||
| 226 | |||
| 227 | typedef unsigned int mach_msg_priority_t; | ||
| 228 | |||
| 229 | #define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0 | ||
| 230 | |||
| 231 | typedef unsigned int mach_msg_type_name_t; | ||
| 232 | |||
| 233 | #define MACH_MSG_TYPE_MOVE_RECEIVE 16 /* Must hold receive right */ | ||
| 234 | #define MACH_MSG_TYPE_MOVE_SEND 17 /* Must hold send right(s) */ | ||
| 235 | #define MACH_MSG_TYPE_MOVE_SEND_ONCE 18 /* Must hold sendonce right */ | ||
| 236 | #define MACH_MSG_TYPE_COPY_SEND 19 /* Must hold send right(s) */ | ||
| 237 | #define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */ | ||
| 238 | #define MACH_MSG_TYPE_MAKE_SEND_ONCE 21 /* Must hold receive right */ | ||
| 239 | #define MACH_MSG_TYPE_COPY_RECEIVE 22 /* NOT VALID */ | ||
| 240 | #define MACH_MSG_TYPE_DISPOSE_RECEIVE 24 /* must hold receive right */ | ||
| 241 | #define MACH_MSG_TYPE_DISPOSE_SEND 25 /* must hold send right(s) */ | ||
| 242 | #define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26 /* must hold sendonce right */ | ||
| 243 | |||
| 244 | typedef unsigned int mach_msg_copy_options_t; | ||
| 245 | |||
| 246 | #define MACH_MSG_PHYSICAL_COPY 0 | ||
| 247 | #define MACH_MSG_VIRTUAL_COPY 1 | ||
| 248 | #define MACH_MSG_ALLOCATE 2 | ||
| 249 | #define MACH_MSG_OVERWRITE 3 /* deprecated */ | ||
| 250 | #ifdef MACH_KERNEL | ||
| 251 | #define MACH_MSG_KALLOC_COPY_T 4 | ||
| 252 | #endif /* MACH_KERNEL */ | ||
| 253 | |||
| 254 | #define MACH_MSG_GUARD_FLAGS_NONE 0x0000 | ||
| 255 | #define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE 0x0001 /* Move the receive right and mark it as immovable */ | ||
| 256 | #define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND 0x0002 /* Verify that the port is unguarded */ | ||
| 257 | #define MACH_MSG_GUARD_FLAGS_MASK 0x0003 /* Valid flag bits */ | ||
| 258 | typedef unsigned int mach_msg_guard_flags_t; | ||
| 259 | |||
| 260 | /* | ||
| 261 | * In a complex mach message, the mach_msg_header_t is followed by | ||
| 262 | * a descriptor count, then an array of that number of descriptors | ||
| 263 | * (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t | ||
| 264 | * (which any descriptor can be cast to) indicates the flavor of the | ||
| 265 | * descriptor. | ||
| 266 | * | ||
| 267 | * Note that in LP64, the various types of descriptors are no longer all | ||
| 268 | * the same size as mach_msg_descriptor_t, so the array cannot be indexed | ||
| 269 | * as expected. | ||
| 270 | */ | ||
| 271 | |||
| 272 | typedef unsigned int mach_msg_descriptor_type_t; | ||
| 273 | |||
| 274 | #define MACH_MSG_PORT_DESCRIPTOR 0 | ||
| 275 | #define MACH_MSG_OOL_DESCRIPTOR 1 | ||
| 276 | #define MACH_MSG_OOL_PORTS_DESCRIPTOR 2 | ||
| 277 | #define MACH_MSG_OOL_VOLATILE_DESCRIPTOR 3 | ||
| 278 | #define MACH_MSG_GUARDED_PORT_DESCRIPTOR 4 | ||
| 279 | |||
| 280 | #pragma pack(push, 4) | ||
| 281 | |||
| 282 | typedef struct{ | ||
| 283 | 	natural_t pad1; | ||
| 284 | 	mach_msg_size_t pad2; | ||
| 285 | 	unsigned int pad3 : 24; | ||
| 286 | 	mach_msg_descriptor_type_t type : 8; | ||
| 287 | } mach_msg_type_descriptor_t; | ||
| 288 | |||
| 289 | typedef struct{ | ||
| 290 | 	mach_port_t name; | ||
| 291 | // Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes | ||
| 292 | 	mach_msg_size_t pad1; | ||
| 293 | 	unsigned int pad2 : 16; | ||
| 294 | 	mach_msg_type_name_t disposition : 8; | ||
| 295 | 	mach_msg_descriptor_type_t type : 8; | ||
| 296 | } mach_msg_port_descriptor_t; | ||
| 297 | |||
| 298 | typedef struct{ | ||
| 299 | 	uint32_t address; | ||
| 300 | 	mach_msg_size_t size; | ||
| 301 | 	boolean_t deallocate: 8; | ||
| 302 | 	mach_msg_copy_options_t copy: 8; | ||
| 303 | 	unsigned int pad1: 8; | ||
| 304 | 	mach_msg_descriptor_type_t type: 8; | ||
| 305 | } mach_msg_ool_descriptor32_t; | ||
| 306 | |||
| 307 | typedef struct{ | ||
| 308 | 	uint64_t address; | ||
| 309 | 	boolean_t deallocate: 8; | ||
| 310 | 	mach_msg_copy_options_t copy: 8; | ||
| 311 | 	unsigned int pad1: 8; | ||
| 312 | 	mach_msg_descriptor_type_t type: 8; | ||
| 313 | 	mach_msg_size_t size; | ||
| 314 | } mach_msg_ool_descriptor64_t; | ||
| 315 | |||
| 316 | typedef struct{ | ||
| 317 | 	void* address; | ||
| 318 | #if !defined(__LP64__) | ||
| 319 | 	mach_msg_size_t size; | ||
| 320 | #endif | ||
| 321 | 	boolean_t deallocate: 8; | ||
| 322 | 	mach_msg_copy_options_t copy: 8; | ||
| 323 | 	unsigned int pad1: 8; | ||
| 324 | 	mach_msg_descriptor_type_t type: 8; | ||
| 325 | #if defined(__LP64__) | ||
| 326 | 	mach_msg_size_t size; | ||
| 327 | #endif | ||
| 328 | } mach_msg_ool_descriptor_t; | ||
| 329 | |||
| 330 | typedef struct{ | ||
| 331 | 	uint32_t address; | ||
| 332 | 	mach_msg_size_t count; | ||
| 333 | 	boolean_t deallocate: 8; | ||
| 334 | 	mach_msg_copy_options_t copy: 8; | ||
| 335 | 	mach_msg_type_name_t disposition : 8; | ||
| 336 | 	mach_msg_descriptor_type_t type : 8; | ||
| 337 | } mach_msg_ool_ports_descriptor32_t; | ||
| 338 | |||
| 339 | typedef struct{ | ||
| 340 | 	uint64_t address; | ||
| 341 | 	boolean_t deallocate: 8; | ||
| 342 | 	mach_msg_copy_options_t copy: 8; | ||
| 343 | 	mach_msg_type_name_t disposition : 8; | ||
| 344 | 	mach_msg_descriptor_type_t type : 8; | ||
| 345 | 	mach_msg_size_t count; | ||
| 346 | } mach_msg_ool_ports_descriptor64_t; | ||
| 347 | |||
| 348 | typedef struct{ | ||
| 349 | 	void* address; | ||
| 350 | #if !defined(__LP64__) | ||
| 351 | 	mach_msg_size_t count; | ||
| 352 | #endif | ||
| 353 | 	boolean_t deallocate: 8; | ||
| 354 | 	mach_msg_copy_options_t copy: 8; | ||
| 355 | 	mach_msg_type_name_t disposition : 8; | ||
| 356 | 	mach_msg_descriptor_type_t type : 8; | ||
| 357 | #if defined(__LP64__) | ||
| 358 | 	mach_msg_size_t count; | ||
| 359 | #endif | ||
| 360 | } mach_msg_ool_ports_descriptor_t; | ||
| 361 | |||
| 362 | typedef struct{ | ||
| 363 | 	uint32_t context; | ||
| 364 | 	mach_port_name_t name; | ||
| 365 | 	mach_msg_guard_flags_t flags : 16; | ||
| 366 | 	mach_msg_type_name_t disposition : 8; | ||
| 367 | 	mach_msg_descriptor_type_t type : 8; | ||
| 368 | } mach_msg_guarded_port_descriptor32_t; | ||
| 369 | |||
| 370 | typedef struct{ | ||
| 371 | 	uint64_t context; | ||
| 372 | 	mach_msg_guard_flags_t flags : 16; | ||
| 373 | 	mach_msg_type_name_t disposition : 8; | ||
| 374 | 	mach_msg_descriptor_type_t type : 8; | ||
| 375 | 	mach_port_name_t name; | ||
| 376 | } mach_msg_guarded_port_descriptor64_t; | ||
| 377 | |||
| 378 | typedef struct{ | ||
| 379 | 	mach_port_context_t context; | ||
| 380 | #if !defined(__LP64__) | ||
| 381 | 	mach_port_name_t name; | ||
| 382 | #endif | ||
| 383 | 	mach_msg_guard_flags_t flags : 16; | ||
| 384 | 	mach_msg_type_name_t disposition : 8; | ||
| 385 | 	mach_msg_descriptor_type_t type : 8; | ||
| 386 | #if defined(__LP64__) | ||
| 387 | 	mach_port_name_t name; | ||
| 388 | #endif /* defined(__LP64__) */ | ||
| 389 | } mach_msg_guarded_port_descriptor_t; | ||
| 390 | |||
| 391 | /* | ||
| 392 | * LP64support - This union definition is not really | ||
| 393 | * appropriate in LP64 mode because not all descriptors | ||
| 394 | * are of the same size in that environment. | ||
| 395 | */ | ||
| 396 | typedef union{ | ||
| 397 | 	mach_msg_port_descriptor_t port; | ||
| 398 | 	mach_msg_ool_descriptor_t out_of_line; | ||
| 399 | 	mach_msg_ool_ports_descriptor_t ool_ports; | ||
| 400 | 	mach_msg_type_descriptor_t type; | ||
| 401 | 	mach_msg_guarded_port_descriptor_t guarded_port; | ||
| 402 | } mach_msg_descriptor_t; | ||
| 403 | |||
| 404 | typedef struct{ | ||
| 405 | 	mach_msg_size_t msgh_descriptor_count; | ||
| 406 | } mach_msg_body_t; | ||
| 407 | |||
| 408 | #define MACH_MSG_BODY_NULL (mach_msg_body_t *) 0 | ||
| 409 | #define MACH_MSG_DESCRIPTOR_NULL (mach_msg_descriptor_t *) 0 | ||
| 410 | |||
| 411 | typedef struct{ | ||
| 412 | 	mach_msg_bits_t msgh_bits; | ||
| 413 | 	mach_msg_size_t msgh_size; | ||
| 414 | 	mach_port_t msgh_remote_port; | ||
| 415 | 	mach_port_t msgh_local_port; | ||
| 416 | 	mach_port_name_t msgh_voucher_port; | ||
| 417 | 	mach_msg_id_t msgh_id; | ||
| 418 | } mach_msg_header_t; | ||
| 419 | |||
| 420 | #define msgh_reserved msgh_voucher_port | ||
| 421 | #define MACH_MSG_NULL (mach_msg_header_t *) 0 | ||
| 422 | |||
| 423 | typedef struct{ | ||
| 424 | 	mach_msg_header_t header; | ||
| 425 | 	mach_msg_body_t body; | ||
| 426 | } mach_msg_base_t; | ||
| 427 | |||
| 428 | typedef unsigned int mach_msg_trailer_type_t; | ||
| 429 | |||
| 430 | #define MACH_MSG_TRAILER_FORMAT_0 0 | ||
| 431 | |||
| 432 | typedef unsigned int mach_msg_trailer_size_t; | ||
| 433 | typedef char *mach_msg_trailer_info_t; | ||
| 434 | |||
| 435 | typedef struct{ | ||
| 436 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 437 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 438 | } mach_msg_trailer_t; | ||
| 439 | |||
| 440 | /* | ||
| 441 | * The msgh_seqno field carries a sequence number | ||
| 442 | * associated with the received-from port. A port's | ||
| 443 | * sequence number is incremented every time a message | ||
| 444 | * is received from it and included in the received | ||
| 445 | * trailer to help put messages back in sequence if | ||
| 446 | * multiple threads receive and/or process received | ||
| 447 | * messages. | ||
| 448 | */ | ||
| 449 | typedef struct{ | ||
| 450 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 451 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 452 | 	mach_port_seqno_t msgh_seqno; | ||
| 453 | } mach_msg_seqno_trailer_t; | ||
| 454 | |||
| 455 | typedef struct{ | ||
| 456 | 	unsigned int val[2]; | ||
| 457 | } security_token_t; | ||
| 458 | |||
| 459 | typedef struct{ | ||
| 460 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 461 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 462 | 	mach_port_seqno_t msgh_seqno; | ||
| 463 | 	security_token_t msgh_sender; | ||
| 464 | } mach_msg_security_trailer_t; | ||
| 465 | |||
| 466 | /* | ||
| 467 | * The audit token is an opaque token which identifies | ||
| 468 | * Mach tasks and senders of Mach messages as subjects | ||
| 469 | * to the BSM audit system. Only the appropriate BSM | ||
| 470 | * library routines should be used to interpret the | ||
| 471 | * contents of the audit token as the representation | ||
| 472 | * of the subject identity within the token may change | ||
| 473 | * over time. | ||
| 474 | */ | ||
| 475 | typedef struct{ | ||
| 476 | 	unsigned int val[8]; | ||
| 477 | } audit_token_t; | ||
| 478 | |||
| 479 | typedef struct{ | ||
| 480 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 481 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 482 | 	mach_port_seqno_t msgh_seqno; | ||
| 483 | 	security_token_t msgh_sender; | ||
| 484 | 	audit_token_t msgh_audit; | ||
| 485 | } mach_msg_audit_trailer_t; | ||
| 486 | |||
| 487 | typedef struct{ | ||
| 488 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 489 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 490 | 	mach_port_seqno_t msgh_seqno; | ||
| 491 | 	security_token_t msgh_sender; | ||
| 492 | 	audit_token_t msgh_audit; | ||
| 493 | 	mach_port_context_t msgh_context; | ||
| 494 | } mach_msg_context_trailer_t; | ||
| 495 | |||
| 496 | |||
| 497 | |||
| 498 | typedef struct{ | ||
| 499 | 	mach_port_name_t sender; | ||
| 500 | } msg_labels_t; | ||
| 501 | |||
| 502 | /* | ||
| 503 | * Trailer type to pass MAC policy label info as a mach message trailer. | ||
| 504 | * | ||
| 505 | */ | ||
| 506 | |||
| 507 | typedef struct{ | ||
| 508 | 	mach_msg_trailer_type_t msgh_trailer_type; | ||
| 509 | 	mach_msg_trailer_size_t msgh_trailer_size; | ||
| 510 | 	mach_port_seqno_t msgh_seqno; | ||
| 511 | 	security_token_t msgh_sender; | ||
| 512 | 	audit_token_t msgh_audit; | ||
| 513 | 	mach_port_context_t msgh_context; | ||
| 514 | 	int msgh_ad; | ||
| 515 | 	msg_labels_t msgh_labels; | ||
| 516 | } mach_msg_mac_trailer_t; | ||
| 517 | |||
| 518 | |||
| 519 | #define MACH_MSG_TRAILER_MINIMUM_SIZE sizeof(mach_msg_trailer_t) | ||
| 520 | |||
| 521 | /* | ||
| 522 | * These values can change from release to release - but clearly | ||
| 523 | * code cannot request additional trailer elements one was not | ||
| 524 | * compiled to understand. Therefore, it is safe to use this | ||
| 525 | * constant when the same module specified the receive options. | ||
| 526 | * Otherwise, you run the risk that the options requested by | ||
| 527 | * another module may exceed the local modules notion of | ||
| 528 | * MAX_TRAILER_SIZE. | ||
| 529 | */ | ||
| 530 | |||
| 531 | typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t; | ||
| 532 | #define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t)) | ||
| 533 | |||
| 534 | /* | ||
| 535 | * Legacy requirements keep us from ever updating these defines (even | ||
| 536 | * when the format_0 trailers gain new option data fields in the future). | ||
| 537 | * Therefore, they shouldn't be used going forward. Instead, the sizes | ||
| 538 | * should be compared against the specific element size requested using | ||
| 539 | * REQUESTED_TRAILER_SIZE. | ||
| 540 | */ | ||
| 541 | typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t; | ||
| 542 | |||
| 543 | /*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t; | ||
| 544 | */ | ||
| 545 | |||
| 546 | #define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t) | ||
| 547 | |||
| 548 | #define KERNEL_SECURITY_TOKEN_VALUE { {0, 1} } | ||
| 549 | extern const security_token_t KERNEL_SECURITY_TOKEN; | ||
| 550 | |||
| 551 | #define KERNEL_AUDIT_TOKEN_VALUE { {0, 0, 0, 0, 0, 0, 0, 0} } | ||
| 552 | extern const audit_token_t KERNEL_AUDIT_TOKEN; | ||
| 553 | |||
| 554 | typedef integer_t mach_msg_options_t; | ||
| 555 | |||
| 556 | typedef struct{ | ||
| 557 | 	mach_msg_header_t header; | ||
| 558 | } mach_msg_empty_send_t; | ||
| 559 | |||
| 560 | typedef struct{ | ||
| 561 | 	mach_msg_header_t header; | ||
| 562 | 	mach_msg_trailer_t trailer; | ||
| 563 | } mach_msg_empty_rcv_t; | ||
| 564 | |||
| 565 | typedef union{ | ||
| 566 | 	mach_msg_empty_send_t send; | ||
| 567 | 	mach_msg_empty_rcv_t rcv; | ||
| 568 | } mach_msg_empty_t; | ||
| 569 | |||
| 570 | #pragma pack(pop) | ||
| 571 | |||
| 572 | /* utility to round the message size - will become machine dependent */ | ||
| 573 | #define round_msg(x) (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \ | ||
| 574 | 	 ~(sizeof (natural_t) - 1)) | ||
| 575 | |||
| 576 | |||
| 577 | /* | ||
| 578 | * There is no fixed upper bound to the size of Mach messages. | ||
| 579 | */ | ||
| 580 | #define MACH_MSG_SIZE_MAX ((mach_msg_size_t) ~0) | ||
| 581 | |||
| 582 | #if defined(__APPLE_API_PRIVATE) | ||
| 583 | /* | ||
| 584 | * But architectural limits of a given implementation, or | ||
| 585 | * temporal conditions may cause unpredictable send failures | ||
| 586 | * for messages larger than MACH_MSG_SIZE_RELIABLE. | ||
| 587 | * | ||
| 588 | * In either case, waiting for memory is [currently] outside | ||
| 589 | * the scope of send timeout values provided to IPC. | ||
| 590 | */ | ||
| 591 | #define MACH_MSG_SIZE_RELIABLE ((mach_msg_size_t) 256 * 1024) | ||
| 592 | #endif | ||
| 593 | /* | ||
| 594 | * Compatibility definitions, for code written | ||
| 595 | * when there was a msgh_kind instead of msgh_seqno. | ||
| 596 | */ | ||
| 597 | #define MACH_MSGH_KIND_NORMAL 0x00000000 | ||
| 598 | #define MACH_MSGH_KIND_NOTIFICATION 0x00000001 | ||
| 599 | #define msgh_kind msgh_seqno | ||
| 600 | #define mach_msg_kind_t mach_port_seqno_t | ||
| 601 | |||
| 602 | typedef natural_t mach_msg_type_size_t; | ||
| 603 | typedef natural_t mach_msg_type_number_t; | ||
| 604 | |||
| 605 | /* | ||
| 606 | * Values received/carried in messages. Tells the receiver what | ||
| 607 | * sort of port right he now has. | ||
| 608 | * | ||
| 609 | * MACH_MSG_TYPE_PORT_NAME is used to transfer a port name | ||
| 610 | * which should remain uninterpreted by the kernel. (Port rights | ||
| 611 | * are not transferred, just the port name.) | ||
| 612 | */ | ||
| 613 | |||
| 614 | #define MACH_MSG_TYPE_PORT_NONE 0 | ||
| 615 | |||
| 616 | #define MACH_MSG_TYPE_PORT_NAME 15 | ||
| 617 | #define MACH_MSG_TYPE_PORT_RECEIVE MACH_MSG_TYPE_MOVE_RECEIVE | ||
| 618 | #define MACH_MSG_TYPE_PORT_SEND MACH_MSG_TYPE_MOVE_SEND | ||
| 619 | #define MACH_MSG_TYPE_PORT_SEND_ONCE MACH_MSG_TYPE_MOVE_SEND_ONCE | ||
| 620 | |||
| 621 | #define MACH_MSG_TYPE_LAST 22 /* Last assigned */ | ||
| 622 | |||
| 623 | /* | ||
| 624 | * A dummy value. Mostly used to indicate that the actual value | ||
| 625 | * will be filled in later, dynamically. | ||
| 626 | */ | ||
| 627 | |||
| 628 | #define MACH_MSG_TYPE_POLYMORPHIC ((mach_msg_type_name_t) -1) | ||
| 629 | |||
| 630 | /* | ||
| 631 | *	Is a given item a port type? | ||
| 632 | */ | ||
| 633 | |||
| 634 | #define MACH_MSG_TYPE_PORT_ANY(x) \ | ||
| 635 | 	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) && \ | ||
| 636 | 	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE)) | ||
| 637 | |||
| 638 | #define MACH_MSG_TYPE_PORT_ANY_SEND(x) \ | ||
| 639 | 	(((x) >= MACH_MSG_TYPE_MOVE_SEND) && \ | ||
| 640 | 	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE)) | ||
| 641 | |||
| 642 | #define MACH_MSG_TYPE_PORT_ANY_RIGHT(x) \ | ||
| 643 | 	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) && \ | ||
| 644 | 	 ((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE)) | ||
| 645 | |||
| 646 | typedef integer_t mach_msg_option_t; | ||
| 647 | |||
| 648 | #define MACH_MSG_OPTION_NONE 0x00000000 | ||
| 649 | |||
| 650 | #define MACH_SEND_MSG 0x00000001 | ||
| 651 | #define MACH_RCV_MSG 0x00000002 | ||
| 652 | |||
| 653 | #define MACH_RCV_LARGE 0x00000004 /* report large message sizes */ | ||
| 654 | #define MACH_RCV_LARGE_IDENTITY 0x00000008 /* identify source of large messages */ | ||
| 655 | |||
| 656 | #define MACH_SEND_TIMEOUT 0x00000010 /* timeout value applies to send */ | ||
| 657 | #define MACH_SEND_OVERRIDE 0x00000020 /* priority override for send */ | ||
| 658 | #define MACH_SEND_INTERRUPT 0x00000040 /* don't restart interrupted sends */ | ||
| 659 | #define MACH_SEND_NOTIFY 0x00000080 /* arm send-possible notify */ | ||
| 660 | #define MACH_SEND_ALWAYS 0x00010000 /* ignore qlimits - kernel only */ | ||
| 661 | #define MACH_SEND_TRAILER 0x00020000 /* sender-provided trailer */ | ||
| 662 | #define MACH_SEND_NOIMPORTANCE 0x00040000 /* msg won't carry importance */ | ||
| 663 | #define MACH_SEND_NODENAP MACH_SEND_NOIMPORTANCE | ||
| 664 | #define MACH_SEND_IMPORTANCE 0x00080000 /* msg carries importance - kernel only */ | ||
| 665 | #define MACH_SEND_SYNC_OVERRIDE 0x00100000 /* msg should do sync ipc override */ | ||
| 666 | #define MACH_SEND_PROPAGATE_QOS 0x00200000 /* IPC should propagate the caller's QoS */ | ||
| 667 | #define MACH_SEND_SYNC_USE_THRPRI MACH_SEND_PROPAGATE_QOS /* obsolete name */ | ||
| 668 | #define MACH_SEND_KERNEL 0x00400000 /* full send from kernel space - kernel only */ | ||
| 669 | #define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN 0x00800000 /* special reply port should boost thread doing sync bootstrap checkin */ | ||
| 670 | |||
| 671 | #define MACH_RCV_TIMEOUT 0x00000100 /* timeout value applies to receive */ | ||
| 672 | #define MACH_RCV_NOTIFY 0x00000000 /* legacy name (value was: 0x00000200) */ | ||
| 673 | #define MACH_RCV_INTERRUPT 0x00000400 /* don't restart interrupted receive */ | ||
| 674 | #define MACH_RCV_VOUCHER 0x00000800 /* willing to receive voucher port */ | ||
| 675 | #define MACH_RCV_OVERWRITE 0x00000000 /* scatter receive (deprecated) */ | ||
| 676 | #define MACH_RCV_GUARDED_DESC 0x00001000 /* Can receive new guarded descriptor */ | ||
| 677 | #define MACH_RCV_SYNC_WAIT 0x00004000 /* sync waiter waiting for rcv */ | ||
| 678 | #define MACH_RCV_SYNC_PEEK 0x00008000 /* sync waiter waiting to peek */ | ||
| 679 | |||
| 680 | #define MACH_MSG_STRICT_REPLY 0x00000200 /* Enforce specific properties about the reply port, and | ||
| 681 | 	 * the context in which a thread replies to a message. | ||
| 682 | 	 * This flag must be passed on both the SEND and RCV */ | ||
| 683 | |||
| 684 | |||
| 685 | /* | ||
| 686 | * NOTE: a 0x00------ RCV mask implies to ask for | ||
| 687 | * a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements, | ||
| 688 | * which is equivalent to a mach_msg_trailer_t. | ||
| 689 | * | ||
| 690 | * XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS | ||
| 691 | * needs its own private bit since we only calculate its fields when absolutely | ||
| 692 | * required. | ||
| 693 | */ | ||
| 694 | #define MACH_RCV_TRAILER_NULL 0 | ||
| 695 | #define MACH_RCV_TRAILER_SEQNO 1 | ||
| 696 | #define MACH_RCV_TRAILER_SENDER 2 | ||
| 697 | #define MACH_RCV_TRAILER_AUDIT 3 | ||
| 698 | #define MACH_RCV_TRAILER_CTX 4 | ||
| 699 | #define MACH_RCV_TRAILER_AV 7 | ||
| 700 | #define MACH_RCV_TRAILER_LABELS 8 | ||
| 701 | |||
| 702 | #define MACH_RCV_TRAILER_TYPE(x) (((x) & 0xf) << 28) | ||
| 703 | #define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24) | ||
| 704 | #define MACH_RCV_TRAILER_MASK ((0xf << 24)) | ||
| 705 | |||
| 706 | #define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf) | ||
| 707 | |||
| 708 | |||
| 709 | /* | ||
| 710 | * XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS, | ||
| 711 | * we just fall through to mach_msg_max_trailer_t. | ||
| 712 | * This is correct behavior since mach_msg_max_trailer_t is defined as | ||
| 713 | * mac_msg_mac_trailer_t which is used for the LABELS trailer. | ||
| 714 | * It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed | ||
| 715 | * with one of the other options. | ||
| 716 | */ | ||
| 717 | |||
| 718 | #define REQUESTED_TRAILER_SIZE_NATIVE(y) \ | ||
| 719 | 	((mach_msg_trailer_size_t) \ | ||
| 720 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ? \ | ||
| 721 | 	 sizeof(mach_msg_trailer_t) : \ | ||
| 722 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ? \ | ||
| 723 | 	 sizeof(mach_msg_seqno_trailer_t) : \ | ||
| 724 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ? \ | ||
| 725 | 	 sizeof(mach_msg_security_trailer_t) : \ | ||
| 726 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ? \ | ||
| 727 | 	 sizeof(mach_msg_audit_trailer_t) : \ | ||
| 728 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ? \ | ||
| 729 | 	 sizeof(mach_msg_context_trailer_t) : \ | ||
| 730 | 	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ? \ | ||
| 731 | 	 sizeof(mach_msg_mac_trailer_t) : \ | ||
| 732 | 	 sizeof(mach_msg_max_trailer_t)))))))) | ||
| 733 | |||
| 734 | |||
| 735 | #define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y) | ||
| 736 | |||
| 737 | /* | ||
| 738 | * Much code assumes that mach_msg_return_t == kern_return_t. | ||
| 739 | * This definition is useful for descriptive purposes. | ||
| 740 | * | ||
| 741 | * See <mach/error.h> for the format of error codes. | ||
| 742 | * IPC errors are system 4. Send errors are subsystem 0; | ||
| 743 | * receive errors are subsystem 1. The code field is always non-zero. | ||
| 744 | * The high bits of the code field communicate extra information | ||
| 745 | * for some error codes. MACH_MSG_MASK masks off these special bits. | ||
| 746 | */ | ||
| 747 | |||
| 748 | typedef kern_return_t mach_msg_return_t; | ||
| 749 | |||
| 750 | #define MACH_MSG_SUCCESS 0x00000000 | ||
| 751 | |||
| 752 | |||
| 753 | #define MACH_MSG_MASK 0x00003e00 | ||
| 754 | /* All special error code bits defined below. */ | ||
| 755 | #define MACH_MSG_IPC_SPACE 0x00002000 | ||
| 756 | /* No room in IPC name space for another capability name. */ | ||
| 757 | #define MACH_MSG_VM_SPACE 0x00001000 | ||
| 758 | /* No room in VM address space for out-of-line memory. */ | ||
| 759 | #define MACH_MSG_IPC_KERNEL 0x00000800 | ||
| 760 | /* Kernel resource shortage handling an IPC capability. */ | ||
| 761 | #define MACH_MSG_VM_KERNEL 0x00000400 | ||
| 762 | /* Kernel resource shortage handling out-of-line memory. */ | ||
| 763 | |||
| 764 | #define MACH_SEND_IN_PROGRESS 0x10000001 | ||
| 765 | /* Thread is waiting to send. (Internal use only.) */ | ||
| 766 | #define MACH_SEND_INVALID_DATA 0x10000002 | ||
| 767 | /* Bogus in-line data. */ | ||
| 768 | #define MACH_SEND_INVALID_DEST 0x10000003 | ||
| 769 | /* Bogus destination port. */ | ||
| 770 | #define MACH_SEND_TIMED_OUT 0x10000004 | ||
| 771 | /* Message not sent before timeout expired. */ | ||
| 772 | #define MACH_SEND_INVALID_VOUCHER 0x10000005 | ||
| 773 | /* Bogus voucher port. */ | ||
| 774 | #define MACH_SEND_INTERRUPTED 0x10000007 | ||
| 775 | /* Software interrupt. */ | ||
| 776 | #define MACH_SEND_MSG_TOO_SMALL 0x10000008 | ||
| 777 | /* Data doesn't contain a complete message. */ | ||
| 778 | #define MACH_SEND_INVALID_REPLY 0x10000009 | ||
| 779 | /* Bogus reply port. */ | ||
| 780 | #define MACH_SEND_INVALID_RIGHT 0x1000000a | ||
| 781 | /* Bogus port rights in the message body. */ | ||
| 782 | #define MACH_SEND_INVALID_NOTIFY 0x1000000b | ||
| 783 | /* Bogus notify port argument. */ | ||
| 784 | #define MACH_SEND_INVALID_MEMORY 0x1000000c | ||
| 785 | /* Invalid out-of-line memory pointer. */ | ||
| 786 | #define MACH_SEND_NO_BUFFER 0x1000000d | ||
| 787 | /* No message buffer is available. */ | ||
| 788 | #define MACH_SEND_TOO_LARGE 0x1000000e | ||
| 789 | /* Send is too large for port */ | ||
| 790 | #define MACH_SEND_INVALID_TYPE 0x1000000f | ||
| 791 | /* Invalid msg-type specification. */ | ||
| 792 | #define MACH_SEND_INVALID_HEADER 0x10000010 | ||
| 793 | /* A field in the header had a bad value. */ | ||
| 794 | #define MACH_SEND_INVALID_TRAILER 0x10000011 | ||
| 795 | /* The trailer to be sent does not match kernel format. */ | ||
| 796 | #define MACH_SEND_INVALID_CONTEXT 0x10000012 | ||
| 797 | /* The sending thread context did not match the context on the dest port */ | ||
| 798 | #define MACH_SEND_INVALID_RT_OOL_SIZE 0x10000015 | ||
| 799 | /* compatibility: no longer a returned error */ | ||
| 800 | #define MACH_SEND_NO_GRANT_DEST 0x10000016 | ||
| 801 | /* The destination port doesn't accept ports in body */ | ||
| 802 | |||
| 803 | #define MACH_RCV_IN_PROGRESS 0x10004001 | ||
| 804 | /* Thread is waiting for receive. (Internal use only.) */ | ||
| 805 | #define MACH_RCV_INVALID_NAME 0x10004002 | ||
| 806 | /* Bogus name for receive port/port-set. */ | ||
| 807 | #define MACH_RCV_TIMED_OUT 0x10004003 | ||
| 808 | /* Didn't get a message within the timeout value. */ | ||
| 809 | #define MACH_RCV_TOO_LARGE 0x10004004 | ||
| 810 | /* Message buffer is not large enough for inline data. */ | ||
| 811 | #define MACH_RCV_INTERRUPTED 0x10004005 | ||
| 812 | /* Software interrupt. */ | ||
| 813 | #define MACH_RCV_PORT_CHANGED 0x10004006 | ||
| 814 | /* compatibility: no longer a returned error */ | ||
| 815 | #define MACH_RCV_INVALID_NOTIFY 0x10004007 | ||
| 816 | /* Bogus notify port argument. */ | ||
| 817 | #define MACH_RCV_INVALID_DATA 0x10004008 | ||
| 818 | /* Bogus message buffer for inline data. */ | ||
| 819 | #define MACH_RCV_PORT_DIED 0x10004009 | ||
| 820 | /* Port/set was sent away/died during receive. */ | ||
| 821 | #define MACH_RCV_IN_SET 0x1000400a | ||
| 822 | /* compatibility: no longer a returned error */ | ||
| 823 | #define MACH_RCV_HEADER_ERROR 0x1000400b | ||
| 824 | /* Error receiving message header. See special bits. */ | ||
| 825 | #define MACH_RCV_BODY_ERROR 0x1000400c | ||
| 826 | /* Error receiving message body. See special bits. */ | ||
| 827 | #define MACH_RCV_INVALID_TYPE 0x1000400d | ||
| 828 | /* Invalid msg-type specification in scatter list. */ | ||
| 829 | #define MACH_RCV_SCATTER_SMALL 0x1000400e | ||
| 830 | /* Out-of-line overwrite region is not large enough */ | ||
| 831 | #define MACH_RCV_INVALID_TRAILER 0x1000400f | ||
| 832 | /* trailer type or number of trailer elements not supported */ | ||
| 833 | #define MACH_RCV_IN_PROGRESS_TIMED 0x10004011 | ||
| 834 | /* Waiting for receive with timeout. (Internal use only.) */ | ||
| 835 | #define MACH_RCV_INVALID_REPLY 0x10004012 | ||
| 836 | /* invalid reply port used in a STRICT_REPLY message */ | ||
| 837 | |||
| 838 | |||
| 839 | |||
| 840 | __BEGIN_DECLS | ||
| 841 | |||
| 842 | /* | ||
| 843 | *	Routine:	mach_msg_overwrite | ||
| 844 | *	Purpose: | ||
| 845 | *		Send and/or receive a message. If the message operation | ||
| 846 | *		is interrupted, and the user did not request an indication | ||
| 847 | *		of that fact, then restart the appropriate parts of the | ||
| 848 | *		operation silently (trap version does not restart). | ||
| 849 | * | ||
| 850 | *		Distinct send and receive buffers may be specified. If | ||
| 851 | *		no separate receive buffer is specified, the msg parameter | ||
| 852 | *		will be used for both send and receive operations. | ||
| 853 | * | ||
| 854 | *		In addition to a distinct receive buffer, that buffer may | ||
| 855 | *		already contain scatter control information to direct the | ||
| 856 | *		receiving of the message. | ||
| 857 | */ | ||
| 858 | __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 859 | extern mach_msg_return_t mach_msg_overwrite( | ||
| 860 | 	mach_msg_header_t *msg, | ||
| 861 | 	mach_msg_option_t option, | ||
| 862 | 	mach_msg_size_t send_size, | ||
| 863 | 	mach_msg_size_t rcv_size, | ||
| 864 | 	mach_port_name_t rcv_name, | ||
| 865 | 	mach_msg_timeout_t timeout, | ||
| 866 | 	mach_port_name_t notify, | ||
| 867 | 	mach_msg_header_t *rcv_msg, | ||
| 868 | 	mach_msg_size_t rcv_limit); | ||
| 869 | |||
| 870 | |||
| 871 | /* | ||
| 872 | *	Routine:	mach_msg | ||
| 873 | *	Purpose: | ||
| 874 | *		Send and/or receive a message. If the message operation | ||
| 875 | *		is interrupted, and the user did not request an indication | ||
| 876 | *		of that fact, then restart the appropriate parts of the | ||
| 877 | *		operation silently (trap version does not restart). | ||
| 878 | */ | ||
| 879 | __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 880 | extern mach_msg_return_t mach_msg( | ||
| 881 | 	mach_msg_header_t *msg, | ||
| 882 | 	mach_msg_option_t option, | ||
| 883 | 	mach_msg_size_t send_size, | ||
| 884 | 	mach_msg_size_t rcv_size, | ||
| 885 | 	mach_port_name_t rcv_name, | ||
| 886 | 	mach_msg_timeout_t timeout, | ||
| 887 | 	mach_port_name_t notify); | ||
| 888 | |||
| 889 | /* | ||
| 890 | *	Routine:	mach_voucher_deallocate | ||
| 891 | *	Purpose: | ||
| 892 | *		Deallocate a mach voucher created or received in a message. Drops | ||
| 893 | *		one (send right) reference to the voucher. | ||
| 894 | */ | ||
| 895 | __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 896 | extern kern_return_t mach_voucher_deallocate( | ||
| 897 | 	mach_port_name_t voucher); | ||
| 898 | |||
| 899 | |||
| 900 | __END_DECLS | ||
| 901 | |||
| 902 | #endif /* _MACH_MESSAGE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/port.h created+422| ... | @@ -0,0 +1,422 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | * NOTICE: This file was modified by McAfee Research in 2004 to introduce | ||
| 58 | * support for mandatory and extensible security protections. This notice | ||
| 59 | * is included in support of clause 2.2 (b) of the Apple Public License, | ||
| 60 | * Version 2.0. | ||
| 61 | */ | ||
| 62 | /* | ||
| 63 | */ | ||
| 64 | /* | ||
| 65 | *	File:	mach/port.h | ||
| 66 | * | ||
| 67 | *	Definition of a Mach port | ||
| 68 | * | ||
| 69 | *	Mach ports are the endpoints to Mach-implemented communications | ||
| 70 | *	channels (usually uni-directional message queues, but other types | ||
| 71 | *	also exist). | ||
| 72 | * | ||
| 73 | *	Unique collections of these endpoints are maintained for each | ||
| 74 | *	Mach task. Each Mach port in the task's collection is given a | ||
| 75 | *	[task-local] name to identify it - and the the various "rights" | ||
| 76 | *	held by the task for that specific endpoint. | ||
| 77 | * | ||
| 78 | *	This header defines the types used to identify these Mach ports | ||
| 79 | *	and the various rights associated with them. For more info see: | ||
| 80 | * | ||
| 81 | *	<mach/mach_port.h> - manipulation of port rights in a given space | ||
| 82 | *	<mach/message.h> - message queue [and port right passing] mechanism | ||
| 83 | * | ||
| 84 | */ | ||
| 85 | |||
| 86 | #ifndef _MACH_PORT_H_ | ||
| 87 | #define _MACH_PORT_H_ | ||
| 88 | |||
| 89 | #include <sys/cdefs.h> | ||
| 90 | #include <stdint.h> | ||
| 91 | #include <mach/boolean.h> | ||
| 92 | #include <mach/machine/vm_types.h> | ||
| 93 | |||
| 94 | /* | ||
| 95 | *	mach_port_name_t - the local identity for a Mach port | ||
| 96 | * | ||
| 97 | *	The name is Mach port namespace specific. It is used to | ||
| 98 | *	identify the rights held for that port by the task whose | ||
| 99 | *	namespace is implied [or specifically provided]. | ||
| 100 | * | ||
| 101 | *	Use of this type usually implies just a name - no rights. | ||
| 102 | *	See mach_port_t for a type that implies a "named right." | ||
| 103 | * | ||
| 104 | */ | ||
| 105 | |||
| 106 | typedef natural_t mach_port_name_t; | ||
| 107 | typedef mach_port_name_t *mach_port_name_array_t; | ||
| 108 | |||
| 109 | |||
| 110 | /* | ||
| 111 | *	mach_port_t - a named port right | ||
| 112 | * | ||
| 113 | *	In user-space, "rights" are represented by the name of the | ||
| 114 | *	right in the Mach port namespace. Even so, this type is | ||
| 115 | *	presented as a unique one to more clearly denote the presence | ||
| 116 | *	of a right coming along with the name. | ||
| 117 | * | ||
| 118 | *	Often, various rights for a port held in a single name space | ||
| 119 | *	will coalesce and are, therefore, be identified by a single name | ||
| 120 | *	[this is the case for send and receive rights]. But not | ||
| 121 | *	always [send-once rights currently get a unique name for | ||
| 122 | *	each right]. | ||
| 123 | * | ||
| 124 | */ | ||
| 125 | |||
| 126 | #include <sys/_types.h> | ||
| 127 | #include <sys/_types/_mach_port_t.h> | ||
| 128 | |||
| 129 | |||
| 130 | typedef mach_port_t *mach_port_array_t; | ||
| 131 | |||
| 132 | /* | ||
| 133 | * MACH_PORT_NULL is a legal value that can be carried in messages. | ||
| 134 | * It indicates the absence of any port or port rights. (A port | ||
| 135 | * argument keeps the message from being "simple", even if the | ||
| 136 | * value is MACH_PORT_NULL.) The value MACH_PORT_DEAD is also a legal | ||
| 137 | * value that can be carried in messages. It indicates | ||
| 138 | * that a port right was present, but it died. | ||
| 139 | */ | ||
| 140 | |||
| 141 | #define MACH_PORT_NULL 0 /* intentional loose typing */ | ||
| 142 | #define MACH_PORT_DEAD ((mach_port_name_t) ~0) | ||
| 143 | #define MACH_PORT_VALID(name) \ | ||
| 144 | 	 (((name) != MACH_PORT_NULL) && \ | ||
| 145 | 	 ((name) != MACH_PORT_DEAD)) | ||
| 146 | |||
| 147 | |||
| 148 | /* | ||
| 149 | *	For kernel-selected [assigned] port names, the name is | ||
| 150 | *	comprised of two parts: a generation number and an index. | ||
| 151 | *	This approach keeps the exact same name from being generated | ||
| 152 | *	and reused too quickly [to catch right/reference counting bugs]. | ||
| 153 | *	The dividing line between the constituent parts is exposed so | ||
| 154 | *	that efficient "mach_port_name_t to data structure pointer" | ||
| 155 | *	conversion implementation can be made. But it is possible | ||
| 156 | *	for user-level code to assign their own names to Mach ports. | ||
| 157 | *	These are not required to participate in this algorithm. So | ||
| 158 | *	care should be taken before "assuming" this model. | ||
| 159 | * | ||
| 160 | */ | ||
| 161 | |||
| 162 | #ifndef NO_PORT_GEN | ||
| 163 | |||
| 164 | #define MACH_PORT_INDEX(name) ((name) >> 8) | ||
| 165 | #define MACH_PORT_GEN(name) (((name) & 0xff) << 24) | ||
| 166 | #define MACH_PORT_MAKE(index, gen) \ | ||
| 167 | 	 (((index) << 8) | (gen) >> 24) | ||
| 168 | |||
| 169 | #else /* NO_PORT_GEN */ | ||
| 170 | |||
| 171 | #define MACH_PORT_INDEX(name) (name) | ||
| 172 | #define MACH_PORT_GEN(name) (0) | ||
| 173 | #define MACH_PORT_MAKE(index, gen) (index) | ||
| 174 | |||
| 175 | #endif /* NO_PORT_GEN */ | ||
| 176 | |||
| 177 | |||
| 178 | /* | ||
| 179 | * These are the different rights a task may have for a port. | ||
| 180 | * The MACH_PORT_RIGHT_* definitions are used as arguments | ||
| 181 | * to mach_port_allocate, mach_port_get_refs, etc, to specify | ||
| 182 | * a particular right to act upon. The mach_port_names and | ||
| 183 | * mach_port_type calls return bitmasks using the MACH_PORT_TYPE_* | ||
| 184 | * definitions. This is because a single name may denote | ||
| 185 | * multiple rights. | ||
| 186 | */ | ||
| 187 | |||
| 188 | typedef natural_t mach_port_right_t; | ||
| 189 | |||
| 190 | #define MACH_PORT_RIGHT_SEND ((mach_port_right_t) 0) | ||
| 191 | #define MACH_PORT_RIGHT_RECEIVE ((mach_port_right_t) 1) | ||
| 192 | #define MACH_PORT_RIGHT_SEND_ONCE ((mach_port_right_t) 2) | ||
| 193 | #define MACH_PORT_RIGHT_PORT_SET ((mach_port_right_t) 3) | ||
| 194 | #define MACH_PORT_RIGHT_DEAD_NAME ((mach_port_right_t) 4) | ||
| 195 | #define MACH_PORT_RIGHT_LABELH ((mach_port_right_t) 5) /* obsolete right */ | ||
| 196 | #define MACH_PORT_RIGHT_NUMBER ((mach_port_right_t) 6) /* right not implemented */ | ||
| 197 | |||
| 198 | |||
| 199 | typedef natural_t mach_port_type_t; | ||
| 200 | typedef mach_port_type_t *mach_port_type_array_t; | ||
| 201 | |||
| 202 | #define MACH_PORT_TYPE(right) \ | ||
| 203 | 	 ((mach_port_type_t)(((mach_port_type_t) 1) \ | ||
| 204 | 	 << ((right) + ((mach_port_right_t) 16)))) | ||
| 205 | #define MACH_PORT_TYPE_NONE ((mach_port_type_t) 0L) | ||
| 206 | #define MACH_PORT_TYPE_SEND MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND) | ||
| 207 | #define MACH_PORT_TYPE_RECEIVE MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE) | ||
| 208 | #define MACH_PORT_TYPE_SEND_ONCE MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE) | ||
| 209 | #define MACH_PORT_TYPE_PORT_SET MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET) | ||
| 210 | #define MACH_PORT_TYPE_DEAD_NAME MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME) | ||
| 211 | #define MACH_PORT_TYPE_LABELH MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */ | ||
| 212 | |||
| 213 | |||
| 214 | |||
| 215 | /* Convenient combinations. */ | ||
| 216 | |||
| 217 | #define MACH_PORT_TYPE_SEND_RECEIVE \ | ||
| 218 | 	 (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE) | ||
| 219 | #define MACH_PORT_TYPE_SEND_RIGHTS \ | ||
| 220 | 	 (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE) | ||
| 221 | #define MACH_PORT_TYPE_PORT_RIGHTS \ | ||
| 222 | 	 (MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE) | ||
| 223 | #define MACH_PORT_TYPE_PORT_OR_DEAD \ | ||
| 224 | 	 (MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME) | ||
| 225 | #define MACH_PORT_TYPE_ALL_RIGHTS \ | ||
| 226 | 	 (MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET) | ||
| 227 | |||
| 228 | /* Dummy type bits that mach_port_type/mach_port_names can return. */ | ||
| 229 | |||
| 230 | #define MACH_PORT_TYPE_DNREQUEST 0x80000000 | ||
| 231 | #define MACH_PORT_TYPE_SPREQUEST 0x40000000 | ||
| 232 | #define MACH_PORT_TYPE_SPREQUEST_DELAYED 0x20000000 | ||
| 233 | |||
| 234 | /* User-references for capabilities. */ | ||
| 235 | |||
| 236 | typedef natural_t mach_port_urefs_t; | ||
| 237 | typedef integer_t mach_port_delta_t; /* change in urefs */ | ||
| 238 | |||
| 239 | /* Attributes of ports. (See mach_port_get_receive_status.) */ | ||
| 240 | |||
| 241 | typedef natural_t mach_port_seqno_t; /* sequence number */ | ||
| 242 | typedef natural_t mach_port_mscount_t; /* make-send count */ | ||
| 243 | typedef natural_t mach_port_msgcount_t; /* number of msgs */ | ||
| 244 | typedef natural_t mach_port_rights_t; /* number of rights */ | ||
| 245 | |||
| 246 | /* | ||
| 247 | *	Are there outstanding send rights for a given port? | ||
| 248 | */ | ||
| 249 | #define MACH_PORT_SRIGHTS_NONE 0 /* no srights */ | ||
| 250 | #define MACH_PORT_SRIGHTS_PRESENT 1 /* srights */ | ||
| 251 | typedef unsigned int mach_port_srights_t; /* status of send rights */ | ||
| 252 | |||
| 253 | typedef struct mach_port_status { | ||
| 254 | 	mach_port_rights_t mps_pset; /* count of containing port sets */ | ||
| 255 | 	mach_port_seqno_t mps_seqno; /* sequence number */ | ||
| 256 | 	mach_port_mscount_t mps_mscount; /* make-send count */ | ||
| 257 | 	mach_port_msgcount_t mps_qlimit; /* queue limit */ | ||
| 258 | 	mach_port_msgcount_t mps_msgcount; /* number in the queue */ | ||
| 259 | 	mach_port_rights_t mps_sorights; /* how many send-once rights */ | ||
| 260 | 	boolean_t mps_srights; /* do send rights exist? */ | ||
| 261 | 	boolean_t mps_pdrequest; /* port-deleted requested? */ | ||
| 262 | 	boolean_t mps_nsrequest; /* no-senders requested? */ | ||
| 263 | 	natural_t mps_flags; /* port flags */ | ||
| 264 | } mach_port_status_t; | ||
| 265 | |||
| 266 | /* System-wide values for setting queue limits on a port */ | ||
| 267 | #define MACH_PORT_QLIMIT_ZERO (0) | ||
| 268 | #define MACH_PORT_QLIMIT_BASIC (5) | ||
| 269 | #define MACH_PORT_QLIMIT_SMALL (16) | ||
| 270 | #define MACH_PORT_QLIMIT_LARGE (1024) | ||
| 271 | #define MACH_PORT_QLIMIT_KERNEL (65534) | ||
| 272 | #define MACH_PORT_QLIMIT_MIN MACH_PORT_QLIMIT_ZERO | ||
| 273 | #define MACH_PORT_QLIMIT_DEFAULT MACH_PORT_QLIMIT_BASIC | ||
| 274 | #define MACH_PORT_QLIMIT_MAX MACH_PORT_QLIMIT_LARGE | ||
| 275 | |||
| 276 | typedef struct mach_port_limits { | ||
| 277 | 	mach_port_msgcount_t mpl_qlimit; /* number of msgs */ | ||
| 278 | } mach_port_limits_t; | ||
| 279 | |||
| 280 | /* Possible values for mps_flags (part of mach_port_status_t) */ | ||
| 281 | #define MACH_PORT_STATUS_FLAG_TEMPOWNER 0x01 | ||
| 282 | #define MACH_PORT_STATUS_FLAG_GUARDED 0x02 | ||
| 283 | #define MACH_PORT_STATUS_FLAG_STRICT_GUARD 0x04 | ||
| 284 | #define MACH_PORT_STATUS_FLAG_IMP_DONATION 0x08 | ||
| 285 | #define MACH_PORT_STATUS_FLAG_REVIVE 0x10 | ||
| 286 | #define MACH_PORT_STATUS_FLAG_TASKPTR 0x20 | ||
| 287 | #define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40 | ||
| 288 | #define MACH_PORT_STATUS_FLAG_NO_GRANT 0x80 | ||
| 289 | |||
| 290 | typedef struct mach_port_info_ext { | ||
| 291 | 	mach_port_status_t mpie_status; | ||
| 292 | 	mach_port_msgcount_t mpie_boost_cnt; | ||
| 293 | 	uint32_t reserved[6]; | ||
| 294 | } mach_port_info_ext_t; | ||
| 295 | |||
| 296 | typedef integer_t *mach_port_info_t; /* varying array of natural_t */ | ||
| 297 | |||
| 298 | /* Flavors for mach_port_get/set_attributes() */ | ||
| 299 | typedef int mach_port_flavor_t; | ||
| 300 | #define MACH_PORT_LIMITS_INFO 1 /* uses mach_port_limits_t */ | ||
| 301 | #define MACH_PORT_RECEIVE_STATUS 2 /* uses mach_port_status_t */ | ||
| 302 | #define MACH_PORT_DNREQUESTS_SIZE 3 /* info is int */ | ||
| 303 | #define MACH_PORT_TEMPOWNER 4 /* indicates receive right will be reassigned to another task */ | ||
| 304 | #define MACH_PORT_IMPORTANCE_RECEIVER 5 /* indicates recieve right accepts priority donation */ | ||
| 305 | #define MACH_PORT_DENAP_RECEIVER 6 /* indicates receive right accepts de-nap donation */ | ||
| 306 | #define MACH_PORT_INFO_EXT 7 /* uses mach_port_info_ext_t */ | ||
| 307 | |||
| 308 | #define MACH_PORT_LIMITS_INFO_COUNT ((natural_t) \ | ||
| 309 | 	(sizeof(mach_port_limits_t)/sizeof(natural_t))) | ||
| 310 | #define MACH_PORT_RECEIVE_STATUS_COUNT ((natural_t) \ | ||
| 311 | 	(sizeof(mach_port_status_t)/sizeof(natural_t))) | ||
| 312 | #define MACH_PORT_DNREQUESTS_SIZE_COUNT 1 | ||
| 313 | #define MACH_PORT_INFO_EXT_COUNT ((natural_t) \ | ||
| 314 | 	(sizeof(mach_port_info_ext_t)/sizeof(natural_t))) | ||
| 315 | /* | ||
| 316 | * Structure used to pass information about port allocation requests. | ||
| 317 | * Must be padded to 64-bits total length. | ||
| 318 | */ | ||
| 319 | typedef struct mach_port_qos { | ||
| 320 | 	unsigned int name:1; /* name given */ | ||
| 321 | 	unsigned int prealloc:1; /* prealloced message */ | ||
| 322 | 	boolean_t pad1:30; | ||
| 323 | 	natural_t len; | ||
| 324 | } mach_port_qos_t; | ||
| 325 | |||
| 326 | /* Mach Port Guarding definitions */ | ||
| 327 | |||
| 328 | /* | ||
| 329 | * Flags for mach_port_options (used for | ||
| 330 | * invocation of mach_port_construct). | ||
| 331 | * Indicates attributes to be set for the newly | ||
| 332 | * allocated port. | ||
| 333 | */ | ||
| 334 | #define MPO_CONTEXT_AS_GUARD 0x01 /* Add guard to the port */ | ||
| 335 | #define MPO_QLIMIT 0x02 /* Set qlimit for the port msg queue */ | ||
| 336 | #define MPO_TEMPOWNER 0x04 /* Set the tempowner bit of the port */ | ||
| 337 | #define MPO_IMPORTANCE_RECEIVER 0x08 /* Mark the port as importance receiver */ | ||
| 338 | #define MPO_INSERT_SEND_RIGHT 0x10 /* Insert a send right for the port */ | ||
| 339 | #define MPO_STRICT 0x20 /* Apply strict guarding for port */ | ||
| 340 | #define MPO_DENAP_RECEIVER 0x40 /* Mark the port as App de-nap receiver */ | ||
| 341 | #define MPO_IMMOVABLE_RECEIVE 0x80 /* Mark the port as immovable; protected by the guard context */ | ||
| 342 | /* | ||
| 343 | * Structure to define optional attributes for a newly | ||
| 344 | * constructed port. | ||
| 345 | */ | ||
| 346 | typedef struct mach_port_options { | ||
| 347 | 	uint32_t flags; /* Flags defining attributes for port */ | ||
| 348 | 	mach_port_limits_t mpl; /* Message queue limit for port */ | ||
| 349 | 	uint64_t reserved[2]; /* Reserved */ | ||
| 350 | }mach_port_options_t; | ||
| 351 | |||
| 352 | typedef mach_port_options_t *mach_port_options_ptr_t; | ||
| 353 | |||
| 354 | /* | ||
| 355 | * EXC_GUARD represents a guard violation for both | ||
| 356 | * mach ports and file descriptors. GUARD_TYPE_ is used | ||
| 357 | * to differentiate among them. | ||
| 358 | */ | ||
| 359 | #define GUARD_TYPE_MACH_PORT 0x1 | ||
| 360 | |||
| 361 | /* Reasons for exception for a guarded mach port */ | ||
| 362 | enum mach_port_guard_exception_codes { | ||
| 363 | 	kGUARD_EXC_DESTROY = 1u << 0, | ||
| 364 | 	kGUARD_EXC_MOD_REFS = 1u << 1, | ||
| 365 | 	kGUARD_EXC_SET_CONTEXT = 1u << 2, | ||
| 366 | 	kGUARD_EXC_UNGUARDED = 1u << 3, | ||
| 367 | 	kGUARD_EXC_INCORRECT_GUARD = 1u << 4, | ||
| 368 | 	kGUARD_EXC_IMMOVABLE = 1u << 5, | ||
| 369 | 	kGUARD_EXC_STRICT_REPLY = 1u << 6, | ||
| 370 | 	/* start of [optionally] non-fatal guards */ | ||
| 371 | 	kGUARD_EXC_INVALID_RIGHT = 1u << 8, | ||
| 372 | 	kGUARD_EXC_INVALID_NAME = 1u << 9, | ||
| 373 | 	kGUARD_EXC_INVALID_VALUE = 1u << 10, | ||
| 374 | 	kGUARD_EXC_INVALID_ARGUMENT = 1u << 11, | ||
| 375 | 	kGUARD_EXC_RIGHT_EXISTS = 1u << 12, | ||
| 376 | 	kGUARD_EXC_KERN_NO_SPACE = 1u << 13, | ||
| 377 | 	kGUARD_EXC_KERN_FAILURE = 1u << 14, | ||
| 378 | 	kGUARD_EXC_KERN_RESOURCE = 1u << 15, | ||
| 379 | 	kGUARD_EXC_SEND_INVALID_REPLY = 1u << 16, | ||
| 380 | 	kGUARD_EXC_SEND_INVALID_VOUCHER = 1u << 17, | ||
| 381 | 	kGUARD_EXC_SEND_INVALID_RIGHT = 1u << 18, | ||
| 382 | 	kGUARD_EXC_RCV_INVALID_NAME = 1u << 19, | ||
| 383 | 	kGUARD_EXC_RCV_GUARDED_DESC = 1u << 20, /* should never be fatal; for development only */ | ||
| 384 | }; | ||
| 385 | |||
| 386 | #define MAX_FATAL_kGUARD_EXC_CODE (1u << 6) | ||
| 387 | |||
| 388 | /* | ||
| 389 | * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions. | ||
| 390 | */ | ||
| 391 | #define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP (0x01ull << 56) | ||
| 392 | #define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT (0x02ull << 56) | ||
| 393 | #define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER (0x04ull << 56) | ||
| 394 | #define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR (0x08ull << 56) | ||
| 395 | #define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA (0x10ull << 56) | ||
| 396 | #define MPG_FLAGS_STRICT_REPLY_MASK (0xffull << 56) | ||
| 397 | |||
| 398 | /* | ||
| 399 | * Flags for mach_port_guard_with_flags. These flags extend | ||
| 400 | * the attributes associated with a guarded port. | ||
| 401 | */ | ||
| 402 | #define MPG_STRICT 0x01 /* Apply strict guarding for a port */ | ||
| 403 | #define MPG_IMMOVABLE_RECEIVE 0x02 /* Receive right cannot be moved out of the space */ | ||
| 404 | |||
| 405 | #if !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH) | ||
| 406 | /* | ||
| 407 | * Mach 3.0 renamed everything to have mach_ in front of it. | ||
| 408 | * These types and macros are provided for backward compatibility | ||
| 409 | *	but are deprecated. | ||
| 410 | */ | ||
| 411 | typedef mach_port_t port_t; | ||
| 412 | typedef mach_port_name_t port_name_t; | ||
| 413 | typedef mach_port_name_t *port_name_array_t; | ||
| 414 | |||
| 415 | #define PORT_NULL ((port_t) 0) | ||
| 416 | #define PORT_DEAD ((port_t) ~0) | ||
| 417 | #define PORT_VALID(name) \ | ||
| 418 | 	 ((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD) | ||
| 419 | |||
| 420 | #endif /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */ | ||
| 421 | |||
| 422 | #endif /* _MACH_PORT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/mach/thread_status.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * @OSF_COPYRIGHT@ | ||
| 30 | */ | ||
| 31 | /* | ||
| 32 | * Mach Operating System | ||
| 33 | * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University | ||
| 34 | * All Rights Reserved. | ||
| 35 | * | ||
| 36 | * Permission to use, copy, modify and distribute this software and its | ||
| 37 | * documentation is hereby granted, provided that both the copyright | ||
| 38 | * notice and this permission notice appear in all copies of the | ||
| 39 | * software, derivative works or modified versions, and any portions | ||
| 40 | * thereof, and that both notices appear in supporting documentation. | ||
| 41 | * | ||
| 42 | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | ||
| 43 | * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | ||
| 44 | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | ||
| 45 | * | ||
| 46 | * Carnegie Mellon requests users of this software to return to | ||
| 47 | * | ||
| 48 | * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU | ||
| 49 | * School of Computer Science | ||
| 50 | * Carnegie Mellon University | ||
| 51 | * Pittsburgh PA 15213-3890 | ||
| 52 | * | ||
| 53 | * any improvements or extensions that they make and grant Carnegie Mellon | ||
| 54 | * the rights to redistribute these changes. | ||
| 55 | */ | ||
| 56 | /* | ||
| 57 | */ | ||
| 58 | /* | ||
| 59 | *	File:	mach/thread_status.h | ||
| 60 | *	Author:	Avadis Tevanian, Jr. | ||
| 61 | * | ||
| 62 | *	This file contains the structure definitions for the user-visible | ||
| 63 | *	thread state. This thread state is examined with the thread_get_state | ||
| 64 | *	kernel call and may be changed with the thread_set_state kernel call. | ||
| 65 | * | ||
| 66 | */ | ||
| 67 | |||
| 68 | #ifndef _MACH_THREAD_STATUS_H_ | ||
| 69 | #define _MACH_THREAD_STATUS_H_ | ||
| 70 | |||
| 71 | /* | ||
| 72 | *	The actual structure that comprises the thread state is defined | ||
| 73 | *	in the machine dependent module. | ||
| 74 | */ | ||
| 75 | #include <mach/machine/vm_types.h> | ||
| 76 | #include <mach/machine/thread_status.h> | ||
| 77 | #include <mach/machine/thread_state.h> | ||
| 78 | |||
| 79 | /* | ||
| 80 | *	Generic definition for machine-dependent thread status. | ||
| 81 | */ | ||
| 82 | |||
| 83 | typedef natural_t *thread_state_t; /* Variable-length array */ | ||
| 84 | |||
| 85 | /* THREAD_STATE_MAX is now defined in <mach/machine/thread_state.h> */ | ||
| 86 | typedef natural_t thread_state_data_t[THREAD_STATE_MAX]; | ||
| 87 | |||
| 88 | #define THREAD_STATE_FLAVOR_LIST 0 /* List of valid flavors */ | ||
| 89 | #define THREAD_STATE_FLAVOR_LIST_NEW 128 | ||
| 90 | #define THREAD_STATE_FLAVOR_LIST_10_9 129 | ||
| 91 | #define THREAD_STATE_FLAVOR_LIST_10_13 130 | ||
| 92 | #define THREAD_STATE_FLAVOR_LIST_10_15 131 | ||
| 93 | |||
| 94 | typedef int thread_state_flavor_t; | ||
| 95 | typedef thread_state_flavor_t *thread_state_flavor_array_t; | ||
| 96 | |||
| 97 | #endif /* _MACH_THREAD_STATUS_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/machine/_param.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2004-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #if defined (__i386__) || defined (__x86_64__) | ||
| 29 | #include "i386/_param.h" | ||
| 30 | #else | ||
| 31 | #error architecture not supported | ||
| 32 | #endif | ||
lib/libc/include/x86_64-macos-gnu/monetary.h created+45| ... | @@ -0,0 +1,45 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer in the | ||
| 12 | * documentation and/or other materials provided with the distribution. | ||
| 13 | * | ||
| 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 24 | * SUCH DAMAGE. | ||
| 25 | * | ||
| 26 | * $FreeBSD: /repoman/r/ncvs/src/include/monetary.h,v 1.7 2002/09/20 08:22:48 mike Exp $ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _MONETARY_H_ | ||
| 30 | #define	_MONETARY_H_ | ||
| 31 | |||
| 32 | #include <sys/cdefs.h> | ||
| 33 | #include <_types.h> | ||
| 34 | #include <sys/_types/_size_t.h> | ||
| 35 | #include <sys/_types/_ssize_t.h> | ||
| 36 | |||
| 37 | __BEGIN_DECLS | ||
| 38 | ssize_t	strfmon(char *, size_t, const char *, ...); | ||
| 39 | __END_DECLS | ||
| 40 | |||
| 41 | #ifdef _USE_EXTENDED_LOCALES_ | ||
| 42 | #include <xlocale/_monetary.h> | ||
| 43 | #endif /* _USE_EXTENDED_LOCALES_ */ | ||
| 44 | |||
| 45 | #endif /* !_MONETARY_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/ndbm.h created+120| ... | @@ -0,0 +1,120 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*- | ||
| 24 | * Copyright (c) 1990, 1993 | ||
| 25 | *	The Regents of the University of California. All rights reserved. | ||
| 26 | * | ||
| 27 | * This code is derived from software contributed to Berkeley by | ||
| 28 | * Margo Seltzer. | ||
| 29 | * | ||
| 30 | * Redistribution and use in source and binary forms, with or without | ||
| 31 | * modification, are permitted provided that the following conditions | ||
| 32 | * are met: | ||
| 33 | * 1. Redistributions of source code must retain the above copyright | ||
| 34 | * notice, this list of conditions and the following disclaimer. | ||
| 35 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer in the | ||
| 37 | * documentation and/or other materials provided with the distribution. | ||
| 38 | * 3. All advertising materials mentioning features or use of this software | ||
| 39 | * must display the following acknowledgement: | ||
| 40 | *	This product includes software developed by the University of | ||
| 41 | *	California, Berkeley and its contributors. | ||
| 42 | * 4. Neither the name of the University nor the names of its contributors | ||
| 43 | * may be used to endorse or promote products derived from this software | ||
| 44 | * without specific prior written permission. | ||
| 45 | * | ||
| 46 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 47 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 48 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 49 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 50 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 51 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 52 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 53 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 54 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 55 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 56 | * SUCH DAMAGE. | ||
| 57 | * | ||
| 58 | *	@(#)ndbm.h	8.1 (Berkeley) 6/2/93 | ||
| 59 | */ | ||
| 60 | |||
| 61 | #ifndef _NDBM_H_ | ||
| 62 | #define	_NDBM_H_ | ||
| 63 | |||
| 64 | #include <_types.h> | ||
| 65 | #include <sys/_types/_mode_t.h> | ||
| 66 | #include <sys/_types/_size_t.h> | ||
| 67 | |||
| 68 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 69 | /* Map dbm interface onto db(3). */ | ||
| 70 | #include <fcntl.h> | ||
| 71 | #define DBM_RDONLY	O_RDONLY | ||
| 72 | #endif | ||
| 73 | |||
| 74 | /* Flags to dbm_store(). */ | ||
| 75 | #define DBM_INSERT 0 | ||
| 76 | #define DBM_REPLACE 1 | ||
| 77 | |||
| 78 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 79 | /* | ||
| 80 | * The db(3) support for ndbm(3) always appends this suffix to the | ||
| 81 | * file name to avoid overwriting the user's original database. | ||
| 82 | */ | ||
| 83 | #define	DBM_SUFFIX	".db" | ||
| 84 | #endif | ||
| 85 | |||
| 86 | typedef struct { | ||
| 87 | 	void *dptr; | ||
| 88 | 	size_t dsize; | ||
| 89 | } datum; | ||
| 90 | |||
| 91 | #ifndef _DBM | ||
| 92 | #define _DBM | ||
| 93 | typedef struct { | ||
| 94 | char __opaque[sizeof(int) + 8 * sizeof(void *)]; | ||
| 95 | } DBM; | ||
| 96 | #endif /* _DBM */ | ||
| 97 | |||
| 98 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 99 | #define	dbm_pagfno(a)	DBM_PAGFNO_NOT_AVAILABLE | ||
| 100 | #endif | ||
| 101 | |||
| 102 | __BEGIN_DECLS | ||
| 103 | int	 dbm_clearerr( DBM *); | ||
| 104 | void	 dbm_close(DBM *); | ||
| 105 | int	 dbm_delete(DBM *, datum); | ||
| 106 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 107 | int	 dbm_dirfno(DBM *); | ||
| 108 | #endif | ||
| 109 | int	 dbm_error( DBM *); | ||
| 110 | datum	 dbm_fetch(DBM *, datum); | ||
| 111 | datum	 dbm_firstkey(DBM *); | ||
| 112 | #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) | ||
| 113 | long	 dbm_forder(DBM *, datum); | ||
| 114 | #endif | ||
| 115 | datum	 dbm_nextkey(DBM *); | ||
| 116 | DBM	*dbm_open(const char *, int, mode_t); | ||
| 117 | int	 dbm_store(DBM *, datum, datum, int); | ||
| 118 | __END_DECLS | ||
| 119 | |||
| 120 | #endif /* !_NDBM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/net/if.h created+442| ... | @@ -0,0 +1,442 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2019 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1982, 1986, 1989, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	@(#)if.h	8.1 (Berkeley) 6/10/93 | ||
| 61 | */ | ||
| 62 | |||
| 63 | #ifndef _NET_IF_H_ | ||
| 64 | #define _NET_IF_H_ | ||
| 65 | |||
| 66 | #include <sys/cdefs.h> | ||
| 67 | #include <net/net_kev.h> | ||
| 68 | |||
| 69 | #define IF_NAMESIZE 16 | ||
| 70 | |||
| 71 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 72 | #include <sys/appleapiopts.h> | ||
| 73 | #ifdef __APPLE__ | ||
| 74 | |||
| 75 | #include <net/if_var.h> | ||
| 76 | #include <sys/types.h> | ||
| 77 | #include <sys/socket.h> | ||
| 78 | |||
| 79 | #endif | ||
| 80 | |||
| 81 | struct if_clonereq { | ||
| 82 | 	int ifcr_total; /* total cloners (out) */ | ||
| 83 | 	int ifcr_count; /* room for this many in user buffer */ | ||
| 84 | 	char *ifcr_buffer; /* buffer for cloner names */ | ||
| 85 | }; | ||
| 86 | |||
| 87 | |||
| 88 | #define IFF_UP 0x1 /* interface is up */ | ||
| 89 | #define IFF_BROADCAST 0x2 /* broadcast address valid */ | ||
| 90 | #define IFF_DEBUG 0x4 /* turn on debugging */ | ||
| 91 | #define IFF_LOOPBACK 0x8 /* is a loopback net */ | ||
| 92 | #define IFF_POINTOPOINT 0x10 /* interface is point-to-point link */ | ||
| 93 | #define IFF_NOTRAILERS 0x20 /* obsolete: avoid use of trailers */ | ||
| 94 | #define IFF_RUNNING 0x40 /* resources allocated */ | ||
| 95 | #define IFF_NOARP 0x80 /* no address resolution protocol */ | ||
| 96 | #define IFF_PROMISC 0x100 /* receive all packets */ | ||
| 97 | #define IFF_ALLMULTI 0x200 /* receive all multicast packets */ | ||
| 98 | #define IFF_OACTIVE 0x400 /* transmission in progress */ | ||
| 99 | #define IFF_SIMPLEX 0x800 /* can't hear own transmissions */ | ||
| 100 | #define IFF_LINK0 0x1000 /* per link layer defined bit */ | ||
| 101 | #define IFF_LINK1 0x2000 /* per link layer defined bit */ | ||
| 102 | #define IFF_LINK2 0x4000 /* per link layer defined bit */ | ||
| 103 | #define IFF_ALTPHYS IFF_LINK2 /* use alternate physical connection */ | ||
| 104 | #define IFF_MULTICAST 0x8000 /* supports multicast */ | ||
| 105 | |||
| 106 | |||
| 107 | |||
| 108 | /* | ||
| 109 | * Capabilities that interfaces can advertise. | ||
| 110 | * | ||
| 111 | * struct ifnet.if_capabilities | ||
| 112 | * contains the optional features & capabilities a particular interface | ||
| 113 | * supports (not only the driver but also the detected hw revision). | ||
| 114 | * Capabilities are defined by IFCAP_* below. | ||
| 115 | * struct ifnet.if_capenable | ||
| 116 | * contains the enabled (either by default or through ifconfig) optional | ||
| 117 | * features & capabilities on this interface. | ||
| 118 | * Capabilities are defined by IFCAP_* below. | ||
| 119 | * struct if_data.ifi_hwassist in IFNET_* form, defined in net/kpi_interface.h, | ||
| 120 | * contains the enabled optional features & capabilites that can be used | ||
| 121 | * individually per packet and are specified in the mbuf pkthdr.csum_flags | ||
| 122 | * field. IFCAP_* and IFNET_* do not match one to one and IFNET_* may be | ||
| 123 | * more detailed or differentiated than IFCAP_*. | ||
| 124 | * IFNET_* hwassist flags have corresponding CSUM_* in sys/mbuf.h | ||
| 125 | */ | ||
| 126 | #define IFCAP_RXCSUM 0x00001 /* can offload checksum on RX */ | ||
| 127 | #define IFCAP_TXCSUM 0x00002 /* can offload checksum on TX */ | ||
| 128 | #define IFCAP_VLAN_MTU 0x00004 /* VLAN-compatible MTU */ | ||
| 129 | #define IFCAP_VLAN_HWTAGGING 0x00008 /* hardware VLAN tag support */ | ||
| 130 | #define IFCAP_JUMBO_MTU 0x00010 /* 9000 byte MTU supported */ | ||
| 131 | #define IFCAP_TSO4 0x00020 /* can do TCP Segmentation Offload */ | ||
| 132 | #define IFCAP_TSO6 0x00040 /* can do TCP6 Segmentation Offload */ | ||
| 133 | #define IFCAP_LRO 0x00080 /* can do Large Receive Offload */ | ||
| 134 | #define IFCAP_AV 0x00100 /* can do 802.1 AV Bridging */ | ||
| 135 | #define IFCAP_TXSTATUS 0x00200 /* can return linklevel xmit status */ | ||
| 136 | #define IFCAP_SKYWALK 0x00400 /* Skywalk mode supported/enabled */ | ||
| 137 | #define IFCAP_HW_TIMESTAMP 0x00800 /* Time stamping in hardware */ | ||
| 138 | #define IFCAP_SW_TIMESTAMP 0x01000 /* Time stamping in software */ | ||
| 139 | #define IFCAP_CSUM_PARTIAL 0x02000 /* can offload partial checksum */ | ||
| 140 | #define IFCAP_CSUM_ZERO_INVERT 0x04000 /* can invert 0 to -0 (0xffff) */ | ||
| 141 | |||
| 142 | #define IFCAP_HWCSUM (IFCAP_RXCSUM | IFCAP_TXCSUM) | ||
| 143 | #define IFCAP_TSO (IFCAP_TSO4 | IFCAP_TSO6) | ||
| 144 | |||
| 145 | #define IFCAP_VALID (IFCAP_HWCSUM | IFCAP_TSO | IFCAP_LRO | IFCAP_VLAN_MTU | \ | ||
| 146 | 	IFCAP_VLAN_HWTAGGING | IFCAP_JUMBO_MTU | IFCAP_AV | IFCAP_TXSTATUS | \ | ||
| 147 | 	IFCAP_SKYWALK | IFCAP_SW_TIMESTAMP | IFCAP_HW_TIMESTAMP | \ | ||
| 148 | 	IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT) | ||
| 149 | |||
| 150 | #define IFQ_MAXLEN 128 | ||
| 151 | #define IFNET_SLOWHZ 1 /* granularity is 1 second */ | ||
| 152 | #define IFQ_TARGET_DELAY (10ULL * 1000 * 1000) /* 10 ms */ | ||
| 153 | #define IFQ_UPDATE_INTERVAL (100ULL * 1000 * 1000) /* 100 ms */ | ||
| 154 | |||
| 155 | /* | ||
| 156 | * Message format for use in obtaining information about interfaces | ||
| 157 | * from sysctl and the routing socket | ||
| 158 | */ | ||
| 159 | struct if_msghdr { | ||
| 160 | 	unsigned short ifm_msglen; /* to skip non-understood messages */ | ||
| 161 | 	unsigned char ifm_version; /* future binary compatability */ | ||
| 162 | 	unsigned char ifm_type; /* message type */ | ||
| 163 | 	int ifm_addrs; /* like rtm_addrs */ | ||
| 164 | 	int ifm_flags; /* value of if_flags */ | ||
| 165 | 	unsigned short ifm_index; /* index for associated ifp */ | ||
| 166 | 	struct if_data ifm_data; /* statistics and other data about if */ | ||
| 167 | }; | ||
| 168 | |||
| 169 | /* | ||
| 170 | * Message format for use in obtaining information about interface addresses | ||
| 171 | * from sysctl and the routing socket | ||
| 172 | */ | ||
| 173 | struct ifa_msghdr { | ||
| 174 | 	unsigned short ifam_msglen; /* to skip non-understood messages */ | ||
| 175 | 	unsigned char ifam_version; /* future binary compatability */ | ||
| 176 | 	unsigned char ifam_type; /* message type */ | ||
| 177 | 	int ifam_addrs; /* like rtm_addrs */ | ||
| 178 | 	int ifam_flags; /* value of ifa_flags */ | ||
| 179 | 	unsigned short ifam_index; /* index for associated ifp */ | ||
| 180 | 	int ifam_metric; /* value of ifa_metric */ | ||
| 181 | }; | ||
| 182 | |||
| 183 | /* | ||
| 184 | * Message format for use in obtaining information about multicast addresses | ||
| 185 | * from the routing socket | ||
| 186 | */ | ||
| 187 | struct ifma_msghdr { | ||
| 188 | 	unsigned short ifmam_msglen; /* to skip non-understood messages */ | ||
| 189 | 	unsigned char ifmam_version; /* future binary compatability */ | ||
| 190 | 	unsigned char ifmam_type; /* message type */ | ||
| 191 | 	int ifmam_addrs; /* like rtm_addrs */ | ||
| 192 | 	int ifmam_flags; /* value of ifa_flags */ | ||
| 193 | 	unsigned short ifmam_index; /* index for associated ifp */ | ||
| 194 | }; | ||
| 195 | |||
| 196 | /* | ||
| 197 | * Message format for use in obtaining information about interfaces | ||
| 198 | * from sysctl | ||
| 199 | */ | ||
| 200 | struct if_msghdr2 { | ||
| 201 | 	u_short ifm_msglen; /* to skip over non-understood messages */ | ||
| 202 | 	u_char ifm_version; /* future binary compatability */ | ||
| 203 | 	u_char ifm_type; /* message type */ | ||
| 204 | 	int ifm_addrs; /* like rtm_addrs */ | ||
| 205 | 	int ifm_flags; /* value of if_flags */ | ||
| 206 | 	u_short ifm_index; /* index for associated ifp */ | ||
| 207 | 	int ifm_snd_len; /* instantaneous length of send queue */ | ||
| 208 | 	int ifm_snd_maxlen; /* maximum length of send queue */ | ||
| 209 | 	int ifm_snd_drops; /* number of drops in send queue */ | ||
| 210 | 	int ifm_timer; /* time until if_watchdog called */ | ||
| 211 | 	struct if_data64 ifm_data; /* statistics and other data */ | ||
| 212 | }; | ||
| 213 | |||
| 214 | /* | ||
| 215 | * Message format for use in obtaining information about multicast addresses | ||
| 216 | * from sysctl | ||
| 217 | */ | ||
| 218 | struct ifma_msghdr2 { | ||
| 219 | 	u_short ifmam_msglen; /* to skip over non-understood messages */ | ||
| 220 | 	u_char ifmam_version; /* future binary compatability */ | ||
| 221 | 	u_char ifmam_type; /* message type */ | ||
| 222 | 	int ifmam_addrs; /* like rtm_addrs */ | ||
| 223 | 	int ifmam_flags; /* value of ifa_flags */ | ||
| 224 | 	u_short ifmam_index; /* index for associated ifp */ | ||
| 225 | 	int32_t ifmam_refcount; | ||
| 226 | }; | ||
| 227 | |||
| 228 | /* | ||
| 229 | * ifdevmtu: interface device mtu | ||
| 230 | * Used with SIOCGIFDEVMTU to get the current mtu in use by the device, | ||
| 231 | * as well as the minimum and maximum mtu allowed by the device. | ||
| 232 | */ | ||
| 233 | struct ifdevmtu { | ||
| 234 | 	int ifdm_current; | ||
| 235 | 	int ifdm_min; | ||
| 236 | 	int ifdm_max; | ||
| 237 | }; | ||
| 238 | |||
| 239 | #pragma pack(4) | ||
| 240 | |||
| 241 | /* | ||
| 242 | * ifkpi: interface kpi ioctl | ||
| 243 | * Used with SIOCSIFKPI and SIOCGIFKPI. | ||
| 244 | * | ||
| 245 | * ifk_module_id - From in the kernel, a value from kev_vendor_code_find. From | ||
| 246 | * user space, a value from SIOCGKEVVENDOR ioctl on a kernel event socket. | ||
| 247 | * ifk_type - The type. Types are specific to each module id. | ||
| 248 | * ifk_data - The data. ifk_ptr may be a 64bit pointer for 64 bit processes. | ||
| 249 | * | ||
| 250 | * Copying data between user space and kernel space is done using copyin | ||
| 251 | * and copyout. A process may be running in 64bit mode. In such a case, | ||
| 252 | * the pointer will be a 64bit pointer, not a 32bit pointer. The following | ||
| 253 | * sample is a safe way to copy the data in to the kernel from either a | ||
| 254 | * 32bit or 64bit process: | ||
| 255 | * | ||
| 256 | * user_addr_t tmp_ptr; | ||
| 257 | * if (IS_64BIT_PROCESS(current_proc())) { | ||
| 258 | * tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr64); | ||
| 259 | * } | ||
| 260 | * else { | ||
| 261 | * tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr); | ||
| 262 | * } | ||
| 263 | * error = copyin(tmp_ptr, allocated_dst_buffer, size of allocated_dst_buffer); | ||
| 264 | */ | ||
| 265 | |||
| 266 | struct ifkpi { | ||
| 267 | 	unsigned int ifk_module_id; | ||
| 268 | 	unsigned int ifk_type; | ||
| 269 | 	union { | ||
| 270 | 		void *ifk_ptr; | ||
| 271 | 		int ifk_value; | ||
| 272 | 	} ifk_data; | ||
| 273 | }; | ||
| 274 | |||
| 275 | /* Wake capabilities of a interface */ | ||
| 276 | #define IF_WAKE_ON_MAGIC_PACKET 0x01 | ||
| 277 | |||
| 278 | |||
| 279 | #pragma pack() | ||
| 280 | |||
| 281 | /* | ||
| 282 | * Interface request structure used for socket | ||
| 283 | * ioctl's. All interface ioctl's must have parameter | ||
| 284 | * definitions which begin with ifr_name. The | ||
| 285 | * remainder may be interface specific. | ||
| 286 | */ | ||
| 287 | struct ifreq { | ||
| 288 | #ifndef IFNAMSIZ | ||
| 289 | #define IFNAMSIZ IF_NAMESIZE | ||
| 290 | #endif | ||
| 291 | 	char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ | ||
| 292 | 	union { | ||
| 293 | 		struct sockaddr ifru_addr; | ||
| 294 | 		struct sockaddr ifru_dstaddr; | ||
| 295 | 		struct sockaddr ifru_broadaddr; | ||
| 296 | 		short ifru_flags; | ||
| 297 | 		int ifru_metric; | ||
| 298 | 		int ifru_mtu; | ||
| 299 | 		int ifru_phys; | ||
| 300 | 		int ifru_media; | ||
| 301 | 		int ifru_intval; | ||
| 302 | 		caddr_t ifru_data; | ||
| 303 | 		struct ifdevmtu ifru_devmtu; | ||
| 304 | 		struct ifkpi ifru_kpi; | ||
| 305 | 		u_int32_t ifru_wake_flags; | ||
| 306 | 		u_int32_t ifru_route_refcnt; | ||
| 307 | 		int ifru_cap[2]; | ||
| 308 | 		u_int32_t ifru_functional_type; | ||
| 309 | #define IFRTYPE_FUNCTIONAL_UNKNOWN 0 | ||
| 310 | #define IFRTYPE_FUNCTIONAL_LOOPBACK 1 | ||
| 311 | #define IFRTYPE_FUNCTIONAL_WIRED 2 | ||
| 312 | #define IFRTYPE_FUNCTIONAL_WIFI_INFRA 3 | ||
| 313 | #define IFRTYPE_FUNCTIONAL_WIFI_AWDL 4 | ||
| 314 | #define IFRTYPE_FUNCTIONAL_CELLULAR 5 | ||
| 315 | #define IFRTYPE_FUNCTIONAL_INTCOPROC 6 | ||
| 316 | #define IFRTYPE_FUNCTIONAL_COMPANIONLINK 7 | ||
| 317 | #define IFRTYPE_FUNCTIONAL_LAST 7 | ||
| 318 | 	} ifr_ifru; | ||
| 319 | #define ifr_addr ifr_ifru.ifru_addr /* address */ | ||
| 320 | #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ | ||
| 321 | #define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ | ||
| 322 | #ifdef __APPLE__ | ||
| 323 | #define ifr_flags ifr_ifru.ifru_flags /* flags */ | ||
| 324 | #else | ||
| 325 | #define ifr_flags ifr_ifru.ifru_flags[0] /* flags */ | ||
| 326 | #define ifr_prevflags ifr_ifru.ifru_flags[1] /* flags */ | ||
| 327 | #endif /* __APPLE__ */ | ||
| 328 | #define ifr_metric ifr_ifru.ifru_metric /* metric */ | ||
| 329 | #define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ | ||
| 330 | #define ifr_phys ifr_ifru.ifru_phys /* physical wire */ | ||
| 331 | #define ifr_media ifr_ifru.ifru_media /* physical media */ | ||
| 332 | #define ifr_data ifr_ifru.ifru_data /* for use by interface */ | ||
| 333 | #define ifr_devmtu ifr_ifru.ifru_devmtu | ||
| 334 | #define ifr_intval ifr_ifru.ifru_intval /* integer value */ | ||
| 335 | #define ifr_kpi ifr_ifru.ifru_kpi | ||
| 336 | #define ifr_wake_flags ifr_ifru.ifru_wake_flags /* wake capabilities */ | ||
| 337 | #define ifr_route_refcnt ifr_ifru.ifru_route_refcnt /* route references count */ | ||
| 338 | #define ifr_reqcap ifr_ifru.ifru_cap[0] /* requested capabilities */ | ||
| 339 | #define ifr_curcap ifr_ifru.ifru_cap[1] /* current capabilities */ | ||
| 340 | }; | ||
| 341 | |||
| 342 | #define _SIZEOF_ADDR_IFREQ(ifr) \ | ||
| 343 | 	((ifr).ifr_addr.sa_len > sizeof (struct sockaddr) ? \ | ||
| 344 | 	(sizeof (struct ifreq) - sizeof (struct sockaddr) + \ | ||
| 345 | 	(ifr).ifr_addr.sa_len) : sizeof (struct ifreq)) | ||
| 346 | |||
| 347 | struct ifaliasreq { | ||
| 348 | 	char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ | ||
| 349 | 	struct sockaddr ifra_addr; | ||
| 350 | 	struct sockaddr ifra_broadaddr; | ||
| 351 | 	struct sockaddr ifra_mask; | ||
| 352 | }; | ||
| 353 | |||
| 354 | struct rslvmulti_req { | ||
| 355 | 	struct sockaddr *sa; | ||
| 356 | 	struct sockaddr **llsa; | ||
| 357 | }; | ||
| 358 | |||
| 359 | #pragma pack(4) | ||
| 360 | |||
| 361 | struct ifmediareq { | ||
| 362 | 	char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */ | ||
| 363 | 	int ifm_current; /* current media options */ | ||
| 364 | 	int ifm_mask; /* don't care mask */ | ||
| 365 | 	int ifm_status; /* media status */ | ||
| 366 | 	int ifm_active; /* active options */ | ||
| 367 | 	int ifm_count; /* # entries in ifm_ulist array */ | ||
| 368 | 	int *ifm_ulist; /* media words */ | ||
| 369 | }; | ||
| 370 | |||
| 371 | #pragma pack() | ||
| 372 | |||
| 373 | |||
| 374 | |||
| 375 | #pragma pack(4) | ||
| 376 | struct ifdrv { | ||
| 377 | 	char ifd_name[IFNAMSIZ]; /* if name, e.g. "en0" */ | ||
| 378 | 	unsigned long ifd_cmd; | ||
| 379 | 	size_t ifd_len; /* length of ifd_data buffer */ | ||
| 380 | 	void *ifd_data; | ||
| 381 | }; | ||
| 382 | #pragma pack() | ||
| 383 | |||
| 384 | |||
| 385 | /* | ||
| 386 | * Structure used to retrieve aux status data from interfaces. | ||
| 387 | * Kernel suppliers to this interface should respect the formatting | ||
| 388 | * needed by ifconfig(8): each line starts with a TAB and ends with | ||
| 389 | * a newline. | ||
| 390 | */ | ||
| 391 | |||
| 392 | #define IFSTATMAX 800 /* 10 lines of text */ | ||
| 393 | struct ifstat { | ||
| 394 | 	char ifs_name[IFNAMSIZ]; /* if name, e.g. "en0" */ | ||
| 395 | 	char ascii[IFSTATMAX + 1]; | ||
| 396 | }; | ||
| 397 | |||
| 398 | /* | ||
| 399 | * Structure used in SIOCGIFCONF request. | ||
| 400 | * Used to retrieve interface configuration | ||
| 401 | * for machine (useful for programs which | ||
| 402 | * must know all networks accessible). | ||
| 403 | */ | ||
| 404 | #pragma pack(4) | ||
| 405 | struct ifconf { | ||
| 406 | 	int ifc_len; /* size of associated buffer */ | ||
| 407 | 	union { | ||
| 408 | 		caddr_t ifcu_buf; | ||
| 409 | 		struct ifreq *ifcu_req; | ||
| 410 | 	} ifc_ifcu; | ||
| 411 | }; | ||
| 412 | #pragma pack() | ||
| 413 | #define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ | ||
| 414 | #define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ | ||
| 415 | |||
| 416 | |||
| 417 | /* | ||
| 418 | * DLIL KEV_DL_PROTO_ATTACHED/DETACHED structure | ||
| 419 | */ | ||
| 420 | struct kev_dl_proto_data { | ||
| 421 | 	struct net_event_data link_data; | ||
| 422 | 	u_int32_t proto_family; | ||
| 423 | 	u_int32_t proto_remaining_count; | ||
| 424 | }; | ||
| 425 | |||
| 426 | |||
| 427 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 428 | |||
| 429 | struct if_nameindex { | ||
| 430 | 	unsigned int if_index; /* 1, 2, ... */ | ||
| 431 | 	char *if_name; /* null terminated name: "le0", ... */ | ||
| 432 | }; | ||
| 433 | |||
| 434 | __BEGIN_DECLS | ||
| 435 | unsigned int if_nametoindex(const char *); | ||
| 436 | char *if_indextoname(unsigned int, char *); | ||
| 437 | struct if_nameindex *if_nameindex(void); | ||
| 438 | void if_freenameindex(struct if_nameindex *); | ||
| 439 | __END_DECLS | ||
| 440 | |||
| 441 | |||
| 442 | #endif /* !_NET_IF_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/net/if_var.h created+242| ... | @@ -0,0 +1,242 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2019 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1982, 1986, 1989, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	From: @(#)if.h	8.1 (Berkeley) 6/10/93 | ||
| 61 | * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.7 2001/07/24 19:10:18 brooks Exp $ | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _NET_IF_VAR_H_ | ||
| 65 | #define _NET_IF_VAR_H_ | ||
| 66 | |||
| 67 | #include <sys/appleapiopts.h> | ||
| 68 | #include <stdint.h> | ||
| 69 | #include <sys/types.h> | ||
| 70 | #include <sys/time.h> | ||
| 71 | #include <sys/queue.h> /* get TAILQ macros */ | ||
| 72 | #ifdef BSD_KERN_PRIVATE | ||
| 73 | #include <sys/eventhandler.h> | ||
| 74 | #endif | ||
| 75 | |||
| 76 | |||
| 77 | #ifdef __APPLE__ | ||
| 78 | #define APPLE_IF_FAM_LOOPBACK 1 | ||
| 79 | #define APPLE_IF_FAM_ETHERNET 2 | ||
| 80 | #define APPLE_IF_FAM_SLIP 3 | ||
| 81 | #define APPLE_IF_FAM_TUN 4 | ||
| 82 | #define APPLE_IF_FAM_VLAN 5 | ||
| 83 | #define APPLE_IF_FAM_PPP 6 | ||
| 84 | #define APPLE_IF_FAM_PVC 7 | ||
| 85 | #define APPLE_IF_FAM_DISC 8 | ||
| 86 | #define APPLE_IF_FAM_MDECAP 9 | ||
| 87 | #define APPLE_IF_FAM_GIF 10 | ||
| 88 | #define APPLE_IF_FAM_FAITH 11 /* deprecated */ | ||
| 89 | #define APPLE_IF_FAM_STF 12 | ||
| 90 | #define APPLE_IF_FAM_FIREWIRE 13 | ||
| 91 | #define APPLE_IF_FAM_BOND 14 | ||
| 92 | #define APPLE_IF_FAM_CELLULAR 15 | ||
| 93 | #define APPLE_IF_FAM_6LOWPAN 16 | ||
| 94 | #define APPLE_IF_FAM_UTUN 17 | ||
| 95 | #define APPLE_IF_FAM_IPSEC 18 | ||
| 96 | #endif /* __APPLE__ */ | ||
| 97 | |||
| 98 | /* | ||
| 99 | * 72 was chosen below because it is the size of a TCP/IP | ||
| 100 | * header (40) + the minimum mss (32). | ||
| 101 | */ | ||
| 102 | #define IF_MINMTU 72 | ||
| 103 | #define IF_MAXMTU 65535 | ||
| 104 | |||
| 105 | /* | ||
| 106 | * Structures defining a network interface, providing a packet | ||
| 107 | * transport mechanism (ala level 0 of the PUP protocols). | ||
| 108 | * | ||
| 109 | * Each interface accepts output datagrams of a specified maximum | ||
| 110 | * length, and provides higher level routines with input datagrams | ||
| 111 | * received from its medium. | ||
| 112 | * | ||
| 113 | * Output occurs when the routine if_output is called, with three parameters: | ||
| 114 | *	(*ifp->if_output)(ifp, m, dst, rt) | ||
| 115 | * Here m is the mbuf chain to be sent and dst is the destination address. | ||
| 116 | * The output routine encapsulates the supplied datagram if necessary, | ||
| 117 | * and then transmits it on its medium. | ||
| 118 | * | ||
| 119 | * On input, each interface unwraps the data received by it, and either | ||
| 120 | * places it on the input queue of a internetwork datagram routine | ||
| 121 | * and posts the associated software interrupt, or passes the datagram to a raw | ||
| 122 | * packet input routine. | ||
| 123 | * | ||
| 124 | * Routines exist for locating interfaces by their addresses | ||
| 125 | * or for locating a interface on a certain network, as well as more general | ||
| 126 | * routing and gateway routines maintaining information used to locate | ||
| 127 | * interfaces. These routines live in the files if.c and route.c | ||
| 128 | */ | ||
| 129 | |||
| 130 | #define IFNAMSIZ 16 | ||
| 131 | |||
| 132 | /* This belongs up in socket.h or socketvar.h, depending on how far the | ||
| 133 | * event bubbles up. | ||
| 134 | */ | ||
| 135 | |||
| 136 | struct net_event_data { | ||
| 137 | 	u_int32_t if_family; | ||
| 138 | 	u_int32_t if_unit; | ||
| 139 | 	char if_name[IFNAMSIZ]; | ||
| 140 | }; | ||
| 141 | |||
| 142 | #if defined(__LP64__) | ||
| 143 | #include <sys/_types/_timeval32.h> | ||
| 144 | #define IF_DATA_TIMEVAL timeval32 | ||
| 145 | #else | ||
| 146 | #define IF_DATA_TIMEVAL timeval | ||
| 147 | #endif | ||
| 148 | |||
| 149 | #pragma pack(4) | ||
| 150 | |||
| 151 | /* | ||
| 152 | * Structure describing information about an interface | ||
| 153 | * which may be of interest to management entities. | ||
| 154 | */ | ||
| 155 | struct if_data { | ||
| 156 | 	/* generic interface information */ | ||
| 157 | 	u_char ifi_type; /* ethernet, tokenring, etc */ | ||
| 158 | 	u_char ifi_typelen; /* Length of frame type id */ | ||
| 159 | 	u_char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */ | ||
| 160 | 	u_char ifi_addrlen; /* media address length */ | ||
| 161 | 	u_char ifi_hdrlen; /* media header length */ | ||
| 162 | 	u_char ifi_recvquota; /* polling quota for receive intrs */ | ||
| 163 | 	u_char ifi_xmitquota; /* polling quota for xmit intrs */ | ||
| 164 | 	u_char ifi_unused1; /* for future use */ | ||
| 165 | 	u_int32_t ifi_mtu; /* maximum transmission unit */ | ||
| 166 | 	u_int32_t ifi_metric; /* routing metric (external only) */ | ||
| 167 | 	u_int32_t ifi_baudrate; /* linespeed */ | ||
| 168 | 	/* volatile statistics */ | ||
| 169 | 	u_int32_t ifi_ipackets; /* packets received on interface */ | ||
| 170 | 	u_int32_t ifi_ierrors; /* input errors on interface */ | ||
| 171 | 	u_int32_t ifi_opackets; /* packets sent on interface */ | ||
| 172 | 	u_int32_t ifi_oerrors; /* output errors on interface */ | ||
| 173 | 	u_int32_t ifi_collisions; /* collisions on csma interfaces */ | ||
| 174 | 	u_int32_t ifi_ibytes; /* total number of octets received */ | ||
| 175 | 	u_int32_t ifi_obytes; /* total number of octets sent */ | ||
| 176 | 	u_int32_t ifi_imcasts; /* packets received via multicast */ | ||
| 177 | 	u_int32_t ifi_omcasts; /* packets sent via multicast */ | ||
| 178 | 	u_int32_t ifi_iqdrops; /* dropped on input, this interface */ | ||
| 179 | 	u_int32_t ifi_noproto; /* destined for unsupported protocol */ | ||
| 180 | 	u_int32_t ifi_recvtiming; /* usec spent receiving when timing */ | ||
| 181 | 	u_int32_t ifi_xmittiming; /* usec spent xmitting when timing */ | ||
| 182 | 	struct IF_DATA_TIMEVAL ifi_lastchange; /* time of last administrative change */ | ||
| 183 | 	u_int32_t ifi_unused2; /* used to be the default_proto */ | ||
| 184 | 	u_int32_t ifi_hwassist; /* HW offload capabilities */ | ||
| 185 | 	u_int32_t ifi_reserved1; /* for future use */ | ||
| 186 | 	u_int32_t ifi_reserved2; /* for future use */ | ||
| 187 | }; | ||
| 188 | |||
| 189 | /* | ||
| 190 | * Structure describing information about an interface | ||
| 191 | * which may be of interest to management entities. | ||
| 192 | */ | ||
| 193 | struct if_data64 { | ||
| 194 | 	/* generic interface information */ | ||
| 195 | 	u_char ifi_type; /* ethernet, tokenring, etc */ | ||
| 196 | 	u_char ifi_typelen; /* Length of frame type id */ | ||
| 197 | 	u_char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */ | ||
| 198 | 	u_char ifi_addrlen; /* media address length */ | ||
| 199 | 	u_char ifi_hdrlen; /* media header length */ | ||
| 200 | 	u_char ifi_recvquota; /* polling quota for receive intrs */ | ||
| 201 | 	u_char ifi_xmitquota; /* polling quota for xmit intrs */ | ||
| 202 | 	u_char ifi_unused1; /* for future use */ | ||
| 203 | 	u_int32_t ifi_mtu; /* maximum transmission unit */ | ||
| 204 | 	u_int32_t ifi_metric; /* routing metric (external only) */ | ||
| 205 | 	u_int64_t ifi_baudrate; /* linespeed */ | ||
| 206 | 	/* volatile statistics */ | ||
| 207 | 	u_int64_t ifi_ipackets; /* packets received on interface */ | ||
| 208 | 	u_int64_t ifi_ierrors; /* input errors on interface */ | ||
| 209 | 	u_int64_t ifi_opackets; /* packets sent on interface */ | ||
| 210 | 	u_int64_t ifi_oerrors; /* output errors on interface */ | ||
| 211 | 	u_int64_t ifi_collisions; /* collisions on csma interfaces */ | ||
| 212 | 	u_int64_t ifi_ibytes; /* total number of octets received */ | ||
| 213 | 	u_int64_t ifi_obytes; /* total number of octets sent */ | ||
| 214 | 	u_int64_t ifi_imcasts; /* packets received via multicast */ | ||
| 215 | 	u_int64_t ifi_omcasts; /* packets sent via multicast */ | ||
| 216 | 	u_int64_t ifi_iqdrops; /* dropped on input, this interface */ | ||
| 217 | 	u_int64_t ifi_noproto; /* destined for unsupported protocol */ | ||
| 218 | 	u_int32_t ifi_recvtiming; /* usec spent receiving when timing */ | ||
| 219 | 	u_int32_t ifi_xmittiming; /* usec spent xmitting when timing */ | ||
| 220 | 	struct IF_DATA_TIMEVAL ifi_lastchange; /* time of last administrative change */ | ||
| 221 | }; | ||
| 222 | |||
| 223 | |||
| 224 | #pragma pack() | ||
| 225 | |||
| 226 | /* | ||
| 227 | * Structure defining a queue for a network interface. | ||
| 228 | */ | ||
| 229 | struct ifqueue { | ||
| 230 | 	void *ifq_head; | ||
| 231 | 	void *ifq_tail; | ||
| 232 | 	int ifq_len; | ||
| 233 | 	int ifq_maxlen; | ||
| 234 | 	int ifq_drops; | ||
| 235 | }; | ||
| 236 | |||
| 237 | |||
| 238 | |||
| 239 | |||
| 240 | |||
| 241 | |||
| 242 | #endif /* !_NET_IF_VAR_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/net/net_kev.h created+98| ... | @@ -0,0 +1,98 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2016-2018 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _NET_NETKEV_H_ | ||
| 30 | #define _NET_NETKEV_H_ | ||
| 31 | |||
| 32 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 33 | |||
| 34 | /* Kernel event subclass identifiers for KEV_NETWORK_CLASS */ | ||
| 35 | #define KEV_INET_SUBCLASS 1 /* inet subclass */ | ||
| 36 | /* KEV_INET_SUBCLASS event codes */ | ||
| 37 | #define KEV_INET_NEW_ADDR 1 /* Userland configured IP address */ | ||
| 38 | #define KEV_INET_CHANGED_ADDR 2 /* Address changed event */ | ||
| 39 | #define KEV_INET_ADDR_DELETED 3 /* IPv6 address was deleted */ | ||
| 40 | #define KEV_INET_SIFDSTADDR 4 /* Dest. address was set */ | ||
| 41 | #define KEV_INET_SIFBRDADDR 5 /* Broadcast address was set */ | ||
| 42 | #define KEV_INET_SIFNETMASK 6 /* Netmask was set */ | ||
| 43 | #define KEV_INET_ARPCOLLISION 7 /* ARP collision detected */ | ||
| 44 | #ifdef __APPLE_API_PRIVATE | ||
| 45 | #define KEV_INET_PORTINUSE 8 /* use ken_in_portinuse */ | ||
| 46 | #endif | ||
| 47 | #define KEV_INET_ARPRTRFAILURE 9 /* ARP resolution failed for router */ | ||
| 48 | #define KEV_INET_ARPRTRALIVE 10 /* ARP resolution succeeded for router */ | ||
| 49 | |||
| 50 | #define KEV_DL_SUBCLASS 2 /* Data Link subclass */ | ||
| 51 | /* | ||
| 52 | * Define Data-Link event subclass, and associated | ||
| 53 | * events. | ||
| 54 | */ | ||
| 55 | #define KEV_DL_SIFFLAGS 1 | ||
| 56 | #define KEV_DL_SIFMETRICS 2 | ||
| 57 | #define KEV_DL_SIFMTU 3 | ||
| 58 | #define KEV_DL_SIFPHYS 4 | ||
| 59 | #define KEV_DL_SIFMEDIA 5 | ||
| 60 | #define KEV_DL_SIFGENERIC 6 | ||
| 61 | #define KEV_DL_ADDMULTI 7 | ||
| 62 | #define KEV_DL_DELMULTI 8 | ||
| 63 | #define KEV_DL_IF_ATTACHED 9 | ||
| 64 | #define KEV_DL_IF_DETACHING 10 | ||
| 65 | #define KEV_DL_IF_DETACHED 11 | ||
| 66 | #define KEV_DL_LINK_OFF 12 | ||
| 67 | #define KEV_DL_LINK_ON 13 | ||
| 68 | #define KEV_DL_PROTO_ATTACHED 14 | ||
| 69 | #define KEV_DL_PROTO_DETACHED 15 | ||
| 70 | #define KEV_DL_LINK_ADDRESS_CHANGED 16 | ||
| 71 | #define KEV_DL_WAKEFLAGS_CHANGED 17 | ||
| 72 | #define KEV_DL_IF_IDLE_ROUTE_REFCNT 18 | ||
| 73 | #define KEV_DL_IFCAP_CHANGED 19 | ||
| 74 | #define KEV_DL_LINK_QUALITY_METRIC_CHANGED 20 | ||
| 75 | #define KEV_DL_NODE_PRESENCE 21 | ||
| 76 | #define KEV_DL_NODE_ABSENCE 22 | ||
| 77 | #define KEV_DL_MASTER_ELECTED 23 | ||
| 78 | #define KEV_DL_ISSUES 24 | ||
| 79 | #define KEV_DL_IFDELEGATE_CHANGED 25 | ||
| 80 | #define KEV_DL_AWDL_RESTRICTED 26 | ||
| 81 | #define KEV_DL_AWDL_UNRESTRICTED 27 | ||
| 82 | #define KEV_DL_RRC_STATE_CHANGED 28 | ||
| 83 | #define KEV_DL_QOS_MODE_CHANGED 29 | ||
| 84 | #define KEV_DL_LOW_POWER_MODE_CHANGED 30 | ||
| 85 | |||
| 86 | |||
| 87 | #define KEV_INET6_SUBCLASS 6 /* inet6 subclass */ | ||
| 88 | /* KEV_INET6_SUBCLASS event codes */ | ||
| 89 | #define KEV_INET6_NEW_USER_ADDR 1 /* Userland configured IPv6 address */ | ||
| 90 | #define KEV_INET6_CHANGED_ADDR 2 /* Address changed event (future) */ | ||
| 91 | #define KEV_INET6_ADDR_DELETED 3 /* IPv6 address was deleted */ | ||
| 92 | #define KEV_INET6_NEW_LL_ADDR 4 /* Autoconf LL address appeared */ | ||
| 93 | #define KEV_INET6_NEW_RTADV_ADDR 5 /* Autoconf address has appeared */ | ||
| 94 | #define KEV_INET6_DEFROUTER 6 /* Default router detected */ | ||
| 95 | #define KEV_INET6_REQUEST_NAT64_PREFIX 7 /* Asking for the NAT64-prefix */ | ||
| 96 | |||
| 97 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 98 | #endif /* _NET_NETKEV_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/netdb.h created+319| ... | @@ -0,0 +1,319 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2009 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /* | ||
| 24 | * ++Copyright++ 1980, 1983, 1988, 1993 | ||
| 25 | * - | ||
| 26 | * Copyright (c) 1980, 1983, 1988, 1993 | ||
| 27 | *	The Regents of the University of California. All rights reserved. | ||
| 28 | * | ||
| 29 | * Redistribution and use in source and binary forms, with or without | ||
| 30 | * modification, are permitted provided that the following conditions | ||
| 31 | * are met: | ||
| 32 | * 1. Redistributions of source code must retain the above copyright | ||
| 33 | * notice, this list of conditions and the following disclaimer. | ||
| 34 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 35 | * notice, this list of conditions and the following disclaimer in the | ||
| 36 | * documentation and/or other materials provided with the distribution. | ||
| 37 | * 3. All advertising materials mentioning features or use of this software | ||
| 38 | * must display the following acknowledgement: | ||
| 39 | *	This product includes software developed by the University of | ||
| 40 | *	California, Berkeley and its contributors. | ||
| 41 | * 4. Neither the name of the University nor the names of its contributors | ||
| 42 | * may be used to endorse or promote products derived from this software | ||
| 43 | * without specific prior written permission. | ||
| 44 | * | ||
| 45 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 46 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 47 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 48 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 49 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 50 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 51 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 52 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 53 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 54 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 55 | * SUCH DAMAGE. | ||
| 56 | * | ||
| 57 | * - | ||
| 58 | * Portions Copyright (c) 1993 by Digital Equipment Corporation. | ||
| 59 | * | ||
| 60 | * Permission to use, copy, modify, and distribute this software for any | ||
| 61 | * purpose with or without fee is hereby granted, provided that the above | ||
| 62 | * copyright notice and this permission notice appear in all copies, and that | ||
| 63 | * the name of Digital Equipment Corporation not be used in advertising or | ||
| 64 | * publicity pertaining to distribution of the document or software without | ||
| 65 | * specific, written prior permission. | ||
| 66 | * | ||
| 67 | * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL | ||
| 68 | * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES | ||
| 69 | * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT | ||
| 70 | * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | ||
| 71 | * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | ||
| 72 | * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS | ||
| 73 | * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | ||
| 74 | * SOFTWARE. | ||
| 75 | * - | ||
| 76 | * --Copyright-- | ||
| 77 | */ | ||
| 78 | |||
| 79 | /* | ||
| 80 | * @(#)netdb.h	8.1 (Berkeley) 6/2/93 | ||
| 81 | */ | ||
| 82 | |||
| 83 | #ifndef _NETDB_H_ | ||
| 84 | #define _NETDB_H_ | ||
| 85 | |||
| 86 | #include <_types.h> | ||
| 87 | #include <sys/_types/_size_t.h> | ||
| 88 | #include <sys/_types/_socklen_t.h> | ||
| 89 | |||
| 90 | #include <stdint.h> | ||
| 91 | #include <netinet/in.h>		/* IPPORT_RESERVED */ | ||
| 92 | |||
| 93 | #ifndef _PATH_HEQUIV | ||
| 94 | # define	_PATH_HEQUIV	"/etc/hosts.equiv" | ||
| 95 | #endif | ||
| 96 | #define	_PATH_HOSTS	"/etc/hosts" | ||
| 97 | #define	_PATH_NETWORKS	"/etc/networks" | ||
| 98 | #define	_PATH_PROTOCOLS	"/etc/protocols" | ||
| 99 | #define	_PATH_SERVICES	"/etc/services" | ||
| 100 | |||
| 101 | extern int h_errno; | ||
| 102 | |||
| 103 | #ifndef IPPORT_RESERVED | ||
| 104 | #define	IPPORT_RESERVED		__DARWIN_IPPORT_RESERVED | ||
| 105 | #endif | ||
| 106 | |||
| 107 | /* | ||
| 108 | * Structures returned by network data base library. All addresses are | ||
| 109 | * supplied in host order, and returned in network order (suitable for | ||
| 110 | * use in system calls). | ||
| 111 | */ | ||
| 112 | struct hostent { | ||
| 113 | 	char	*h_name;	/* official name of host */ | ||
| 114 | 	char	**h_aliases;	/* alias list */ | ||
| 115 | 	int	h_addrtype;	/* host address type */ | ||
| 116 | 	int	h_length;	/* length of address */ | ||
| 117 | 	char	**h_addr_list;	/* list of addresses from name server */ | ||
| 118 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 119 | #define	h_addr	h_addr_list[0]	/* address, for backward compatibility */ | ||
| 120 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 121 | }; | ||
| 122 | |||
| 123 | /* | ||
| 124 | * Assumption here is that a network number | ||
| 125 | * fits in an unsigned long -- probably a poor one. | ||
| 126 | */ | ||
| 127 | struct netent { | ||
| 128 | 	char		*n_name;	/* official name of net */ | ||
| 129 | 	char		**n_aliases;	/* alias list */ | ||
| 130 | 	int		n_addrtype;	/* net address type */ | ||
| 131 | 	uint32_t	n_net;		/* network # */ | ||
| 132 | }; | ||
| 133 | |||
| 134 | struct servent { | ||
| 135 | 	char	*s_name;	/* official service name */ | ||
| 136 | 	char	**s_aliases;	/* alias list */ | ||
| 137 | 	int	s_port;		/* port # */ | ||
| 138 | 	char	*s_proto;	/* protocol to use */ | ||
| 139 | }; | ||
| 140 | |||
| 141 | struct protoent { | ||
| 142 | 	char	*p_name;	/* official protocol name */ | ||
| 143 | 	char	**p_aliases;	/* alias list */ | ||
| 144 | 	int	p_proto;	/* protocol # */ | ||
| 145 | }; | ||
| 146 | |||
| 147 | struct addrinfo { | ||
| 148 | 	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ | ||
| 149 | 	int	ai_family;	/* PF_xxx */ | ||
| 150 | 	int	ai_socktype;	/* SOCK_xxx */ | ||
| 151 | 	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */ | ||
| 152 | 	socklen_t ai_addrlen;	/* length of ai_addr */ | ||
| 153 | 	char	*ai_canonname;	/* canonical name for hostname */ | ||
| 154 | 	struct	sockaddr *ai_addr;	/* binary address */ | ||
| 155 | 	struct	addrinfo *ai_next;	/* next structure in linked list */ | ||
| 156 | }; | ||
| 157 | |||
| 158 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 159 | struct rpcent { | ||
| 160 | char *r_name; /* name of server for this rpc program */ | ||
| 161 | char **r_aliases; /* alias list */ | ||
| 162 | int r_number; /* rpc program number */ | ||
| 163 | }; | ||
| 164 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 165 | |||
| 166 | /* | ||
| 167 | * Error return codes from gethostbyname() and gethostbyaddr() | ||
| 168 | * (left in h_errno). | ||
| 169 | */ | ||
| 170 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 171 | #define	NETDB_INTERNAL	-1	/* see errno */ | ||
| 172 | #define	NETDB_SUCCESS	0	/* no problem */ | ||
| 173 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 174 | #define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */ | ||
| 175 | #define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */ | ||
| 176 | #define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ | ||
| 177 | #define	NO_DATA		4 /* Valid name, no data record of requested type */ | ||
| 178 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 179 | #define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */ | ||
| 180 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 181 | /* | ||
| 182 | * Error return codes from getaddrinfo() | ||
| 183 | */ | ||
| 184 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 185 | #define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */ | ||
| 186 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 187 | #define	EAI_AGAIN	 2	/* temporary failure in name resolution */ | ||
| 188 | #define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */ | ||
| 189 | #define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */ | ||
| 190 | #define	EAI_FAMILY	 5	/* ai_family not supported */ | ||
| 191 | #define	EAI_MEMORY	 6	/* memory allocation failure */ | ||
| 192 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 193 | #define	EAI_NODATA	 7	/* no address associated with hostname */ | ||
| 194 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 195 | #define	EAI_NONAME	 8	/* hostname nor servname provided, or not known */ | ||
| 196 | #define	EAI_SERVICE	 9	/* servname not supported for ai_socktype */ | ||
| 197 | #define	EAI_SOCKTYPE	10	/* ai_socktype not supported */ | ||
| 198 | #define	EAI_SYSTEM	11	/* system error returned in errno */ | ||
| 199 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 200 | #define	EAI_BADHINTS	12	/* invalid value for hints */ | ||
| 201 | #define	EAI_PROTOCOL	13	/* resolved protocol is unknown */ | ||
| 202 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 203 | #define	EAI_OVERFLOW	14	/* argument buffer overflow */ | ||
| 204 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 205 | #define	EAI_MAX		15 | ||
| 206 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 207 | |||
| 208 | /* | ||
| 209 | * Flag values for getaddrinfo() | ||
| 210 | */ | ||
| 211 | #define	AI_PASSIVE	0x00000001 /* get address to use bind() */ | ||
| 212 | #define	AI_CANONNAME	0x00000002 /* fill ai_canonname */ | ||
| 213 | #define	AI_NUMERICHOST	0x00000004 /* prevent host name resolution */ | ||
| 214 | #define	AI_NUMERICSERV	0x00001000 /* prevent service name resolution */ | ||
| 215 | /* valid flags for addrinfo (not a standard def, apps should not use it) */ | ||
| 216 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 217 | #define AI_MASK \ | ||
| 218 | (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | \ | ||
| 219 | AI_ADDRCONFIG) | ||
| 220 | |||
| 221 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 222 | #define	AI_ALL		0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */ | ||
| 223 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 224 | #define	AI_V4MAPPED_CFG	0x00000200 /* accept IPv4-mapped if kernel supports */ | ||
| 225 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 226 | #define	AI_ADDRCONFIG	0x00000400 /* only if any address is assigned */ | ||
| 227 | #define	AI_V4MAPPED	0x00000800 /* accept IPv4-mapped IPv6 address */ | ||
| 228 | /* special recommended flags for getipnodebyname */ | ||
| 229 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 230 | #define	AI_DEFAULT	(AI_V4MAPPED_CFG | AI_ADDRCONFIG) | ||
| 231 | /* If the hints pointer is null or ai_flags is zero, getaddrinfo() automatically defaults to the AI_DEFAULT behavior. | ||
| 232 | * To override this default behavior, thereby causing unusable addresses to be included in the results, pass any nonzero | ||
| 233 | * value for ai_flags, by setting any desired flag values, or by setting AI_UNUSABLE if no other flags are desired. */ | ||
| 234 | #define	AI_UNUSABLE	0x10000000 /* return addresses even if unusable (i.e. opposite of AI_DEFAULT) */ | ||
| 235 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 236 | |||
| 237 | /* | ||
| 238 | * Constants for getnameinfo() | ||
| 239 | */ | ||
| 240 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 241 | #define	NI_MAXHOST	1025 | ||
| 242 | #define	NI_MAXSERV	32 | ||
| 243 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 244 | /* | ||
| 245 | * Flag values for getnameinfo() | ||
| 246 | */ | ||
| 247 | #define	NI_NOFQDN	0x00000001 | ||
| 248 | #define	NI_NUMERICHOST	0x00000002 | ||
| 249 | #define	NI_NAMEREQD	0x00000004 | ||
| 250 | #define	NI_NUMERICSERV	0x00000008 | ||
| 251 | #define	NI_NUMERICSCOPE 0x00000100 | ||
| 252 | #define	NI_DGRAM	0x00000010 | ||
| 253 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 254 | #define NI_WITHSCOPEID	0x00000020 | ||
| 255 | |||
| 256 | /* | ||
| 257 | * Scope delimit character | ||
| 258 | */ | ||
| 259 | #define	SCOPE_DELIMITER	'%' | ||
| 260 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 261 | |||
| 262 | __BEGIN_DECLS | ||
| 263 | |||
| 264 | void		endhostent(void); | ||
| 265 | void		endnetent(void); | ||
| 266 | void		endprotoent(void); | ||
| 267 | void		endservent(void); | ||
| 268 | |||
| 269 | void		freeaddrinfo(struct addrinfo *); | ||
| 270 | const char	*gai_strerror(int); | ||
| 271 | int		getaddrinfo(const char * __restrict, const char * __restrict, | ||
| 272 | 			 const struct addrinfo * __restrict, | ||
| 273 | 			 struct addrinfo ** __restrict); | ||
| 274 | struct hostent	*gethostbyaddr(const void *, socklen_t, int); | ||
| 275 | struct hostent	*gethostbyname(const char *); | ||
| 276 | struct hostent	*gethostent(void); | ||
| 277 | int getnameinfo(const struct sockaddr * __restrict, socklen_t, | ||
| 278 | 			 char * __restrict, socklen_t, char * __restrict, | ||
| 279 | 			 socklen_t, int); | ||
| 280 | struct netent	*getnetbyaddr(uint32_t, int); | ||
| 281 | struct netent	*getnetbyname(const char *); | ||
| 282 | struct netent	*getnetent(void); | ||
| 283 | struct protoent	*getprotobyname(const char *); | ||
| 284 | struct protoent	*getprotobynumber(int); | ||
| 285 | struct protoent	*getprotoent(void); | ||
| 286 | struct servent	*getservbyname(const char *, const char *); | ||
| 287 | struct servent	*getservbyport(int, const char *); | ||
| 288 | struct servent	*getservent(void); | ||
| 289 | void		sethostent(int); | ||
| 290 | /* void		sethostfile(const char *); */ | ||
| 291 | void		setnetent(int); | ||
| 292 | void		setprotoent(int); | ||
| 293 | void		setservent(int); | ||
| 294 | |||
| 295 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 296 | void		freehostent(struct hostent *); | ||
| 297 | struct hostent	*gethostbyname2(const char *, int); | ||
| 298 | struct hostent	*getipnodebyaddr(const void *, size_t, int, int *); | ||
| 299 | struct hostent	*getipnodebyname(const char *, int, int, int *); | ||
| 300 | struct rpcent	*getrpcbyname(const char *name); | ||
| 301 | #ifdef __LP64__ | ||
| 302 | struct rpcent	*getrpcbynumber(int number); | ||
| 303 | #else | ||
| 304 | struct rpcent	*getrpcbynumber(long number); | ||
| 305 | #endif | ||
| 306 | struct rpcent	*getrpcent(void); | ||
| 307 | void		setrpcent(int stayopen); | ||
| 308 | void		endrpcent(void); | ||
| 309 | void		herror(const char *); | ||
| 310 | const char	*hstrerror(int); | ||
| 311 | int			innetgr(const char *, const char *, const char *, const char *); | ||
| 312 | int			getnetgrent(char **, char **, char **); | ||
| 313 | void		endnetgrent(void); | ||
| 314 | void		setnetgrent(const char *); | ||
| 315 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 316 | |||
| 317 | __END_DECLS | ||
| 318 | |||
| 319 | #endif /* !_NETDB_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/netinet/in.h created+671| ... | @@ -0,0 +1,671 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2018 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1982, 1986, 1990, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	@(#)in.h	8.3 (Berkeley) 1/3/94 | ||
| 61 | * $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $ | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _NETINET_IN_H_ | ||
| 65 | #define _NETINET_IN_H_ | ||
| 66 | #include <sys/appleapiopts.h> | ||
| 67 | #include <sys/_types.h> | ||
| 68 | #include <stdint.h> /* uint(8|16|32)_t */ | ||
| 69 | |||
| 70 | #include <Availability.h> | ||
| 71 | |||
| 72 | #include <sys/_types/_in_addr_t.h> | ||
| 73 | |||
| 74 | #include <sys/_types/_in_port_t.h> | ||
| 75 | |||
| 76 | /* | ||
| 77 | * POSIX 1003.1-2003 | ||
| 78 | * "Inclusion of the <netinet/in.h> header may also make visible all | ||
| 79 | * symbols from <inttypes.h> and <sys/socket.h>". | ||
| 80 | */ | ||
| 81 | #include <sys/socket.h> | ||
| 82 | |||
| 83 | /* | ||
| 84 | * The following two #includes insure htonl and family are defined | ||
| 85 | */ | ||
| 86 | #include <machine/endian.h> | ||
| 87 | #include <sys/_endian.h> | ||
| 88 | |||
| 89 | /* | ||
| 90 | * Constants and structures defined by the internet system, | ||
| 91 | * Per RFC 790, September 1981, and numerous additions. | ||
| 92 | */ | ||
| 93 | |||
| 94 | /* | ||
| 95 | * Protocols (RFC 1700) | ||
| 96 | */ | ||
| 97 | #define IPPROTO_IP 0 /* dummy for IP */ | ||
| 98 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 99 | #define IPPROTO_HOPOPTS 0 /* IP6 hop-by-hop options */ | ||
| 100 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 101 | #define IPPROTO_ICMP 1 /* control message protocol */ | ||
| 102 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 103 | #define IPPROTO_IGMP 2 /* group mgmt protocol */ | ||
| 104 | #define IPPROTO_GGP 3 /* gateway^2 (deprecated) */ | ||
| 105 | #define IPPROTO_IPV4 4 /* IPv4 encapsulation */ | ||
| 106 | #define IPPROTO_IPIP IPPROTO_IPV4 /* for compatibility */ | ||
| 107 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 108 | #define IPPROTO_TCP 6 /* tcp */ | ||
| 109 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 110 | #define IPPROTO_ST 7 /* Stream protocol II */ | ||
| 111 | #define IPPROTO_EGP 8 /* exterior gateway protocol */ | ||
| 112 | #define IPPROTO_PIGP 9 /* private interior gateway */ | ||
| 113 | #define IPPROTO_RCCMON 10 /* BBN RCC Monitoring */ | ||
| 114 | #define IPPROTO_NVPII 11 /* network voice protocol*/ | ||
| 115 | #define IPPROTO_PUP 12 /* pup */ | ||
| 116 | #define IPPROTO_ARGUS 13 /* Argus */ | ||
| 117 | #define IPPROTO_EMCON 14 /* EMCON */ | ||
| 118 | #define IPPROTO_XNET 15 /* Cross Net Debugger */ | ||
| 119 | #define IPPROTO_CHAOS 16 /* Chaos*/ | ||
| 120 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 121 | #define IPPROTO_UDP 17 /* user datagram protocol */ | ||
| 122 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 123 | #define IPPROTO_MUX 18 /* Multiplexing */ | ||
| 124 | #define IPPROTO_MEAS 19 /* DCN Measurement Subsystems */ | ||
| 125 | #define IPPROTO_HMP 20 /* Host Monitoring */ | ||
| 126 | #define IPPROTO_PRM 21 /* Packet Radio Measurement */ | ||
| 127 | #define IPPROTO_IDP 22 /* xns idp */ | ||
| 128 | #define IPPROTO_TRUNK1 23 /* Trunk-1 */ | ||
| 129 | #define IPPROTO_TRUNK2 24 /* Trunk-2 */ | ||
| 130 | #define IPPROTO_LEAF1 25 /* Leaf-1 */ | ||
| 131 | #define IPPROTO_LEAF2 26 /* Leaf-2 */ | ||
| 132 | #define IPPROTO_RDP 27 /* Reliable Data */ | ||
| 133 | #define IPPROTO_IRTP 28 /* Reliable Transaction */ | ||
| 134 | #define IPPROTO_TP 29 /* tp-4 w/ class negotiation */ | ||
| 135 | #define IPPROTO_BLT 30 /* Bulk Data Transfer */ | ||
| 136 | #define IPPROTO_NSP 31 /* Network Services */ | ||
| 137 | #define IPPROTO_INP 32 /* Merit Internodal */ | ||
| 138 | #define IPPROTO_SEP 33 /* Sequential Exchange */ | ||
| 139 | #define IPPROTO_3PC 34 /* Third Party Connect */ | ||
| 140 | #define IPPROTO_IDPR 35 /* InterDomain Policy Routing */ | ||
| 141 | #define IPPROTO_XTP 36 /* XTP */ | ||
| 142 | #define IPPROTO_DDP 37 /* Datagram Delivery */ | ||
| 143 | #define IPPROTO_CMTP 38 /* Control Message Transport */ | ||
| 144 | #define IPPROTO_TPXX 39 /* TP++ Transport */ | ||
| 145 | #define IPPROTO_IL 40 /* IL transport protocol */ | ||
| 146 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 147 | #define IPPROTO_IPV6 41 /* IP6 header */ | ||
| 148 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 149 | #define IPPROTO_SDRP 42 /* Source Demand Routing */ | ||
| 150 | #define IPPROTO_ROUTING 43 /* IP6 routing header */ | ||
| 151 | #define IPPROTO_FRAGMENT 44 /* IP6 fragmentation header */ | ||
| 152 | #define IPPROTO_IDRP 45 /* InterDomain Routing*/ | ||
| 153 | #define IPPROTO_RSVP 46 /* resource reservation */ | ||
| 154 | #define IPPROTO_GRE 47 /* General Routing Encap. */ | ||
| 155 | #define IPPROTO_MHRP 48 /* Mobile Host Routing */ | ||
| 156 | #define IPPROTO_BHA 49 /* BHA */ | ||
| 157 | #define IPPROTO_ESP 50 /* IP6 Encap Sec. Payload */ | ||
| 158 | #define IPPROTO_AH 51 /* IP6 Auth Header */ | ||
| 159 | #define IPPROTO_INLSP 52 /* Integ. Net Layer Security */ | ||
| 160 | #define IPPROTO_SWIPE 53 /* IP with encryption */ | ||
| 161 | #define IPPROTO_NHRP 54 /* Next Hop Resolution */ | ||
| 162 | /* 55-57: Unassigned */ | ||
| 163 | #define IPPROTO_ICMPV6 58 /* ICMP6 */ | ||
| 164 | #define IPPROTO_NONE 59 /* IP6 no next header */ | ||
| 165 | #define IPPROTO_DSTOPTS 60 /* IP6 destination option */ | ||
| 166 | #define IPPROTO_AHIP 61 /* any host internal protocol */ | ||
| 167 | #define IPPROTO_CFTP 62 /* CFTP */ | ||
| 168 | #define IPPROTO_HELLO 63 /* "hello" routing protocol */ | ||
| 169 | #define IPPROTO_SATEXPAK 64 /* SATNET/Backroom EXPAK */ | ||
| 170 | #define IPPROTO_KRYPTOLAN 65 /* Kryptolan */ | ||
| 171 | #define IPPROTO_RVD 66 /* Remote Virtual Disk */ | ||
| 172 | #define IPPROTO_IPPC 67 /* Pluribus Packet Core */ | ||
| 173 | #define IPPROTO_ADFS 68 /* Any distributed FS */ | ||
| 174 | #define IPPROTO_SATMON 69 /* Satnet Monitoring */ | ||
| 175 | #define IPPROTO_VISA 70 /* VISA Protocol */ | ||
| 176 | #define IPPROTO_IPCV 71 /* Packet Core Utility */ | ||
| 177 | #define IPPROTO_CPNX 72 /* Comp. Prot. Net. Executive */ | ||
| 178 | #define IPPROTO_CPHB 73 /* Comp. Prot. HeartBeat */ | ||
| 179 | #define IPPROTO_WSN 74 /* Wang Span Network */ | ||
| 180 | #define IPPROTO_PVP 75 /* Packet Video Protocol */ | ||
| 181 | #define IPPROTO_BRSATMON 76 /* BackRoom SATNET Monitoring */ | ||
| 182 | #define IPPROTO_ND 77 /* Sun net disk proto (temp.) */ | ||
| 183 | #define IPPROTO_WBMON 78 /* WIDEBAND Monitoring */ | ||
| 184 | #define IPPROTO_WBEXPAK 79 /* WIDEBAND EXPAK */ | ||
| 185 | #define IPPROTO_EON 80 /* ISO cnlp */ | ||
| 186 | #define IPPROTO_VMTP 81 /* VMTP */ | ||
| 187 | #define IPPROTO_SVMTP 82 /* Secure VMTP */ | ||
| 188 | #define IPPROTO_VINES 83 /* Banyon VINES */ | ||
| 189 | #define IPPROTO_TTP 84 /* TTP */ | ||
| 190 | #define IPPROTO_IGP 85 /* NSFNET-IGP */ | ||
| 191 | #define IPPROTO_DGP 86 /* dissimilar gateway prot. */ | ||
| 192 | #define IPPROTO_TCF 87 /* TCF */ | ||
| 193 | #define IPPROTO_IGRP 88 /* Cisco/GXS IGRP */ | ||
| 194 | #define IPPROTO_OSPFIGP 89 /* OSPFIGP */ | ||
| 195 | #define IPPROTO_SRPC 90 /* Strite RPC protocol */ | ||
| 196 | #define IPPROTO_LARP 91 /* Locus Address Resoloution */ | ||
| 197 | #define IPPROTO_MTP 92 /* Multicast Transport */ | ||
| 198 | #define IPPROTO_AX25 93 /* AX.25 Frames */ | ||
| 199 | #define IPPROTO_IPEIP 94 /* IP encapsulated in IP */ | ||
| 200 | #define IPPROTO_MICP 95 /* Mobile Int.ing control */ | ||
| 201 | #define IPPROTO_SCCSP 96 /* Semaphore Comm. security */ | ||
| 202 | #define IPPROTO_ETHERIP 97 /* Ethernet IP encapsulation */ | ||
| 203 | #define IPPROTO_ENCAP 98 /* encapsulation header */ | ||
| 204 | #define IPPROTO_APES 99 /* any private encr. scheme */ | ||
| 205 | #define IPPROTO_GMTP 100 /* GMTP*/ | ||
| 206 | /* 101-252: Partly Unassigned */ | ||
| 207 | #define IPPROTO_PIM 103 /* Protocol Independent Mcast */ | ||
| 208 | #define IPPROTO_IPCOMP 108 /* payload compression (IPComp) */ | ||
| 209 | #define IPPROTO_PGM 113 /* PGM */ | ||
| 210 | #define IPPROTO_SCTP 132 /* SCTP */ | ||
| 211 | /* 253-254: Experimentation and testing; 255: Reserved (RFC3692) */ | ||
| 212 | /* BSD Private, local use, namespace incursion */ | ||
| 213 | #define IPPROTO_DIVERT 254 /* divert pseudo-protocol */ | ||
| 214 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 215 | #define IPPROTO_RAW 255 /* raw IP packet */ | ||
| 216 | |||
| 217 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 218 | #define IPPROTO_MAX 256 | ||
| 219 | |||
| 220 | /* last return value of *_input(), meaning "all job for this pkt is done". */ | ||
| 221 | #define IPPROTO_DONE 257 | ||
| 222 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 223 | |||
| 224 | /* | ||
| 225 | * Local port number conventions: | ||
| 226 | * | ||
| 227 | * When a user does a bind(2) or connect(2) with a port number of zero, | ||
| 228 | * a non-conflicting local port address is chosen. | ||
| 229 | * The default range is IPPORT_RESERVED through | ||
| 230 | * IPPORT_USERRESERVED, although that is settable by sysctl. | ||
| 231 | * | ||
| 232 | * A user may set the IPPROTO_IP option IP_PORTRANGE to change this | ||
| 233 | * default assignment range. | ||
| 234 | * | ||
| 235 | * The value IP_PORTRANGE_DEFAULT causes the default behavior. | ||
| 236 | * | ||
| 237 | * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers | ||
| 238 | * into the "high" range. These are reserved for client outbound connections | ||
| 239 | * which do not want to be filtered by any firewalls. | ||
| 240 | * | ||
| 241 | * The value IP_PORTRANGE_LOW changes the range to the "low" are | ||
| 242 | * that is (by convention) restricted to privileged processes. This | ||
| 243 | * convention is based on "vouchsafe" principles only. It is only secure | ||
| 244 | * if you trust the remote host to restrict these ports. | ||
| 245 | * | ||
| 246 | * The default range of ports and the high range can be changed by | ||
| 247 | * sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto) | ||
| 248 | * | ||
| 249 | * Changing those values has bad security implications if you are | ||
| 250 | * using a a stateless firewall that is allowing packets outside of that | ||
| 251 | * range in order to allow transparent outgoing connections. | ||
| 252 | * | ||
| 253 | * Such a firewall configuration will generally depend on the use of these | ||
| 254 | * default values. If you change them, you may find your Security | ||
| 255 | * Administrator looking for you with a heavy object. | ||
| 256 | * | ||
| 257 | * For a slightly more orthodox text view on this: | ||
| 258 | * | ||
| 259 | * ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers | ||
| 260 | * | ||
| 261 | * port numbers are divided into three ranges: | ||
| 262 | * | ||
| 263 | * 0 - 1023 Well Known Ports | ||
| 264 | * 1024 - 49151 Registered Ports | ||
| 265 | * 49152 - 65535 Dynamic and/or Private Ports | ||
| 266 | * | ||
| 267 | */ | ||
| 268 | |||
| 269 | #define __DARWIN_IPPORT_RESERVED 1024 | ||
| 270 | |||
| 271 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 272 | /* | ||
| 273 | * Ports < IPPORT_RESERVED are reserved for | ||
| 274 | * privileged processes (e.g. root). (IP_PORTRANGE_LOW) | ||
| 275 | * Ports > IPPORT_USERRESERVED are reserved | ||
| 276 | * for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT) | ||
| 277 | */ | ||
| 278 | #ifndef IPPORT_RESERVED | ||
| 279 | #define IPPORT_RESERVED __DARWIN_IPPORT_RESERVED | ||
| 280 | #endif | ||
| 281 | #define IPPORT_USERRESERVED 5000 | ||
| 282 | |||
| 283 | /* | ||
| 284 | * Default local port range to use by setting IP_PORTRANGE_HIGH | ||
| 285 | */ | ||
| 286 | #define IPPORT_HIFIRSTAUTO 49152 | ||
| 287 | #define IPPORT_HILASTAUTO 65535 | ||
| 288 | |||
| 289 | /* | ||
| 290 | * Scanning for a free reserved port return a value below IPPORT_RESERVED, | ||
| 291 | * but higher than IPPORT_RESERVEDSTART. Traditionally the start value was | ||
| 292 | * 512, but that conflicts with some well-known-services that firewalls may | ||
| 293 | * have a fit if we use. | ||
| 294 | */ | ||
| 295 | #define IPPORT_RESERVEDSTART 600 | ||
| 296 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 297 | |||
| 298 | /* | ||
| 299 | * Internet address (a structure for historical reasons) | ||
| 300 | */ | ||
| 301 | struct in_addr { | ||
| 302 | 	in_addr_t s_addr; | ||
| 303 | }; | ||
| 304 | |||
| 305 | /* | ||
| 306 | * Definitions of bits in internet address integers. | ||
| 307 | * On subnets, the decomposition of addresses to host and net parts | ||
| 308 | * is done according to subnet mask, not the masks here. | ||
| 309 | */ | ||
| 310 | #define INADDR_ANY (u_int32_t)0x00000000 | ||
| 311 | #define INADDR_BROADCAST (u_int32_t)0xffffffff /* must be masked */ | ||
| 312 | |||
| 313 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 314 | #define IN_CLASSA(i) (((u_int32_t)(i) & 0x80000000) == 0) | ||
| 315 | #define IN_CLASSA_NET 0xff000000 | ||
| 316 | #define IN_CLASSA_NSHIFT 24 | ||
| 317 | #define IN_CLASSA_HOST 0x00ffffff | ||
| 318 | #define IN_CLASSA_MAX 128 | ||
| 319 | |||
| 320 | #define IN_CLASSB(i) (((u_int32_t)(i) & 0xc0000000) == 0x80000000) | ||
| 321 | #define IN_CLASSB_NET 0xffff0000 | ||
| 322 | #define IN_CLASSB_NSHIFT 16 | ||
| 323 | #define IN_CLASSB_HOST 0x0000ffff | ||
| 324 | #define IN_CLASSB_MAX 65536 | ||
| 325 | |||
| 326 | #define IN_CLASSC(i) (((u_int32_t)(i) & 0xe0000000) == 0xc0000000) | ||
| 327 | #define IN_CLASSC_NET 0xffffff00 | ||
| 328 | #define IN_CLASSC_NSHIFT 8 | ||
| 329 | #define IN_CLASSC_HOST 0x000000ff | ||
| 330 | |||
| 331 | #define IN_CLASSD(i) (((u_int32_t)(i) & 0xf0000000) == 0xe0000000) | ||
| 332 | #define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */ | ||
| 333 | #define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ | ||
| 334 | #define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */ | ||
| 335 | #define IN_MULTICAST(i) IN_CLASSD(i) | ||
| 336 | |||
| 337 | #define IN_EXPERIMENTAL(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) | ||
| 338 | #define IN_BADCLASS(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) | ||
| 339 | |||
| 340 | #define INADDR_LOOPBACK (u_int32_t)0x7f000001 | ||
| 341 | |||
| 342 | #define INADDR_NONE 0xffffffff /* -1 return */ | ||
| 343 | |||
| 344 | #define INADDR_UNSPEC_GROUP (u_int32_t)0xe0000000 /* 224.0.0.0 */ | ||
| 345 | #define INADDR_ALLHOSTS_GROUP (u_int32_t)0xe0000001 /* 224.0.0.1 */ | ||
| 346 | #define INADDR_ALLRTRS_GROUP (u_int32_t)0xe0000002 /* 224.0.0.2 */ | ||
| 347 | #define INADDR_ALLRPTS_GROUP (u_int32_t)0xe0000016 /* 224.0.0.22, IGMPv3 */ | ||
| 348 | #define INADDR_CARP_GROUP (u_int32_t)0xe0000012 /* 224.0.0.18 */ | ||
| 349 | #define INADDR_PFSYNC_GROUP (u_int32_t)0xe00000f0 /* 224.0.0.240 */ | ||
| 350 | #define INADDR_ALLMDNS_GROUP (u_int32_t)0xe00000fb /* 224.0.0.251 */ | ||
| 351 | #define INADDR_MAX_LOCAL_GROUP (u_int32_t)0xe00000ff /* 224.0.0.255 */ | ||
| 352 | |||
| 353 | #ifdef __APPLE__ | ||
| 354 | #define IN_LINKLOCALNETNUM (u_int32_t)0xA9FE0000 /* 169.254.0.0 */ | ||
| 355 | #define IN_LINKLOCAL(i) (((u_int32_t)(i) & IN_CLASSB_NET) == IN_LINKLOCALNETNUM) | ||
| 356 | #define IN_LOOPBACK(i) (((u_int32_t)(i) & 0xff000000) == 0x7f000000) | ||
| 357 | #define IN_ZERONET(i) (((u_int32_t)(i) & 0xff000000) == 0) | ||
| 358 | |||
| 359 | #define IN_PRIVATE(i) ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \ | ||
| 360 | 	 (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \ | ||
| 361 | 	 (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000)) | ||
| 362 | |||
| 363 | |||
| 364 | #define IN_LOCAL_GROUP(i) (((u_int32_t)(i) & 0xffffff00) == 0xe0000000) | ||
| 365 | |||
| 366 | #define IN_ANY_LOCAL(i) (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i)) | ||
| 367 | #endif /* __APPLE__ */ | ||
| 368 | |||
| 369 | #define IN_LOOPBACKNET 127 /* official! */ | ||
| 370 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 371 | |||
| 372 | /* | ||
| 373 | * Socket address, internet style. | ||
| 374 | */ | ||
| 375 | struct sockaddr_in { | ||
| 376 | 	__uint8_t sin_len; | ||
| 377 | 	sa_family_t sin_family; | ||
| 378 | 	in_port_t sin_port; | ||
| 379 | 	struct in_addr sin_addr; | ||
| 380 | 	char sin_zero[8]; | ||
| 381 | }; | ||
| 382 | |||
| 383 | #define IN_ARE_ADDR_EQUAL(a, b) \ | ||
| 384 | (bcmp(&(a)->s_addr, &(b)->s_addr, \ | ||
| 385 | 	sizeof (struct in_addr)) == 0) | ||
| 386 | |||
| 387 | |||
| 388 | #define INET_ADDRSTRLEN 16 | ||
| 389 | |||
| 390 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 391 | /* | ||
| 392 | * Structure used to describe IP options. | ||
| 393 | * Used to store options internally, to pass them to a process, | ||
| 394 | * or to restore options retrieved earlier. | ||
| 395 | * The ip_dst is used for the first-hop gateway when using a source route | ||
| 396 | * (this gets put into the header proper). | ||
| 397 | */ | ||
| 398 | struct ip_opts { | ||
| 399 | 	struct in_addr ip_dst; /* first hop, 0 w/o src rt */ | ||
| 400 | 	char ip_opts[40]; /* actually variable in size */ | ||
| 401 | }; | ||
| 402 | |||
| 403 | /* | ||
| 404 | * Options for use with [gs]etsockopt at the IP level. | ||
| 405 | * First word of comment is data type; bool is stored in int. | ||
| 406 | */ | ||
| 407 | #define IP_OPTIONS 1 /* buf/ip_opts; set/get IP options */ | ||
| 408 | #define IP_HDRINCL 2 /* int; header is included with data */ | ||
| 409 | #define IP_TOS 3 /* int; IP type of service and preced. */ | ||
| 410 | #define IP_TTL 4 /* int; IP time to live */ | ||
| 411 | #define IP_RECVOPTS 5 /* bool; receive all IP opts w/dgram */ | ||
| 412 | #define IP_RECVRETOPTS 6 /* bool; receive IP opts for response */ | ||
| 413 | #define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/dgram */ | ||
| 414 | #define IP_RETOPTS 8 /* ip_opts; set/get IP options */ | ||
| 415 | #define IP_MULTICAST_IF 9 /* u_char; set/get IP multicast i/f */ | ||
| 416 | #define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */ | ||
| 417 | #define IP_MULTICAST_LOOP 11 /* u_char; set/get IP multicast loopback */ | ||
| 418 | #define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */ | ||
| 419 | #define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */ | ||
| 420 | #define IP_MULTICAST_VIF 14 /* set/get IP mcast virt. iface */ | ||
| 421 | #define IP_RSVP_ON 15 /* enable RSVP in kernel */ | ||
| 422 | #define IP_RSVP_OFF 16 /* disable RSVP in kernel */ | ||
| 423 | #define IP_RSVP_VIF_ON 17 /* set RSVP per-vif socket */ | ||
| 424 | #define IP_RSVP_VIF_OFF 18 /* unset RSVP per-vif socket */ | ||
| 425 | #define IP_PORTRANGE 19 /* int; range to choose for unspec port */ | ||
| 426 | #define IP_RECVIF 20 /* bool; receive reception if w/dgram */ | ||
| 427 | /* for IPSEC */ | ||
| 428 | #define IP_IPSEC_POLICY 21 /* int; set/get security policy */ | ||
| 429 | #define IP_FAITH 22 /* deprecated */ | ||
| 430 | #ifdef __APPLE__ | ||
| 431 | #define IP_STRIPHDR 23 /* bool: drop receive of raw IP header */ | ||
| 432 | #endif | ||
| 433 | #define IP_RECVTTL 24 /* bool; receive reception TTL w/dgram */ | ||
| 434 | #define IP_BOUND_IF 25 /* int; set/get bound interface */ | ||
| 435 | #define IP_PKTINFO 26 /* get pktinfo on recv socket, set src on sent dgram */ | ||
| 436 | #define IP_RECVPKTINFO IP_PKTINFO /* receive pktinfo w/dgram */ | ||
| 437 | #define IP_RECVTOS 27 /* bool; receive IP TOS w/dgram */ | ||
| 438 | |||
| 439 | #define IP_FW_ADD 40 /* add a firewall rule to chain */ | ||
| 440 | #define IP_FW_DEL 41 /* delete a firewall rule from chain */ | ||
| 441 | #define IP_FW_FLUSH 42 /* flush firewall rule chain */ | ||
| 442 | #define IP_FW_ZERO 43 /* clear single/all firewall counter(s) */ | ||
| 443 | #define IP_FW_GET 44 /* get entire firewall rule chain */ | ||
| 444 | #define IP_FW_RESETLOG 45 /* reset logging counters */ | ||
| 445 | |||
| 446 | /* These older firewall socket option codes are maintained for backward compatibility. */ | ||
| 447 | #define IP_OLD_FW_ADD 50 /* add a firewall rule to chain */ | ||
| 448 | #define IP_OLD_FW_DEL 51 /* delete a firewall rule from chain */ | ||
| 449 | #define IP_OLD_FW_FLUSH 52 /* flush firewall rule chain */ | ||
| 450 | #define IP_OLD_FW_ZERO 53 /* clear single/all firewall counter(s) */ | ||
| 451 | #define IP_OLD_FW_GET 54 /* get entire firewall rule chain */ | ||
| 452 | #define IP_NAT__XXX 55 /* set/get NAT opts XXX Deprecated, do not use */ | ||
| 453 | #define IP_OLD_FW_RESETLOG 56 /* reset logging counters */ | ||
| 454 | |||
| 455 | #define IP_DUMMYNET_CONFIGURE 60 /* add/configure a dummynet pipe */ | ||
| 456 | #define IP_DUMMYNET_DEL 61 /* delete a dummynet pipe from chain */ | ||
| 457 | #define IP_DUMMYNET_FLUSH 62 /* flush dummynet */ | ||
| 458 | #define IP_DUMMYNET_GET 64 /* get entire dummynet pipes */ | ||
| 459 | |||
| 460 | #define IP_TRAFFIC_MGT_BACKGROUND 65 /* int*; get background IO flags; set background IO */ | ||
| 461 | #define IP_MULTICAST_IFINDEX 66 /* int*; set/get IP multicast i/f index */ | ||
| 462 | |||
| 463 | /* IPv4 Source Filter Multicast API [RFC3678] */ | ||
| 464 | #define IP_ADD_SOURCE_MEMBERSHIP 70 /* join a source-specific group */ | ||
| 465 | #define IP_DROP_SOURCE_MEMBERSHIP 71 /* drop a single source */ | ||
| 466 | #define IP_BLOCK_SOURCE 72 /* block a source */ | ||
| 467 | #define IP_UNBLOCK_SOURCE 73 /* unblock a source */ | ||
| 468 | |||
| 469 | /* The following option is private; do not use it from user applications. */ | ||
| 470 | #define IP_MSFILTER 74 /* set/get filter list */ | ||
| 471 | |||
| 472 | /* Protocol Independent Multicast API [RFC3678] */ | ||
| 473 | #define MCAST_JOIN_GROUP 80 /* join an any-source group */ | ||
| 474 | #define MCAST_LEAVE_GROUP 81 /* leave all sources for group */ | ||
| 475 | #define MCAST_JOIN_SOURCE_GROUP 82 /* join a source-specific group */ | ||
| 476 | #define MCAST_LEAVE_SOURCE_GROUP 83 /* leave a single source */ | ||
| 477 | #define MCAST_BLOCK_SOURCE 84 /* block a source */ | ||
| 478 | #define MCAST_UNBLOCK_SOURCE 85 /* unblock a source */ | ||
| 479 | |||
| 480 | |||
| 481 | /* | ||
| 482 | * Defaults and limits for options | ||
| 483 | */ | ||
| 484 | #define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */ | ||
| 485 | #define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ | ||
| 486 | |||
| 487 | /* | ||
| 488 | * The imo_membership vector for each socket is now dynamically allocated at | ||
| 489 | * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized | ||
| 490 | * according to a power-of-two increment. | ||
| 491 | */ | ||
| 492 | #define IP_MIN_MEMBERSHIPS 31 | ||
| 493 | #define IP_MAX_MEMBERSHIPS 4095 | ||
| 494 | |||
| 495 | /* | ||
| 496 | * Default resource limits for IPv4 multicast source filtering. | ||
| 497 | * These may be modified by sysctl. | ||
| 498 | */ | ||
| 499 | #define IP_MAX_GROUP_SRC_FILTER 512 /* sources per group */ | ||
| 500 | #define IP_MAX_SOCK_SRC_FILTER 128 /* sources per socket/group */ | ||
| 501 | #define IP_MAX_SOCK_MUTE_FILTER 128 /* XXX no longer used */ | ||
| 502 | |||
| 503 | /* | ||
| 504 | * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. | ||
| 505 | */ | ||
| 506 | struct ip_mreq { | ||
| 507 | 	struct in_addr imr_multiaddr; /* IP multicast address of group */ | ||
| 508 | 	struct in_addr imr_interface; /* local IP address of interface */ | ||
| 509 | }; | ||
| 510 | |||
| 511 | /* | ||
| 512 | * Modified argument structure for IP_MULTICAST_IF, obtained from Linux. | ||
| 513 | * This is used to specify an interface index for multicast sends, as | ||
| 514 | * the IPv4 legacy APIs do not support this (unless IP_SENDIF is available). | ||
| 515 | */ | ||
| 516 | struct ip_mreqn { | ||
| 517 | 	struct in_addr imr_multiaddr; /* IP multicast address of group */ | ||
| 518 | 	struct in_addr imr_address; /* local IP address of interface */ | ||
| 519 | 	int imr_ifindex; /* Interface index; cast to uint32_t */ | ||
| 520 | }; | ||
| 521 | |||
| 522 | #pragma pack(4) | ||
| 523 | /* | ||
| 524 | * Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678] | ||
| 525 | */ | ||
| 526 | struct ip_mreq_source { | ||
| 527 | 	struct in_addr imr_multiaddr; /* IP multicast address of group */ | ||
| 528 | 	struct in_addr imr_sourceaddr; /* IP address of source */ | ||
| 529 | 	struct in_addr imr_interface; /* local IP address of interface */ | ||
| 530 | }; | ||
| 531 | |||
| 532 | /* | ||
| 533 | * Argument structures for Protocol-Independent Multicast Source | ||
| 534 | * Filter APIs. [RFC3678] | ||
| 535 | */ | ||
| 536 | struct group_req { | ||
| 537 | 	uint32_t gr_interface; /* interface index */ | ||
| 538 | 	struct sockaddr_storage gr_group; /* group address */ | ||
| 539 | }; | ||
| 540 | |||
| 541 | struct group_source_req { | ||
| 542 | 	uint32_t gsr_interface; /* interface index */ | ||
| 543 | 	struct sockaddr_storage gsr_group; /* group address */ | ||
| 544 | 	struct sockaddr_storage gsr_source; /* source address */ | ||
| 545 | }; | ||
| 546 | |||
| 547 | #ifndef __MSFILTERREQ_DEFINED | ||
| 548 | #define __MSFILTERREQ_DEFINED | ||
| 549 | /* | ||
| 550 | * The following structure is private; do not use it from user applications. | ||
| 551 | * It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between | ||
| 552 | * the RFC 3678 libc functions and the kernel. | ||
| 553 | */ | ||
| 554 | struct __msfilterreq { | ||
| 555 | 	uint32_t msfr_ifindex; /* interface index */ | ||
| 556 | 	uint32_t msfr_fmode; /* filter mode for group */ | ||
| 557 | 	uint32_t msfr_nsrcs; /* # of sources in msfr_srcs */ | ||
| 558 | 	uint32_t __msfr_align; | ||
| 559 | 	struct sockaddr_storage msfr_group; /* group address */ | ||
| 560 | 	struct sockaddr_storage *msfr_srcs; | ||
| 561 | }; | ||
| 562 | |||
| 563 | #endif /* __MSFILTERREQ_DEFINED */ | ||
| 564 | |||
| 565 | #pragma pack() | ||
| 566 | struct sockaddr; | ||
| 567 | |||
| 568 | /* | ||
| 569 | * Advanced (Full-state) APIs [RFC3678] | ||
| 570 | * The RFC specifies uint_t for the 6th argument to [sg]etsourcefilter(). | ||
| 571 | * We use uint32_t here to be consistent. | ||
| 572 | */ | ||
| 573 | int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t, | ||
| 574 | uint32_t, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); | ||
| 575 | int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *, | ||
| 576 | uint32_t *, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); | ||
| 577 | int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, | ||
| 578 | uint32_t, uint32_t, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); | ||
| 579 | int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, | ||
| 580 | uint32_t *, uint32_t *, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); | ||
| 581 | |||
| 582 | /* | ||
| 583 | * Filter modes; also used to represent per-socket filter mode internally. | ||
| 584 | */ | ||
| 585 | #define MCAST_UNDEFINED 0 /* fmode: not yet defined */ | ||
| 586 | #define MCAST_INCLUDE 1 /* fmode: include these source(s) */ | ||
| 587 | #define MCAST_EXCLUDE 2 /* fmode: exclude these source(s) */ | ||
| 588 | |||
| 589 | /* | ||
| 590 | * Argument for IP_PORTRANGE: | ||
| 591 | * - which range to search when port is unspecified at bind() or connect() | ||
| 592 | */ | ||
| 593 | #define IP_PORTRANGE_DEFAULT 0 /* default range */ | ||
| 594 | #define IP_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ | ||
| 595 | #define IP_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ | ||
| 596 | |||
| 597 | |||
| 598 | /* | ||
| 599 | * IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4) | ||
| 600 | * This structure is used for | ||
| 601 | * | ||
| 602 | * 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is | ||
| 603 | * set on the socket. In this case ipi_ifindex will contain the interface | ||
| 604 | * index the datagram was received on, ipi_addr is the IP address the | ||
| 605 | * datagram was received to. | ||
| 606 | * | ||
| 607 | * 2) Sending a datagram using a specific interface or IP source address. | ||
| 608 | * if ipi_ifindex is set to non-zero when in_pktinfo is passed as | ||
| 609 | * ancilliary data of type IP_PKTINFO, this will be used as the source | ||
| 610 | * interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst | ||
| 611 | * will be used for the source address. | ||
| 612 | * | ||
| 613 | * Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary | ||
| 614 | * IP_PKTINFO option silently overrides the bound interface when it is | ||
| 615 | * specified during send time. | ||
| 616 | */ | ||
| 617 | struct in_pktinfo { | ||
| 618 | 	unsigned int ipi_ifindex; /* send/recv interface index */ | ||
| 619 | 	struct in_addr ipi_spec_dst; /* Local address */ | ||
| 620 | 	struct in_addr ipi_addr; /* IP Header dst address */ | ||
| 621 | }; | ||
| 622 | |||
| 623 | /* | ||
| 624 | * Definitions for inet sysctl operations. | ||
| 625 | * | ||
| 626 | * Third level is protocol number. | ||
| 627 | * Fourth level is desired variable within that protocol. | ||
| 628 | */ | ||
| 629 | #define IPPROTO_MAXID (IPPROTO_AH + 1) /* don't list to IPPROTO_MAX */ | ||
| 630 | |||
| 631 | |||
| 632 | /* | ||
| 633 | * Names for IP sysctl objects | ||
| 634 | */ | ||
| 635 | #define IPCTL_FORWARDING 1 /* act as router */ | ||
| 636 | #define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */ | ||
| 637 | #define IPCTL_DEFTTL 3 /* default TTL */ | ||
| 638 | #ifdef notyet | ||
| 639 | #define IPCTL_DEFMTU 4 /* default MTU */ | ||
| 640 | #endif | ||
| 641 | #define IPCTL_RTEXPIRE 5 /* cloned route expiration time */ | ||
| 642 | #define IPCTL_RTMINEXPIRE 6 /* min value for expiration time */ | ||
| 643 | #define IPCTL_RTMAXCACHE 7 /* trigger level for dynamic expire */ | ||
| 644 | #define IPCTL_SOURCEROUTE 8 /* may perform source routes */ | ||
| 645 | #define IPCTL_DIRECTEDBROADCAST 9 /* may re-broadcast received packets */ | ||
| 646 | #define IPCTL_INTRQMAXLEN 10 /* max length of netisr queue */ | ||
| 647 | #define IPCTL_INTRQDROPS 11 /* number of netisr q drops */ | ||
| 648 | #define IPCTL_STATS 12 /* ipstat structure */ | ||
| 649 | #define IPCTL_ACCEPTSOURCEROUTE 13 /* may accept source routed packets */ | ||
| 650 | #define IPCTL_FASTFORWARDING 14 /* use fast IP forwarding code */ | ||
| 651 | #define IPCTL_KEEPFAITH 15 /* deprecated */ | ||
| 652 | #define IPCTL_GIF_TTL 16 /* default TTL for gif encap packet */ | ||
| 653 | #define IPCTL_MAXID 17 | ||
| 654 | |||
| 655 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 656 | |||
| 657 | /* INET6 stuff */ | ||
| 658 | #define __KAME_NETINET_IN_H_INCLUDED_ | ||
| 659 | #include <netinet6/in6.h> | ||
| 660 | #undef __KAME_NETINET_IN_H_INCLUDED_ | ||
| 661 | |||
| 662 | |||
| 663 | |||
| 664 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 665 | __BEGIN_DECLS | ||
| 666 | int bindresvport(int, struct sockaddr_in *); | ||
| 667 | struct sockaddr; | ||
| 668 | int bindresvport_sa(int, struct sockaddr *); | ||
| 669 | __END_DECLS | ||
| 670 | #endif | ||
| 671 | #endif /* _NETINET_IN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/netinet/tcp.h created+283| ... | @@ -0,0 +1,283 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2018 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1982, 1986, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	@(#)tcp.h	8.1 (Berkeley) 6/10/93 | ||
| 61 | * $FreeBSD: src/sys/netinet/tcp.h,v 1.13.2.3 2001/03/01 22:08:42 jlemon Exp $ | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _NETINET_TCP_H_ | ||
| 65 | #define _NETINET_TCP_H_ | ||
| 66 | #include <sys/types.h> | ||
| 67 | #include <sys/appleapiopts.h> | ||
| 68 | #include <machine/endian.h> | ||
| 69 | #include <machine/types.h> /* __uint32_t */ | ||
| 70 | |||
| 71 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 72 | typedef __uint32_t tcp_seq; | ||
| 73 | typedef __uint32_t tcp_cc; /* connection count per rfc1644 */ | ||
| 74 | |||
| 75 | #define tcp6_seq tcp_seq /* for KAME src sync over BSD*'s */ | ||
| 76 | #define tcp6hdr tcphdr /* for KAME src sync over BSD*'s */ | ||
| 77 | |||
| 78 | /* | ||
| 79 | * TCP header. | ||
| 80 | * Per RFC 793, September, 1981. | ||
| 81 | */ | ||
| 82 | struct tcphdr { | ||
| 83 | 	unsigned short th_sport; /* source port */ | ||
| 84 | 	unsigned short th_dport; /* destination port */ | ||
| 85 | 	tcp_seq th_seq; /* sequence number */ | ||
| 86 | 	tcp_seq th_ack; /* acknowledgement number */ | ||
| 87 | #if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN | ||
| 88 | 	unsigned int th_x2:4, /* (unused) */ | ||
| 89 | 	 th_off:4; /* data offset */ | ||
| 90 | #endif | ||
| 91 | #if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN | ||
| 92 | 	unsigned int th_off:4, /* data offset */ | ||
| 93 | 	 th_x2:4; /* (unused) */ | ||
| 94 | #endif | ||
| 95 | 	unsigned char th_flags; | ||
| 96 | #define TH_FIN 0x01 | ||
| 97 | #define TH_SYN 0x02 | ||
| 98 | #define TH_RST 0x04 | ||
| 99 | #define TH_PUSH 0x08 | ||
| 100 | #define TH_ACK 0x10 | ||
| 101 | #define TH_URG 0x20 | ||
| 102 | #define TH_ECE 0x40 | ||
| 103 | #define TH_CWR 0x80 | ||
| 104 | #define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR) | ||
| 105 | #define TH_ACCEPT (TH_FIN|TH_SYN|TH_RST|TH_ACK) | ||
| 106 | |||
| 107 | 	unsigned short th_win; /* window */ | ||
| 108 | 	unsigned short th_sum; /* checksum */ | ||
| 109 | 	unsigned short th_urp; /* urgent pointer */ | ||
| 110 | }; | ||
| 111 | |||
| 112 | #define TCPOPT_EOL 0 | ||
| 113 | #define TCPOPT_NOP 1 | ||
| 114 | #define TCPOPT_MAXSEG 2 | ||
| 115 | #define TCPOLEN_MAXSEG 4 | ||
| 116 | #define TCPOPT_WINDOW 3 | ||
| 117 | #define TCPOLEN_WINDOW 3 | ||
| 118 | #define TCPOPT_SACK_PERMITTED 4 /* Experimental */ | ||
| 119 | #define TCPOLEN_SACK_PERMITTED 2 | ||
| 120 | #define TCPOPT_SACK 5 /* Experimental */ | ||
| 121 | #define TCPOLEN_SACK 8 /* len of sack block */ | ||
| 122 | #define TCPOPT_TIMESTAMP 8 | ||
| 123 | #define TCPOLEN_TIMESTAMP 10 | ||
| 124 | #define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ | ||
| 125 | #define TCPOPT_TSTAMP_HDR \ | ||
| 126 | (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) | ||
| 127 | |||
| 128 | #define MAX_TCPOPTLEN 40 /* Absolute maximum TCP options len */ | ||
| 129 | |||
| 130 | #define TCPOPT_CC 11 /* CC options: RFC-1644 */ | ||
| 131 | #define TCPOPT_CCNEW 12 | ||
| 132 | #define TCPOPT_CCECHO 13 | ||
| 133 | #define TCPOLEN_CC 6 | ||
| 134 | #define TCPOLEN_CC_APPA (TCPOLEN_CC+2) | ||
| 135 | #define TCPOPT_CC_HDR(ccopt) \ | ||
| 136 | (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC) | ||
| 137 | #define TCPOPT_SIGNATURE 19 /* Keyed MD5: RFC 2385 */ | ||
| 138 | #define TCPOLEN_SIGNATURE 18 | ||
| 139 | #if MPTCP | ||
| 140 | #define TCPOPT_MULTIPATH 30 | ||
| 141 | #endif | ||
| 142 | |||
| 143 | #define TCPOPT_FASTOPEN 34 | ||
| 144 | #define TCPOLEN_FASTOPEN_REQ 2 | ||
| 145 | |||
| 146 | /* Option definitions */ | ||
| 147 | #define TCPOPT_SACK_PERMIT_HDR \ | ||
| 148 | (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK_PERMITTED<<8|TCPOLEN_SACK_PERMITTED) | ||
| 149 | #define TCPOPT_SACK_HDR (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK<<8) | ||
| 150 | /* Miscellaneous constants */ | ||
| 151 | #define MAX_SACK_BLKS 6 /* Max # SACK blocks stored at sender side */ | ||
| 152 | |||
| 153 | /* | ||
| 154 | * A SACK option that specifies n blocks will have a length of (8*n + 2) | ||
| 155 | * bytes, so the 40 bytes available for TCP options can specify a | ||
| 156 | * maximum of 4 blocks. | ||
| 157 | */ | ||
| 158 | |||
| 159 | #define TCP_MAX_SACK 4 /* MAX # SACKs sent in any segment */ | ||
| 160 | |||
| 161 | |||
| 162 | /* | ||
| 163 | * Default maximum segment size for TCP. | ||
| 164 | * With an IP MTU of 576, this is 536, | ||
| 165 | * but 512 is probably more convenient. | ||
| 166 | * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). | ||
| 167 | */ | ||
| 168 | #define TCP_MSS 512 | ||
| 169 | |||
| 170 | /* | ||
| 171 | * TCP_MINMSS is defined to be 216 which is fine for the smallest | ||
| 172 | * link MTU (256 bytes, SLIP interface) in the Internet. | ||
| 173 | * However it is very unlikely to come across such low MTU interfaces | ||
| 174 | * these days (anno dato 2004). | ||
| 175 | * Probably it can be set to 512 without ill effects. But we play safe. | ||
| 176 | * See tcp_subr.c tcp_minmss SYSCTL declaration for more comments. | ||
| 177 | * Setting this to "0" disables the minmss check. | ||
| 178 | */ | ||
| 179 | #define TCP_MINMSS 216 | ||
| 180 | |||
| 181 | /* | ||
| 182 | * Default maximum segment size for TCP6. | ||
| 183 | * With an IP6 MSS of 1280, this is 1220, | ||
| 184 | * but 1024 is probably more convenient. (xxx kazu in doubt) | ||
| 185 | * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr)) | ||
| 186 | */ | ||
| 187 | #define TCP6_MSS 1024 | ||
| 188 | |||
| 189 | #define TCP_MAXWIN 65535 /* largest value for (unscaled) window */ | ||
| 190 | #define TTCP_CLIENT_SND_WND 4096 /* dflt send window for T/TCP client */ | ||
| 191 | |||
| 192 | #define TCP_MAX_WINSHIFT 14 /* maximum window shift */ | ||
| 193 | |||
| 194 | #define TCP_MAXHLEN (0xf<<2) /* max length of header in bytes */ | ||
| 195 | #define TCP_MAXOLEN (TCP_MAXHLEN - sizeof(struct tcphdr)) | ||
| 196 | /* max space left for options */ | ||
| 197 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 198 | |||
| 199 | /* | ||
| 200 | * User-settable options (used with setsockopt). | ||
| 201 | */ | ||
| 202 | #define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ | ||
| 203 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 204 | #define TCP_MAXSEG 0x02 /* set maximum segment size */ | ||
| 205 | #define TCP_NOPUSH 0x04 /* don't push last block of write */ | ||
| 206 | #define TCP_NOOPT 0x08 /* don't use TCP options */ | ||
| 207 | #define TCP_KEEPALIVE 0x10 /* idle time used when SO_KEEPALIVE is enabled */ | ||
| 208 | #define TCP_CONNECTIONTIMEOUT 0x20 /* connection timeout */ | ||
| 209 | #define PERSIST_TIMEOUT 0x40 /* time after which a connection in | ||
| 210 | 	 * persist timeout will terminate. | ||
| 211 | 	 * see draft-ananth-tcpm-persist-02.txt | ||
| 212 | 	 */ | ||
| 213 | #define TCP_RXT_CONNDROPTIME 0x80 /* time after which tcp retransmissions will be | ||
| 214 | 	 * stopped and the connection will be dropped | ||
| 215 | 	 */ | ||
| 216 | #define TCP_RXT_FINDROP 0x100 /* when this option is set, drop a connection | ||
| 217 | 	 * after retransmitting the FIN 3 times. It will | ||
| 218 | 	 * prevent holding too many mbufs in socket | ||
| 219 | 	 * buffer queues. | ||
| 220 | 	 */ | ||
| 221 | #define TCP_KEEPINTVL 0x101 /* interval between keepalives */ | ||
| 222 | #define TCP_KEEPCNT 0x102 /* number of keepalives before close */ | ||
| 223 | #define TCP_SENDMOREACKS 0x103 /* always ack every other packet */ | ||
| 224 | #define TCP_ENABLE_ECN 0x104 /* Enable ECN on a connection */ | ||
| 225 | #define TCP_FASTOPEN 0x105 /* Enable/Disable TCP Fastopen on this socket */ | ||
| 226 | #define TCP_CONNECTION_INFO 0x106 /* State of TCP connection */ | ||
| 227 | |||
| 228 | |||
| 229 | |||
| 230 | #define TCP_NOTSENT_LOWAT 0x201 /* Low water mark for TCP unsent data */ | ||
| 231 | |||
| 232 | |||
| 233 | struct tcp_connection_info { | ||
| 234 | 	u_int8_t tcpi_state; /* connection state */ | ||
| 235 | 	u_int8_t tcpi_snd_wscale; /* Window scale for send window */ | ||
| 236 | 	u_int8_t tcpi_rcv_wscale; /* Window scale for receive window */ | ||
| 237 | 	u_int8_t __pad1; | ||
| 238 | 	u_int32_t tcpi_options; /* TCP options supported */ | ||
| 239 | #define TCPCI_OPT_TIMESTAMPS 0x00000001 /* Timestamps enabled */ | ||
| 240 | #define TCPCI_OPT_SACK 0x00000002 /* SACK enabled */ | ||
| 241 | #define TCPCI_OPT_WSCALE 0x00000004 /* Window scaling enabled */ | ||
| 242 | #define TCPCI_OPT_ECN 0x00000008 /* ECN enabled */ | ||
| 243 | 	u_int32_t tcpi_flags; /* flags */ | ||
| 244 | #define TCPCI_FLAG_LOSSRECOVERY 0x00000001 | ||
| 245 | #define TCPCI_FLAG_REORDERING_DETECTED 0x00000002 | ||
| 246 | 	u_int32_t tcpi_rto; /* retransmit timeout in ms */ | ||
| 247 | 	u_int32_t tcpi_maxseg; /* maximum segment size supported */ | ||
| 248 | 	u_int32_t tcpi_snd_ssthresh; /* slow start threshold in bytes */ | ||
| 249 | 	u_int32_t tcpi_snd_cwnd; /* send congestion window in bytes */ | ||
| 250 | 	u_int32_t tcpi_snd_wnd; /* send widnow in bytes */ | ||
| 251 | 	u_int32_t tcpi_snd_sbbytes; /* bytes in send socket buffer, including in-flight data */ | ||
| 252 | 	u_int32_t tcpi_rcv_wnd; /* receive window in bytes*/ | ||
| 253 | 	u_int32_t tcpi_rttcur; /* most recent RTT in ms */ | ||
| 254 | 	u_int32_t tcpi_srtt; /* average RTT in ms */ | ||
| 255 | 	u_int32_t tcpi_rttvar; /* RTT variance */ | ||
| 256 | 	u_int32_t | ||
| 257 | 	 tcpi_tfo_cookie_req:1, /* Cookie requested? */ | ||
| 258 | 	 tcpi_tfo_cookie_rcv:1, /* Cookie received? */ | ||
| 259 | 	 tcpi_tfo_syn_loss:1, /* Fallback to reg. TCP after SYN-loss */ | ||
| 260 | 	 tcpi_tfo_syn_data_sent:1, /* SYN+data has been sent out */ | ||
| 261 | 	 tcpi_tfo_syn_data_acked:1, /* SYN+data has been fully acknowledged */ | ||
| 262 | 	 tcpi_tfo_syn_data_rcv:1, /* Server received SYN+data with a valid cookie */ | ||
| 263 | 	 tcpi_tfo_cookie_req_rcv:1, /* Server received cookie-request */ | ||
| 264 | 	 tcpi_tfo_cookie_sent:1, /* Server announced cookie */ | ||
| 265 | 	 tcpi_tfo_cookie_invalid:1, /* Server received an invalid cookie */ | ||
| 266 | 	 tcpi_tfo_cookie_wrong:1, /* Our sent cookie was wrong */ | ||
| 267 | 	 tcpi_tfo_no_cookie_rcv:1, /* We did not receive a cookie upon our request */ | ||
| 268 | 	 tcpi_tfo_heuristics_disable:1, /* TFO-heuristics disabled it */ | ||
| 269 | 	 tcpi_tfo_send_blackhole:1, /* A sending-blackhole got detected */ | ||
| 270 | 	 tcpi_tfo_recv_blackhole:1, /* A receiver-blackhole got detected */ | ||
| 271 | 	 tcpi_tfo_onebyte_proxy:1, /* A proxy acknowledges all but one byte of the SYN */ | ||
| 272 | 	 __pad2:17; | ||
| 273 | 	u_int64_t tcpi_txpackets __attribute__((aligned(8))); | ||
| 274 | 	u_int64_t tcpi_txbytes __attribute__((aligned(8))); | ||
| 275 | 	u_int64_t tcpi_txretransmitbytes __attribute__((aligned(8))); | ||
| 276 | 	u_int64_t tcpi_rxpackets __attribute__((aligned(8))); | ||
| 277 | 	u_int64_t tcpi_rxbytes __attribute__((aligned(8))); | ||
| 278 | 	u_int64_t tcpi_rxoutoforderbytes __attribute__((aligned(8))); | ||
| 279 | 	u_int64_t tcpi_txretransmitpackets __attribute__((aligned(8))); | ||
| 280 | }; | ||
| 281 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 282 | |||
| 283 | #endif | ||
lib/libc/include/x86_64-macos-gnu/netinet6/in6.h created+667| ... | @@ -0,0 +1,667 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2008-2018 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | /* | ||
| 30 | * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. | ||
| 31 | * All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. Neither the name of the project nor the names of its contributors | ||
| 42 | * may be used to endorse or promote products derived from this software | ||
| 43 | * without specific prior written permission. | ||
| 44 | * | ||
| 45 | * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND | ||
| 46 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 47 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 48 | * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE | ||
| 49 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 50 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 51 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 52 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 53 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 54 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 55 | * SUCH DAMAGE. | ||
| 56 | */ | ||
| 57 | |||
| 58 | /* | ||
| 59 | * Copyright (c) 1982, 1986, 1990, 1993 | ||
| 60 | *	The Regents of the University of California. All rights reserved. | ||
| 61 | * | ||
| 62 | * Redistribution and use in source and binary forms, with or without | ||
| 63 | * modification, are permitted provided that the following conditions | ||
| 64 | * are met: | ||
| 65 | * 1. Redistributions of source code must retain the above copyright | ||
| 66 | * notice, this list of conditions and the following disclaimer. | ||
| 67 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 68 | * notice, this list of conditions and the following disclaimer in the | ||
| 69 | * documentation and/or other materials provided with the distribution. | ||
| 70 | * 3. All advertising materials mentioning features or use of this software | ||
| 71 | * must display the following acknowledgement: | ||
| 72 | *	This product includes software developed by the University of | ||
| 73 | *	California, Berkeley and its contributors. | ||
| 74 | * 4. Neither the name of the University nor the names of its contributors | ||
| 75 | * may be used to endorse or promote products derived from this software | ||
| 76 | * without specific prior written permission. | ||
| 77 | * | ||
| 78 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 79 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 80 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 81 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 82 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 83 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 84 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 85 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 86 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 87 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 88 | * SUCH DAMAGE. | ||
| 89 | * | ||
| 90 | *	@(#)in.h	8.3 (Berkeley) 1/3/94 | ||
| 91 | */ | ||
| 92 | |||
| 93 | #ifndef __KAME_NETINET_IN_H_INCLUDED_ | ||
| 94 | #error "do not include netinet6/in6.h directly, include netinet/in.h. " \ | ||
| 95 | " see RFC2553" | ||
| 96 | #endif | ||
| 97 | |||
| 98 | #ifndef _NETINET6_IN6_H_ | ||
| 99 | #define _NETINET6_IN6_H_ | ||
| 100 | #include <sys/appleapiopts.h> | ||
| 101 | #include <sys/_types.h> | ||
| 102 | #include <sys/_types/_sa_family_t.h> | ||
| 103 | |||
| 104 | /* | ||
| 105 | * Identification of the network protocol stack | ||
| 106 | * for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE | ||
| 107 | * has the table of implementation/integration differences. | ||
| 108 | */ | ||
| 109 | #define __KAME__ | ||
| 110 | #define __KAME_VERSION "2009/apple-darwin" | ||
| 111 | |||
| 112 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 113 | /* | ||
| 114 | * Local port number conventions: | ||
| 115 | * | ||
| 116 | * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root), | ||
| 117 | * unless a kernel is compiled with IPNOPRIVPORTS defined. | ||
| 118 | * | ||
| 119 | * When a user does a bind(2) or connect(2) with a port number of zero, | ||
| 120 | * a non-conflicting local port address is chosen. | ||
| 121 | * | ||
| 122 | * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although | ||
| 123 | * that is settable by sysctl(3); net.inet.ip.anonportmin and | ||
| 124 | * net.inet.ip.anonportmax respectively. | ||
| 125 | * | ||
| 126 | * A user may set the IPPROTO_IP option IP_PORTRANGE to change this | ||
| 127 | * default assignment range. | ||
| 128 | * | ||
| 129 | * The value IP_PORTRANGE_DEFAULT causes the default behavior. | ||
| 130 | * | ||
| 131 | * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT, | ||
| 132 | * and exists only for FreeBSD compatibility purposes. | ||
| 133 | * | ||
| 134 | * The value IP_PORTRANGE_LOW changes the range to the "low" are | ||
| 135 | * that is (by convention) restricted to privileged processes. | ||
| 136 | * This convention is based on "vouchsafe" principles only. | ||
| 137 | * It is only secure if you trust the remote host to restrict these ports. | ||
| 138 | * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX. | ||
| 139 | */ | ||
| 140 | |||
| 141 | #define IPV6PORT_RESERVED 1024 | ||
| 142 | #define IPV6PORT_ANONMIN 49152 | ||
| 143 | #define IPV6PORT_ANONMAX 65535 | ||
| 144 | #define IPV6PORT_RESERVEDMIN 600 | ||
| 145 | #define IPV6PORT_RESERVEDMAX (IPV6PORT_RESERVED-1) | ||
| 146 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 147 | |||
| 148 | /* | ||
| 149 | * IPv6 address | ||
| 150 | */ | ||
| 151 | typedef struct in6_addr { | ||
| 152 | 	union { | ||
| 153 | 		__uint8_t __u6_addr8[16]; | ||
| 154 | 		__uint16_t __u6_addr16[8]; | ||
| 155 | 		__uint32_t __u6_addr32[4]; | ||
| 156 | 	} __u6_addr; /* 128-bit IP6 address */ | ||
| 157 | } in6_addr_t; | ||
| 158 | |||
| 159 | #define s6_addr __u6_addr.__u6_addr8 | ||
| 160 | |||
| 161 | #define INET6_ADDRSTRLEN 46 | ||
| 162 | |||
| 163 | /* | ||
| 164 | * Socket address for IPv6 | ||
| 165 | */ | ||
| 166 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 167 | #define SIN6_LEN | ||
| 168 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 169 | struct sockaddr_in6 { | ||
| 170 | 	__uint8_t sin6_len; /* length of this struct(sa_family_t) */ | ||
| 171 | 	sa_family_t sin6_family; /* AF_INET6 (sa_family_t) */ | ||
| 172 | 	in_port_t sin6_port; /* Transport layer port # (in_port_t) */ | ||
| 173 | 	__uint32_t sin6_flowinfo; /* IP6 flow information */ | ||
| 174 | 	struct in6_addr sin6_addr; /* IP6 address */ | ||
| 175 | 	__uint32_t sin6_scope_id; /* scope zone index */ | ||
| 176 | }; | ||
| 177 | |||
| 178 | |||
| 179 | |||
| 180 | |||
| 181 | /* | ||
| 182 | * Definition of some useful macros to handle IP6 addresses | ||
| 183 | */ | ||
| 184 | #define IN6ADDR_ANY_INIT \ | ||
| 185 | 	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 186 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}} | ||
| 187 | #define IN6ADDR_LOOPBACK_INIT \ | ||
| 188 | 	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 189 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}} | ||
| 190 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 191 | #define IN6ADDR_NODELOCAL_ALLNODES_INIT \ | ||
| 192 | 	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 193 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}} | ||
| 194 | #define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \ | ||
| 195 | 	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 196 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}} | ||
| 197 | #define IN6ADDR_LINKLOCAL_ALLNODES_INIT \ | ||
| 198 | 	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 199 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}} | ||
| 200 | #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \ | ||
| 201 | 	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 202 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}} | ||
| 203 | #define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \ | ||
| 204 | 	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 205 | 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}} | ||
| 206 | #define IN6ADDR_V4MAPPED_INIT \ | ||
| 207 | 	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 208 | 	 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}} | ||
| 209 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 210 | |||
| 211 | extern const struct in6_addr in6addr_any; | ||
| 212 | extern const struct in6_addr in6addr_loopback; | ||
| 213 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 214 | extern const struct in6_addr in6addr_nodelocal_allnodes; | ||
| 215 | extern const struct in6_addr in6addr_linklocal_allnodes; | ||
| 216 | extern const struct in6_addr in6addr_linklocal_allrouters; | ||
| 217 | extern const struct in6_addr in6addr_linklocal_allv2routers; | ||
| 218 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 219 | |||
| 220 | /* | ||
| 221 | * Equality | ||
| 222 | * NOTE: Some of kernel programming environment (for example, openbsd/sparc) | ||
| 223 | * does not supply memcmp(). For userland memcmp() is preferred as it is | ||
| 224 | * in ANSI standard. | ||
| 225 | */ | ||
| 226 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 227 | #define IN6_ARE_ADDR_EQUAL(a, b) \ | ||
| 228 | 	(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof (struct in6_addr)) \ | ||
| 229 | 	== 0) | ||
| 230 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 231 | |||
| 232 | |||
| 233 | /* | ||
| 234 | * Unspecified | ||
| 235 | */ | ||
| 236 | #define IN6_IS_ADDR_UNSPECIFIED(a) \ | ||
| 237 | 	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \ | ||
| 238 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \ | ||
| 239 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \ | ||
| 240 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0)) | ||
| 241 | |||
| 242 | /* | ||
| 243 | * Loopback | ||
| 244 | */ | ||
| 245 | #define IN6_IS_ADDR_LOOPBACK(a) \ | ||
| 246 | 	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \ | ||
| 247 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \ | ||
| 248 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \ | ||
| 249 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1))) | ||
| 250 | |||
| 251 | /* | ||
| 252 | * IPv4 compatible | ||
| 253 | */ | ||
| 254 | #define IN6_IS_ADDR_V4COMPAT(a) \ | ||
| 255 | 	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \ | ||
| 256 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \ | ||
| 257 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \ | ||
| 258 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \ | ||
| 259 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1))) | ||
| 260 | |||
| 261 | /* | ||
| 262 | * Mapped | ||
| 263 | */ | ||
| 264 | #define IN6_IS_ADDR_V4MAPPED(a) \ | ||
| 265 | 	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \ | ||
| 266 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \ | ||
| 267 | 	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == \ | ||
| 268 | 	ntohl(0x0000ffff))) | ||
| 269 | |||
| 270 | /* | ||
| 271 | * 6to4 | ||
| 272 | */ | ||
| 273 | #define IN6_IS_ADDR_6TO4(x) (ntohs((x)->s6_addr16[0]) == 0x2002) | ||
| 274 | |||
| 275 | /* | ||
| 276 | * KAME Scope Values | ||
| 277 | */ | ||
| 278 | |||
| 279 | #define __IPV6_ADDR_SCOPE_NODELOCAL 0x01 | ||
| 280 | #define __IPV6_ADDR_SCOPE_INTFACELOCAL 0x01 | ||
| 281 | #define __IPV6_ADDR_SCOPE_LINKLOCAL 0x02 | ||
| 282 | #define __IPV6_ADDR_SCOPE_SITELOCAL 0x05 | ||
| 283 | #define __IPV6_ADDR_SCOPE_ORGLOCAL 0x08 /* just used in this file */ | ||
| 284 | #define __IPV6_ADDR_SCOPE_GLOBAL 0x0e | ||
| 285 | |||
| 286 | /* | ||
| 287 | * Unicast Scope | ||
| 288 | * Note that we must check topmost 10 bits only, not 16 bits (see RFC2373). | ||
| 289 | */ | ||
| 290 | #define IN6_IS_ADDR_LINKLOCAL(a) \ | ||
| 291 | 	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80)) | ||
| 292 | #define IN6_IS_ADDR_SITELOCAL(a) \ | ||
| 293 | 	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0)) | ||
| 294 | |||
| 295 | /* | ||
| 296 | * Multicast | ||
| 297 | */ | ||
| 298 | #define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff) | ||
| 299 | |||
| 300 | /* | ||
| 301 | * Unique Local IPv6 Unicast Addresses (per RFC 4193) | ||
| 302 | */ | ||
| 303 | #define IN6_IS_ADDR_UNIQUE_LOCAL(a) \ | ||
| 304 | 	(((a)->s6_addr[0] == 0xfc) || ((a)->s6_addr[0] == 0xfd)) | ||
| 305 | |||
| 306 | #define __IPV6_ADDR_MC_SCOPE(a) ((a)->s6_addr[1] & 0x0f) | ||
| 307 | |||
| 308 | /* | ||
| 309 | * Multicast Scope | ||
| 310 | */ | ||
| 311 | #define IN6_IS_ADDR_MC_NODELOCAL(a) \ | ||
| 312 | 	(IN6_IS_ADDR_MULTICAST(a) && \ | ||
| 313 | 	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_NODELOCAL)) | ||
| 314 | #define IN6_IS_ADDR_MC_LINKLOCAL(a) \ | ||
| 315 | 	(IN6_IS_ADDR_MULTICAST(a) && \ | ||
| 316 | 	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_LINKLOCAL)) | ||
| 317 | #define IN6_IS_ADDR_MC_SITELOCAL(a) \ | ||
| 318 | 	(IN6_IS_ADDR_MULTICAST(a) && \ | ||
| 319 | 	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL)) | ||
| 320 | #define IN6_IS_ADDR_MC_ORGLOCAL(a) \ | ||
| 321 | 	(IN6_IS_ADDR_MULTICAST(a) && \ | ||
| 322 | 	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL)) | ||
| 323 | #define IN6_IS_ADDR_MC_GLOBAL(a) \ | ||
| 324 | 	(IN6_IS_ADDR_MULTICAST(a) && \ | ||
| 325 | 	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_GLOBAL)) | ||
| 326 | |||
| 327 | |||
| 328 | |||
| 329 | |||
| 330 | /* | ||
| 331 | * Options for use with [gs]etsockopt at the IPV6 level. | ||
| 332 | * First word of comment is data type; bool is stored in int. | ||
| 333 | */ | ||
| 334 | /* no hdrincl */ | ||
| 335 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 336 | /* | ||
| 337 | * RFC 3542 define the following socket options in a manner incompatible | ||
| 338 | * with RFC 2292: | ||
| 339 | * IPV6_PKTINFO | ||
| 340 | * IPV6_HOPLIMIT | ||
| 341 | * IPV6_NEXTHOP | ||
| 342 | * IPV6_HOPOPTS | ||
| 343 | * IPV6_DSTOPTS | ||
| 344 | * IPV6_RTHDR | ||
| 345 | * | ||
| 346 | * To use the new IPv6 Sockets options introduced by RFC 3542 | ||
| 347 | * the constant __APPLE_USE_RFC_3542 must be defined before | ||
| 348 | * including <netinet/in.h> | ||
| 349 | * | ||
| 350 | * To use the old IPv6 Sockets options from RFC 2292 | ||
| 351 | * the constant __APPLE_USE_RFC_2292 must be defined before | ||
| 352 | * including <netinet/in.h> | ||
| 353 | * | ||
| 354 | * Note that eventually RFC 3542 is going to be the | ||
| 355 | * default and RFC 2292 will be obsolete. | ||
| 356 | */ | ||
| 357 | |||
| 358 | #if defined(__APPLE_USE_RFC_3542) && defined(__APPLE_USE_RFC_2292) | ||
| 359 | #error "__APPLE_USE_RFC_3542 and __APPLE_USE_RFC_2292 cannot be both defined" | ||
| 360 | #endif | ||
| 361 | |||
| 362 | #if 0 /* the followings are relic in IPv4 and hence are disabled */ | ||
| 363 | #define IPV6_OPTIONS 1 /* buf/ip6_opts; set/get IP6 options */ | ||
| 364 | #define IPV6_RECVOPTS 5 /* bool; receive all IP6 opts w/dgram */ | ||
| 365 | #define IPV6_RECVRETOPTS 6 /* bool; receive IP6 opts for response */ | ||
| 366 | #define IPV6_RECVDSTADDR 7 /* bool; receive IP6 dst addr w/dgram */ | ||
| 367 | #define IPV6_RETOPTS 8 /* ip6_opts; set/get IP6 options */ | ||
| 368 | #endif /* 0 */ | ||
| 369 | #define IPV6_SOCKOPT_RESERVED1 3 /* reserved for future use */ | ||
| 370 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 371 | #define IPV6_UNICAST_HOPS 4 /* int; IP6 hops */ | ||
| 372 | #define IPV6_MULTICAST_IF 9 /* __uint8_t; set/get IP6 multicast i/f */ | ||
| 373 | #define IPV6_MULTICAST_HOPS 10 /* __uint8_t; set/get IP6 multicast hops */ | ||
| 374 | #define IPV6_MULTICAST_LOOP 11 /* __uint8_t; set/get IP6 mcast loopback */ | ||
| 375 | #define IPV6_JOIN_GROUP 12 /* ip6_mreq; join a group membership */ | ||
| 376 | #define IPV6_LEAVE_GROUP 13 /* ip6_mreq; leave a group membership */ | ||
| 377 | |||
| 378 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 379 | #define IPV6_PORTRANGE 14 /* int; range to choose for unspec port */ | ||
| 380 | #define ICMP6_FILTER 18 /* icmp6_filter; icmp6 filter */ | ||
| 381 | #define IPV6_2292PKTINFO 19 /* bool; send/recv if, src/dst addr */ | ||
| 382 | #define IPV6_2292HOPLIMIT 20 /* bool; hop limit */ | ||
| 383 | #define IPV6_2292NEXTHOP 21 /* bool; next hop addr */ | ||
| 384 | #define IPV6_2292HOPOPTS 22 /* bool; hop-by-hop option */ | ||
| 385 | #define IPV6_2292DSTOPTS 23 /* bool; destinaion option */ | ||
| 386 | #define IPV6_2292RTHDR 24 /* ip6_rthdr: routing header */ | ||
| 387 | |||
| 388 | /* buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542] */ | ||
| 389 | #define IPV6_2292PKTOPTIONS 25 | ||
| 390 | |||
| 391 | #ifdef __APPLE_USE_RFC_2292 | ||
| 392 | #define IPV6_PKTINFO IPV6_2292PKTINFO | ||
| 393 | #define IPV6_HOPLIMIT IPV6_2292HOPLIMIT | ||
| 394 | #define IPV6_NEXTHOP IPV6_2292NEXTHOP | ||
| 395 | #define IPV6_HOPOPTS IPV6_2292HOPOPTS | ||
| 396 | #define IPV6_DSTOPTS IPV6_2292DSTOPTS | ||
| 397 | #define IPV6_RTHDR IPV6_2292RTHDR | ||
| 398 | #define IPV6_PKTOPTIONS IPV6_2292PKTOPTIONS | ||
| 399 | #endif /* __APPLE_USE_RFC_2292 */ | ||
| 400 | |||
| 401 | #define IPV6_CHECKSUM 26 /* int; checksum offset for raw socket */ | ||
| 402 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 403 | #define IPV6_V6ONLY 27 /* bool; only bind INET6 at wildcard bind */ | ||
| 404 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 405 | #define IPV6_BINDV6ONLY IPV6_V6ONLY | ||
| 406 | |||
| 407 | |||
| 408 | #if 1 /* IPSEC */ | ||
| 409 | #define IPV6_IPSEC_POLICY 28 /* struct; get/set security policy */ | ||
| 410 | #endif /* 1 */ | ||
| 411 | #define IPV6_FAITH 29 /* deprecated */ | ||
| 412 | |||
| 413 | #if 1 /* IPV6FIREWALL */ | ||
| 414 | #define IPV6_FW_ADD 30 /* add a firewall rule to chain */ | ||
| 415 | #define IPV6_FW_DEL 31 /* delete a firewall rule from chain */ | ||
| 416 | #define IPV6_FW_FLUSH 32 /* flush firewall rule chain */ | ||
| 417 | #define IPV6_FW_ZERO 33 /* clear single/all firewall counter(s) */ | ||
| 418 | #define IPV6_FW_GET 34 /* get entire firewall rule chain */ | ||
| 419 | #endif /* 1 */ | ||
| 420 | |||
| 421 | /* | ||
| 422 | * APPLE: NOTE the value of those 2 options is kept unchanged from | ||
| 423 | * previous version of darwin/OS X for binary compatibility reasons | ||
| 424 | * and differ from FreeBSD (values 57 and 61). See below. | ||
| 425 | */ | ||
| 426 | #define IPV6_RECVTCLASS 35 /* bool; recv traffic class values */ | ||
| 427 | #define IPV6_TCLASS 36 /* int; send traffic class value */ | ||
| 428 | |||
| 429 | #ifdef __APPLE_USE_RFC_3542 | ||
| 430 | /* new socket options introduced in RFC3542 */ | ||
| 431 | /* | ||
| 432 | * ip6_dest; send dst option before rthdr | ||
| 433 | * APPLE: Value purposely different than FreeBSD (35) to avoid | ||
| 434 | * collision with definition of IPV6_RECVTCLASS in previous | ||
| 435 | * darwin implementations | ||
| 436 | */ | ||
| 437 | #define IPV6_RTHDRDSTOPTS 57 | ||
| 438 | |||
| 439 | /* | ||
| 440 | * bool; recv if, dst addr | ||
| 441 | * APPLE: Value purposely different than FreeBSD(36) to avoid | ||
| 442 | * collision with definition of IPV6_TCLASS in previous | ||
| 443 | * darwin implementations | ||
| 444 | */ | ||
| 445 | #define IPV6_RECVPKTINFO 61 | ||
| 446 | |||
| 447 | #define IPV6_RECVHOPLIMIT 37 /* bool; recv hop limit */ | ||
| 448 | #define IPV6_RECVRTHDR 38 /* bool; recv routing header */ | ||
| 449 | #define IPV6_RECVHOPOPTS 39 /* bool; recv hop-by-hop option */ | ||
| 450 | #define IPV6_RECVDSTOPTS 40 /* bool; recv dst option after rthdr */ | ||
| 451 | |||
| 452 | #define IPV6_USE_MIN_MTU 42 /* bool; send packets at the minimum MTU */ | ||
| 453 | #define IPV6_RECVPATHMTU 43 /* bool; notify an according MTU */ | ||
| 454 | |||
| 455 | /* | ||
| 456 | * mtuinfo; get the current path MTU (sopt), 4 bytes int; | ||
| 457 | * MTU notification (cmsg) | ||
| 458 | */ | ||
| 459 | #define IPV6_PATHMTU 44 | ||
| 460 | |||
| 461 | #if 0 /* obsoleted during 2292bis -> 3542 */ | ||
| 462 | /* no data; ND reachability confirm (cmsg only/not in of RFC3542) */ | ||
| 463 | #define IPV6_REACHCONF 45 | ||
| 464 | #endif | ||
| 465 | /* more new socket options introduced in RFC3542 */ | ||
| 466 | #define IPV6_3542PKTINFO 46 /* in6_pktinfo; send if, src addr */ | ||
| 467 | #define IPV6_3542HOPLIMIT 47 /* int; send hop limit */ | ||
| 468 | #define IPV6_3542NEXTHOP 48 /* sockaddr; next hop addr */ | ||
| 469 | #define IPV6_3542HOPOPTS 49 /* ip6_hbh; send hop-by-hop option */ | ||
| 470 | #define IPV6_3542DSTOPTS 50 /* ip6_dest; send dst option befor rthdr */ | ||
| 471 | #define IPV6_3542RTHDR 51 /* ip6_rthdr; send routing header */ | ||
| 472 | |||
| 473 | #define IPV6_PKTINFO IPV6_3542PKTINFO | ||
| 474 | #define IPV6_HOPLIMIT IPV6_3542HOPLIMIT | ||
| 475 | #define IPV6_NEXTHOP IPV6_3542NEXTHOP | ||
| 476 | #define IPV6_HOPOPTS IPV6_3542HOPOPTS | ||
| 477 | #define IPV6_DSTOPTS IPV6_3542DSTOPTS | ||
| 478 | #define IPV6_RTHDR IPV6_3542RTHDR | ||
| 479 | |||
| 480 | #define IPV6_AUTOFLOWLABEL 59 /* bool; attach flowlabel automagically */ | ||
| 481 | |||
| 482 | #define IPV6_DONTFRAG 62 /* bool; disable IPv6 fragmentation */ | ||
| 483 | |||
| 484 | /* int; prefer temporary addresses as the source address. */ | ||
| 485 | #define IPV6_PREFER_TEMPADDR 63 | ||
| 486 | |||
| 487 | /* | ||
| 488 | * The following option is private; do not use it from user applications. | ||
| 489 | * It is deliberately defined to the same value as IP_MSFILTER. | ||
| 490 | */ | ||
| 491 | #define IPV6_MSFILTER 74 /* struct __msfilterreq; */ | ||
| 492 | #endif /* __APPLE_USE_RFC_3542 */ | ||
| 493 | |||
| 494 | #define IPV6_BOUND_IF 125 /* int; set/get bound interface */ | ||
| 495 | |||
| 496 | |||
| 497 | /* to define items, should talk with KAME guys first, for *BSD compatibility */ | ||
| 498 | |||
| 499 | #define IPV6_RTHDR_LOOSE 0 /* this hop need not be a neighbor. */ | ||
| 500 | #define IPV6_RTHDR_STRICT 1 /* this hop must be a neighbor. */ | ||
| 501 | #define IPV6_RTHDR_TYPE_0 0 /* IPv6 routing header type 0 */ | ||
| 502 | |||
| 503 | /* | ||
| 504 | * Defaults and limits for options | ||
| 505 | */ | ||
| 506 | #define IPV6_DEFAULT_MULTICAST_HOPS 1 /* normally limit m'casts to 1 hop */ | ||
| 507 | #define IPV6_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ | ||
| 508 | |||
| 509 | /* | ||
| 510 | * The im6o_membership vector for each socket is now dynamically allocated at | ||
| 511 | * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized | ||
| 512 | * according to a power-of-two increment. | ||
| 513 | */ | ||
| 514 | #define IPV6_MIN_MEMBERSHIPS 31 | ||
| 515 | #define IPV6_MAX_MEMBERSHIPS 4095 | ||
| 516 | |||
| 517 | /* | ||
| 518 | * Default resource limits for IPv6 multicast source filtering. | ||
| 519 | * These may be modified by sysctl. | ||
| 520 | */ | ||
| 521 | #define IPV6_MAX_GROUP_SRC_FILTER 512 /* sources per group */ | ||
| 522 | #define IPV6_MAX_SOCK_SRC_FILTER 128 /* sources per socket/group */ | ||
| 523 | |||
| 524 | /* | ||
| 525 | * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. | ||
| 526 | */ | ||
| 527 | struct ipv6_mreq { | ||
| 528 | 	struct in6_addr ipv6mr_multiaddr; | ||
| 529 | 	unsigned int ipv6mr_interface; | ||
| 530 | }; | ||
| 531 | |||
| 532 | /* | ||
| 533 | * IPV6_2292PKTINFO: Packet information(RFC2292 sec 5) | ||
| 534 | */ | ||
| 535 | struct in6_pktinfo { | ||
| 536 | 	struct in6_addr ipi6_addr; /* src/dst IPv6 address */ | ||
| 537 | 	unsigned int ipi6_ifindex; /* send/recv interface index */ | ||
| 538 | }; | ||
| 539 | |||
| 540 | /* | ||
| 541 | * Control structure for IPV6_RECVPATHMTU socket option. | ||
| 542 | */ | ||
| 543 | struct ip6_mtuinfo { | ||
| 544 | 	struct sockaddr_in6 ip6m_addr; /* or sockaddr_storage? */ | ||
| 545 | 	uint32_t ip6m_mtu; | ||
| 546 | }; | ||
| 547 | |||
| 548 | /* | ||
| 549 | * Argument for IPV6_PORTRANGE: | ||
| 550 | * - which range to search when port is unspecified at bind() or connect() | ||
| 551 | */ | ||
| 552 | #define IPV6_PORTRANGE_DEFAULT 0 /* default range */ | ||
| 553 | #define IPV6_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ | ||
| 554 | #define IPV6_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ | ||
| 555 | |||
| 556 | /* | ||
| 557 | * Definitions for inet6 sysctl operations. | ||
| 558 | * | ||
| 559 | * Third level is protocol number. | ||
| 560 | * Fourth level is desired variable within that protocol. | ||
| 561 | */ | ||
| 562 | #define IPV6PROTO_MAXID (IPPROTO_PIM + 1) /* don't list to IPV6PROTO_MAX */ | ||
| 563 | |||
| 564 | /* | ||
| 565 | * Names for IP sysctl objects | ||
| 566 | */ | ||
| 567 | #define IPV6CTL_FORWARDING 1 /* act as router */ | ||
| 568 | #define IPV6CTL_SENDREDIRECTS 2 /* may send redirects when forwarding */ | ||
| 569 | #define IPV6CTL_DEFHLIM 3 /* default Hop-Limit */ | ||
| 570 | #ifdef notyet | ||
| 571 | #define IPV6CTL_DEFMTU 4 /* default MTU */ | ||
| 572 | #endif | ||
| 573 | #define IPV6CTL_FORWSRCRT 5 /* forward source-routed dgrams */ | ||
| 574 | #define IPV6CTL_STATS 6 /* stats */ | ||
| 575 | #define IPV6CTL_MRTSTATS 7 /* multicast forwarding stats */ | ||
| 576 | #define IPV6CTL_MRTPROTO 8 /* multicast routing protocol */ | ||
| 577 | #define IPV6CTL_MAXFRAGPACKETS 9 /* max packets reassembly queue */ | ||
| 578 | #define IPV6CTL_SOURCECHECK 10 /* verify source route and intf */ | ||
| 579 | #define IPV6CTL_SOURCECHECK_LOGINT 11 /* minimume logging interval */ | ||
| 580 | #define IPV6CTL_ACCEPT_RTADV 12 | ||
| 581 | #define IPV6CTL_KEEPFAITH 13 /* deprecated */ | ||
| 582 | #define IPV6CTL_LOG_INTERVAL 14 | ||
| 583 | #define IPV6CTL_HDRNESTLIMIT 15 | ||
| 584 | #define IPV6CTL_DAD_COUNT 16 | ||
| 585 | #define IPV6CTL_AUTO_FLOWLABEL 17 | ||
| 586 | #define IPV6CTL_DEFMCASTHLIM 18 | ||
| 587 | #define IPV6CTL_GIF_HLIM 19 /* default HLIM for gif encap packet */ | ||
| 588 | #define IPV6CTL_KAME_VERSION 20 | ||
| 589 | #define IPV6CTL_USE_DEPRECATED 21 /* use deprec addr (RFC2462 5.5.4) */ | ||
| 590 | #define IPV6CTL_RR_PRUNE 22 /* walk timer for router renumbering */ | ||
| 591 | #if 0 /* obsolete */ | ||
| 592 | #define IPV6CTL_MAPPED_ADDR 23 | ||
| 593 | #endif | ||
| 594 | #define IPV6CTL_V6ONLY 24 | ||
| 595 | #define IPV6CTL_RTEXPIRE 25 /* cloned route expiration time */ | ||
| 596 | #define IPV6CTL_RTMINEXPIRE 26 /* min value for expiration time */ | ||
| 597 | #define IPV6CTL_RTMAXCACHE 27 /* trigger level for dynamic expire */ | ||
| 598 | |||
| 599 | #define IPV6CTL_USETEMPADDR 32 /* use temporary addresses [RFC 4941] */ | ||
| 600 | #define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */ | ||
| 601 | #define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */ | ||
| 602 | #define IPV6CTL_AUTO_LINKLOCAL 35 /* automatic link-local addr assign */ | ||
| 603 | #define IPV6CTL_RIP6STATS 36 /* raw_ip6 stats */ | ||
| 604 | #define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */ | ||
| 605 | #define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */ | ||
| 606 | #define IPV6CTL_USE_DEFAULTZONE 39 /* use default scope zone */ | ||
| 607 | |||
| 608 | #define IPV6CTL_MAXFRAGS 41 /* max fragments */ | ||
| 609 | #define IPV6CTL_MCAST_PMTU 44 /* enable pMTU discovery for mcast? */ | ||
| 610 | |||
| 611 | #define IPV6CTL_NEIGHBORGCTHRESH 46 | ||
| 612 | #define IPV6CTL_MAXIFPREFIXES 47 | ||
| 613 | #define IPV6CTL_MAXIFDEFROUTERS 48 | ||
| 614 | #define IPV6CTL_MAXDYNROUTES 49 | ||
| 615 | #define ICMPV6CTL_ND6_ONLINKNSRFC4861 50 | ||
| 616 | |||
| 617 | /* New entries should be added here from current IPV6CTL_MAXID value. */ | ||
| 618 | /* to define items, should talk with KAME guys first, for *BSD compatibility */ | ||
| 619 | #define IPV6CTL_MAXID 51 | ||
| 620 | |||
| 621 | |||
| 622 | |||
| 623 | |||
| 624 | |||
| 625 | __BEGIN_DECLS | ||
| 626 | struct cmsghdr; | ||
| 627 | |||
| 628 | extern int inet6_option_space(int); | ||
| 629 | extern int inet6_option_init(void *, struct cmsghdr **, int); | ||
| 630 | extern int inet6_option_append(struct cmsghdr *, const __uint8_t *, int, int); | ||
| 631 | extern __uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int); | ||
| 632 | extern int inet6_option_next(const struct cmsghdr *, __uint8_t **); | ||
| 633 | extern int inet6_option_find(const struct cmsghdr *, __uint8_t **, int); | ||
| 634 | |||
| 635 | extern size_t inet6_rthdr_space(int, int); | ||
| 636 | extern struct cmsghdr *inet6_rthdr_init(void *, int); | ||
| 637 | extern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *, | ||
| 638 | unsigned int); | ||
| 639 | extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int); | ||
| 640 | #if 0 /* not implemented yet */ | ||
| 641 | extern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *); | ||
| 642 | #endif | ||
| 643 | extern int inet6_rthdr_segments(const struct cmsghdr *); | ||
| 644 | extern struct in6_addr *inet6_rthdr_getaddr(struct cmsghdr *, int); | ||
| 645 | extern int inet6_rthdr_getflags(const struct cmsghdr *, int); | ||
| 646 | |||
| 647 | extern int inet6_opt_init(void *, socklen_t); | ||
| 648 | extern int inet6_opt_append(void *, socklen_t, int, __uint8_t, socklen_t, | ||
| 649 | __uint8_t, void **); | ||
| 650 | extern int inet6_opt_finish(void *, socklen_t, int); | ||
| 651 | extern int inet6_opt_set_val(void *, int, void *, socklen_t); | ||
| 652 | |||
| 653 | extern int inet6_opt_next(void *, socklen_t, int, __uint8_t *, socklen_t *, | ||
| 654 | void **); | ||
| 655 | extern int inet6_opt_find(void *, socklen_t, int, __uint8_t, socklen_t *, | ||
| 656 | void **); | ||
| 657 | extern int inet6_opt_get_val(void *, int, void *, socklen_t); | ||
| 658 | extern socklen_t inet6_rth_space(int, int); | ||
| 659 | extern void *inet6_rth_init(void *, socklen_t, int, int); | ||
| 660 | extern int inet6_rth_add(void *, const struct in6_addr *); | ||
| 661 | extern int inet6_rth_reverse(const void *, void *); | ||
| 662 | extern int inet6_rth_segments(const void *); | ||
| 663 | extern struct in6_addr *inet6_rth_getaddr(const void *, int); | ||
| 664 | |||
| 665 | __END_DECLS | ||
| 666 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 667 | #endif /* !_NETINET6_IN6_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/nl_types.h created+103| ... | @@ -0,0 +1,103 @@ | ||
| 1 | /*	$NetBSD: nl_types.h,v 1.9 2000/10/03 19:53:32 sommerfeld Exp $	*/ | ||
| 2 | |||
| 3 | /*- | ||
| 4 | * Copyright (c) 1996 The NetBSD Foundation, Inc. | ||
| 5 | * All rights reserved. | ||
| 6 | * | ||
| 7 | * This code is derived from software contributed to The NetBSD Foundation | ||
| 8 | * by J.T. Conklin. | ||
| 9 | * | ||
| 10 | * Redistribution and use in source and binary forms, with or without | ||
| 11 | * modification, are permitted provided that the following conditions | ||
| 12 | * are met: | ||
| 13 | * 1. Redistributions of source code must retain the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer. | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in the | ||
| 17 | * documentation and/or other materials provided with the distribution. | ||
| 18 | * 3. All advertising materials mentioning features or use of this software | ||
| 19 | * must display the following acknowledgement: | ||
| 20 | * This product includes software developed by the NetBSD | ||
| 21 | * Foundation, Inc. and its contributors. | ||
| 22 | * 4. Neither the name of The NetBSD Foundation nor the names of its | ||
| 23 | * contributors may be used to endorse or promote products derived | ||
| 24 | * from this software without specific prior written permission. | ||
| 25 | * | ||
| 26 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | ||
| 27 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
| 28 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 29 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | ||
| 30 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
| 31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
| 32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
| 33 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
| 34 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 35 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| 36 | * POSSIBILITY OF SUCH DAMAGE. | ||
| 37 | * | ||
| 38 | * $FreeBSD: src/include/nl_types.h,v 1.11 2005/02/27 16:20:53 phantom Exp $ | ||
| 39 | */ | ||
| 40 | |||
| 41 | #ifndef _NL_TYPES_H_ | ||
| 42 | #define _NL_TYPES_H_ | ||
| 43 | |||
| 44 | #include <sys/cdefs.h> | ||
| 45 | #include <sys/types.h> | ||
| 46 | #include <_types.h> | ||
| 47 | |||
| 48 | #ifdef _NLS_PRIVATE | ||
| 49 | /* | ||
| 50 | * MESSAGE CATALOG FILE FORMAT. | ||
| 51 | * | ||
| 52 | * The NetBSD/FreeBSD message catalog format is similar to the format used by | ||
| 53 | * Svr4 systems. The differences are: | ||
| 54 | * * fixed byte order (big endian) | ||
| 55 | * * fixed data field sizes | ||
| 56 | * | ||
| 57 | * A message catalog contains four data types: a catalog header, one | ||
| 58 | * or more set headers, one or more message headers, and one or more | ||
| 59 | * text strings. | ||
| 60 | */ | ||
| 61 | |||
| 62 | #define _NLS_MAGIC	0xff88ff89 | ||
| 63 | |||
| 64 | struct _nls_cat_hdr { | ||
| 65 | 	int32_t __magic; | ||
| 66 | 	int32_t __nsets; | ||
| 67 | 	int32_t __mem; | ||
| 68 | 	int32_t __msg_hdr_offset; | ||
| 69 | 	int32_t __msg_txt_offset; | ||
| 70 | } ; | ||
| 71 | |||
| 72 | struct _nls_set_hdr { | ||
| 73 | 	int32_t __setno;	/* set number: 0 < x <= NL_SETMAX */ | ||
| 74 | 	int32_t __nmsgs;	/* number of messages in the set */ | ||
| 75 | 	int32_t __index;	/* index of first msg_hdr in msg_hdr table */ | ||
| 76 | } ; | ||
| 77 | |||
| 78 | struct _nls_msg_hdr { | ||
| 79 | 	int32_t __msgno;	/* msg number: 0 < x <= NL_MSGMAX */ | ||
| 80 | 	int32_t __msglen; | ||
| 81 | 	int32_t __offset; | ||
| 82 | } ; | ||
| 83 | |||
| 84 | #endif	/* _NLS_PRIVATE */ | ||
| 85 | |||
| 86 | #define	NL_SETD		1 | ||
| 87 | #define	NL_CAT_LOCALE	1 | ||
| 88 | |||
| 89 | typedef struct __nl_cat_d { | ||
| 90 | 	void	*__data; | ||
| 91 | 	int	__size; | ||
| 92 | } *nl_catd; | ||
| 93 | |||
| 94 | #include <_types/_nl_item.h> | ||
| 95 | |||
| 96 | __BEGIN_DECLS | ||
| 97 | nl_catd catopen(const char *, int); | ||
| 98 | char *catgets(nl_catd, int, int, const char *) | ||
| 99 | 	__attribute__((__format_arg__(4))); | ||
| 100 | int	 catclose(nl_catd); | ||
| 101 | __END_DECLS | ||
| 102 | |||
| 103 | #endif	/* _NL_TYPES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/poll.h created+26| ... | @@ -0,0 +1,26 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2004 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | #include <sys/poll.h> | ||
| 24 | |||
| 25 | |||
| 26 | |||
lib/libc/include/x86_64-macos-gnu/pthread.h created+568| ... | @@ -0,0 +1,568 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /* | ||
| 24 | * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991 | ||
| 25 | * All Rights Reserved | ||
| 26 | * | ||
| 27 | * Permission to use, copy, modify, and distribute this software and | ||
| 28 | * its documentation for any purpose and without fee is hereby granted, | ||
| 29 | * provided that the above copyright notice appears in all copies and | ||
| 30 | * that both the copyright notice and this permission notice appear in | ||
| 31 | * supporting documentation. | ||
| 32 | * | ||
| 33 | * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE | ||
| 34 | * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
| 35 | * FOR A PARTICULAR PURPOSE. | ||
| 36 | * | ||
| 37 | * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR | ||
| 38 | * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| 39 | * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, | ||
| 40 | * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION | ||
| 41 | * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
| 42 | * | ||
| 43 | */ | ||
| 44 | /* | ||
| 45 | * MkLinux | ||
| 46 | */ | ||
| 47 | |||
| 48 | /* | ||
| 49 | * POSIX Threads - IEEE 1003.1c | ||
| 50 | */ | ||
| 51 | |||
| 52 | #ifndef _PTHREAD_H | ||
| 53 | #define _PTHREAD_H | ||
| 54 | |||
| 55 | #include <_types.h> | ||
| 56 | #ifndef __POSIX_LIB__ | ||
| 57 | #include <pthread/pthread_impl.h> | ||
| 58 | #endif | ||
| 59 | #include <pthread/sched.h> | ||
| 60 | #include <time.h> | ||
| 61 | #include <sys/_pthread/_pthread_types.h> | ||
| 62 | #include <sys/_pthread/_pthread_attr_t.h> | ||
| 63 | #include <sys/_pthread/_pthread_cond_t.h> | ||
| 64 | #include <sys/_pthread/_pthread_condattr_t.h> | ||
| 65 | #include <sys/_pthread/_pthread_key_t.h> | ||
| 66 | #include <sys/_pthread/_pthread_mutex_t.h> | ||
| 67 | #include <sys/_pthread/_pthread_mutexattr_t.h> | ||
| 68 | #include <sys/_pthread/_pthread_once_t.h> | ||
| 69 | #include <sys/_pthread/_pthread_rwlock_t.h> | ||
| 70 | #include <sys/_pthread/_pthread_rwlockattr_t.h> | ||
| 71 | #include <sys/_pthread/_pthread_t.h> | ||
| 72 | |||
| 73 | #include <pthread/qos.h> | ||
| 74 | |||
| 75 | #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus) | ||
| 76 | |||
| 77 | #include <sys/_types/_mach_port_t.h> | ||
| 78 | #include <sys/_types/_sigset_t.h> | ||
| 79 | |||
| 80 | #endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */ | ||
| 81 | |||
| 82 | /* | ||
| 83 | * These symbols indicate which [optional] features are available | ||
| 84 | * They can be tested at compile time via '#ifdef XXX' | ||
| 85 | * The way to check for pthreads is like so: | ||
| 86 | |||
| 87 | * #include <unistd.h> | ||
| 88 | * #ifdef _POSIX_THREADS | ||
| 89 | * #include <pthread.h> | ||
| 90 | * #endif | ||
| 91 | |||
| 92 | */ | ||
| 93 | |||
| 94 | /* These will be moved to unistd.h */ | ||
| 95 | |||
| 96 | /* | ||
| 97 | * Note: These data structures are meant to be opaque. Only enough | ||
| 98 | * structure is exposed to support initializers. | ||
| 99 | * All of the typedefs will be moved to <sys/types.h> | ||
| 100 | */ | ||
| 101 | |||
| 102 | #include <sys/cdefs.h> | ||
| 103 | #include <Availability.h> | ||
| 104 | |||
| 105 | #if __has_feature(assume_nonnull) | ||
| 106 | _Pragma("clang assume_nonnull begin") | ||
| 107 | #endif | ||
| 108 | __BEGIN_DECLS | ||
| 109 | /* | ||
| 110 | * Threads | ||
| 111 | */ | ||
| 112 | |||
| 113 | |||
| 114 | /* | ||
| 115 | * Cancel cleanup handler management. Note, since these are implemented as macros, | ||
| 116 | * they *MUST* occur in matched pairs! | ||
| 117 | */ | ||
| 118 | |||
| 119 | #define pthread_cleanup_push(func, val) \ | ||
| 120 | { \ | ||
| 121 | 	 struct __darwin_pthread_handler_rec __handler; \ | ||
| 122 | 	 pthread_t __self = pthread_self(); \ | ||
| 123 | 	 __handler.__routine = func; \ | ||
| 124 | 	 __handler.__arg = val; \ | ||
| 125 | 	 __handler.__next = __self->__cleanup_stack; \ | ||
| 126 | 	 __self->__cleanup_stack = &__handler; | ||
| 127 | |||
| 128 | #define pthread_cleanup_pop(execute) \ | ||
| 129 | 	 /* Note: 'handler' must be in this same lexical context! */ \ | ||
| 130 | 	 __self->__cleanup_stack = __handler.__next; \ | ||
| 131 | 	 if (execute) (__handler.__routine)(__handler.__arg); \ | ||
| 132 | } | ||
| 133 | |||
| 134 | /* | ||
| 135 | * Thread attributes | ||
| 136 | */ | ||
| 137 | |||
| 138 | #define PTHREAD_CREATE_JOINABLE 1 | ||
| 139 | #define PTHREAD_CREATE_DETACHED 2 | ||
| 140 | |||
| 141 | #define PTHREAD_INHERIT_SCHED 1 | ||
| 142 | #define PTHREAD_EXPLICIT_SCHED 2 | ||
| 143 | |||
| 144 | #define PTHREAD_CANCEL_ENABLE 0x01 /* Cancel takes place at next cancellation point */ | ||
| 145 | #define PTHREAD_CANCEL_DISABLE 0x00 /* Cancel postponed */ | ||
| 146 | #define PTHREAD_CANCEL_DEFERRED 0x02 /* Cancel waits until cancellation point */ | ||
| 147 | #define PTHREAD_CANCEL_ASYNCHRONOUS 0x00 /* Cancel occurs immediately */ | ||
| 148 | |||
| 149 | /* Value returned from pthread_join() when a thread is canceled */ | ||
| 150 | #define PTHREAD_CANCELED	 ((void *) 1) | ||
| 151 | |||
| 152 | /* We only support PTHREAD_SCOPE_SYSTEM */ | ||
| 153 | #define PTHREAD_SCOPE_SYSTEM 1 | ||
| 154 | #define PTHREAD_SCOPE_PROCESS 2 | ||
| 155 | |||
| 156 | #define PTHREAD_PROCESS_SHARED 1 | ||
| 157 | #define PTHREAD_PROCESS_PRIVATE 2 | ||
| 158 | |||
| 159 | /* | ||
| 160 | * Mutex protocol attributes | ||
| 161 | */ | ||
| 162 | #define PTHREAD_PRIO_NONE 0 | ||
| 163 | #define PTHREAD_PRIO_INHERIT 1 | ||
| 164 | #define PTHREAD_PRIO_PROTECT 2 | ||
| 165 | |||
| 166 | /* | ||
| 167 | * Mutex type attributes | ||
| 168 | */ | ||
| 169 | #define PTHREAD_MUTEX_NORMAL		0 | ||
| 170 | #define PTHREAD_MUTEX_ERRORCHECK	1 | ||
| 171 | #define PTHREAD_MUTEX_RECURSIVE		2 | ||
| 172 | #define PTHREAD_MUTEX_DEFAULT		PTHREAD_MUTEX_NORMAL | ||
| 173 | |||
| 174 | /* | ||
| 175 | * Mutex policy attributes | ||
| 176 | */ | ||
| 177 | #define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP 1 | ||
| 178 | #define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP 3 | ||
| 179 | |||
| 180 | /* | ||
| 181 | * RWLock variables | ||
| 182 | */ | ||
| 183 | #define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}} | ||
| 184 | |||
| 185 | /* | ||
| 186 | * Mutex variables | ||
| 187 | */ | ||
| 188 | #define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}} | ||
| 189 | |||
| 190 | /* <rdar://problem/10854763> */ | ||
| 191 | #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) | ||
| 192 | #	if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) | ||
| 193 | #		define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}} | ||
| 194 | #		define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}} | ||
| 195 | #	endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */ | ||
| 196 | #endif | ||
| 197 | |||
| 198 | /* <rdar://problem/25944576> */ | ||
| 199 | #define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT \ | ||
| 200 | 	defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1)) | ||
| 201 | |||
| 202 | /* | ||
| 203 | * Condition variable attributes | ||
| 204 | */ | ||
| 205 | |||
| 206 | /* | ||
| 207 | * Condition variables | ||
| 208 | */ | ||
| 209 | |||
| 210 | #define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}} | ||
| 211 | |||
| 212 | /* | ||
| 213 | * Initialization control (once) variables | ||
| 214 | */ | ||
| 215 | |||
| 216 | #define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}} | ||
| 217 | |||
| 218 | /* | ||
| 219 | * Prototypes for all PTHREAD interfaces | ||
| 220 | */ | ||
| 221 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 222 | int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void), | ||
| 223 | 		void (* _Nullable)(void)); | ||
| 224 | |||
| 225 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 226 | int pthread_attr_destroy(pthread_attr_t *); | ||
| 227 | |||
| 228 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 229 | int pthread_attr_getdetachstate(const pthread_attr_t *, int *); | ||
| 230 | |||
| 231 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 232 | int pthread_attr_getguardsize(const pthread_attr_t * __restrict, size_t * __restrict); | ||
| 233 | |||
| 234 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 235 | int pthread_attr_getinheritsched(const pthread_attr_t * __restrict, int * __restrict); | ||
| 236 | |||
| 237 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 238 | int pthread_attr_getschedparam(const pthread_attr_t * __restrict, | ||
| 239 | 		struct sched_param * __restrict); | ||
| 240 | |||
| 241 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 242 | int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict, int * __restrict); | ||
| 243 | |||
| 244 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 245 | int pthread_attr_getscope(const pthread_attr_t * __restrict, int * __restrict); | ||
| 246 | |||
| 247 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 248 | int pthread_attr_getstack(const pthread_attr_t * __restrict, | ||
| 249 | 		void * _Nullable * _Nonnull __restrict, size_t * __restrict); | ||
| 250 | |||
| 251 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 252 | int pthread_attr_getstackaddr(const pthread_attr_t * __restrict, | ||
| 253 | 		void * _Nullable * _Nonnull __restrict); | ||
| 254 | |||
| 255 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 256 | int pthread_attr_getstacksize(const pthread_attr_t * __restrict, size_t * __restrict); | ||
| 257 | |||
| 258 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 259 | int pthread_attr_init(pthread_attr_t *); | ||
| 260 | |||
| 261 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 262 | int pthread_attr_setdetachstate(pthread_attr_t *, int); | ||
| 263 | |||
| 264 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 265 | int pthread_attr_setguardsize(pthread_attr_t *, size_t); | ||
| 266 | |||
| 267 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 268 | int pthread_attr_setinheritsched(pthread_attr_t *, int); | ||
| 269 | |||
| 270 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 271 | int pthread_attr_setschedparam(pthread_attr_t * __restrict, | ||
| 272 | 		const struct sched_param * __restrict); | ||
| 273 | |||
| 274 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 275 | int pthread_attr_setschedpolicy(pthread_attr_t *, int); | ||
| 276 | |||
| 277 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 278 | int pthread_attr_setscope(pthread_attr_t *, int); | ||
| 279 | |||
| 280 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 281 | int pthread_attr_setstack(pthread_attr_t *, void *, size_t); | ||
| 282 | |||
| 283 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 284 | int pthread_attr_setstackaddr(pthread_attr_t *, void *); | ||
| 285 | |||
| 286 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 287 | int pthread_attr_setstacksize(pthread_attr_t *, size_t); | ||
| 288 | |||
| 289 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 290 | int pthread_cancel(pthread_t) __DARWIN_ALIAS(pthread_cancel); | ||
| 291 | |||
| 292 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 293 | int pthread_cond_broadcast(pthread_cond_t *); | ||
| 294 | |||
| 295 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 296 | int pthread_cond_destroy(pthread_cond_t *); | ||
| 297 | |||
| 298 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 299 | int pthread_cond_init( | ||
| 300 | 		pthread_cond_t * __restrict, | ||
| 301 | 		const pthread_condattr_t * _Nullable __restrict) | ||
| 302 | 		__DARWIN_ALIAS(pthread_cond_init); | ||
| 303 | |||
| 304 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 305 | int pthread_cond_signal(pthread_cond_t *); | ||
| 306 | |||
| 307 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 308 | int pthread_cond_timedwait( | ||
| 309 | 		pthread_cond_t * __restrict, pthread_mutex_t * __restrict, | ||
| 310 | 		const struct timespec * _Nullable __restrict) | ||
| 311 | 		__DARWIN_ALIAS_C(pthread_cond_timedwait); | ||
| 312 | |||
| 313 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 314 | int pthread_cond_wait(pthread_cond_t * __restrict, | ||
| 315 | 		pthread_mutex_t * __restrict) __DARWIN_ALIAS_C(pthread_cond_wait); | ||
| 316 | |||
| 317 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 318 | int pthread_condattr_destroy(pthread_condattr_t *); | ||
| 319 | |||
| 320 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 321 | int pthread_condattr_init(pthread_condattr_t *); | ||
| 322 | |||
| 323 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 324 | int pthread_condattr_getpshared(const pthread_condattr_t * __restrict, | ||
| 325 | 		int * __restrict); | ||
| 326 | |||
| 327 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 328 | int pthread_condattr_setpshared(pthread_condattr_t *, int); | ||
| 329 | |||
| 330 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 331 | #if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT | ||
| 332 | int pthread_create(pthread_t _Nullable * _Nonnull __restrict, | ||
| 333 | 		const pthread_attr_t * _Nullable __restrict, | ||
| 334 | 		void * _Nullable (* _Nonnull)(void * _Nullable), | ||
| 335 | 		void * _Nullable __restrict); | ||
| 336 | #else | ||
| 337 | int pthread_create(pthread_t * __restrict, | ||
| 338 | 		const pthread_attr_t * _Nullable __restrict, | ||
| 339 | 		void *(* _Nonnull)(void *), void * _Nullable __restrict); | ||
| 340 | #endif // _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT | ||
| 341 | |||
| 342 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 343 | int pthread_detach(pthread_t); | ||
| 344 | |||
| 345 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 346 | int pthread_equal(pthread_t _Nullable, pthread_t _Nullable); | ||
| 347 | |||
| 348 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 349 | void pthread_exit(void * _Nullable) __dead2; | ||
| 350 | |||
| 351 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 352 | int pthread_getconcurrency(void); | ||
| 353 | |||
| 354 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 355 | int pthread_getschedparam(pthread_t , int * _Nullable __restrict, | ||
| 356 | 		struct sched_param * _Nullable __restrict); | ||
| 357 | |||
| 358 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 359 | void* _Nullable pthread_getspecific(pthread_key_t); | ||
| 360 | |||
| 361 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 362 | int pthread_join(pthread_t , void * _Nullable * _Nullable) | ||
| 363 | 		__DARWIN_ALIAS_C(pthread_join); | ||
| 364 | |||
| 365 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 366 | int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *)); | ||
| 367 | |||
| 368 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 369 | int pthread_key_delete(pthread_key_t); | ||
| 370 | |||
| 371 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 372 | int pthread_mutex_destroy(pthread_mutex_t *); | ||
| 373 | |||
| 374 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 375 | int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict, | ||
| 376 | 		int * __restrict); | ||
| 377 | |||
| 378 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 379 | int pthread_mutex_init(pthread_mutex_t * __restrict, | ||
| 380 | 		const pthread_mutexattr_t * _Nullable __restrict); | ||
| 381 | |||
| 382 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 383 | int pthread_mutex_lock(pthread_mutex_t *); | ||
| 384 | |||
| 385 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 386 | int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict, int, | ||
| 387 | 		int * __restrict); | ||
| 388 | |||
| 389 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 390 | int pthread_mutex_trylock(pthread_mutex_t *); | ||
| 391 | |||
| 392 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 393 | int pthread_mutex_unlock(pthread_mutex_t *); | ||
| 394 | |||
| 395 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 396 | int pthread_mutexattr_destroy(pthread_mutexattr_t *) __DARWIN_ALIAS(pthread_mutexattr_destroy); | ||
| 397 | |||
| 398 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 399 | int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict, | ||
| 400 | 		int * __restrict); | ||
| 401 | |||
| 402 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 403 | int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict, | ||
| 404 | 		int * __restrict); | ||
| 405 | |||
| 406 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 407 | int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict, | ||
| 408 | 		int * __restrict); | ||
| 409 | |||
| 410 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 411 | int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict, | ||
| 412 | 		int * __restrict); | ||
| 413 | |||
| 414 | __API_AVAILABLE(macos(10.13.4), ios(11.3), watchos(4.3), tvos(11.3)) | ||
| 415 | int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict, | ||
| 416 | 		int * __restrict); | ||
| 417 | |||
| 418 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 419 | int pthread_mutexattr_init(pthread_mutexattr_t *); | ||
| 420 | |||
| 421 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 422 | int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); | ||
| 423 | |||
| 424 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 425 | int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); | ||
| 426 | |||
| 427 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 428 | int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); | ||
| 429 | |||
| 430 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 431 | int pthread_mutexattr_settype(pthread_mutexattr_t *, int); | ||
| 432 | |||
| 433 | __API_AVAILABLE(macos(10.7), ios(5.0)) | ||
| 434 | int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int); | ||
| 435 | |||
| 436 | __SWIFT_UNAVAILABLE_MSG("Use lazily initialized globals instead") | ||
| 437 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 438 | int pthread_once(pthread_once_t *, void (* _Nonnull)(void)); | ||
| 439 | |||
| 440 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 441 | int pthread_rwlock_destroy(pthread_rwlock_t * ) __DARWIN_ALIAS(pthread_rwlock_destroy); | ||
| 442 | |||
| 443 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 444 | int pthread_rwlock_init(pthread_rwlock_t * __restrict, | ||
| 445 | 		const pthread_rwlockattr_t * _Nullable __restrict) | ||
| 446 | 		__DARWIN_ALIAS(pthread_rwlock_init); | ||
| 447 | |||
| 448 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 449 | int pthread_rwlock_rdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_rdlock); | ||
| 450 | |||
| 451 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 452 | int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_tryrdlock); | ||
| 453 | |||
| 454 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 455 | int pthread_rwlock_trywrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_trywrlock); | ||
| 456 | |||
| 457 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 458 | int pthread_rwlock_wrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_wrlock); | ||
| 459 | |||
| 460 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 461 | int pthread_rwlock_unlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_unlock); | ||
| 462 | |||
| 463 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 464 | int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); | ||
| 465 | |||
| 466 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 467 | int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict, | ||
| 468 | 		int * __restrict); | ||
| 469 | |||
| 470 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 471 | int pthread_rwlockattr_init(pthread_rwlockattr_t *); | ||
| 472 | |||
| 473 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 474 | int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); | ||
| 475 | |||
| 476 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 477 | pthread_t pthread_self(void); | ||
| 478 | |||
| 479 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 480 | int pthread_setcancelstate(int , int * _Nullable) | ||
| 481 | 		__DARWIN_ALIAS(pthread_setcancelstate); | ||
| 482 | |||
| 483 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 484 | int pthread_setcanceltype(int , int * _Nullable) | ||
| 485 | 		__DARWIN_ALIAS(pthread_setcanceltype); | ||
| 486 | |||
| 487 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 488 | int pthread_setconcurrency(int); | ||
| 489 | |||
| 490 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 491 | int pthread_setschedparam(pthread_t, int, const struct sched_param *); | ||
| 492 | |||
| 493 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 494 | int pthread_setspecific(pthread_key_t , const void * _Nullable); | ||
| 495 | |||
| 496 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 497 | void pthread_testcancel(void) __DARWIN_ALIAS(pthread_testcancel); | ||
| 498 | |||
| 499 | #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus) | ||
| 500 | |||
| 501 | /* returns non-zero if pthread_create or cthread_fork have been called */ | ||
| 502 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 503 | int pthread_is_threaded_np(void); | ||
| 504 | |||
| 505 | __API_AVAILABLE(macos(10.6), ios(3.2)) | ||
| 506 | int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable); | ||
| 507 | |||
| 508 | /*SPI to set and get pthread name*/ | ||
| 509 | __API_AVAILABLE(macos(10.6), ios(3.2)) | ||
| 510 | int	pthread_getname_np(pthread_t,char*,size_t); | ||
| 511 | |||
| 512 | __API_AVAILABLE(macos(10.6), ios(3.2)) | ||
| 513 | int	pthread_setname_np(const char*); | ||
| 514 | |||
| 515 | /* returns non-zero if the current thread is the main thread */ | ||
| 516 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 517 | int	pthread_main_np(void); | ||
| 518 | |||
| 519 | /* return the mach thread bound to the pthread */ | ||
| 520 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 521 | mach_port_t pthread_mach_thread_np(pthread_t); | ||
| 522 | |||
| 523 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 524 | size_t pthread_get_stacksize_np(pthread_t); | ||
| 525 | |||
| 526 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 527 | void* pthread_get_stackaddr_np(pthread_t); | ||
| 528 | |||
| 529 | /* Like pthread_cond_signal(), but only wake up the specified pthread */ | ||
| 530 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 531 | int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable); | ||
| 532 | |||
| 533 | /* Like pthread_cond_timedwait, but use a relative timeout */ | ||
| 534 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 535 | int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *, | ||
| 536 | 		const struct timespec * _Nullable); | ||
| 537 | |||
| 538 | /* Like pthread_create(), but leaves the thread suspended */ | ||
| 539 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 540 | #if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT | ||
| 541 | int pthread_create_suspended_np( | ||
| 542 | 		pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable, | ||
| 543 | 		void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable); | ||
| 544 | #else | ||
| 545 | int pthread_create_suspended_np(pthread_t *, const pthread_attr_t * _Nullable, | ||
| 546 | 		void *(* _Nonnull)(void *), void * _Nullable); | ||
| 547 | #endif | ||
| 548 | |||
| 549 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 550 | int pthread_kill(pthread_t, int); | ||
| 551 | |||
| 552 | __API_AVAILABLE(macos(10.5), ios(2.0)) | ||
| 553 | _Nullable pthread_t pthread_from_mach_thread_np(mach_port_t); | ||
| 554 | |||
| 555 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 556 | int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable) | ||
| 557 | 		__DARWIN_ALIAS(pthread_sigmask); | ||
| 558 | |||
| 559 | __API_AVAILABLE(macos(10.4), ios(2.0)) | ||
| 560 | void pthread_yield_np(void); | ||
| 561 | |||
| 562 | #endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */ | ||
| 563 | __END_DECLS | ||
| 564 | #if __has_feature(assume_nonnull) | ||
| 565 | _Pragma("clang assume_nonnull end") | ||
| 566 | #endif | ||
| 567 | |||
| 568 | #endif /* _PTHREAD_H */ | ||
lib/libc/include/x86_64-macos-gnu/pthread/pthread_impl.h created+66| ... | @@ -0,0 +1,66 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _PTHREAD_IMPL_H_ | ||
| 25 | #define _PTHREAD_IMPL_H_ | ||
| 26 | /* | ||
| 27 | * Internal implementation details | ||
| 28 | */ | ||
| 29 | |||
| 30 | /* This whole header file will disappear, so don't depend on it... */ | ||
| 31 | |||
| 32 | #if __has_feature(assume_nonnull) | ||
| 33 | _Pragma("clang assume_nonnull begin") | ||
| 34 | #endif | ||
| 35 | |||
| 36 | #ifndef __POSIX_LIB__ | ||
| 37 | |||
| 38 | /* | ||
| 39 | * [Internal] data structure signatures | ||
| 40 | */ | ||
| 41 | #define _PTHREAD_MUTEX_SIG_init		0x32AAABA7 | ||
| 42 | |||
| 43 | #define _PTHREAD_ERRORCHECK_MUTEX_SIG_init 0x32AAABA1 | ||
| 44 | #define _PTHREAD_RECURSIVE_MUTEX_SIG_init 0x32AAABA2 | ||
| 45 | #define _PTHREAD_FIRSTFIT_MUTEX_SIG_init 0x32AAABA3 | ||
| 46 | |||
| 47 | #define _PTHREAD_COND_SIG_init		0x3CB0B1BB | ||
| 48 | #define _PTHREAD_ONCE_SIG_init		0x30B1BCBA | ||
| 49 | #define _PTHREAD_RWLOCK_SIG_init 0x2DA8B3B4 | ||
| 50 | |||
| 51 | /* | ||
| 52 | * POSIX scheduling policies | ||
| 53 | */ | ||
| 54 | #define SCHED_OTHER 1 | ||
| 55 | #define SCHED_FIFO 4 | ||
| 56 | #define SCHED_RR 2 | ||
| 57 | |||
| 58 | #define __SCHED_PARAM_SIZE__ 4 | ||
| 59 | |||
| 60 | #endif /* __POSIX_LIB__ */ | ||
| 61 | |||
| 62 | #if __has_feature(assume_nonnull) | ||
| 63 | _Pragma("clang assume_nonnull end") | ||
| 64 | #endif | ||
| 65 | |||
| 66 | #endif /* _PTHREAD_IMPL_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/pthread/qos.h created+304| ... | @@ -0,0 +1,304 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2013-2014 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _PTHREAD_QOS_H | ||
| 25 | #define _PTHREAD_QOS_H | ||
| 26 | |||
| 27 | #include <sys/cdefs.h> | ||
| 28 | #include <sys/_pthread/_pthread_attr_t.h> /* pthread_attr_t */ | ||
| 29 | #include <sys/_pthread/_pthread_t.h> /* pthread_t */ | ||
| 30 | #include <Availability.h> | ||
| 31 | |||
| 32 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 33 | |||
| 34 | #include <sys/qos.h> | ||
| 35 | |||
| 36 | #ifndef KERNEL | ||
| 37 | |||
| 38 | #if __has_feature(assume_nonnull) | ||
| 39 | _Pragma("clang assume_nonnull begin") | ||
| 40 | #endif | ||
| 41 | __BEGIN_DECLS | ||
| 42 | |||
| 43 | /*! | ||
| 44 | * @function pthread_attr_set_qos_class_np | ||
| 45 | * | ||
| 46 | * @abstract | ||
| 47 | * Sets the QOS class and relative priority of a pthread attribute structure | ||
| 48 | * which may be used to specify the requested QOS class of newly created | ||
| 49 | * threads. | ||
| 50 | * | ||
| 51 | * @discussion | ||
| 52 | * The QOS class and relative priority represent an overall combination of | ||
| 53 | * system quality of service attributes on a thread. | ||
| 54 | * | ||
| 55 | * Subsequent calls to interfaces such as pthread_attr_setschedparam() that are | ||
| 56 | * incompatible or in conflict with the QOS class system will unset the QOS | ||
| 57 | * class requested with this interface and pthread_attr_get_qos_class_np() will | ||
| 58 | * return QOS_CLASS_UNSPECIFIED. | ||
| 59 | * | ||
| 60 | * @param __attr | ||
| 61 | * The pthread attribute structure to modify. | ||
| 62 | * | ||
| 63 | * @param __qos_class | ||
| 64 | * A QOS class value: | ||
| 65 | *	- QOS_CLASS_USER_INTERACTIVE | ||
| 66 | *	- QOS_CLASS_USER_INITIATED | ||
| 67 | *	- QOS_CLASS_DEFAULT | ||
| 68 | *	- QOS_CLASS_UTILITY | ||
| 69 | *	- QOS_CLASS_BACKGROUND | ||
| 70 | * EINVAL will be returned if any other value is provided. | ||
| 71 | * | ||
| 72 | * @param __relative_priority | ||
| 73 | * A relative priority within the QOS class. This value is a negative offset | ||
| 74 | * from the maximum supported scheduler priority for the given class. | ||
| 75 | * EINVAL will be returned if the value is greater than zero or less than | ||
| 76 | * QOS_MIN_RELATIVE_PRIORITY. | ||
| 77 | * | ||
| 78 | * @return | ||
| 79 | * Zero if successful, otherwise an errno value. | ||
| 80 | */ | ||
| 81 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 82 | int | ||
| 83 | pthread_attr_set_qos_class_np(pthread_attr_t *__attr, | ||
| 84 | 		qos_class_t __qos_class, int __relative_priority); | ||
| 85 | |||
| 86 | /*! | ||
| 87 | * @function pthread_attr_get_qos_class_np | ||
| 88 | * | ||
| 89 | * @abstract | ||
| 90 | * Gets the QOS class and relative priority of a pthread attribute structure. | ||
| 91 | * | ||
| 92 | * @param __attr | ||
| 93 | * The pthread attribute structure to inspect. | ||
| 94 | * | ||
| 95 | * @param __qos_class | ||
| 96 | * On output, a QOS class value: | ||
| 97 | *	- QOS_CLASS_USER_INTERACTIVE | ||
| 98 | *	- QOS_CLASS_USER_INITIATED | ||
| 99 | *	- QOS_CLASS_DEFAULT | ||
| 100 | *	- QOS_CLASS_UTILITY | ||
| 101 | *	- QOS_CLASS_BACKGROUND | ||
| 102 | *	- QOS_CLASS_UNSPECIFIED | ||
| 103 | * This value may be NULL in which case no value is returned. | ||
| 104 | * | ||
| 105 | * @param __relative_priority | ||
| 106 | * On output, a relative priority offset within the QOS class. | ||
| 107 | * This value may be NULL in which case no value is returned. | ||
| 108 | * | ||
| 109 | * @return | ||
| 110 | * Zero if successful, otherwise an errno value. | ||
| 111 | */ | ||
| 112 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 113 | int | ||
| 114 | pthread_attr_get_qos_class_np(pthread_attr_t * __restrict __attr, | ||
| 115 | 		qos_class_t * _Nullable __restrict __qos_class, | ||
| 116 | 		int * _Nullable __restrict __relative_priority); | ||
| 117 | |||
| 118 | /*! | ||
| 119 | * @function pthread_set_qos_class_self_np | ||
| 120 | * | ||
| 121 | * @abstract | ||
| 122 | * Sets the requested QOS class and relative priority of the current thread. | ||
| 123 | * | ||
| 124 | * @discussion | ||
| 125 | * The QOS class and relative priority represent an overall combination of | ||
| 126 | * system quality of service attributes on a thread. | ||
| 127 | * | ||
| 128 | * Subsequent calls to interfaces such as pthread_setschedparam() that are | ||
| 129 | * incompatible or in conflict with the QOS class system will unset the QOS | ||
| 130 | * class requested with this interface and pthread_get_qos_class_np() will | ||
| 131 | * return QOS_CLASS_UNSPECIFIED thereafter. A thread so modified is permanently | ||
| 132 | * opted-out of the QOS class system and calls to this function to request a QOS | ||
| 133 | * class for such a thread will fail and return EPERM. | ||
| 134 | * | ||
| 135 | * @param __qos_class | ||
| 136 | * A QOS class value: | ||
| 137 | *	- QOS_CLASS_USER_INTERACTIVE | ||
| 138 | *	- QOS_CLASS_USER_INITIATED | ||
| 139 | *	- QOS_CLASS_DEFAULT | ||
| 140 | *	- QOS_CLASS_UTILITY | ||
| 141 | *	- QOS_CLASS_BACKGROUND | ||
| 142 | * EINVAL will be returned if any other value is provided. | ||
| 143 | * | ||
| 144 | * @param __relative_priority | ||
| 145 | * A relative priority within the QOS class. This value is a negative offset | ||
| 146 | * from the maximum supported scheduler priority for the given class. | ||
| 147 | * EINVAL will be returned if the value is greater than zero or less than | ||
| 148 | * QOS_MIN_RELATIVE_PRIORITY. | ||
| 149 | * | ||
| 150 | * @return | ||
| 151 | * Zero if successful, otherwise an errno value. | ||
| 152 | */ | ||
| 153 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 154 | int | ||
| 155 | pthread_set_qos_class_self_np(qos_class_t __qos_class, | ||
| 156 | 		int __relative_priority); | ||
| 157 | |||
| 158 | /*! | ||
| 159 | * @function pthread_get_qos_class_np | ||
| 160 | * | ||
| 161 | * @abstract | ||
| 162 | * Gets the requested QOS class and relative priority of a thread. | ||
| 163 | * | ||
| 164 | * @param __pthread | ||
| 165 | * The target thread to inspect. | ||
| 166 | * | ||
| 167 | * @param __qos_class | ||
| 168 | * On output, a QOS class value: | ||
| 169 | *	- QOS_CLASS_USER_INTERACTIVE | ||
| 170 | *	- QOS_CLASS_USER_INITIATED | ||
| 171 | *	- QOS_CLASS_DEFAULT | ||
| 172 | *	- QOS_CLASS_UTILITY | ||
| 173 | *	- QOS_CLASS_BACKGROUND | ||
| 174 | *	- QOS_CLASS_UNSPECIFIED | ||
| 175 | * This value may be NULL in which case no value is returned. | ||
| 176 | * | ||
| 177 | * @param __relative_priority | ||
| 178 | * On output, a relative priority offset within the QOS class. | ||
| 179 | * This value may be NULL in which case no value is returned. | ||
| 180 | * | ||
| 181 | * @return | ||
| 182 | * Zero if successful, otherwise an errno value. | ||
| 183 | */ | ||
| 184 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 185 | int | ||
| 186 | pthread_get_qos_class_np(pthread_t __pthread, | ||
| 187 | 		qos_class_t * _Nullable __restrict __qos_class, | ||
| 188 | 		int * _Nullable __restrict __relative_priority); | ||
| 189 | |||
| 190 | /*! | ||
| 191 | * @typedef pthread_override_t | ||
| 192 | * | ||
| 193 | * @abstract | ||
| 194 | * An opaque object representing a QOS class override of a thread. | ||
| 195 | * | ||
| 196 | * @discussion | ||
| 197 | * A QOS class override of a target thread expresses that an item of pending | ||
| 198 | * work classified with a specific QOS class and relative priority depends on | ||
| 199 | * the completion of the work currently being executed by the thread (e.g. due | ||
| 200 | * to ordering requirements). | ||
| 201 | * | ||
| 202 | * While overrides are in effect, the target thread will execute at the maximum | ||
| 203 | * QOS class and relative priority of all overrides and of the QOS class | ||
| 204 | * requested by the thread itself. | ||
| 205 | * | ||
| 206 | * A QOS class override does not modify the target thread's requested QOS class | ||
| 207 | * value and the effect of an override is not visible to the qos_class_self() | ||
| 208 | * and pthread_get_qos_class_np() interfaces. | ||
| 209 | */ | ||
| 210 | |||
| 211 | typedef struct pthread_override_s* pthread_override_t; | ||
| 212 | |||
| 213 | /*! | ||
| 214 | * @function pthread_override_qos_class_start_np | ||
| 215 | * | ||
| 216 | * @abstract | ||
| 217 | * Starts a QOS class override of the specified target thread. | ||
| 218 | * | ||
| 219 | * @discussion | ||
| 220 | * Starting a QOS class override of the specified target thread expresses that | ||
| 221 | * an item of pending work classified with the specified QOS class and relative | ||
| 222 | * priority depends on the completion of the work currently being executed by | ||
| 223 | * the thread (e.g. due to ordering requirements). | ||
| 224 | * | ||
| 225 | * While overrides are in effect, the specified target thread will execute at | ||
| 226 | * the maximum QOS class and relative priority of all overrides and of the QOS | ||
| 227 | * class requested by the thread itself. | ||
| 228 | * | ||
| 229 | * Starting a QOS class override does not modify the target thread's requested | ||
| 230 | * QOS class value and the effect of an override is not visible to the | ||
| 231 | * qos_class_self() and pthread_get_qos_class_np() interfaces. | ||
| 232 | * | ||
| 233 | * The returned newly allocated override object is intended to be associated | ||
| 234 | * with the item of pending work in question. Once the dependency has been | ||
| 235 | * satisfied and enabled that work to begin executing, the QOS class override | ||
| 236 | * must be ended by passing the associated override object to | ||
| 237 | * pthread_override_qos_class_end_np(). Failure to do so will result in the | ||
| 238 | * associated resources to be leaked and the target thread to be permanently | ||
| 239 | * executed at an inappropriately elevated QOS class. | ||
| 240 | * | ||
| 241 | * @param __pthread | ||
| 242 | * The target thread to modify. | ||
| 243 | * | ||
| 244 | * @param __qos_class | ||
| 245 | * A QOS class value: | ||
| 246 | *	- QOS_CLASS_USER_INTERACTIVE | ||
| 247 | *	- QOS_CLASS_USER_INITIATED | ||
| 248 | *	- QOS_CLASS_DEFAULT | ||
| 249 | *	- QOS_CLASS_UTILITY | ||
| 250 | *	- QOS_CLASS_BACKGROUND | ||
| 251 | * NULL will be returned if any other value is provided. | ||
| 252 | * | ||
| 253 | * @param __relative_priority | ||
| 254 | * A relative priority within the QOS class. This value is a negative offset | ||
| 255 | * from the maximum supported scheduler priority for the given class. | ||
| 256 | * NULL will be returned if the value is greater than zero or less than | ||
| 257 | * QOS_MIN_RELATIVE_PRIORITY. | ||
| 258 | * | ||
| 259 | * @return | ||
| 260 | * A newly allocated override object if successful, or NULL if the override | ||
| 261 | * could not be started. | ||
| 262 | */ | ||
| 263 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 264 | pthread_override_t | ||
| 265 | pthread_override_qos_class_start_np(pthread_t __pthread, | ||
| 266 | 		qos_class_t __qos_class, int __relative_priority); | ||
| 267 | |||
| 268 | /*! | ||
| 269 | * @function pthread_override_qos_class_end_np | ||
| 270 | * | ||
| 271 | * @abstract | ||
| 272 | * Ends a QOS class override. | ||
| 273 | * | ||
| 274 | * @discussion | ||
| 275 | * Passing an override object returned by pthread_override_qos_class_start_np() | ||
| 276 | * ends the QOS class override started by that call and deallocates all | ||
| 277 | * associated resources as well as the override object itself. | ||
| 278 | * | ||
| 279 | * The thread starting and the thread ending a QOS class override need not be | ||
| 280 | * identical. If the thread ending the override is the the target thread of the | ||
| 281 | * override itself, it should take care to elevate its requested QOS class | ||
| 282 | * appropriately with pthread_set_qos_class_self_np() before ending the | ||
| 283 | * override. | ||
| 284 | * | ||
| 285 | * @param __override | ||
| 286 | * An override object returned by pthread_override_qos_class_start_np(). | ||
| 287 | * | ||
| 288 | * @return | ||
| 289 | * Zero if successful, otherwise an errno value. | ||
| 290 | */ | ||
| 291 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 292 | int | ||
| 293 | pthread_override_qos_class_end_np(pthread_override_t __override); | ||
| 294 | |||
| 295 | __END_DECLS | ||
| 296 | #if __has_feature(assume_nonnull) | ||
| 297 | _Pragma("clang assume_nonnull end") | ||
| 298 | #endif | ||
| 299 | |||
| 300 | #endif // KERNEL | ||
| 301 | |||
| 302 | #endif // __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 303 | |||
| 304 | #endif // _PTHREAD_QOS_H | ||
lib/libc/include/x86_64-macos-gnu/pthread/sched.h created+44| ... | @@ -0,0 +1,44 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _SCHED_H_ | ||
| 25 | #define _SCHED_H_ | ||
| 26 | |||
| 27 | #include <sys/cdefs.h> | ||
| 28 | #include <pthread_impl.h> | ||
| 29 | |||
| 30 | __BEGIN_DECLS | ||
| 31 | /* | ||
| 32 | * Scheduling paramters | ||
| 33 | */ | ||
| 34 | #ifndef __POSIX_LIB__ | ||
| 35 | struct sched_param { int sched_priority; char __opaque[__SCHED_PARAM_SIZE__]; }; | ||
| 36 | #endif | ||
| 37 | |||
| 38 | extern int sched_yield(void); | ||
| 39 | extern int sched_get_priority_min(int); | ||
| 40 | extern int sched_get_priority_max(int); | ||
| 41 | __END_DECLS | ||
| 42 | |||
| 43 | #endif /* _SCHED_H_ */ | ||
| 44 | |||
lib/libc/include/x86_64-macos-gnu/pthread_impl.h created+66| ... | @@ -0,0 +1,66 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _PTHREAD_IMPL_H_ | ||
| 25 | #define _PTHREAD_IMPL_H_ | ||
| 26 | /* | ||
| 27 | * Internal implementation details | ||
| 28 | */ | ||
| 29 | |||
| 30 | /* This whole header file will disappear, so don't depend on it... */ | ||
| 31 | |||
| 32 | #if __has_feature(assume_nonnull) | ||
| 33 | _Pragma("clang assume_nonnull begin") | ||
| 34 | #endif | ||
| 35 | |||
| 36 | #ifndef __POSIX_LIB__ | ||
| 37 | |||
| 38 | /* | ||
| 39 | * [Internal] data structure signatures | ||
| 40 | */ | ||
| 41 | #define _PTHREAD_MUTEX_SIG_init		0x32AAABA7 | ||
| 42 | |||
| 43 | #define _PTHREAD_ERRORCHECK_MUTEX_SIG_init 0x32AAABA1 | ||
| 44 | #define _PTHREAD_RECURSIVE_MUTEX_SIG_init 0x32AAABA2 | ||
| 45 | #define _PTHREAD_FIRSTFIT_MUTEX_SIG_init 0x32AAABA3 | ||
| 46 | |||
| 47 | #define _PTHREAD_COND_SIG_init		0x3CB0B1BB | ||
| 48 | #define _PTHREAD_ONCE_SIG_init		0x30B1BCBA | ||
| 49 | #define _PTHREAD_RWLOCK_SIG_init 0x2DA8B3B4 | ||
| 50 | |||
| 51 | /* | ||
| 52 | * POSIX scheduling policies | ||
| 53 | */ | ||
| 54 | #define SCHED_OTHER 1 | ||
| 55 | #define SCHED_FIFO 4 | ||
| 56 | #define SCHED_RR 2 | ||
| 57 | |||
| 58 | #define __SCHED_PARAM_SIZE__ 4 | ||
| 59 | |||
| 60 | #endif /* __POSIX_LIB__ */ | ||
| 61 | |||
| 62 | #if __has_feature(assume_nonnull) | ||
| 63 | _Pragma("clang assume_nonnull end") | ||
| 64 | #endif | ||
| 65 | |||
| 66 | #endif /* _PTHREAD_IMPL_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/pwd.h created+119| ... | @@ -0,0 +1,119 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 1989, 1993 | ||
| 3 | *	The Regents of the University of California. All rights reserved. | ||
| 4 | * (c) UNIX System Laboratories, Inc. | ||
| 5 | * All or some portions of this file are derived from material licensed | ||
| 6 | * to the University of California by American Telephone and Telegraph | ||
| 7 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 8 | * the permission of UNIX System Laboratories, Inc. | ||
| 9 | * Portions Copyright(C) 1995, Jason Downs. All rights reserved. | ||
| 10 | * | ||
| 11 | * Redistribution and use in source and binary forms, with or without | ||
| 12 | * modification, are permitted provided that the following conditions | ||
| 13 | * are met: | ||
| 14 | * 1. Redistributions of source code must retain the above copyright | ||
| 15 | * notice, this list of conditions and the following disclaimer. | ||
| 16 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 17 | * notice, this list of conditions and the following disclaimer in the | ||
| 18 | * documentation and/or other materials provided with the distribution. | ||
| 19 | * 3. All advertising materials mentioning features or use of this software | ||
| 20 | * must display the following acknowledgement: | ||
| 21 | *	This product includes software developed by the University of | ||
| 22 | *	California, Berkeley and its contributors. | ||
| 23 | * 4. Neither the name of the University nor the names of its contributors | ||
| 24 | * may be used to endorse or promote products derived from this software | ||
| 25 | * without specific prior written permission. | ||
| 26 | * | ||
| 27 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 28 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 29 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 30 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 31 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 32 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 33 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 34 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 35 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 36 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 37 | * SUCH DAMAGE. | ||
| 38 | * | ||
| 39 | *	@(#)pwd.h	8.2 (Berkeley) 1/21/94 | ||
| 40 | */ | ||
| 41 | /* Portions copyright (c) 2000-2011 Apple Inc. All rights reserved. */ | ||
| 42 | |||
| 43 | #ifndef _PWD_H_ | ||
| 44 | #define	_PWD_H_ | ||
| 45 | |||
| 46 | #include <_types.h> | ||
| 47 | #include <sys/_types/_gid_t.h> | ||
| 48 | #include <sys/_types/_size_t.h> | ||
| 49 | #include <sys/_types/_uid_t.h> | ||
| 50 | |||
| 51 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 52 | #define	_PATH_PWD		"/etc" | ||
| 53 | #define	_PATH_PASSWD		"/etc/passwd" | ||
| 54 | #define	_PASSWD			"passwd" | ||
| 55 | #define	_PATH_MASTERPASSWD	"/etc/master.passwd" | ||
| 56 | #define	_PATH_MASTERPASSWD_LOCK	"/etc/ptmp" | ||
| 57 | #define	_MASTERPASSWD		"master.passwd" | ||
| 58 | |||
| 59 | #define	_PATH_MP_DB		"/etc/pwd.db" | ||
| 60 | #define	_MP_DB			"pwd.db" | ||
| 61 | #define	_PATH_SMP_DB		"/etc/spwd.db" | ||
| 62 | #define	_SMP_DB			"spwd.db" | ||
| 63 | |||
| 64 | #define	_PATH_PWD_MKDB		"/usr/sbin/pwd_mkdb" | ||
| 65 | |||
| 66 | #define	_PW_KEYBYNAME		'1'	/* stored by name */ | ||
| 67 | #define	_PW_KEYBYNUM		'2'	/* stored by entry in the "file" */ | ||
| 68 | #define	_PW_KEYBYUID		'3'	/* stored by uid */ | ||
| 69 | |||
| 70 | #define	_PASSWORD_EFMT1		'_'	/* extended encryption format */ | ||
| 71 | |||
| 72 | #define	_PASSWORD_LEN		128	/* max length, not counting NULL */ | ||
| 73 | |||
| 74 | #define _PASSWORD_NOUID		0x01	/* flag for no specified uid. */ | ||
| 75 | #define _PASSWORD_NOGID		0x02	/* flag for no specified gid. */ | ||
| 76 | #define _PASSWORD_NOCHG		0x04	/* flag for no specified change. */ | ||
| 77 | #define _PASSWORD_NOEXP		0x08	/* flag for no specified expire. */ | ||
| 78 | |||
| 79 | #define _PASSWORD_WARNDAYS	14	/* days to warn about expiry */ | ||
| 80 | #define _PASSWORD_CHGNOW	-1	/* special day to force password | ||
| 81 | 					 * change at next login */ | ||
| 82 | #endif | ||
| 83 | |||
| 84 | struct passwd { | ||
| 85 | 	char	*pw_name;		/* user name */ | ||
| 86 | 	char	*pw_passwd;		/* encrypted password */ | ||
| 87 | 	uid_t	pw_uid;			/* user uid */ | ||
| 88 | 	gid_t	pw_gid;			/* user gid */ | ||
| 89 | 	__darwin_time_t pw_change;		/* password change time */ | ||
| 90 | 	char	*pw_class;		/* user access class */ | ||
| 91 | 	char	*pw_gecos;		/* Honeywell login info */ | ||
| 92 | 	char	*pw_dir;		/* home directory */ | ||
| 93 | 	char	*pw_shell;		/* default shell */ | ||
| 94 | 	__darwin_time_t pw_expire;		/* account expiration */ | ||
| 95 | }; | ||
| 96 | |||
| 97 | #include <sys/cdefs.h> | ||
| 98 | |||
| 99 | __BEGIN_DECLS | ||
| 100 | struct passwd	*getpwuid(uid_t); | ||
| 101 | struct passwd	*getpwnam(const char *); | ||
| 102 | int		 getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **); | ||
| 103 | int		 getpwnam_r(const char *, struct passwd *, char *, size_t, struct passwd **); | ||
| 104 | struct passwd	*getpwent(void); | ||
| 105 | void		 setpwent(void); | ||
| 106 | void		 endpwent(void); | ||
| 107 | __END_DECLS | ||
| 108 | |||
| 109 | #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) | ||
| 110 | #include <uuid/uuid.h> | ||
| 111 | __BEGIN_DECLS | ||
| 112 | int		 setpassent(int); | ||
| 113 | char 		*user_from_uid(uid_t, int); | ||
| 114 | struct passwd	*getpwuuid(uuid_t); | ||
| 115 | int		 getpwuuid_r(uuid_t, struct passwd *, char *, size_t, struct passwd **); | ||
| 116 | __END_DECLS | ||
| 117 | #endif | ||
| 118 | |||
| 119 | #endif /* !_PWD_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/regex.h created+217| ... | @@ -0,0 +1,217 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000, 2011 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /* | ||
| 24 | * Copyright (c) 2001-2009 Ville Laurikari <vl@iki.fi> | ||
| 25 | * All rights reserved. | ||
| 26 | * | ||
| 27 | * Redistribution and use in source and binary forms, with or without | ||
| 28 | * modification, are permitted provided that the following conditions | ||
| 29 | * are met: | ||
| 30 | * | ||
| 31 | * 1. Redistributions of source code must retain the above copyright | ||
| 32 | * notice, this list of conditions and the following disclaimer. | ||
| 33 | * | ||
| 34 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 35 | * notice, this list of conditions and the following disclaimer in the | ||
| 36 | * documentation and/or other materials provided with the distribution. | ||
| 37 | * | ||
| 38 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS | ||
| 39 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 40 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 41 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 42 | * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 43 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 44 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 45 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 46 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 47 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 48 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 49 | */ | ||
| 50 | /*- | ||
| 51 | * Copyright (c) 1992 Henry Spencer. | ||
| 52 | * Copyright (c) 1992, 1993 | ||
| 53 | *	The Regents of the University of California. All rights reserved. | ||
| 54 | * | ||
| 55 | * This code is derived from software contributed to Berkeley by | ||
| 56 | * Henry Spencer of the University of Toronto. | ||
| 57 | * | ||
| 58 | * Redistribution and use in source and binary forms, with or without | ||
| 59 | * modification, are permitted provided that the following conditions | ||
| 60 | * are met: | ||
| 61 | * 1. Redistributions of source code must retain the above copyright | ||
| 62 | * notice, this list of conditions and the following disclaimer. | ||
| 63 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 64 | * notice, this list of conditions and the following disclaimer in the | ||
| 65 | * documentation and/or other materials provided with the distribution. | ||
| 66 | * 3. All advertising materials mentioning features or use of this software | ||
| 67 | * must display the following acknowledgement: | ||
| 68 | *	This product includes software developed by the University of | ||
| 69 | *	California, Berkeley and its contributors. | ||
| 70 | * 4. Neither the name of the University nor the names of its contributors | ||
| 71 | * may be used to endorse or promote products derived from this software | ||
| 72 | * without specific prior written permission. | ||
| 73 | * | ||
| 74 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 75 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 76 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 77 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 78 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 79 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 80 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 81 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 82 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 83 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 84 | * SUCH DAMAGE. | ||
| 85 | * | ||
| 86 | *	@(#)regex.h	8.2 (Berkeley) 1/3/94 | ||
| 87 | */ | ||
| 88 | |||
| 89 | #ifndef _REGEX_H_ | ||
| 90 | #define	_REGEX_H_ | ||
| 91 | |||
| 92 | #include <_regex.h> | ||
| 93 | |||
| 94 | /*******************/ | ||
| 95 | /* regcomp() flags */ | ||
| 96 | /*******************/ | ||
| 97 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 98 | #define	REG_BASIC	0000	/* Basic regular expressions (synonym for 0) */ | ||
| 99 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 100 | |||
| 101 | #define	REG_EXTENDED	0001	/* Extended regular expressions */ | ||
| 102 | #define	REG_ICASE	0002	/* Compile ignoring upper/lower case */ | ||
| 103 | #define	REG_NOSUB	0004	/* Compile only reporting success/failure */ | ||
| 104 | #define	REG_NEWLINE	0010	/* Compile for newline-sensitive matching */ | ||
| 105 | |||
| 106 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 107 | #define	REG_NOSPEC	0020	/* Compile turning off all special characters */ | ||
| 108 | |||
| 109 | #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8 \ | ||
| 110 | || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \ | ||
| 111 | || defined(__DRIVERKIT_VERSION_MIN_REQUIRED) | ||
| 112 | #define	REG_LITERAL	REG_NOSPEC | ||
| 113 | #endif | ||
| 114 | |||
| 115 | #define	REG_PEND	0040	/* Use re_endp as end pointer */ | ||
| 116 | |||
| 117 | #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8 \ | ||
| 118 | || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \ | ||
| 119 | || defined(__DRIVERKIT_VERSION_MIN_REQUIRED) | ||
| 120 | #define	REG_MINIMAL	0100	/* Compile using minimal repetition */ | ||
| 121 | #define	REG_UNGREEDY	REG_MINIMAL | ||
| 122 | #endif | ||
| 123 | |||
| 124 | #define	REG_DUMP	0200	/* Unused */ | ||
| 125 | |||
| 126 | #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8 \ | ||
| 127 | || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \ | ||
| 128 | || defined(__DRIVERKIT_VERSION_MIN_REQUIRED) | ||
| 129 | #define	REG_ENHANCED	0400	/* Additional (non-POSIX) features */ | ||
| 130 | #endif | ||
| 131 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 132 | |||
| 133 | /********************/ | ||
| 134 | /* regerror() flags */ | ||
| 135 | /********************/ | ||
| 136 | #define	REG_ENOSYS	 (-1)	/* Reserved */ | ||
| 137 | #define	REG_NOMATCH	 1	/* regexec() function failed to match */ | ||
| 138 | #define	REG_BADPAT	 2	/* invalid regular expression */ | ||
| 139 | #define	REG_ECOLLATE	 3	/* invalid collating element */ | ||
| 140 | #define	REG_ECTYPE	 4	/* invalid character class */ | ||
| 141 | #define	REG_EESCAPE	 5	/* trailing backslash (\) */ | ||
| 142 | #define	REG_ESUBREG	 6	/* invalid backreference number */ | ||
| 143 | #define	REG_EBRACK	 7	/* brackets ([ ]) not balanced */ | ||
| 144 | #define	REG_EPAREN	 8	/* parentheses not balanced */ | ||
| 145 | #define	REG_EBRACE	 9	/* braces not balanced */ | ||
| 146 | #define	REG_BADBR	10	/* invalid repetition count(s) */ | ||
| 147 | #define	REG_ERANGE	11	/* invalid character range */ | ||
| 148 | #define	REG_ESPACE	12	/* out of memory */ | ||
| 149 | #define	REG_BADRPT	13	/* repetition-operator operand invalid */ | ||
| 150 | |||
| 151 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 152 | #define	REG_EMPTY	14	/* Unused */ | ||
| 153 | #define	REG_ASSERT	15	/* Unused */ | ||
| 154 | #define	REG_INVARG	16	/* invalid argument to regex routine */ | ||
| 155 | #define	REG_ILLSEQ	17	/* illegal byte sequence */ | ||
| 156 | |||
| 157 | #define	REG_ATOI	255	/* convert name to number (!) */ | ||
| 158 | #define	REG_ITOA	0400	/* convert number to name (!) */ | ||
| 159 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 160 | |||
| 161 | /*******************/ | ||
| 162 | /* regexec() flags */ | ||
| 163 | /*******************/ | ||
| 164 | #define	REG_NOTBOL	00001	/* First character not at beginning of line */ | ||
| 165 | #define	REG_NOTEOL	00002	/* Last character not at end of line */ | ||
| 166 | |||
| 167 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 168 | #define	REG_STARTEND	00004	/* String start/end in pmatch[0] */ | ||
| 169 | #define	REG_TRACE	00400	/* Unused */ | ||
| 170 | #define	REG_LARGE	01000	/* Unused */ | ||
| 171 | #define	REG_BACKR	02000	/* force use of backref code */ | ||
| 172 | |||
| 173 | #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8 \ | ||
| 174 | || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0 \ | ||
| 175 | || defined(__DRIVERKIT_VERSION_MIN_REQUIRED) | ||
| 176 | #define	REG_BACKTRACKING_MATCHER	REG_BACKR | ||
| 177 | #endif | ||
| 178 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 179 | |||
| 180 | __BEGIN_DECLS | ||
| 181 | int	regcomp(regex_t * __restrict, const char * __restrict, int) __DARWIN_ALIAS(regcomp); | ||
| 182 | size_t	regerror(int, const regex_t * __restrict, char * __restrict, size_t) __cold; | ||
| 183 | /* | ||
| 184 | * gcc under c99 mode won't compile "[ __restrict]" by itself. As a workaround, | ||
| 185 | * a dummy argument name is added. | ||
| 186 | */ | ||
| 187 | int	regexec(const regex_t * __restrict, const char * __restrict, size_t, | ||
| 188 | 	 regmatch_t __pmatch[ __restrict], int); | ||
| 189 | void	regfree(regex_t *); | ||
| 190 | |||
| 191 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 192 | |||
| 193 | /* Darwin extensions */ | ||
| 194 | int	regncomp(regex_t * __restrict, const char * __restrict, size_t, int) | ||
| 195 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 196 | int	regnexec(const regex_t * __restrict, const char * __restrict, size_t, | ||
| 197 | 	 size_t, regmatch_t __pmatch[ __restrict], int) | ||
| 198 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 199 | int	regwcomp(regex_t * __restrict, const wchar_t * __restrict, int) | ||
| 200 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 201 | int	regwexec(const regex_t * __restrict, const wchar_t * __restrict, size_t, | ||
| 202 | 	 regmatch_t __pmatch[ __restrict], int) | ||
| 203 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 204 | int	regwncomp(regex_t * __restrict, const wchar_t * __restrict, size_t, int) | ||
| 205 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 206 | int	regwnexec(const regex_t * __restrict, const wchar_t * __restrict, | ||
| 207 | 	 size_t, size_t, regmatch_t __pmatch[ __restrict], int) | ||
| 208 | 	 __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 209 | |||
| 210 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 211 | __END_DECLS | ||
| 212 | |||
| 213 | #ifdef _USE_EXTENDED_LOCALES_ | ||
| 214 | #include <xlocale/_regex.h> | ||
| 215 | #endif /* _USE_EXTENDED_LOCALES_ */ | ||
| 216 | |||
| 217 | #endif /* !_REGEX_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sched.h created+44| ... | @@ -0,0 +1,44 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _SCHED_H_ | ||
| 25 | #define _SCHED_H_ | ||
| 26 | |||
| 27 | #include <sys/cdefs.h> | ||
| 28 | #include <pthread_impl.h> | ||
| 29 | |||
| 30 | __BEGIN_DECLS | ||
| 31 | /* | ||
| 32 | * Scheduling paramters | ||
| 33 | */ | ||
| 34 | #ifndef __POSIX_LIB__ | ||
| 35 | struct sched_param { int sched_priority; char __opaque[__SCHED_PARAM_SIZE__]; }; | ||
| 36 | #endif | ||
| 37 | |||
| 38 | extern int sched_yield(void); | ||
| 39 | extern int sched_get_priority_min(int); | ||
| 40 | extern int sched_get_priority_max(int); | ||
| 41 | __END_DECLS | ||
| 42 | |||
| 43 | #endif /* _SCHED_H_ */ | ||
| 44 | |||
lib/libc/include/x86_64-macos-gnu/search.h created+62| ... | @@ -0,0 +1,62 @@ | ||
| 1 | /*- | ||
| 2 | * Written by J.T. Conklin <jtc@netbsd.org> | ||
| 3 | * Public domain. | ||
| 4 | * | ||
| 5 | *	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ | ||
| 6 | * $FreeBSD: src/include/search.h,v 1.10 2002/10/16 14:29:23 robert Exp $ | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef _SEARCH_H_ | ||
| 10 | #define _SEARCH_H_ | ||
| 11 | |||
| 12 | #include <sys/cdefs.h> | ||
| 13 | #include <_types.h> | ||
| 14 | #include <sys/_types/_size_t.h> | ||
| 15 | |||
| 16 | typedef	struct entry { | ||
| 17 | 	char	*key; | ||
| 18 | 	void	*data; | ||
| 19 | } ENTRY; | ||
| 20 | |||
| 21 | typedef	enum { | ||
| 22 | 	FIND, ENTER | ||
| 23 | } ACTION; | ||
| 24 | |||
| 25 | typedef	enum { | ||
| 26 | 	preorder, | ||
| 27 | 	postorder, | ||
| 28 | 	endorder, | ||
| 29 | 	leaf | ||
| 30 | } VISIT; | ||
| 31 | |||
| 32 | #ifdef _SEARCH_PRIVATE | ||
| 33 | typedef	struct node { | ||
| 34 | 	char *key; | ||
| 35 | 	struct node *llink, *rlink; | ||
| 36 | } node_t; | ||
| 37 | |||
| 38 | struct que_elem { | ||
| 39 | 	struct que_elem *next; | ||
| 40 | 	struct que_elem *prev; | ||
| 41 | }; | ||
| 42 | #endif | ||
| 43 | |||
| 44 | __BEGIN_DECLS | ||
| 45 | int	 hcreate(size_t); | ||
| 46 | void	 hdestroy(void); | ||
| 47 | ENTRY	*hsearch(ENTRY, ACTION); | ||
| 48 | void	 insque(void *, void *); | ||
| 49 | void	*lfind(const void *, const void *, size_t *, size_t, | ||
| 50 | 	 int (*)(const void *, const void *)); | ||
| 51 | void	*lsearch(const void *, void *, size_t *, size_t, | ||
| 52 | 	 int (*)(const void *, const void *)); | ||
| 53 | void	 remque(void *); | ||
| 54 | void	*tdelete(const void * __restrict, void ** __restrict, | ||
| 55 | 	 int (*)(const void *, const void *)); | ||
| 56 | void	*tfind(const void *, void * const *, | ||
| 57 | 	 int (*)(const void *, const void *)); | ||
| 58 | void	*tsearch(const void *, void **, int (*)(const void *, const void *)); | ||
| 59 | void	 twalk(const void *, void (*)(const void *, VISIT, int)); | ||
| 60 | __END_DECLS | ||
| 61 | |||
| 62 | #endif /* !_SEARCH_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/semaphore.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | #ifndef _BSD_SEMAPHORE_H | ||
| 24 | #define _BSD_SEMAPHORE_H | ||
| 25 | |||
| 26 | #include <sys/types.h> | ||
| 27 | #include <sys/fcntl.h> | ||
| 28 | |||
| 29 | #include <sys/semaphore.h> | ||
| 30 | |||
| 31 | #endif /* _BSD_SEMAPHORE_H */ | ||
lib/libc/include/x86_64-macos-gnu/spawn.h created+165| ... | @@ -0,0 +1,165 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2006, 2010 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | |||
| 25 | #ifndef _SPAWN_H_ | ||
| 26 | #define _SPAWN_H_ | ||
| 27 | |||
| 28 | /* | ||
| 29 | * [SPN] Support for _POSIX_SPAWN | ||
| 30 | */ | ||
| 31 | |||
| 32 | #include <sys/cdefs.h> | ||
| 33 | #include <_types.h> | ||
| 34 | #include <sys/spawn.h> /* shared types */ | ||
| 35 | |||
| 36 | #include <Availability.h> | ||
| 37 | |||
| 38 | /* | ||
| 39 | * [SPN] Inclusion of the <spawn.h> header may make visible symbols defined | ||
| 40 | * in the <sched.h>, <signal.h>, and <sys/types.h> headers. | ||
| 41 | */ | ||
| 42 | #include <sys/_types/_pid_t.h> | ||
| 43 | #include <sys/_types/_sigset_t.h> | ||
| 44 | #include <sys/_types/_mode_t.h> | ||
| 45 | |||
| 46 | /* | ||
| 47 | * Opaque types for use with posix_spawn() family functions. Internals are | ||
| 48 | * not defined, and should not be accessed directly. Types are defined as | ||
| 49 | * mandated by POSIX. | ||
| 50 | */ | ||
| 51 | typedef void *posix_spawnattr_t; | ||
| 52 | typedef void *posix_spawn_file_actions_t; | ||
| 53 | |||
| 54 | __BEGIN_DECLS | ||
| 55 | /* | ||
| 56 | * gcc under c99 mode won't compile "[ __restrict]" by itself. As a workaround, | ||
| 57 | * a dummy argument name is added. | ||
| 58 | */ | ||
| 59 | |||
| 60 | int posix_spawn(pid_t * __restrict, const char * __restrict, | ||
| 61 | const posix_spawn_file_actions_t *, | ||
| 62 | const posix_spawnattr_t * __restrict, | ||
| 63 | char *const __argv[__restrict], | ||
| 64 | char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 65 | |||
| 66 | int posix_spawnp(pid_t * __restrict, const char * __restrict, | ||
| 67 | const posix_spawn_file_actions_t *, | ||
| 68 | const posix_spawnattr_t * __restrict, | ||
| 69 | char *const __argv[__restrict], | ||
| 70 | char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)); | ||
| 71 | |||
| 72 | int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 73 | |||
| 74 | int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, | ||
| 75 | int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 76 | |||
| 77 | int posix_spawn_file_actions_addopen( | ||
| 78 | 	posix_spawn_file_actions_t * __restrict, int, | ||
| 79 | 	const char * __restrict, int, mode_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 80 | |||
| 81 | int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 82 | |||
| 83 | int posix_spawn_file_actions_init(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 84 | |||
| 85 | int posix_spawnattr_destroy(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 86 | |||
| 87 | int posix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict, | ||
| 88 | sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 89 | |||
| 90 | int posix_spawnattr_getflags(const posix_spawnattr_t * __restrict, | ||
| 91 | short * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 92 | |||
| 93 | int posix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict, | ||
| 94 | pid_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 95 | |||
| 96 | int posix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict, | ||
| 97 | sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 98 | |||
| 99 | int posix_spawnattr_init(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 100 | |||
| 101 | int posix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict, | ||
| 102 | const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 103 | |||
| 104 | int posix_spawnattr_setflags(posix_spawnattr_t *, short) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 105 | |||
| 106 | int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 107 | |||
| 108 | int posix_spawnattr_setsigmask(posix_spawnattr_t * __restrict, | ||
| 109 | const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 110 | |||
| 111 | #if 0 /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */ | ||
| 112 | int posix_spawnattr_setschedparam(posix_spawnattr_t * __restrict, | ||
| 113 | const struct sched_param * __restrict); | ||
| 114 | int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int); | ||
| 115 | int posix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict, | ||
| 116 | struct sched_param * __restrict); | ||
| 117 | int posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict, | ||
| 118 | int * __restrict); | ||
| 119 | #endif /* 0 */ | ||
| 120 | |||
| 121 | __END_DECLS | ||
| 122 | |||
| 123 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 124 | /* | ||
| 125 | * Darwin-specific extensions below | ||
| 126 | */ | ||
| 127 | #include <mach/exception_types.h> | ||
| 128 | #include <mach/machine.h> | ||
| 129 | #include <mach/port.h> | ||
| 130 | |||
| 131 | #include <sys/_types/_size_t.h> | ||
| 132 | |||
| 133 | __BEGIN_DECLS | ||
| 134 | |||
| 135 | int posix_spawnattr_getbinpref_np(const posix_spawnattr_t * __restrict, | ||
| 136 | size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 137 | |||
| 138 | int posix_spawnattr_setauditsessionport_np(posix_spawnattr_t * __restrict, | ||
| 139 | mach_port_t) __API_AVAILABLE(macos(10.6), ios(3.2)); | ||
| 140 | |||
| 141 | int posix_spawnattr_setbinpref_np(posix_spawnattr_t * __restrict, | ||
| 142 | size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 143 | |||
| 144 | int posix_spawnattr_setexceptionports_np(posix_spawnattr_t * __restrict, | ||
| 145 | exception_mask_t, mach_port_t, | ||
| 146 | exception_behavior_t, thread_state_flavor_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 147 | |||
| 148 | int posix_spawnattr_setspecialport_np(posix_spawnattr_t * __restrict, | ||
| 149 | mach_port_t, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); | ||
| 150 | |||
| 151 | int posix_spawnattr_setsuidcredport_np(posix_spawnattr_t * __restrict, mach_port_t) __API_UNAVAILABLE(ios, macos); | ||
| 152 | |||
| 153 | int posix_spawn_file_actions_addinherit_np(posix_spawn_file_actions_t *, | ||
| 154 | int) __API_AVAILABLE(macos(10.7), ios(4.3)) __API_UNAVAILABLE(watchos, tvos); | ||
| 155 | |||
| 156 | int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *, | ||
| 157 | const char * __restrict) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos); | ||
| 158 | |||
| 159 | int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, | ||
| 160 | int) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos); | ||
| 161 | |||
| 162 | __END_DECLS | ||
| 163 | |||
| 164 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 165 | #endif /* _SPAWN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_cond_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_COND_T | ||
| 29 | #define _PTHREAD_COND_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_cond_t */ | ||
| 31 | typedef __darwin_pthread_cond_t pthread_cond_t; | ||
| 32 | #endif /* _PTHREAD_COND_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_condattr_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_CONDATTR_T | ||
| 29 | #define _PTHREAD_CONDATTR_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_condattr_t */ | ||
| 31 | typedef __darwin_pthread_condattr_t pthread_condattr_t; | ||
| 32 | #endif /* _PTHREAD_CONDATTR_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_key_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_KEY_T | ||
| 29 | #define _PTHREAD_KEY_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_key_t */ | ||
| 31 | typedef __darwin_pthread_key_t pthread_key_t; | ||
| 32 | #endif /* _PTHREAD_KEY_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_mutex_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_MUTEX_T | ||
| 29 | #define _PTHREAD_MUTEX_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutex_t */ | ||
| 31 | typedef __darwin_pthread_mutex_t pthread_mutex_t; | ||
| 32 | #endif /*_PTHREAD_MUTEX_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_mutexattr_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_MUTEXATTR_T | ||
| 29 | #define _PTHREAD_MUTEXATTR_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_mutexattr_t */ | ||
| 31 | typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t; | ||
| 32 | #endif /* _PTHREAD_MUTEXATTR_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_once_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_ONCE_T | ||
| 29 | #define _PTHREAD_ONCE_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_once_t */ | ||
| 31 | typedef __darwin_pthread_once_t pthread_once_t; | ||
| 32 | #endif /* _PTHREAD_ONCE_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_rwlock_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_RWLOCK_T | ||
| 29 | #define _PTHREAD_RWLOCK_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlock_t */ | ||
| 31 | typedef __darwin_pthread_rwlock_t pthread_rwlock_t; | ||
| 32 | #endif /* _PTHREAD_RWLOCK_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_pthread/_pthread_rwlockattr_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _PTHREAD_RWLOCKATTR_T | ||
| 29 | #define _PTHREAD_RWLOCKATTR_T | ||
| 30 | #include <sys/_pthread/_pthread_types.h> /* __darwin_pthread_rwlockattr_t */ | ||
| 31 | typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t; | ||
| 32 | #endif /* _PTHREAD_RWLOCKATTR_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_select.h created+52| ... | @@ -0,0 +1,52 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2005, 2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | /* | ||
| 30 | * This is called from sys/select.h and sys/time.h for the common prototype | ||
| 31 | * of select(). Setting _DARWIN_C_SOURCE or _DARWIN_UNLIMITED_SELECT uses | ||
| 32 | * the version of select() that does not place a limit on the first argument | ||
| 33 | * (nfds). In the UNIX conformance case, values of nfds greater than | ||
| 34 | * FD_SETSIZE will return an error of EINVAL. | ||
| 35 | */ | ||
| 36 | #ifndef _SYS__SELECT_H_ | ||
| 37 | #define _SYS__SELECT_H_ | ||
| 38 | |||
| 39 | int select(int, fd_set * __restrict, fd_set * __restrict, | ||
| 40 | fd_set * __restrict, struct timeval * __restrict) | ||
| 41 | #if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT) | ||
| 42 | __DARWIN_EXTSN_C(select) | ||
| 43 | #else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */ | ||
| 44 | # if defined(__LP64__) && !__DARWIN_NON_CANCELABLE | ||
| 45 | __DARWIN_1050(select) | ||
| 46 | # else /* !__LP64__ || __DARWIN_NON_CANCELABLE */ | ||
| 47 | __DARWIN_ALIAS_C(select) | ||
| 48 | # endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */ | ||
| 49 | #endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */ | ||
| 50 | ; | ||
| 51 | |||
| 52 | #endif /* !_SYS__SELECT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_blkcnt_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _BLKCNT_T | ||
| 29 | #define _BLKCNT_T | ||
| 30 | #include <sys/_types.h> /* __darwin_blkcnt_t */ | ||
| 31 | typedef __darwin_blkcnt_t blkcnt_t; | ||
| 32 | #endif /* _BLKCNT_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_blksize_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _BLKSIZE_T | ||
| 29 | #define _BLKSIZE_T | ||
| 30 | #include <sys/_types.h> /* __darwin_blksize_t */ | ||
| 31 | typedef __darwin_blksize_t blksize_t; | ||
| 32 | #endif /* _BLKSIZE_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_caddr_t.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2017 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _CADDR_T | ||
| 29 | #define _CADDR_T | ||
| 30 | typedef char * caddr_t; | ||
| 31 | #endif /* _CADDR_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_clr.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_CLR | ||
| 29 | #define FD_CLR(n, p) __DARWIN_FD_CLR(n, p) | ||
| 30 | #endif /* FD_CLR */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_copy.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_COPY | ||
| 29 | #define FD_COPY(f, t) __DARWIN_FD_COPY(f, t) | ||
| 30 | #endif /* FD_COPY */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_def.h created+114| ... | @@ -0,0 +1,114 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _FD_SET | ||
| 29 | #define _FD_SET | ||
| 30 | |||
| 31 | #include <machine/types.h> /* __int32_t and uintptr_t */ | ||
| 32 | #include <Availability.h> | ||
| 33 | |||
| 34 | /* | ||
| 35 | * Select uses bit masks of file descriptors in longs. These macros | ||
| 36 | * manipulate such bit fields (the filesystem macros use chars). The | ||
| 37 | * extra protection here is to permit application redefinition above | ||
| 38 | * the default size. | ||
| 39 | */ | ||
| 40 | #ifdef FD_SETSIZE | ||
| 41 | #define __DARWIN_FD_SETSIZE FD_SETSIZE | ||
| 42 | #else /* !FD_SETSIZE */ | ||
| 43 | #define __DARWIN_FD_SETSIZE 1024 | ||
| 44 | #endif /* FD_SETSIZE */ | ||
| 45 | #define __DARWIN_NBBY 8 /* bits in a byte */ | ||
| 46 | #define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */ | ||
| 47 | #define __DARWIN_howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */ | ||
| 48 | |||
| 49 | __BEGIN_DECLS | ||
| 50 | typedef struct fd_set { | ||
| 51 | 	__int32_t fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)]; | ||
| 52 | } fd_set; | ||
| 53 | |||
| 54 | int __darwin_check_fd_set_overflow(int, const void *, int) __attribute__((__weak_import__)); | ||
| 55 | __END_DECLS | ||
| 56 | |||
| 57 | __header_always_inline int | ||
| 58 | __darwin_check_fd_set(int _a, const void *_b) | ||
| 59 | { | ||
| 60 | 	if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) { | ||
| 61 | #if defined(_DARWIN_UNLIMITED_SELECT) || defined(_DARWIN_C_SOURCE) | ||
| 62 | 		return __darwin_check_fd_set_overflow(_a, _b, 1); | ||
| 63 | #else | ||
| 64 | 		return __darwin_check_fd_set_overflow(_a, _b, 0); | ||
| 65 | #endif | ||
| 66 | 	} else { | ||
| 67 | 		return 1; | ||
| 68 | 	} | ||
| 69 | } | ||
| 70 | |||
| 71 | /* This inline avoids argument side-effect issues with FD_ISSET() */ | ||
| 72 | __header_always_inline int | ||
| 73 | __darwin_fd_isset(int _fd, const struct fd_set *_p) | ||
| 74 | { | ||
| 75 | 	if (__darwin_check_fd_set(_fd, (const void *) _p)) { | ||
| 76 | 		return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))); | ||
| 77 | 	} | ||
| 78 | |||
| 79 | 	return 0; | ||
| 80 | } | ||
| 81 | |||
| 82 | __header_always_inline void | ||
| 83 | __darwin_fd_set(int _fd, struct fd_set *const _p) | ||
| 84 | { | ||
| 85 | 	if (__darwin_check_fd_set(_fd, (const void *) _p)) { | ||
| 86 | 		(_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)))); | ||
| 87 | 	} | ||
| 88 | } | ||
| 89 | |||
| 90 | __header_always_inline void | ||
| 91 | __darwin_fd_clr(int _fd, struct fd_set *const _p) | ||
| 92 | { | ||
| 93 | 	if (__darwin_check_fd_set(_fd, (const void *) _p)) { | ||
| 94 | 		(_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)))); | ||
| 95 | 	} | ||
| 96 | } | ||
| 97 | |||
| 98 | |||
| 99 | #define __DARWIN_FD_SET(n, p) __darwin_fd_set((n), (p)) | ||
| 100 | #define __DARWIN_FD_CLR(n, p) __darwin_fd_clr((n), (p)) | ||
| 101 | #define __DARWIN_FD_ISSET(n, p) __darwin_fd_isset((n), (p)) | ||
| 102 | |||
| 103 | #if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3 | ||
| 104 | /* | ||
| 105 | * Use the built-in bzero function instead of the library version so that | ||
| 106 | * we do not pollute the namespace or introduce prototype warnings. | ||
| 107 | */ | ||
| 108 | #define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p))) | ||
| 109 | #else | ||
| 110 | #define __DARWIN_FD_ZERO(p) bzero(p, sizeof(*(p))) | ||
| 111 | #endif | ||
| 112 | |||
| 113 | #define __DARWIN_FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) | ||
| 114 | #endif /* _FD_SET */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_isset.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_ISSET | ||
| 29 | #define FD_ISSET(n, p) __DARWIN_FD_ISSET(n, p) | ||
| 30 | #endif /* FD_ISSET */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_set.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_SET | ||
| 29 | #define FD_SET(n, p) __DARWIN_FD_SET(n, p) | ||
| 30 | #endif /* FD_SET */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_setsize.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_SETSIZE | ||
| 29 | #define FD_SETSIZE __DARWIN_FD_SETSIZE | ||
| 30 | #endif /* FD_SETSIZE */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fd_zero.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef FD_ZERO | ||
| 29 | #define FD_ZERO(p) __DARWIN_FD_ZERO(p) | ||
| 30 | #endif /* FD_ZERO */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_filesec_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _FILESEC_T | ||
| 29 | #define _FILESEC_T | ||
| 30 | struct _filesec; | ||
| 31 | typedef struct _filesec *filesec_t; | ||
| 32 | #endif /* _FILESEC_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsblkcnt_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _FSBLKCNT_T | ||
| 29 | #define _FSBLKCNT_T | ||
| 30 | #include <sys/_types.h> /* __darwin_fsblkcnt_t */ | ||
| 31 | typedef __darwin_fsblkcnt_t fsblkcnt_t; | ||
| 32 | #endif /* _FSBLKCNT_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_fsfilcnt_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _FSFILCNT_T | ||
| 29 | #define _FSFILCNT_T | ||
| 30 | #include <sys/_types.h> /* __darwin_fsfilcnt_t */ | ||
| 31 | typedef __darwin_fsfilcnt_t fsfilcnt_t; | ||
| 32 | #endif /* _FSFILCNT_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_gid_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _GID_T | ||
| 29 | #define _GID_T | ||
| 30 | #include <sys/_types.h> /* __darwin_gid_t */ | ||
| 31 | typedef __darwin_gid_t gid_t; | ||
| 32 | #endif | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_in_addr_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _IN_ADDR_T | ||
| 29 | #define _IN_ADDR_T | ||
| 30 | #include <machine/types.h> /* __uint32_t */ | ||
| 31 | typedef __uint32_t in_addr_t; /* base type for internet address */ | ||
| 32 | #endif /* _IN_ADDR_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_in_port_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _IN_PORT_T | ||
| 29 | #define _IN_PORT_T | ||
| 30 | #include <machine/types.h> /* __uint16_t */ | ||
| 31 | typedef __uint16_t in_port_t; | ||
| 32 | #endif /* _IN_PORT_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_ino64_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _INO64_T | ||
| 29 | #define _INO64_T | ||
| 30 | #include <sys/_types.h> /* __darwin_ino64_t */ | ||
| 31 | typedef __darwin_ino64_t ino64_t; /* 64bit inode number */ | ||
| 32 | #endif /* _INO64_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_ino_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _INO_T | ||
| 29 | #define _INO_T | ||
| 30 | #include <sys/_types.h> /* __darwin_ino_t */ | ||
| 31 | typedef __darwin_ino_t ino_t; /* inode number */ | ||
| 32 | #endif /* _INO_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_iovec_t.h created+35| ... | @@ -0,0 +1,35 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _STRUCT_IOVEC | ||
| 29 | #define _STRUCT_IOVEC | ||
| 30 | #include <sys/_types/_size_t.h> /* size_t */ | ||
| 31 | struct iovec { | ||
| 32 | 	void * iov_base; /* [XSI] Base address of I/O memory region */ | ||
| 33 | 	size_t iov_len; /* [XSI] Size of region iov_base points to */ | ||
| 34 | }; | ||
| 35 | #endif /* _STRUCT_IOVEC */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_key_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _KEY_T | ||
| 29 | #define _KEY_T | ||
| 30 | #include <machine/types.h> /* __int32_t */ | ||
| 31 | typedef __int32_t key_t; /* IPC key (for Sys V IPC) */ | ||
| 32 | #endif /* _KEY_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_mach_port_t.h created+51| ... | @@ -0,0 +1,51 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | /* | ||
| 30 | *	mach_port_t - a named port right | ||
| 31 | * | ||
| 32 | *	In user-space, "rights" are represented by the name of the | ||
| 33 | *	right in the Mach port namespace. Even so, this type is | ||
| 34 | *	presented as a unique one to more clearly denote the presence | ||
| 35 | *	of a right coming along with the name. | ||
| 36 | * | ||
| 37 | *	Often, various rights for a port held in a single name space | ||
| 38 | *	will coalesce and are, therefore, be identified by a single name | ||
| 39 | *	[this is the case for send and receive rights]. But not | ||
| 40 | *	always [send-once rights currently get a unique name for | ||
| 41 | *	each right]. | ||
| 42 | * | ||
| 43 | *	This definition of mach_port_t is only for user-space. | ||
| 44 | * | ||
| 45 | */ | ||
| 46 | |||
| 47 | #ifndef _MACH_PORT_T | ||
| 48 | #define _MACH_PORT_T | ||
| 49 | #include <sys/_types.h> /* __darwin_mach_port_t */ | ||
| 50 | typedef __darwin_mach_port_t mach_port_t; | ||
| 51 | #endif /* _MACH_PORT_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_nlink_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _NLINK_T | ||
| 29 | #define _NLINK_T | ||
| 30 | #include <machine/types.h> /* __uint16_t */ | ||
| 31 | typedef __uint16_t nlink_t; /* link count */ | ||
| 32 | #endif /* _NLINK_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_o_dsync.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef O_DSYNC | ||
| 29 | #define O_DSYNC 0x400000 /* synch I/O data integrity */ | ||
| 30 | #endif /* O_DSYNC */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_o_sync.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef O_SYNC | ||
| 29 | #define O_SYNC 0x0080 /* synch I/O file integrity */ | ||
| 30 | #endif /* O_SYNC */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_posix_vdisable.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _POSIX_VDISABLE | ||
| 29 | #define _POSIX_VDISABLE ((unsigned char)'\377') | ||
| 30 | #endif /* POSIX_VDISABLE */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_s_ifmt.h created+74| ... | @@ -0,0 +1,74 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | /* | ||
| 30 | * [XSI] The symbolic names for file modes for use as values of mode_t | ||
| 31 | * shall be defined as described in <sys/stat.h> | ||
| 32 | */ | ||
| 33 | #ifndef S_IFMT | ||
| 34 | /* File type */ | ||
| 35 | #define S_IFMT 0170000 /* [XSI] type of file mask */ | ||
| 36 | #define S_IFIFO 0010000 /* [XSI] named pipe (fifo) */ | ||
| 37 | #define S_IFCHR 0020000 /* [XSI] character special */ | ||
| 38 | #define S_IFDIR 0040000 /* [XSI] directory */ | ||
| 39 | #define S_IFBLK 0060000 /* [XSI] block special */ | ||
| 40 | #define S_IFREG 0100000 /* [XSI] regular */ | ||
| 41 | #define S_IFLNK 0120000 /* [XSI] symbolic link */ | ||
| 42 | #define S_IFSOCK 0140000 /* [XSI] socket */ | ||
| 43 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 44 | #define S_IFWHT 0160000 /* OBSOLETE: whiteout */ | ||
| 45 | #endif | ||
| 46 | |||
| 47 | /* File mode */ | ||
| 48 | /* Read, write, execute/search by owner */ | ||
| 49 | #define S_IRWXU 0000700 /* [XSI] RWX mask for owner */ | ||
| 50 | #define S_IRUSR 0000400 /* [XSI] R for owner */ | ||
| 51 | #define S_IWUSR 0000200 /* [XSI] W for owner */ | ||
| 52 | #define S_IXUSR 0000100 /* [XSI] X for owner */ | ||
| 53 | /* Read, write, execute/search by group */ | ||
| 54 | #define S_IRWXG 0000070 /* [XSI] RWX mask for group */ | ||
| 55 | #define S_IRGRP 0000040 /* [XSI] R for group */ | ||
| 56 | #define S_IWGRP 0000020 /* [XSI] W for group */ | ||
| 57 | #define S_IXGRP 0000010 /* [XSI] X for group */ | ||
| 58 | /* Read, write, execute/search by others */ | ||
| 59 | #define S_IRWXO 0000007 /* [XSI] RWX mask for other */ | ||
| 60 | #define S_IROTH 0000004 /* [XSI] R for other */ | ||
| 61 | #define S_IWOTH 0000002 /* [XSI] W for other */ | ||
| 62 | #define S_IXOTH 0000001 /* [XSI] X for other */ | ||
| 63 | |||
| 64 | #define S_ISUID 0004000 /* [XSI] set user id on execution */ | ||
| 65 | #define S_ISGID 0002000 /* [XSI] set group id on execution */ | ||
| 66 | #define S_ISVTX 0001000 /* [XSI] directory restrcted delete */ | ||
| 67 | |||
| 68 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 69 | #define S_ISTXT S_ISVTX /* sticky bit: not supported */ | ||
| 70 | #define S_IREAD S_IRUSR /* backward compatability */ | ||
| 71 | #define S_IWRITE S_IWUSR /* backward compatability */ | ||
| 72 | #define S_IEXEC S_IXUSR /* backward compatability */ | ||
| 73 | #endif | ||
| 74 | #endif /* !S_IFMT */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_sa_family_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _SA_FAMILY_T | ||
| 29 | #define _SA_FAMILY_T | ||
| 30 | #include <machine/types.h> /* __uint8_t */ | ||
| 31 | typedef __uint8_t sa_family_t; | ||
| 32 | #endif /* _SA_FAMILY_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_seek_set.h created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #include <sys/cdefs.h> | ||
| 30 | |||
| 31 | /* whence values for lseek(2) */ | ||
| 32 | #ifndef SEEK_SET | ||
| 33 | #define SEEK_SET 0 /* set file offset to offset */ | ||
| 34 | #define SEEK_CUR 1 /* set file offset to current plus offset */ | ||
| 35 | #define SEEK_END 2 /* set file offset to EOF plus offset */ | ||
| 36 | #endif /* !SEEK_SET */ | ||
| 37 | |||
| 38 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 39 | #ifndef SEEK_HOLE | ||
| 40 | #define SEEK_HOLE 3 /* set file offset to the start of the next hole greater than or equal to the supplied offset */ | ||
| 41 | #endif | ||
| 42 | |||
| 43 | #ifndef SEEK_DATA | ||
| 44 | #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 */ | ||
| 45 | #endif | ||
| 46 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_socklen_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _SOCKLEN_T | ||
| 29 | #define _SOCKLEN_T | ||
| 30 | #include <machine/types.h> /* __darwin_socklen_t */ | ||
| 31 | typedef __darwin_socklen_t socklen_t; | ||
| 32 | #endif | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_suseconds_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _SUSECONDS_T | ||
| 29 | #define _SUSECONDS_T | ||
| 30 | #include <sys/_types.h> /* __darwin_suseconds_t */ | ||
| 31 | typedef __darwin_suseconds_t suseconds_t; | ||
| 32 | #endif /* _SUSECONDS_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_timeval32.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _STRUCT_TIMEVAL32 | ||
| 29 | #define _STRUCT_TIMEVAL32 struct timeval32 | ||
| 30 | |||
| 31 | #include <machine/types.h> /* __int32_t */ | ||
| 32 | |||
| 33 | _STRUCT_TIMEVAL32 | ||
| 34 | { | ||
| 35 | 	__int32_t tv_sec; /* seconds */ | ||
| 36 | 	__int32_t tv_usec; /* and microseconds */ | ||
| 37 | }; | ||
| 38 | #endif /* _STRUCT_TIMEVAL32 */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_timeval64.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _STRUCT_TIMEVAL64 | ||
| 30 | #define _STRUCT_TIMEVAL64 | ||
| 31 | |||
| 32 | #include <machine/types.h> /* __int64_t */ | ||
| 33 | |||
| 34 | struct timeval64 { | ||
| 35 | 	__int64_t tv_sec; /* seconds */ | ||
| 36 | 	__int64_t tv_usec; /* and microseconds */ | ||
| 37 | }; | ||
| 38 | #endif /* _STRUCT_TIMEVAL32 */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_char.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2017 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _U_CHAR | ||
| 29 | #define _U_CHAR | ||
| 30 | typedef unsigned char u_char; | ||
| 31 | #endif /* _U_CHAR */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_int.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2017 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _U_INT | ||
| 29 | #define _U_INT | ||
| 30 | typedef unsigned int u_int; | ||
| 31 | #endif /* _U_INT */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_u_short.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2017 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _U_SHORT | ||
| 29 | #define _U_SHORT | ||
| 30 | typedef unsigned short u_short; | ||
| 31 | #endif /* _U_SHORT */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_useconds_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _USECONDS_T | ||
| 29 | #define _USECONDS_T | ||
| 30 | #include <sys/_types.h> /* __darwin_useconds_t */ | ||
| 31 | typedef __darwin_useconds_t useconds_t; | ||
| 32 | #endif /* _USECONDS_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/_types/_uuid_t.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | #ifndef _UUID_T | ||
| 29 | #define _UUID_T | ||
| 30 | #include <sys/_types.h> /* __darwin_uuid_t */ | ||
| 31 | typedef __darwin_uuid_t uuid_t; | ||
| 32 | #endif /* _UUID_T */ | ||
lib/libc/include/x86_64-macos-gnu/sys/aio.h created+248| ... | @@ -0,0 +1,248 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2003-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | *	File:	sys/aio.h | ||
| 30 | *	Author:	Umesh Vaishampayan [umeshv@apple.com] | ||
| 31 | *			05-Feb-2003	umeshv	Created. | ||
| 32 | * | ||
| 33 | *	Header file for POSIX Asynchronous IO APIs | ||
| 34 | * | ||
| 35 | */ | ||
| 36 | |||
| 37 | #ifndef _SYS_AIO_H_ | ||
| 38 | #define _SYS_AIO_H_ | ||
| 39 | |||
| 40 | #include <sys/signal.h> | ||
| 41 | #include <sys/_types.h> | ||
| 42 | #include <sys/cdefs.h> | ||
| 43 | |||
| 44 | /* | ||
| 45 | * [XSI] Inclusion of the <aio.h> header may make visible symbols defined | ||
| 46 | * in the headers <fcntl.h>, <signal.h>, <sys/types.h>, and <time.h>. | ||
| 47 | * | ||
| 48 | * In our case, this is limited to struct timespec, off_t and ssize_t. | ||
| 49 | */ | ||
| 50 | #include <sys/_types/_timespec.h> | ||
| 51 | |||
| 52 | #include <sys/_types/_off_t.h> | ||
| 53 | #include <sys/_types/_ssize_t.h> | ||
| 54 | |||
| 55 | /* | ||
| 56 | * A aio_fsync() options that the calling thread is to continue execution | ||
| 57 | * while the lio_listio() operation is being performed, and no notification | ||
| 58 | * is given when the operation is complete | ||
| 59 | * | ||
| 60 | * [XSI] from <fcntl.h> | ||
| 61 | */ | ||
| 62 | #include <sys/_types/_o_sync.h> | ||
| 63 | #include <sys/_types/_o_dsync.h> | ||
| 64 | |||
| 65 | struct aiocb { | ||
| 66 | 	int aio_fildes; /* File descriptor */ | ||
| 67 | 	off_t aio_offset; /* File offset */ | ||
| 68 | 	volatile void *aio_buf; /* Location of buffer */ | ||
| 69 | 	size_t aio_nbytes; /* Length of transfer */ | ||
| 70 | 	int aio_reqprio; /* Request priority offset */ | ||
| 71 | 	struct sigevent aio_sigevent; /* Signal number and value */ | ||
| 72 | 	int aio_lio_opcode; /* Operation to be performed */ | ||
| 73 | }; | ||
| 74 | |||
| 75 | |||
| 76 | /* | ||
| 77 | * aio_cancel() return values | ||
| 78 | */ | ||
| 79 | |||
| 80 | /* | ||
| 81 | * none of the requested operations could be canceled since they are | ||
| 82 | * already complete. | ||
| 83 | */ | ||
| 84 | #define AIO_ALLDONE 0x1 | ||
| 85 | |||
| 86 | /* all requested operations have been canceled */ | ||
| 87 | #define AIO_CANCELED 0x2 | ||
| 88 | |||
| 89 | /* | ||
| 90 | * some of the requested operations could not be canceled since | ||
| 91 | * they are in progress | ||
| 92 | */ | ||
| 93 | #define AIO_NOTCANCELED 0x4 | ||
| 94 | |||
| 95 | |||
| 96 | /* | ||
| 97 | * lio_listio operation options | ||
| 98 | */ | ||
| 99 | |||
| 100 | #define LIO_NOP 0x0 /* option indicating that no transfer is requested */ | ||
| 101 | #define LIO_READ 0x1 /* option requesting a read */ | ||
| 102 | #define LIO_WRITE 0x2 /* option requesting a write */ | ||
| 103 | |||
| 104 | /* | ||
| 105 | * lio_listio() modes | ||
| 106 | */ | ||
| 107 | |||
| 108 | /* | ||
| 109 | * A lio_listio() synchronization operation indicating | ||
| 110 | * that the calling thread is to continue execution while | ||
| 111 | * the lio_listio() operation is being performed, and no | ||
| 112 | * notification is given when the operation is complete | ||
| 113 | */ | ||
| 114 | #define LIO_NOWAIT 0x1 | ||
| 115 | |||
| 116 | /* | ||
| 117 | * A lio_listio() synchronization operation indicating | ||
| 118 | * that the calling thread is to suspend until the | ||
| 119 | * lio_listio() operation is complete. | ||
| 120 | */ | ||
| 121 | #define LIO_WAIT 0x2 | ||
| 122 | |||
| 123 | /* | ||
| 124 | * Maximum number of operations in single lio_listio call | ||
| 125 | */ | ||
| 126 | #define AIO_LISTIO_MAX 16 | ||
| 127 | |||
| 128 | |||
| 129 | /* | ||
| 130 | * Prototypes | ||
| 131 | */ | ||
| 132 | |||
| 133 | __BEGIN_DECLS | ||
| 134 | |||
| 135 | /* | ||
| 136 | * Attempt to cancel one or more asynchronous I/O requests currently outstanding | ||
| 137 | * against file descriptor fd. The aiocbp argument points to the asynchronous I/O | ||
| 138 | * control block for a particular request to be canceled. If aiocbp is NULL, then | ||
| 139 | * all outstanding cancelable asynchronous I/O requests against fd shall be canceled. | ||
| 140 | */ | ||
| 141 | int aio_cancel( int fd, | ||
| 142 | struct aiocb * aiocbp ); | ||
| 143 | |||
| 144 | /* | ||
| 145 | * Return the error status associated with the aiocb structure referenced by the | ||
| 146 | * aiocbp argument. The error status for an asynchronous I/O operation is the errno | ||
| 147 | * value that would be set by the corresponding read(), write(), or fsync() | ||
| 148 | * operation. If the operation has not yet completed, then the error status shall | ||
| 149 | * be equal to [EINPROGRESS]. | ||
| 150 | */ | ||
| 151 | int aio_error( const struct aiocb * aiocbp ); | ||
| 152 | |||
| 153 | /* | ||
| 154 | * Asynchronously force all I/O operations associated with the file indicated by | ||
| 155 | * the file descriptor aio_fildes member of the aiocb structure referenced by the | ||
| 156 | * aiocbp argument and queued at the time of the call to aio_fsync() to the | ||
| 157 | * synchronized I/O completion state. The function call shall return when the | ||
| 158 | * synchronization request has been initiated or queued. op O_SYNC is the only | ||
| 159 | * supported opertation at this time. | ||
| 160 | * The aiocbp argument refers to an asynchronous I/O control block. The aiocbp | ||
| 161 | * value may be used as an argument to aio_error() and aio_return() in order to | ||
| 162 | * determine the error status and return status, respectively, of the asynchronous | ||
| 163 | * operation while it is proceeding. When the request is queued, the error status | ||
| 164 | * for the operation is [EINPROGRESS]. When all data has been successfully | ||
| 165 | * transferred, the error status shall be reset to reflect the success or failure | ||
| 166 | * of the operation. | ||
| 167 | */ | ||
| 168 | int aio_fsync( int op, | ||
| 169 | struct aiocb * aiocbp ); | ||
| 170 | |||
| 171 | /* | ||
| 172 | * Read aiocbp->aio_nbytes from the file associated with aiocbp->aio_fildes into | ||
| 173 | * the buffer pointed to by aiocbp->aio_buf. The function call shall return when | ||
| 174 | * the read request has been initiated or queued. | ||
| 175 | * The aiocbp value may be used as an argument to aio_error() and aio_return() in | ||
| 176 | * order to determine the error status and return status, respectively, of the | ||
| 177 | * asynchronous operation while it is proceeding. If an error condition is | ||
| 178 | * encountered during queuing, the function call shall return without having | ||
| 179 | * initiated or queued the request. The requested operation takes place at the | ||
| 180 | * absolute position in the file as given by aio_offset, as if lseek() were called | ||
| 181 | * immediately prior to the operation with an offset equal to aio_offset and a | ||
| 182 | * whence equal to SEEK_SET. After a successful call to enqueue an asynchronous | ||
| 183 | * I/O operation, the value of the file offset for the file is unspecified. | ||
| 184 | */ | ||
| 185 | int aio_read( struct aiocb * aiocbp ); | ||
| 186 | |||
| 187 | /* | ||
| 188 | * Return the return status associated with the aiocb structure referenced by | ||
| 189 | * the aiocbp argument. The return status for an asynchronous I/O operation is | ||
| 190 | * the value that would be returned by the corresponding read(), write(), or | ||
| 191 | * fsync() function call. If the error status for the operation is equal to | ||
| 192 | * [EINPROGRESS], then the return status for the operation is undefined. The | ||
| 193 | * aio_return() function may be called exactly once to retrieve the return status | ||
| 194 | * of a given asynchronous operation; thereafter, if the same aiocb structure | ||
| 195 | * is used in a call to aio_return() or aio_error(), an error may be returned. | ||
| 196 | * When the aiocb structure referred to by aiocbp is used to submit another | ||
| 197 | * asynchronous operation, then aio_return() may be successfully used to | ||
| 198 | * retrieve the return status of that operation. | ||
| 199 | */ | ||
| 200 | ssize_t aio_return( struct aiocb * aiocbp ); | ||
| 201 | |||
| 202 | /* | ||
| 203 | * Suspend the calling thread until at least one of the asynchronous I/O | ||
| 204 | * operations referenced by the aiocblist argument has completed, until a signal | ||
| 205 | * interrupts the function, or, if timeout is not NULL, until the time | ||
| 206 | * interval specified by timeout has passed. If any of the aiocb structures | ||
| 207 | * in the aiocblist correspond to completed asynchronous I/O operations (that is, | ||
| 208 | * the error status for the operation is not equal to [EINPROGRESS]) at the | ||
| 209 | * time of the call, the function shall return without suspending the calling | ||
| 210 | * thread. The aiocblist argument is an array of pointers to asynchronous I/O | ||
| 211 | * control blocks. The nent argument indicates the number of elements in the | ||
| 212 | * array. Each aiocb structure pointed to has been used in initiating an | ||
| 213 | * asynchronous I/O request via aio_read(), aio_write(), or lio_listio(). This | ||
| 214 | * array may contain NULL pointers, which are ignored. | ||
| 215 | */ | ||
| 216 | int aio_suspend( const struct aiocb *const aiocblist[], | ||
| 217 | int nent, | ||
| 218 | const struct timespec * timeoutp ) __DARWIN_ALIAS_C(aio_suspend); | ||
| 219 | |||
| 220 | /* | ||
| 221 | * Write aiocbp->aio_nbytes to the file associated with aiocbp->aio_fildes from | ||
| 222 | * the buffer pointed to by aiocbp->aio_buf. The function shall return when the | ||
| 223 | * write request has been initiated or, at a minimum, queued. | ||
| 224 | * The aiocbp argument may be used as an argument to aio_error() and aio_return() | ||
| 225 | * in order to determine the error status and return status, respectively, of the | ||
| 226 | * asynchronous operation while it is proceeding. | ||
| 227 | */ | ||
| 228 | int aio_write( struct aiocb * aiocbp ); | ||
| 229 | |||
| 230 | /* | ||
| 231 | * Initiate a list of I/O requests with a single function call. The mode | ||
| 232 | * argument takes one of the values LIO_WAIT or LIO_NOWAIT and determines whether | ||
| 233 | * the function returns when the I/O operations have been completed, or as soon | ||
| 234 | * as the operations have been queued. If the mode argument is LIO_WAIT, the | ||
| 235 | * function shall wait until all I/O is complete and the sig argument shall be | ||
| 236 | * ignored. | ||
| 237 | * If the mode argument is LIO_NOWAIT, the function shall return immediately, and | ||
| 238 | * asynchronous notification shall occur, according to the sig argument, when all | ||
| 239 | * the I/O operations complete. If sig is NULL, then no asynchronous notification | ||
| 240 | * shall occur. | ||
| 241 | */ | ||
| 242 | int lio_listio( int mode, | ||
| 243 | struct aiocb *const aiocblist[], | ||
| 244 | int nent, | ||
| 245 | struct sigevent *sigp ); | ||
| 246 | __END_DECLS | ||
| 247 | |||
| 248 | #endif /* _SYS_AIO_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/dirent.h created+141| ... | @@ -0,0 +1,141 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2008 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1989, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)dirent.h	8.3 (Berkeley) 8/10/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | /* | ||
| 65 | * The dirent structure defines the format of directory entries. | ||
| 66 | * | ||
| 67 | * A directory entry has a struct dirent at the front of it, containing its | ||
| 68 | * inode number, the length of the entry, and the length of the name | ||
| 69 | * contained in the entry. These are followed by the name padded to a 4 | ||
| 70 | * byte boundary with null bytes. All names are guaranteed null terminated. | ||
| 71 | * The maximum length of a name in a directory is MAXNAMLEN when 32-bit | ||
| 72 | * ino_t is in effect; (MAXPATHLEN - 1) when 64-bit ino_t is in effect. | ||
| 73 | */ | ||
| 74 | |||
| 75 | #ifndef _SYS_DIRENT_H | ||
| 76 | #define _SYS_DIRENT_H | ||
| 77 | |||
| 78 | #include <sys/_types.h> | ||
| 79 | #include <sys/cdefs.h> | ||
| 80 | |||
| 81 | #include <sys/_types/_ino_t.h> | ||
| 82 | |||
| 83 | |||
| 84 | #define __DARWIN_MAXNAMLEN 255 | ||
| 85 | |||
| 86 | #pragma pack(4) | ||
| 87 | |||
| 88 | #if !__DARWIN_64_BIT_INO_T | ||
| 89 | struct dirent { | ||
| 90 | 	ino_t d_ino; /* file number of entry */ | ||
| 91 | 	__uint16_t d_reclen; /* length of this record */ | ||
| 92 | 	__uint8_t d_type; /* file type, see below */ | ||
| 93 | 	__uint8_t d_namlen; /* length of string in d_name */ | ||
| 94 | 	char d_name[__DARWIN_MAXNAMLEN + 1]; /* name must be no longer than this */ | ||
| 95 | }; | ||
| 96 | #endif /* !__DARWIN_64_BIT_INO_T */ | ||
| 97 | |||
| 98 | #pragma pack() | ||
| 99 | |||
| 100 | #define __DARWIN_MAXPATHLEN 1024 | ||
| 101 | |||
| 102 | #define __DARWIN_STRUCT_DIRENTRY { \ | ||
| 103 | 	__uint64_t d_ino; /* file number of entry */ \ | ||
| 104 | 	__uint64_t d_seekoff; /* seek offset (optional, used by servers) */ \ | ||
| 105 | 	__uint16_t d_reclen; /* length of this record */ \ | ||
| 106 | 	__uint16_t d_namlen; /* length of string in d_name */ \ | ||
| 107 | 	__uint8_t d_type; /* file type, see below */ \ | ||
| 108 | 	char d_name[__DARWIN_MAXPATHLEN]; /* entry name (up to MAXPATHLEN bytes) */ \ | ||
| 109 | } | ||
| 110 | |||
| 111 | #if __DARWIN_64_BIT_INO_T | ||
| 112 | struct dirent __DARWIN_STRUCT_DIRENTRY; | ||
| 113 | #endif /* __DARWIN_64_BIT_INO_T */ | ||
| 114 | |||
| 115 | |||
| 116 | |||
| 117 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 118 | #define d_fileno d_ino /* backward compatibility */ | ||
| 119 | #define MAXNAMLEN __DARWIN_MAXNAMLEN | ||
| 120 | /* | ||
| 121 | * File types | ||
| 122 | */ | ||
| 123 | #define DT_UNKNOWN 0 | ||
| 124 | #define DT_FIFO 1 | ||
| 125 | #define DT_CHR 2 | ||
| 126 | #define DT_DIR 4 | ||
| 127 | #define DT_BLK 6 | ||
| 128 | #define DT_REG 8 | ||
| 129 | #define DT_LNK 10 | ||
| 130 | #define DT_SOCK 12 | ||
| 131 | #define DT_WHT 14 | ||
| 132 | |||
| 133 | /* | ||
| 134 | * Convert between stat structure types and directory types. | ||
| 135 | */ | ||
| 136 | #define IFTODT(mode) (((mode) & 0170000) >> 12) | ||
| 137 | #define DTTOIF(dirtype) ((dirtype) << 12) | ||
| 138 | #endif | ||
| 139 | |||
| 140 | |||
| 141 | #endif /* _SYS_DIRENT_H */ | ||
lib/libc/include/x86_64-macos-gnu/sys/fcntl.h created+557| ... | @@ -0,0 +1,557 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2013 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1983, 1990, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | *	This product includes software developed by the University of | ||
| 49 | *	California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)fcntl.h	8.3 (Berkeley) 1/21/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | |||
| 70 | #ifndef _SYS_FCNTL_H_ | ||
| 71 | #define _SYS_FCNTL_H_ | ||
| 72 | |||
| 73 | /* | ||
| 74 | * This file includes the definitions for open and fcntl | ||
| 75 | * described by POSIX for <fcntl.h>; it also includes | ||
| 76 | * related kernel definitions. | ||
| 77 | */ | ||
| 78 | #include <sys/_types.h> | ||
| 79 | #include <sys/cdefs.h> | ||
| 80 | #include <Availability.h> | ||
| 81 | |||
| 82 | /* We should not be exporting size_t here. Temporary for gcc bootstrapping. */ | ||
| 83 | #include <sys/_types/_size_t.h> | ||
| 84 | #include <sys/_types/_mode_t.h> | ||
| 85 | #include <sys/_types/_off_t.h> | ||
| 86 | #include <sys/_types/_pid_t.h> | ||
| 87 | |||
| 88 | /* | ||
| 89 | * File status flags: these are used by open(2), fcntl(2). | ||
| 90 | * They are also used (indirectly) in the kernel file structure f_flags, | ||
| 91 | * which is a superset of the open/fcntl flags. Open flags and f_flags | ||
| 92 | * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags). | ||
| 93 | * Open/fcntl flags begin with O_; kernel-internal flags begin with F. | ||
| 94 | */ | ||
| 95 | /* open-only flags */ | ||
| 96 | #define O_RDONLY 0x0000 /* open for reading only */ | ||
| 97 | #define O_WRONLY 0x0001 /* open for writing only */ | ||
| 98 | #define O_RDWR 0x0002 /* open for reading and writing */ | ||
| 99 | #define O_ACCMODE 0x0003 /* mask for above modes */ | ||
| 100 | |||
| 101 | /* | ||
| 102 | * Kernel encoding of open mode; separate read and write bits that are | ||
| 103 | * independently testable: 1 greater than the above. | ||
| 104 | * | ||
| 105 | * XXX | ||
| 106 | * FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH, | ||
| 107 | * which was documented to use FREAD/FWRITE, continues to work. | ||
| 108 | */ | ||
| 109 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 110 | #define FREAD 0x0001 | ||
| 111 | #define FWRITE 0x0002 | ||
| 112 | #endif | ||
| 113 | #define O_NONBLOCK 0x0004 /* no delay */ | ||
| 114 | #define O_APPEND 0x0008 /* set append mode */ | ||
| 115 | |||
| 116 | #include <sys/_types/_o_sync.h> | ||
| 117 | |||
| 118 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 119 | #define O_SHLOCK 0x0010 /* open with shared file lock */ | ||
| 120 | #define O_EXLOCK 0x0020 /* open with exclusive file lock */ | ||
| 121 | #define O_ASYNC 0x0040 /* signal pgrp when data ready */ | ||
| 122 | #define O_FSYNC O_SYNC /* source compatibility: do not use */ | ||
| 123 | #define O_NOFOLLOW 0x0100 /* don't follow symlinks */ | ||
| 124 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 125 | #define O_CREAT 0x0200 /* create if nonexistant */ | ||
| 126 | #define O_TRUNC 0x0400 /* truncate to zero length */ | ||
| 127 | #define O_EXCL 0x0800 /* error if already exists */ | ||
| 128 | |||
| 129 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 130 | /* | ||
| 131 | * Descriptor value for the current working directory | ||
| 132 | */ | ||
| 133 | #define AT_FDCWD -2 | ||
| 134 | |||
| 135 | /* | ||
| 136 | * Flags for the at functions | ||
| 137 | */ | ||
| 138 | #define AT_EACCESS 0x0010 /* Use effective ids in access check */ | ||
| 139 | #define AT_SYMLINK_NOFOLLOW 0x0020 /* Act on the symlink itself not the target */ | ||
| 140 | #define AT_SYMLINK_FOLLOW 0x0040 /* Act on target of symlink */ | ||
| 141 | #define AT_REMOVEDIR 0x0080 /* Path refers to directory */ | ||
| 142 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 143 | #define AT_REALDEV 0x0200 /* Return real device inodes resides on for fstatat(2) */ | ||
| 144 | #define AT_FDONLY 0x0400 /* Use only the fd and Ignore the path for fstatat(2) */ | ||
| 145 | #endif | ||
| 146 | #endif | ||
| 147 | |||
| 148 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 149 | #define O_EVTONLY 0x8000 /* descriptor requested for event notifications only */ | ||
| 150 | #endif | ||
| 151 | |||
| 152 | |||
| 153 | #define O_NOCTTY 0x20000 /* don't assign controlling terminal */ | ||
| 154 | |||
| 155 | |||
| 156 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 157 | #define O_DIRECTORY 0x100000 | ||
| 158 | #define O_SYMLINK 0x200000 /* allow open of a symlink */ | ||
| 159 | #endif | ||
| 160 | |||
| 161 | #include <sys/_types/_o_dsync.h> | ||
| 162 | |||
| 163 | |||
| 164 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 165 | #define O_CLOEXEC 0x1000000 /* implicitly set FD_CLOEXEC */ | ||
| 166 | #endif | ||
| 167 | |||
| 168 | |||
| 169 | |||
| 170 | |||
| 171 | |||
| 172 | /* Data Protection Flags */ | ||
| 173 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 174 | #define O_DP_GETRAWENCRYPTED 0x0001 | ||
| 175 | #define O_DP_GETRAWUNENCRYPTED 0x0002 | ||
| 176 | #endif | ||
| 177 | |||
| 178 | |||
| 179 | |||
| 180 | /* | ||
| 181 | * The O_* flags used to have only F* names, which were used in the kernel | ||
| 182 | * and by fcntl. We retain the F* names for the kernel f_flags field | ||
| 183 | * and for backward compatibility for fcntl. | ||
| 184 | */ | ||
| 185 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 186 | #define FAPPEND O_APPEND /* kernel/compat */ | ||
| 187 | #define FASYNC O_ASYNC /* kernel/compat */ | ||
| 188 | #define FFSYNC O_FSYNC /* kernel */ | ||
| 189 | #define FFDSYNC O_DSYNC /* kernel */ | ||
| 190 | #define FNONBLOCK O_NONBLOCK /* kernel */ | ||
| 191 | #define FNDELAY O_NONBLOCK /* compat */ | ||
| 192 | #define O_NDELAY O_NONBLOCK /* compat */ | ||
| 193 | #endif | ||
| 194 | |||
| 195 | /* | ||
| 196 | * Flags used for copyfile(2) | ||
| 197 | */ | ||
| 198 | |||
| 199 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 200 | #define CPF_OVERWRITE 0x0001 | ||
| 201 | #define CPF_IGNORE_MODE 0x0002 | ||
| 202 | #define CPF_MASK (CPF_OVERWRITE|CPF_IGNORE_MODE) | ||
| 203 | #endif | ||
| 204 | |||
| 205 | /* | ||
| 206 | * Constants used for fcntl(2) | ||
| 207 | */ | ||
| 208 | |||
| 209 | /* command values */ | ||
| 210 | #define F_DUPFD 0 /* duplicate file descriptor */ | ||
| 211 | #define F_GETFD 1 /* get file descriptor flags */ | ||
| 212 | #define F_SETFD 2 /* set file descriptor flags */ | ||
| 213 | #define F_GETFL 3 /* get file status flags */ | ||
| 214 | #define F_SETFL 4 /* set file status flags */ | ||
| 215 | #define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */ | ||
| 216 | #define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */ | ||
| 217 | #define F_GETLK 7 /* get record locking information */ | ||
| 218 | #define F_SETLK 8 /* set record locking information */ | ||
| 219 | #define F_SETLKW 9 /* F_SETLK; wait if blocked */ | ||
| 220 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 221 | #define F_SETLKWTIMEOUT 10 /* F_SETLK; wait if blocked, return on timeout */ | ||
| 222 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 223 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 224 | #define F_FLUSH_DATA 40 | ||
| 225 | #define F_CHKCLEAN 41 /* Used for regression test */ | ||
| 226 | #define F_PREALLOCATE 42 /* Preallocate storage */ | ||
| 227 | #define F_SETSIZE 43 /* Truncate a file without zeroing space */ | ||
| 228 | #define F_RDADVISE 44 /* Issue an advisory read async with no copy to user */ | ||
| 229 | #define F_RDAHEAD 45 /* turn read ahead off/on for this fd */ | ||
| 230 | /* | ||
| 231 | * 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP | ||
| 232 | */ | ||
| 233 | #define F_NOCACHE 48 /* turn data caching off/on for this fd */ | ||
| 234 | #define F_LOG2PHYS 49 /* file offset to device offset */ | ||
| 235 | #define F_GETPATH 50 /* return the full path of the fd */ | ||
| 236 | #define F_FULLFSYNC 51 /* fsync + ask the drive to flush to the media */ | ||
| 237 | #define F_PATHPKG_CHECK 52 /* find which component (if any) is a package */ | ||
| 238 | #define F_FREEZE_FS 53 /* "freeze" all fs operations */ | ||
| 239 | #define F_THAW_FS 54 /* "thaw" all fs operations */ | ||
| 240 | #define F_GLOBAL_NOCACHE 55 /* turn data caching off/on (globally) for this file */ | ||
| 241 | |||
| 242 | |||
| 243 | #define F_ADDSIGS 59 /* add detached signatures */ | ||
| 244 | |||
| 245 | |||
| 246 | #define F_ADDFILESIGS 61 /* add signature from same file (used by dyld for shared libs) */ | ||
| 247 | |||
| 248 | #define F_NODIRECT 62 /* used in conjunction with F_NOCACHE to indicate that DIRECT, synchonous writes */ | ||
| 249 | /* should not be used (i.e. its ok to temporaily create cached pages) */ | ||
| 250 | |||
| 251 | #define F_GETPROTECTIONCLASS 63 /* Get the protection class of a file from the EA, returns int */ | ||
| 252 | #define F_SETPROTECTIONCLASS 64 /* Set the protection class of a file for the EA, requires int */ | ||
| 253 | |||
| 254 | #define F_LOG2PHYS_EXT 65 /* file offset to device offset, extended */ | ||
| 255 | |||
| 256 | #define F_GETLKPID 66 /* get record locking information, per-process */ | ||
| 257 | |||
| 258 | /* See F_DUPFD_CLOEXEC below for 67 */ | ||
| 259 | |||
| 260 | |||
| 261 | #define F_SETBACKINGSTORE 70 /* Mark the file as being the backing store for another filesystem */ | ||
| 262 | #define F_GETPATH_MTMINFO 71 /* return the full path of the FD, but error in specific mtmd circumstances */ | ||
| 263 | |||
| 264 | #define F_GETCODEDIR 72 /* Returns the code directory, with associated hashes, to the caller */ | ||
| 265 | |||
| 266 | #define F_SETNOSIGPIPE 73 /* No SIGPIPE generated on EPIPE */ | ||
| 267 | #define F_GETNOSIGPIPE 74 /* Status of SIGPIPE for this fd */ | ||
| 268 | |||
| 269 | #define F_TRANSCODEKEY 75 /* For some cases, we need to rewrap the key for AKS/MKB */ | ||
| 270 | |||
| 271 | #define F_SINGLE_WRITER 76 /* file being written to a by single writer... if throttling enabled, writes */ | ||
| 272 | /* may be broken into smaller chunks with throttling in between */ | ||
| 273 | |||
| 274 | #define F_GETPROTECTIONLEVEL 77 /* Get the protection version number for this filesystem */ | ||
| 275 | |||
| 276 | #define F_FINDSIGS 78 /* Add detached code signatures (used by dyld for shared libs) */ | ||
| 277 | |||
| 278 | |||
| 279 | #define F_ADDFILESIGS_FOR_DYLD_SIM 83 /* Add signature from same file, only if it is signed by Apple (used by dyld for simulator) */ | ||
| 280 | |||
| 281 | |||
| 282 | #define F_BARRIERFSYNC 85 /* fsync + issue barrier to drive */ | ||
| 283 | |||
| 284 | |||
| 285 | #define F_ADDFILESIGS_RETURN 97 /* Add signature from same file, return end offset in structure on success */ | ||
| 286 | #define F_CHECK_LV 98 /* Check if Library Validation allows this Mach-O file to be mapped into the calling process */ | ||
| 287 | |||
| 288 | #define F_PUNCHHOLE 99 /* Deallocate a range of the file */ | ||
| 289 | |||
| 290 | #define F_TRIM_ACTIVE_FILE 100 /* Trim an active file */ | ||
| 291 | |||
| 292 | #define F_SPECULATIVE_READ 101 /* Synchronous advisory read fcntl for regular and compressed file */ | ||
| 293 | |||
| 294 | #define F_GETPATH_NOFIRMLINK 102 /* return the full path without firmlinks of the fd */ | ||
| 295 | |||
| 296 | // FS-specific fcntl()'s numbers begin at 0x00010000 and go up | ||
| 297 | #define FCNTL_FS_SPECIFIC_BASE 0x00010000 | ||
| 298 | |||
| 299 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 300 | |||
| 301 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 302 | #define F_DUPFD_CLOEXEC 67 /* mark the dup with FD_CLOEXEC */ | ||
| 303 | #endif | ||
| 304 | |||
| 305 | /* file descriptor flags (F_GETFD, F_SETFD) */ | ||
| 306 | #define FD_CLOEXEC 1 /* close-on-exec flag */ | ||
| 307 | |||
| 308 | /* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */ | ||
| 309 | #define F_RDLCK 1 /* shared or read lock */ | ||
| 310 | #define F_UNLCK 2 /* unlock */ | ||
| 311 | #define F_WRLCK 3 /* exclusive or write lock */ | ||
| 312 | |||
| 313 | |||
| 314 | /* | ||
| 315 | * [XSI] The values used for l_whence shall be defined as described | ||
| 316 | * in <unistd.h> | ||
| 317 | */ | ||
| 318 | #include <sys/_types/_seek_set.h> | ||
| 319 | |||
| 320 | /* | ||
| 321 | * [XSI] The symbolic names for file modes for use as values of mode_t | ||
| 322 | * shall be defined as described in <sys/stat.h> | ||
| 323 | */ | ||
| 324 | #include <sys/_types/_s_ifmt.h> | ||
| 325 | |||
| 326 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 327 | /* allocate flags (F_PREALLOCATE) */ | ||
| 328 | |||
| 329 | #define F_ALLOCATECONTIG 0x00000002 /* allocate contigious space */ | ||
| 330 | #define F_ALLOCATEALL 0x00000004 /* allocate all requested space or no space at all */ | ||
| 331 | |||
| 332 | /* Position Modes (fst_posmode) for F_PREALLOCATE */ | ||
| 333 | |||
| 334 | #define F_PEOFPOSMODE 3 /* Make it past all of the SEEK pos modes so that */ | ||
| 335 | /* we can keep them in sync should we desire */ | ||
| 336 | #define F_VOLPOSMODE 4 /* specify volume starting postion */ | ||
| 337 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 338 | |||
| 339 | /* | ||
| 340 | * Advisory file segment locking data type - | ||
| 341 | * information passed to system by user | ||
| 342 | */ | ||
| 343 | struct flock { | ||
| 344 | 	off_t l_start; /* starting offset */ | ||
| 345 | 	off_t l_len; /* len = 0 means until end of file */ | ||
| 346 | 	pid_t l_pid; /* lock owner */ | ||
| 347 | 	short l_type; /* lock type: read/write, etc. */ | ||
| 348 | 	short l_whence; /* type of l_start */ | ||
| 349 | }; | ||
| 350 | |||
| 351 | #include <sys/_types/_timespec.h> | ||
| 352 | |||
| 353 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 354 | /* | ||
| 355 | * Advisory file segment locking with time out - | ||
| 356 | * Information passed to system by user for F_SETLKWTIMEOUT | ||
| 357 | */ | ||
| 358 | struct flocktimeout { | ||
| 359 | 	struct flock fl; /* flock passed for file locking */ | ||
| 360 | 	struct timespec timeout; /* timespec struct for timeout */ | ||
| 361 | }; | ||
| 362 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 363 | |||
| 364 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 365 | /* | ||
| 366 | * advisory file read data type - | ||
| 367 | * information passed by user to system | ||
| 368 | */ | ||
| 369 | |||
| 370 | |||
| 371 | struct radvisory { | ||
| 372 | 	off_t ra_offset; | ||
| 373 | 	int ra_count; | ||
| 374 | }; | ||
| 375 | |||
| 376 | |||
| 377 | /** Information the user passes in to get the codeblobs out of the kernel */ | ||
| 378 | typedef struct fcodeblobs { | ||
| 379 | 	void *f_cd_hash; | ||
| 380 | 	size_t f_hash_size; | ||
| 381 | 	void *f_cd_buffer; | ||
| 382 | 	size_t f_cd_size; | ||
| 383 | 	unsigned int *f_out_size; | ||
| 384 | 	int f_arch; | ||
| 385 | 	int __padding; | ||
| 386 | } fcodeblobs_t; | ||
| 387 | |||
| 388 | |||
| 389 | /* | ||
| 390 | * detached code signatures data type - | ||
| 391 | * information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS. | ||
| 392 | * F_ADDFILESIGS is a shortcut for files that contain their own signature and | ||
| 393 | * doesn't require mapping of the file in order to load the signature. | ||
| 394 | */ | ||
| 395 | typedef struct fsignatures { | ||
| 396 | 	off_t fs_file_start; | ||
| 397 | 	void *fs_blob_start; | ||
| 398 | 	size_t fs_blob_size; | ||
| 399 | } fsignatures_t; | ||
| 400 | |||
| 401 | /* | ||
| 402 | * DYLD needs to check if the object is allowed to be combined | ||
| 403 | * into the main binary. This is done between the code signature | ||
| 404 | * is loaded and dyld is doing all the work to process the LOAD commands. | ||
| 405 | * | ||
| 406 | * While this could be done in F_ADDFILESIGS.* family the hook into | ||
| 407 | * the MAC module doesn't say no when LV isn't enabled and then that | ||
| 408 | * is cached on the vnode, and the MAC module never gets change once | ||
| 409 | * a process that library validation enabled. | ||
| 410 | */ | ||
| 411 | typedef struct fchecklv { | ||
| 412 | 	off_t lv_file_start; | ||
| 413 | 	size_t lv_error_message_size; | ||
| 414 | 	void *lv_error_message; | ||
| 415 | } fchecklv_t; | ||
| 416 | |||
| 417 | |||
| 418 | |||
| 419 | /* lock operations for flock(2) */ | ||
| 420 | #define LOCK_SH 0x01 /* shared file lock */ | ||
| 421 | #define LOCK_EX 0x02 /* exclusive file lock */ | ||
| 422 | #define LOCK_NB 0x04 /* don't block when locking */ | ||
| 423 | #define LOCK_UN 0x08 /* unlock file */ | ||
| 424 | |||
| 425 | /* fstore_t type used by F_PREALLOCATE command */ | ||
| 426 | |||
| 427 | typedef struct fstore { | ||
| 428 | 	unsigned int fst_flags; /* IN: flags word */ | ||
| 429 | 	int fst_posmode; /* IN: indicates use of offset field */ | ||
| 430 | 	off_t fst_offset; /* IN: start of the region */ | ||
| 431 | 	off_t fst_length; /* IN: size of the region */ | ||
| 432 | 	off_t fst_bytesalloc; /* OUT: number of bytes allocated */ | ||
| 433 | } fstore_t; | ||
| 434 | |||
| 435 | /* fpunchhole_t used by F_PUNCHHOLE */ | ||
| 436 | typedef struct fpunchhole { | ||
| 437 | 	unsigned int fp_flags; /* unused */ | ||
| 438 | 	unsigned int reserved; /* (to maintain 8-byte alignment) */ | ||
| 439 | 	off_t fp_offset; /* IN: start of the region */ | ||
| 440 | 	off_t fp_length; /* IN: size of the region */ | ||
| 441 | } fpunchhole_t; | ||
| 442 | |||
| 443 | /* factive_file_trim_t used by F_TRIM_ACTIVE_FILE */ | ||
| 444 | typedef struct ftrimactivefile { | ||
| 445 | 	off_t fta_offset; /* IN: start of the region */ | ||
| 446 | 	off_t fta_length; /* IN: size of the region */ | ||
| 447 | } ftrimactivefile_t; | ||
| 448 | |||
| 449 | /* fspecread_t used by F_SPECULATIVE_READ */ | ||
| 450 | typedef struct fspecread { | ||
| 451 | 	unsigned int fsr_flags; /* IN: flags word */ | ||
| 452 | 	unsigned int reserved; /* to maintain 8-byte alignment */ | ||
| 453 | 	off_t fsr_offset; /* IN: start of the region */ | ||
| 454 | 	off_t fsr_length; /* IN: size of the region */ | ||
| 455 | } fspecread_t; | ||
| 456 | |||
| 457 | /* fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands */ | ||
| 458 | |||
| 459 | typedef struct fbootstraptransfer { | ||
| 460 | 	off_t fbt_offset; /* IN: offset to start read/write */ | ||
| 461 | 	size_t fbt_length; /* IN: number of bytes to transfer */ | ||
| 462 | 	void *fbt_buffer; /* IN: buffer to be read/written */ | ||
| 463 | } fbootstraptransfer_t; | ||
| 464 | |||
| 465 | |||
| 466 | /* | ||
| 467 | * For F_LOG2PHYS this information is passed back to user | ||
| 468 | * Currently only devoffset is returned - that is the VOP_BMAP | ||
| 469 | * result - the disk device address corresponding to the | ||
| 470 | * current file offset (likely set with an lseek). | ||
| 471 | * | ||
| 472 | * The flags could hold an indication of whether the # of | ||
| 473 | * contiguous bytes reflects the true extent length on disk, | ||
| 474 | * or is an advisory value that indicates there is at least that | ||
| 475 | * many bytes contiguous. For some filesystems it might be too | ||
| 476 | * inefficient to provide anything beyond the advisory value. | ||
| 477 | * Flags and contiguous bytes return values are not yet implemented. | ||
| 478 | * For them the fcntl will nedd to switch from using BMAP to CMAP | ||
| 479 | * and a per filesystem type flag will be needed to interpret the | ||
| 480 | * contiguous bytes count result from CMAP. | ||
| 481 | * | ||
| 482 | * F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in | ||
| 483 | * file offset and length instead of the current file offset. | ||
| 484 | * F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but | ||
| 485 | * treats it as an in/out. | ||
| 486 | */ | ||
| 487 | #pragma pack(4) | ||
| 488 | |||
| 489 | struct log2phys { | ||
| 490 | 	unsigned int l2p_flags; /* unused so far */ | ||
| 491 | 	off_t l2p_contigbytes; /* F_LOG2PHYS: unused so far */ | ||
| 492 | 	 /* F_LOG2PHYS_EXT: IN: number of bytes to be queried */ | ||
| 493 | 	 /* OUT: number of contiguous bytes at this position */ | ||
| 494 | 	off_t l2p_devoffset; /* F_LOG2PHYS: OUT: bytes into device */ | ||
| 495 | 	 /* F_LOG2PHYS_EXT: IN: bytes into file */ | ||
| 496 | 	 /* OUT: bytes into device */ | ||
| 497 | }; | ||
| 498 | |||
| 499 | #pragma pack() | ||
| 500 | |||
| 501 | #define O_POPUP 0x80000000 /* force window to popup on open */ | ||
| 502 | #define O_ALERT 0x20000000 /* small, clean popup window */ | ||
| 503 | |||
| 504 | |||
| 505 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 506 | |||
| 507 | |||
| 508 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 509 | |||
| 510 | #include <sys/_types/_filesec_t.h> | ||
| 511 | |||
| 512 | typedef enum { | ||
| 513 | 	FILESEC_OWNER = 1, | ||
| 514 | 	FILESEC_GROUP = 2, | ||
| 515 | 	FILESEC_UUID = 3, | ||
| 516 | 	FILESEC_MODE = 4, | ||
| 517 | 	FILESEC_ACL = 5, | ||
| 518 | 	FILESEC_GRPUUID = 6, | ||
| 519 | |||
| 520 | /* XXX these are private to the implementation */ | ||
| 521 | 	FILESEC_ACL_RAW = 100, | ||
| 522 | 	FILESEC_ACL_ALLOCSIZE = 101 | ||
| 523 | } filesec_property_t; | ||
| 524 | |||
| 525 | /* XXX backwards compatibility */ | ||
| 526 | #define FILESEC_GUID FILESEC_UUID | ||
| 527 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 528 | |||
| 529 | __BEGIN_DECLS | ||
| 530 | int open(const char *, int, ...) __DARWIN_ALIAS_C(open); | ||
| 531 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 532 | int openat(int, const char *, int, ...) __DARWIN_NOCANCEL(openat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 533 | #endif | ||
| 534 | int creat(const char *, mode_t) __DARWIN_ALIAS_C(creat); | ||
| 535 | int fcntl(int, int, ...) __DARWIN_ALIAS_C(fcntl); | ||
| 536 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 537 | |||
| 538 | int openx_np(const char *, int, filesec_t); | ||
| 539 | /* | ||
| 540 | * data-protected non-portable open(2) : | ||
| 541 | * int open_dprotected_np(user_addr_t path, int flags, int class, int dpflags, int mode) | ||
| 542 | */ | ||
| 543 | int open_dprotected_np( const char *, int, int, int, ...); | ||
| 544 | int flock(int, int); | ||
| 545 | filesec_t filesec_init(void); | ||
| 546 | filesec_t filesec_dup(filesec_t); | ||
| 547 | void filesec_free(filesec_t); | ||
| 548 | int filesec_get_property(filesec_t, filesec_property_t, void *); | ||
| 549 | int filesec_query_property(filesec_t, filesec_property_t, int *); | ||
| 550 | int filesec_set_property(filesec_t, filesec_property_t, const void *); | ||
| 551 | int filesec_unset_property(filesec_t, filesec_property_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); | ||
| 552 | #define _FILESEC_UNSET_PROPERTY ((void *)0) | ||
| 553 | #define _FILESEC_REMOVE_ACL ((void *)1) | ||
| 554 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 555 | __END_DECLS | ||
| 556 | |||
| 557 | #endif /* !_SYS_FCNTL_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/ioccom.h created+99| ... | @@ -0,0 +1,99 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1990, 1993, 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)ioccom.h	8.2 (Berkeley) 3/28/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _SYS_IOCCOM_H_ | ||
| 65 | #define _SYS_IOCCOM_H_ | ||
| 66 | |||
| 67 | #include <sys/_types.h> | ||
| 68 | |||
| 69 | /* | ||
| 70 | * Ioctl's have the command encoded in the lower word, and the size of | ||
| 71 | * any in or out parameters in the upper word. The high 3 bits of the | ||
| 72 | * upper word are used to encode the in/out status of the parameter. | ||
| 73 | */ | ||
| 74 | #define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */ | ||
| 75 | #define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) | ||
| 76 | #define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16)) | ||
| 77 | #define IOCGROUP(x) (((x) >> 8) & 0xff) | ||
| 78 | |||
| 79 | #define IOCPARM_MAX (IOCPARM_MASK + 1) /* max size of ioctl args */ | ||
| 80 | /* no parameters */ | ||
| 81 | #define IOC_VOID (__uint32_t)0x20000000 | ||
| 82 | /* copy parameters out */ | ||
| 83 | #define IOC_OUT (__uint32_t)0x40000000 | ||
| 84 | /* copy parameters in */ | ||
| 85 | #define IOC_IN (__uint32_t)0x80000000 | ||
| 86 | /* copy paramters in and out */ | ||
| 87 | #define IOC_INOUT (IOC_IN|IOC_OUT) | ||
| 88 | /* mask for IN/OUT/VOID */ | ||
| 89 | #define IOC_DIRMASK (__uint32_t)0xe0000000 | ||
| 90 | |||
| 91 | #define _IOC(inout, group, num, len) \ | ||
| 92 | 	(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num)) | ||
| 93 | #define _IO(g, n) _IOC(IOC_VOID,	(g), (n), 0) | ||
| 94 | #define _IOR(g, n, t) _IOC(IOC_OUT,	(g), (n), sizeof(t)) | ||
| 95 | #define _IOW(g, n, t) _IOC(IOC_IN,	(g), (n), sizeof(t)) | ||
| 96 | /* this should be _IORW, but stdio got there first */ | ||
| 97 | #define _IOWR(g, n, t) _IOC(IOC_INOUT,	(g), (n), sizeof(t)) | ||
| 98 | |||
| 99 | #endif /* !_SYS_IOCCOM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/ipc.h created+176| ... | @@ -0,0 +1,176 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1988 University of Utah. | ||
| 30 | * Copyright (c) 1990, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * This code is derived from software contributed to Berkeley by | ||
| 39 | * the Systems Programming Group of the University of Utah Computer | ||
| 40 | * Science Department. | ||
| 41 | * | ||
| 42 | * Redistribution and use in source and binary forms, with or without | ||
| 43 | * modification, are permitted provided that the following conditions | ||
| 44 | * are met: | ||
| 45 | * 1. Redistributions of source code must retain the above copyright | ||
| 46 | * notice, this list of conditions and the following disclaimer. | ||
| 47 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 48 | * notice, this list of conditions and the following disclaimer in the | ||
| 49 | * documentation and/or other materials provided with the distribution. | ||
| 50 | * 3. All advertising materials mentioning features or use of this software | ||
| 51 | * must display the following acknowledgement: | ||
| 52 | *	This product includes software developed by the University of | ||
| 53 | *	California, Berkeley and its contributors. | ||
| 54 | * 4. Neither the name of the University nor the names of its contributors | ||
| 55 | * may be used to endorse or promote products derived from this software | ||
| 56 | * without specific prior written permission. | ||
| 57 | * | ||
| 58 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 59 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 60 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 61 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 62 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 63 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 64 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 65 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 66 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 67 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 68 | * SUCH DAMAGE. | ||
| 69 | * | ||
| 70 | *	@(#)ipc.h	8.4 (Berkeley) 2/19/95 | ||
| 71 | */ | ||
| 72 | |||
| 73 | /* | ||
| 74 | * SVID compatible ipc.h file | ||
| 75 | */ | ||
| 76 | #ifndef _SYS_IPC_H_ | ||
| 77 | #define _SYS_IPC_H_ | ||
| 78 | |||
| 79 | #include <sys/appleapiopts.h> | ||
| 80 | #include <sys/cdefs.h> | ||
| 81 | |||
| 82 | #include <sys/_types.h> | ||
| 83 | |||
| 84 | /* | ||
| 85 | * [XSI] The uid_t, gid_t, mode_t, and key_t types SHALL be defined as | ||
| 86 | * described in <sys/types.h>. | ||
| 87 | */ | ||
| 88 | #include <sys/_types/_uid_t.h> | ||
| 89 | #include <sys/_types/_gid_t.h> | ||
| 90 | #include <sys/_types/_mode_t.h> | ||
| 91 | #include <sys/_types/_key_t.h> | ||
| 92 | |||
| 93 | |||
| 94 | #pragma pack(4) | ||
| 95 | |||
| 96 | /* | ||
| 97 | * Technically, we should force all code references to the new structure | ||
| 98 | * definition, not in just the standards conformance case, and leave the | ||
| 99 | * legacy interface there for binary compatibility only. Currently, we | ||
| 100 | * are only forcing this for programs requesting standards conformance. | ||
| 101 | */ | ||
| 102 | #if __DARWIN_UNIX03 || defined(KERNEL) | ||
| 103 | /* | ||
| 104 | * [XSI] Information used in determining permission to perform an IPC | ||
| 105 | * operation | ||
| 106 | */ | ||
| 107 | struct ipc_perm { | ||
| 108 | 	uid_t uid; /* [XSI] Owner's user ID */ | ||
| 109 | 	gid_t gid; /* [XSI] Owner's group ID */ | ||
| 110 | 	uid_t cuid; /* [XSI] Creator's user ID */ | ||
| 111 | 	gid_t cgid; /* [XSI] Creator's group ID */ | ||
| 112 | 	mode_t mode; /* [XSI] Read/write permission */ | ||
| 113 | 	unsigned short _seq; /* Reserved for internal use */ | ||
| 114 | 	key_t _key; /* Reserved for internal use */ | ||
| 115 | }; | ||
| 116 | #define __ipc_perm_new ipc_perm | ||
| 117 | #else /* !__DARWIN_UNIX03 */ | ||
| 118 | #define ipc_perm __ipc_perm_old | ||
| 119 | #endif /* !__DARWIN_UNIX03 */ | ||
| 120 | |||
| 121 | #if !__DARWIN_UNIX03 | ||
| 122 | /* | ||
| 123 | * Legacy structure; this structure is maintained for binary backward | ||
| 124 | * compatability with previous versions of the interface. New code | ||
| 125 | * should not use this interface, since ID values may be truncated. | ||
| 126 | */ | ||
| 127 | struct __ipc_perm_old { | ||
| 128 | 	__uint16_t cuid; /* Creator's user ID */ | ||
| 129 | 	__uint16_t cgid; /* Creator's group ID */ | ||
| 130 | 	__uint16_t uid; /* Owner's user ID */ | ||
| 131 | 	__uint16_t gid; /* Owner's group ID */ | ||
| 132 | 	mode_t mode; /* Read/Write permission */ | ||
| 133 | 	__uint16_t seq; /* Reserved for internal use */ | ||
| 134 | 	key_t key; /* Reserved for internal use */ | ||
| 135 | }; | ||
| 136 | #endif /* !__DARWIN_UNIX03 */ | ||
| 137 | |||
| 138 | #pragma pack() | ||
| 139 | |||
| 140 | /* | ||
| 141 | * [XSI] Definitions shall be provided for the following constants: | ||
| 142 | */ | ||
| 143 | |||
| 144 | /* Mode bits */ | ||
| 145 | #define IPC_CREAT 001000 /* Create entry if key does not exist */ | ||
| 146 | #define IPC_EXCL 002000 /* Fail if key exists */ | ||
| 147 | #define IPC_NOWAIT 004000 /* Error if request must wait */ | ||
| 148 | |||
| 149 | /* Keys */ | ||
| 150 | #define IPC_PRIVATE ((key_t)0) /* Private key */ | ||
| 151 | |||
| 152 | /* Control commands */ | ||
| 153 | #define IPC_RMID 0 /* Remove identifier */ | ||
| 154 | #define IPC_SET 1 /* Set options */ | ||
| 155 | #define IPC_STAT 2 /* Get options */ | ||
| 156 | |||
| 157 | |||
| 158 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 159 | |||
| 160 | /* common mode bits */ | ||
| 161 | #define IPC_R 000400 /* Read permission */ | ||
| 162 | #define IPC_W 000200 /* Write/alter permission */ | ||
| 163 | #define IPC_M 010000 /* Modify control info permission */ | ||
| 164 | |||
| 165 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 166 | |||
| 167 | |||
| 168 | |||
| 169 | |||
| 170 | __BEGIN_DECLS | ||
| 171 | /* [XSI] */ | ||
| 172 | key_t ftok(const char *, int); | ||
| 173 | __END_DECLS | ||
| 174 | |||
| 175 | |||
| 176 | #endif /* !_SYS_IPC_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/mman.h created+250| ... | @@ -0,0 +1,250 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2019 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)mman.h	8.1 (Berkeley) 6/2/93 | ||
| 62 | */ | ||
| 63 | |||
| 64 | /* | ||
| 65 | * Currently unsupported: | ||
| 66 | * | ||
| 67 | * [TYM]	POSIX_TYPED_MEM_ALLOCATE | ||
| 68 | * [TYM]	POSIX_TYPED_MEM_ALLOCATE_CONTIG | ||
| 69 | * [TYM]	POSIX_TYPED_MEM_MAP_ALLOCATABLE | ||
| 70 | * [TYM]	struct posix_typed_mem_info | ||
| 71 | * [TYM]	posix_mem_offset() | ||
| 72 | * [TYM]	posix_typed_mem_get_info() | ||
| 73 | * [TYM]	posix_typed_mem_open() | ||
| 74 | */ | ||
| 75 | |||
| 76 | #ifndef _SYS_MMAN_H_ | ||
| 77 | #define _SYS_MMAN_H_ | ||
| 78 | |||
| 79 | #include <sys/appleapiopts.h> | ||
| 80 | #include <sys/cdefs.h> | ||
| 81 | |||
| 82 | #include <sys/_types.h> | ||
| 83 | |||
| 84 | /* | ||
| 85 | * [various] The mode_t, off_t, and size_t types shall be defined as | ||
| 86 | * described in <sys/types.h> | ||
| 87 | */ | ||
| 88 | #include <sys/_types/_mode_t.h> | ||
| 89 | #include <sys/_types/_off_t.h> | ||
| 90 | #include <sys/_types/_size_t.h> | ||
| 91 | |||
| 92 | /* | ||
| 93 | * Protections are chosen from these bits, or-ed together | ||
| 94 | */ | ||
| 95 | #define PROT_NONE 0x00 /* [MC2] no permissions */ | ||
| 96 | #define PROT_READ 0x01 /* [MC2] pages can be read */ | ||
| 97 | #define PROT_WRITE 0x02 /* [MC2] pages can be written */ | ||
| 98 | #define PROT_EXEC 0x04 /* [MC2] pages can be executed */ | ||
| 99 | |||
| 100 | /* | ||
| 101 | * Flags contain sharing type and options. | ||
| 102 | * Sharing types; choose one. | ||
| 103 | */ | ||
| 104 | #define MAP_SHARED 0x0001 /* [MF|SHM] share changes */ | ||
| 105 | #define MAP_PRIVATE 0x0002 /* [MF|SHM] changes are private */ | ||
| 106 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 107 | #define MAP_COPY MAP_PRIVATE /* Obsolete */ | ||
| 108 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 109 | |||
| 110 | /* | ||
| 111 | * Other flags | ||
| 112 | */ | ||
| 113 | #define MAP_FIXED 0x0010 /* [MF|SHM] interpret addr exactly */ | ||
| 114 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 115 | #define MAP_RENAME 0x0020 /* Sun: rename private pages to file */ | ||
| 116 | #define MAP_NORESERVE 0x0040 /* Sun: don't reserve needed swap area */ | ||
| 117 | #define MAP_RESERVED0080 0x0080 /* previously unimplemented MAP_INHERIT */ | ||
| 118 | #define MAP_NOEXTEND 0x0100 /* for MAP_FILE, don't change file size */ | ||
| 119 | #define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */ | ||
| 120 | #define MAP_NOCACHE 0x0400 /* don't cache pages for this mapping */ | ||
| 121 | #define MAP_JIT 0x0800 /* Allocate a region that will be used for JIT purposes */ | ||
| 122 | |||
| 123 | /* | ||
| 124 | * Mapping type | ||
| 125 | */ | ||
| 126 | #define MAP_FILE 0x0000 /* map from file (default) */ | ||
| 127 | #define MAP_ANON 0x1000 /* allocated from memory, swap space */ | ||
| 128 | #define MAP_ANONYMOUS MAP_ANON | ||
| 129 | |||
| 130 | /* | ||
| 131 | * The MAP_RESILIENT_* flags can be used when the caller wants to map some | ||
| 132 | * possibly unreliable memory and be able to access it safely, possibly | ||
| 133 | * getting the wrong contents rather than raising any exception. | ||
| 134 | * For safety reasons, such mappings have to be read-only (PROT_READ access | ||
| 135 | * only). | ||
| 136 | * | ||
| 137 | * MAP_RESILIENT_CODESIGN: | ||
| 138 | * accessing this mapping will not generate code-signing violations, | ||
| 139 | *	even if the contents are tainted. | ||
| 140 | * MAP_RESILIENT_MEDIA: | ||
| 141 | *	accessing this mapping will not generate an exception if the contents | ||
| 142 | *	are not available (unreachable removable or remote media, access beyond | ||
| 143 | *	end-of-file, ...). Missing contents will be replaced with zeroes. | ||
| 144 | */ | ||
| 145 | #define MAP_RESILIENT_CODESIGN 0x2000 /* no code-signing failures */ | ||
| 146 | #define MAP_RESILIENT_MEDIA 0x4000 /* no backing-store failures */ | ||
| 147 | |||
| 148 | #if !defined(CONFIG_EMBEDDED) | ||
| 149 | #define MAP_32BIT 0x8000 /* Return virtual addresses <4G only: Requires entitlement */ | ||
| 150 | #endif /* !defined(CONFIG_EMBEDDED) */ | ||
| 151 | |||
| 152 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 153 | |||
| 154 | /* | ||
| 155 | * Process memory locking | ||
| 156 | */ | ||
| 157 | #define MCL_CURRENT 0x0001 /* [ML] Lock only current memory */ | ||
| 158 | #define MCL_FUTURE 0x0002 /* [ML] Lock all future memory as well */ | ||
| 159 | |||
| 160 | /* | ||
| 161 | * Error return from mmap() | ||
| 162 | */ | ||
| 163 | #define MAP_FAILED ((void *)-1) /* [MF|SHM] mmap failed */ | ||
| 164 | |||
| 165 | /* | ||
| 166 | * msync() flags | ||
| 167 | */ | ||
| 168 | #define MS_ASYNC 0x0001 /* [MF|SIO] return immediately */ | ||
| 169 | #define MS_INVALIDATE 0x0002 /* [MF|SIO] invalidate all cached data */ | ||
| 170 | #define MS_SYNC 0x0010 /* [MF|SIO] msync synchronously */ | ||
| 171 | |||
| 172 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 173 | #define MS_KILLPAGES 0x0004 /* invalidate pages, leave mapped */ | ||
| 174 | #define MS_DEACTIVATE 0x0008 /* deactivate pages, leave mapped */ | ||
| 175 | |||
| 176 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 177 | |||
| 178 | |||
| 179 | /* | ||
| 180 | * Advice to madvise | ||
| 181 | */ | ||
| 182 | #define POSIX_MADV_NORMAL 0 /* [MC1] no further special treatment */ | ||
| 183 | #define POSIX_MADV_RANDOM 1 /* [MC1] expect random page refs */ | ||
| 184 | #define POSIX_MADV_SEQUENTIAL 2 /* [MC1] expect sequential page refs */ | ||
| 185 | #define POSIX_MADV_WILLNEED 3 /* [MC1] will need these pages */ | ||
| 186 | #define POSIX_MADV_DONTNEED 4 /* [MC1] dont need these pages */ | ||
| 187 | |||
| 188 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 189 | #define MADV_NORMAL POSIX_MADV_NORMAL | ||
| 190 | #define MADV_RANDOM POSIX_MADV_RANDOM | ||
| 191 | #define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL | ||
| 192 | #define MADV_WILLNEED POSIX_MADV_WILLNEED | ||
| 193 | #define MADV_DONTNEED POSIX_MADV_DONTNEED | ||
| 194 | #define MADV_FREE 5 /* pages unneeded, discard contents */ | ||
| 195 | #define MADV_ZERO_WIRED_PAGES 6 /* zero the wired pages that have not been unwired before the entry is deleted */ | ||
| 196 | #define MADV_FREE_REUSABLE 7 /* pages can be reused (by anyone) */ | ||
| 197 | #define MADV_FREE_REUSE 8 /* caller wants to reuse those pages */ | ||
| 198 | #define MADV_CAN_REUSE 9 | ||
| 199 | #define MADV_PAGEOUT 10 /* page out now (internal only) */ | ||
| 200 | |||
| 201 | /* | ||
| 202 | * Return bits from mincore | ||
| 203 | */ | ||
| 204 | #define MINCORE_INCORE 0x1 /* Page is incore */ | ||
| 205 | #define MINCORE_REFERENCED 0x2 /* Page has been referenced by us */ | ||
| 206 | #define MINCORE_MODIFIED 0x4 /* Page has been modified by us */ | ||
| 207 | #define MINCORE_REFERENCED_OTHER 0x8 /* Page has been referenced */ | ||
| 208 | #define MINCORE_MODIFIED_OTHER 0x10 /* Page has been modified */ | ||
| 209 | #define MINCORE_PAGED_OUT 0x20 /* Page has been paged out */ | ||
| 210 | #define MINCORE_COPIED 0x40 /* Page has been copied */ | ||
| 211 | #define MINCORE_ANONYMOUS 0x80 /* Page belongs to an anonymous object */ | ||
| 212 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 213 | |||
| 214 | |||
| 215 | |||
| 216 | __BEGIN_DECLS | ||
| 217 | /* [ML] */ | ||
| 218 | int mlockall(int); | ||
| 219 | int munlockall(void); | ||
| 220 | /* [MR] */ | ||
| 221 | int mlock(const void *, size_t); | ||
| 222 | #ifndef _MMAP | ||
| 223 | #define _MMAP | ||
| 224 | /* [MC3]*/ | ||
| 225 | void * mmap(void *, size_t, int, int, int, off_t) __DARWIN_ALIAS(mmap); | ||
| 226 | #endif | ||
| 227 | /* [MPR] */ | ||
| 228 | int mprotect(void *, size_t, int) __DARWIN_ALIAS(mprotect); | ||
| 229 | /* [MF|SIO] */ | ||
| 230 | int msync(void *, size_t, int) __DARWIN_ALIAS_C(msync); | ||
| 231 | /* [MR] */ | ||
| 232 | int munlock(const void *, size_t); | ||
| 233 | /* [MC3]*/ | ||
| 234 | int munmap(void *, size_t) __DARWIN_ALIAS(munmap); | ||
| 235 | /* [SHM] */ | ||
| 236 | int shm_open(const char *, int, ...); | ||
| 237 | int shm_unlink(const char *); | ||
| 238 | /* [ADV] */ | ||
| 239 | int posix_madvise(void *, size_t, int); | ||
| 240 | |||
| 241 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 242 | int madvise(void *, size_t, int); | ||
| 243 | int mincore(const void *, size_t, char *); | ||
| 244 | int minherit(void *, size_t, int); | ||
| 245 | #endif | ||
| 246 | |||
| 247 | |||
| 248 | __END_DECLS | ||
| 249 | |||
| 250 | #endif /* !_SYS_MMAN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/msg.h created+225| ... | @@ -0,0 +1,225 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*	$NetBSD: msg.h,v 1.4 1994/06/29 06:44:43 cgd Exp $	*/ | ||
| 29 | |||
| 30 | /* | ||
| 31 | * SVID compatible msg.h file | ||
| 32 | * | ||
| 33 | * Author: Daniel Boulet | ||
| 34 | * | ||
| 35 | * Copyright 1993 Daniel Boulet and RTMX Inc. | ||
| 36 | * | ||
| 37 | * This system call was implemented by Daniel Boulet under contract from RTMX. | ||
| 38 | * | ||
| 39 | * Redistribution and use in source forms, with and without modification, | ||
| 40 | * are permitted provided that this entire comment appears intact. | ||
| 41 | * | ||
| 42 | * Redistribution in binary form may occur without any restrictions. | ||
| 43 | * Obviously, it would be nice if you gave credit where credit is due | ||
| 44 | * but requiring it would be too onerous. | ||
| 45 | * | ||
| 46 | * This software is provided ``AS IS'' without any warranties of any kind. | ||
| 47 | */ | ||
| 48 | /* | ||
| 49 | * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce | ||
| 50 | * support for mandatory and extensible security protections. This notice | ||
| 51 | * is included in support of clause 2.2 (b) of the Apple Public License, | ||
| 52 | * Version 2.0. | ||
| 53 | */ | ||
| 54 | |||
| 55 | #ifndef _SYS_MSG_H_ | ||
| 56 | #define _SYS_MSG_H_ | ||
| 57 | |||
| 58 | #include <sys/appleapiopts.h> | ||
| 59 | |||
| 60 | #include <sys/_types.h> | ||
| 61 | #include <sys/cdefs.h> | ||
| 62 | |||
| 63 | /* | ||
| 64 | * [XSI] All of the symbols from <sys/ipc.h> SHALL be defined when this | ||
| 65 | * header is included | ||
| 66 | */ | ||
| 67 | #include <sys/ipc.h> | ||
| 68 | |||
| 69 | |||
| 70 | /* | ||
| 71 | * [XSI] The pid_t, time_t, key_t, size_t, and ssize_t types shall be | ||
| 72 | * defined as described in <sys/types.h>. | ||
| 73 | * | ||
| 74 | * NOTE:	The definition of the key_t type is implicit from the | ||
| 75 | *		inclusion of <sys/ipc.h> | ||
| 76 | */ | ||
| 77 | #include <sys/_types/_pid_t.h> | ||
| 78 | #include <sys/_types/_time_t.h> | ||
| 79 | #include <sys/_types/_size_t.h> | ||
| 80 | #include <sys/_types/_ssize_t.h> | ||
| 81 | |||
| 82 | /* [XSI] Used for the number of messages in the message queue */ | ||
| 83 | typedef unsigned long msgqnum_t; | ||
| 84 | |||
| 85 | /* [XSI] Used for the number of bytes allowed in a message queue */ | ||
| 86 | typedef unsigned long msglen_t; | ||
| 87 | |||
| 88 | /* | ||
| 89 | * Possible values for the fifth parameter to msgrcv(), in addition to the | ||
| 90 | * IPC_NOWAIT flag, which is permitted. | ||
| 91 | */ | ||
| 92 | #define MSG_NOERROR 010000 /* [XSI] No error if big message */ | ||
| 93 | |||
| 94 | |||
| 95 | /* | ||
| 96 | * Technically, we should force all code references to the new structure | ||
| 97 | * definition, not in just the standards conformance case, and leave the | ||
| 98 | * legacy interface there for binary compatibility only. Currently, we | ||
| 99 | * are only forcing this for programs requesting standards conformance. | ||
| 100 | */ | ||
| 101 | #if __DARWIN_UNIX03 || defined(KERNEL) | ||
| 102 | #pragma pack(4) | ||
| 103 | /* | ||
| 104 | * Structure used internally. | ||
| 105 | * | ||
| 106 | * Structure whose address is passed as the third parameter to msgctl() | ||
| 107 | * when the second parameter is IPC_SET or IPC_STAT. In the case of the | ||
| 108 | * IPC_SET command, only the msg_perm.{uid|gid|perm} and msg_qbytes are | ||
| 109 | * honored. In the case of IPC_STAT, only the fields indicated as [XSI] | ||
| 110 | * mandated fields are guaranteed to meaningful: DO NOT depend on the | ||
| 111 | * contents of the other fields. | ||
| 112 | * | ||
| 113 | * NOTES:	Reserved fields are not preserved across IPC_SET/IPC_STAT. | ||
| 114 | */ | ||
| 115 | #if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE)) | ||
| 116 | struct msqid_ds | ||
| 117 | #else | ||
| 118 | #define msqid_ds __msqid_ds_new | ||
| 119 | struct __msqid_ds_new | ||
| 120 | #endif | ||
| 121 | { | ||
| 122 | 	struct __ipc_perm_new msg_perm; /* [XSI] msg queue permissions */ | ||
| 123 | 	__int32_t msg_first; /* RESERVED: kernel use only */ | ||
| 124 | 	__int32_t msg_last; /* RESERVED: kernel use only */ | ||
| 125 | 	msglen_t msg_cbytes; /* # of bytes on the queue */ | ||
| 126 | 	msgqnum_t msg_qnum; /* [XSI] number of msgs on the queue */ | ||
| 127 | 	msglen_t msg_qbytes; /* [XSI] max bytes on the queue */ | ||
| 128 | 	pid_t msg_lspid; /* [XSI] pid of last msgsnd() */ | ||
| 129 | 	pid_t msg_lrpid; /* [XSI] pid of last msgrcv() */ | ||
| 130 | 	time_t msg_stime; /* [XSI] time of last msgsnd() */ | ||
| 131 | 	__int32_t msg_pad1; /* RESERVED: DO NOT USE */ | ||
| 132 | 	time_t msg_rtime; /* [XSI] time of last msgrcv() */ | ||
| 133 | 	__int32_t msg_pad2; /* RESERVED: DO NOT USE */ | ||
| 134 | 	time_t msg_ctime; /* [XSI] time of last msgctl() */ | ||
| 135 | 	__int32_t msg_pad3; /* RESERVED: DO NOT USE */ | ||
| 136 | 	__int32_t msg_pad4[4]; /* RESERVED: DO NOT USE */ | ||
| 137 | }; | ||
| 138 | #pragma pack() | ||
| 139 | #else /* !__DARWIN_UNIX03 */ | ||
| 140 | #define msqid_ds __msqid_ds_old | ||
| 141 | #endif /* !__DARWIN_UNIX03 */ | ||
| 142 | |||
| 143 | #if !__DARWIN_UNIX03 | ||
| 144 | struct __msqid_ds_old { | ||
| 145 | 	struct __ipc_perm_old msg_perm; /* [XSI] msg queue permissions */ | ||
| 146 | 	__int32_t msg_first; /* RESERVED: kernel use only */ | ||
| 147 | 	__int32_t msg_last; /* RESERVED: kernel use only */ | ||
| 148 | 	msglen_t msg_cbytes; /* # of bytes on the queue */ | ||
| 149 | 	msgqnum_t msg_qnum; /* [XSI] number of msgs on the queue */ | ||
| 150 | 	msglen_t msg_qbytes; /* [XSI] max bytes on the queue */ | ||
| 151 | 	pid_t msg_lspid; /* [XSI] pid of last msgsnd() */ | ||
| 152 | 	pid_t msg_lrpid; /* [XSI] pid of last msgrcv() */ | ||
| 153 | 	time_t msg_stime; /* [XSI] time of last msgsnd() */ | ||
| 154 | 	__int32_t msg_pad1; /* RESERVED: DO NOT USE */ | ||
| 155 | 	time_t msg_rtime; /* [XSI] time of last msgrcv() */ | ||
| 156 | 	__int32_t msg_pad2; /* RESERVED: DO NOT USE */ | ||
| 157 | 	time_t msg_ctime; /* [XSI] time of last msgctl() */ | ||
| 158 | 	__int32_t msg_pad3; /* RESERVED: DO NOT USE */ | ||
| 159 | 	__int32_t msg_pad4[4]; /* RESERVED: DO NOT USE */ | ||
| 160 | }; | ||
| 161 | #endif /* !__DARWIN_UNIX03 */ | ||
| 162 | |||
| 163 | |||
| 164 | |||
| 165 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 166 | #ifdef __APPLE_API_UNSTABLE | ||
| 167 | /* XXX kernel only; protect with macro later */ | ||
| 168 | |||
| 169 | struct msg { | ||
| 170 | 	struct msg *msg_next; /* next msg in the chain */ | ||
| 171 | 	long msg_type; /* type of this message */ | ||
| 172 | 	 /* >0 -> type of this message */ | ||
| 173 | 	 /* 0 -> free header */ | ||
| 174 | 	unsigned short msg_ts; /* size of this message */ | ||
| 175 | 	short msg_spot; /* location of msg start in buffer */ | ||
| 176 | 	struct label *label; /* MAC label */ | ||
| 177 | }; | ||
| 178 | |||
| 179 | /* | ||
| 180 | * Example structure describing a message whose address is to be passed as | ||
| 181 | * the second argument to the functions msgrcv() and msgsnd(). The only | ||
| 182 | * actual hard requirement is that the first field be of type long, and | ||
| 183 | * contain the message type. The user is encouraged to define their own | ||
| 184 | * application specific structure; this definition is included solely for | ||
| 185 | * backward compatability with existing source code. | ||
| 186 | */ | ||
| 187 | struct mymsg { | ||
| 188 | 	long mtype; /* message type (+ve integer) */ | ||
| 189 | 	char mtext[1]; /* message body */ | ||
| 190 | }; | ||
| 191 | |||
| 192 | /* | ||
| 193 | * Based on the configuration parameters described in an SVR2 (yes, two) | ||
| 194 | * config(1m) man page. | ||
| 195 | * | ||
| 196 | * Each message is broken up and stored in segments that are msgssz bytes | ||
| 197 | * long. For efficiency reasons, this should be a power of two. Also, | ||
| 198 | * it doesn't make sense if it is less than 8 or greater than about 256. | ||
| 199 | * Consequently, msginit in kern/sysv_msg.c checks that msgssz is a power of | ||
| 200 | * two between 8 and 1024 inclusive (and panic's if it isn't). | ||
| 201 | */ | ||
| 202 | struct msginfo { | ||
| 203 | 	int msgmax, /* max chars in a message */ | ||
| 204 | 	 msgmni, /* max message queue identifiers */ | ||
| 205 | 	 msgmnb, /* max chars in a queue */ | ||
| 206 | 	 msgtql, /* max messages in system */ | ||
| 207 | 	 msgssz, /* size of a message segment (see notes above) */ | ||
| 208 | 	 msgseg; /* number of message segments */ | ||
| 209 | }; | ||
| 210 | #endif /* __APPLE_API_UNSTABLE */ | ||
| 211 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 212 | |||
| 213 | |||
| 214 | __BEGIN_DECLS | ||
| 215 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 216 | int msgsys(int, ...); | ||
| 217 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 218 | int msgctl(int, int, struct msqid_ds *) __DARWIN_ALIAS(msgctl); | ||
| 219 | int msgget(key_t, int); | ||
| 220 | ssize_t msgrcv(int, void *, size_t, long, int) __DARWIN_ALIAS_C(msgrcv); | ||
| 221 | int msgsnd(int, const void *, size_t, int) __DARWIN_ALIAS_C(msgsnd); | ||
| 222 | __END_DECLS | ||
| 223 | |||
| 224 | |||
| 225 | #endif /* !_SYS_MSG_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/poll.h created+118| ... | @@ -0,0 +1,118 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*- | ||
| 29 | * Copyright (c) 1997 Peter Wemm <peter@freebsd.org> | ||
| 30 | * All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. The name of the author may not be used to endorse or promote products | ||
| 41 | * derived from this software without specific prior written permission. | ||
| 42 | * | ||
| 43 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 44 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 45 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 46 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 47 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 48 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 49 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 50 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 51 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 52 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 53 | * SUCH DAMAGE. | ||
| 54 | * | ||
| 55 | */ | ||
| 56 | |||
| 57 | #ifndef _SYS_POLL_H_ | ||
| 58 | #define _SYS_POLL_H_ | ||
| 59 | |||
| 60 | /* | ||
| 61 | * This file is intended to be compatible with the traditional poll.h. | ||
| 62 | */ | ||
| 63 | |||
| 64 | /* | ||
| 65 | * Requestable events. If poll(2) finds any of these set, they are | ||
| 66 | * copied to revents on return. | ||
| 67 | */ | ||
| 68 | #define POLLIN 0x0001 /* any readable data available */ | ||
| 69 | #define POLLPRI 0x0002 /* OOB/Urgent readable data */ | ||
| 70 | #define POLLOUT 0x0004 /* file descriptor is writeable */ | ||
| 71 | #define POLLRDNORM 0x0040 /* non-OOB/URG data available */ | ||
| 72 | #define POLLWRNORM POLLOUT /* no write type differentiation */ | ||
| 73 | #define POLLRDBAND 0x0080 /* OOB/Urgent readable data */ | ||
| 74 | #define POLLWRBAND 0x0100 /* OOB/Urgent data can be written */ | ||
| 75 | |||
| 76 | /* | ||
| 77 | * FreeBSD extensions: polling on a regular file might return one | ||
| 78 | * of these events (currently only supported on local filesystems). | ||
| 79 | */ | ||
| 80 | #define POLLEXTEND 0x0200 /* file may have been extended */ | ||
| 81 | #define POLLATTRIB 0x0400 /* file attributes may have changed */ | ||
| 82 | #define POLLNLINK 0x0800 /* (un)link/rename may have happened */ | ||
| 83 | #define POLLWRITE 0x1000 /* file's contents may have changed */ | ||
| 84 | |||
| 85 | /* | ||
| 86 | * These events are set if they occur regardless of whether they were | ||
| 87 | * requested. | ||
| 88 | */ | ||
| 89 | #define POLLERR 0x0008 /* some poll error occurred */ | ||
| 90 | #define POLLHUP 0x0010 /* file descriptor was "hung up" */ | ||
| 91 | #define POLLNVAL 0x0020 /* requested events "invalid" */ | ||
| 92 | |||
| 93 | #define POLLSTANDARD (POLLIN|POLLPRI|POLLOUT|POLLRDNORM|POLLRDBAND|\ | ||
| 94 | 	 POLLWRBAND|POLLERR|POLLHUP|POLLNVAL) | ||
| 95 | |||
| 96 | struct pollfd { | ||
| 97 | 	int fd; | ||
| 98 | 	short events; | ||
| 99 | 	short revents; | ||
| 100 | }; | ||
| 101 | |||
| 102 | typedef unsigned int nfds_t; | ||
| 103 | |||
| 104 | |||
| 105 | #include <sys/cdefs.h> | ||
| 106 | |||
| 107 | __BEGIN_DECLS | ||
| 108 | |||
| 109 | /* | ||
| 110 | * This is defined here (instead of <poll.h>) because this is where | ||
| 111 | * traditional SVR4 code will look to find it. | ||
| 112 | */ | ||
| 113 | extern int poll(struct pollfd *, nfds_t, int) __DARWIN_ALIAS_C(poll); | ||
| 114 | |||
| 115 | __END_DECLS | ||
| 116 | |||
| 117 | |||
| 118 | #endif /* !_SYS_POLL_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/qos.h created+200| ... | @@ -0,0 +1,200 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2013-2014 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _SYS_QOS_H | ||
| 25 | #define _SYS_QOS_H | ||
| 26 | |||
| 27 | #include <sys/cdefs.h> | ||
| 28 | #include <Availability.h> | ||
| 29 | |||
| 30 | /*! | ||
| 31 | * @typedef qos_class_t | ||
| 32 | * | ||
| 33 | * @abstract | ||
| 34 | * An abstract thread quality of service (QOS) classification. | ||
| 35 | * | ||
| 36 | * @discussion | ||
| 37 | * Thread quality of service (QOS) classes are ordered abstract representations | ||
| 38 | * of the nature of work that is expected to be performed by a pthread, dispatch | ||
| 39 | * queue, or NSOperation. Each class specifies a maximum thread scheduling | ||
| 40 | * priority for that band (which may be used in combination with a relative | ||
| 41 | * priority offset within the band), as well as quality of service | ||
| 42 | * characteristics for timer latency, CPU throughput, I/O throughput, network | ||
| 43 | * socket traffic management behavior and more. | ||
| 44 | * | ||
| 45 | * A best effort is made to allocate available system resources to every QOS | ||
| 46 | * class. Quality of service degredation only occurs during system resource | ||
| 47 | * contention, proportionally to the QOS class. That said, QOS classes | ||
| 48 | * representing user-initiated work attempt to achieve peak throughput while | ||
| 49 | * QOS classes for other work attempt to achieve peak energy and thermal | ||
| 50 | * efficiency, even in the absence of contention. Finally, the use of QOS | ||
| 51 | * classes does not allow threads to supersede any limits that may be applied | ||
| 52 | * to the overall process. | ||
| 53 | */ | ||
| 54 | |||
| 55 | /*! | ||
| 56 | * @constant QOS_CLASS_USER_INTERACTIVE | ||
| 57 | * @abstract A QOS class which indicates work performed by this thread | ||
| 58 | * is interactive with the user. | ||
| 59 | * @discussion Such work is requested to run at high priority relative to other | ||
| 60 | * work on the system. Specifying this QOS class is a request to run with | ||
| 61 | * nearly all available system CPU and I/O bandwidth even under contention. | ||
| 62 | * This is not an energy-efficient QOS class to use for large tasks. The use of | ||
| 63 | * this QOS class should be limited to critical interaction with the user such | ||
| 64 | * as handling events on the main event loop, view drawing, animation, etc. | ||
| 65 | * | ||
| 66 | * @constant QOS_CLASS_USER_INITIATED | ||
| 67 | * @abstract A QOS class which indicates work performed by this thread | ||
| 68 | * was initiated by the user and that the user is likely waiting for the | ||
| 69 | * results. | ||
| 70 | * @discussion Such work is requested to run at a priority below critical user- | ||
| 71 | * interactive work, but relatively higher than other work on the system. This | ||
| 72 | * is not an energy-efficient QOS class to use for large tasks. Its use | ||
| 73 | * should be limited to operations of short enough duration that the user is | ||
| 74 | * unlikely to switch tasks while waiting for the results. Typical | ||
| 75 | * user-initiated work will have progress indicated by the display of | ||
| 76 | * placeholder content or modal user interface. | ||
| 77 | * | ||
| 78 | * @constant QOS_CLASS_DEFAULT | ||
| 79 | * @abstract A default QOS class used by the system in cases where more specific | ||
| 80 | * QOS class information is not available. | ||
| 81 | * @discussion Such work is requested to run at a priority below critical user- | ||
| 82 | * interactive and user-initiated work, but relatively higher than utility and | ||
| 83 | * background tasks. Threads created by pthread_create() without an attribute | ||
| 84 | * specifying a QOS class will default to QOS_CLASS_DEFAULT. This QOS class | ||
| 85 | * value is not intended to be used as a work classification, it should only be | ||
| 86 | * set when propagating or restoring QOS class values provided by the system. | ||
| 87 | * | ||
| 88 | * @constant QOS_CLASS_UTILITY | ||
| 89 | * @abstract A QOS class which indicates work performed by this thread | ||
| 90 | * may or may not be initiated by the user and that the user is unlikely to be | ||
| 91 | * immediately waiting for the results. | ||
| 92 | * @discussion Such work is requested to run at a priority below critical user- | ||
| 93 | * interactive and user-initiated work, but relatively higher than low-level | ||
| 94 | * system maintenance tasks. The use of this QOS class indicates the work | ||
| 95 | * should be run in an energy and thermally-efficient manner. The progress of | ||
| 96 | * utility work may or may not be indicated to the user, but the effect of such | ||
| 97 | * work is user-visible. | ||
| 98 | * | ||
| 99 | * @constant QOS_CLASS_BACKGROUND | ||
| 100 | * @abstract A QOS class which indicates work performed by this thread was not | ||
| 101 | * initiated by the user and that the user may be unaware of the results. | ||
| 102 | * @discussion Such work is requested to run at a priority below other work. | ||
| 103 | * The use of this QOS class indicates the work should be run in the most energy | ||
| 104 | * and thermally-efficient manner. | ||
| 105 | * | ||
| 106 | * @constant QOS_CLASS_UNSPECIFIED | ||
| 107 | * @abstract A QOS class value which indicates the absence or removal of QOS | ||
| 108 | * class information. | ||
| 109 | * @discussion As an API return value, may indicate that threads or pthread | ||
| 110 | * attributes were configured with legacy API incompatible or in conflict with | ||
| 111 | * the QOS class system. | ||
| 112 | */ | ||
| 113 | |||
| 114 | #define __QOS_ENUM(name, type, ...) enum { __VA_ARGS__ }; typedef type name##_t | ||
| 115 | #define __QOS_CLASS_AVAILABLE(...) | ||
| 116 | |||
| 117 | #if defined(__cplusplus) || defined(__OBJC__) || __LP64__ | ||
| 118 | #if defined(__has_feature) && defined(__has_extension) | ||
| 119 | #if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) | ||
| 120 | #undef __QOS_ENUM | ||
| 121 | #define __QOS_ENUM(name, type, ...) typedef enum : type { __VA_ARGS__ } name##_t | ||
| 122 | #endif | ||
| 123 | #endif | ||
| 124 | #if __has_feature(enumerator_attributes) | ||
| 125 | #undef __QOS_CLASS_AVAILABLE | ||
| 126 | #define __QOS_CLASS_AVAILABLE __API_AVAILABLE | ||
| 127 | #endif | ||
| 128 | #endif | ||
| 129 | |||
| 130 | __QOS_ENUM(qos_class, unsigned int, | ||
| 131 | 	QOS_CLASS_USER_INTERACTIVE | ||
| 132 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x21, | ||
| 133 | 	QOS_CLASS_USER_INITIATED | ||
| 134 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x19, | ||
| 135 | 	QOS_CLASS_DEFAULT | ||
| 136 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x15, | ||
| 137 | 	QOS_CLASS_UTILITY | ||
| 138 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x11, | ||
| 139 | 	QOS_CLASS_BACKGROUND | ||
| 140 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x09, | ||
| 141 | 	QOS_CLASS_UNSPECIFIED | ||
| 142 | 			__QOS_CLASS_AVAILABLE(macos(10.10), ios(8.0)) = 0x00, | ||
| 143 | ); | ||
| 144 | |||
| 145 | #undef __QOS_ENUM | ||
| 146 | |||
| 147 | /*! | ||
| 148 | * @constant QOS_MIN_RELATIVE_PRIORITY | ||
| 149 | * @abstract The minimum relative priority that may be specified within a | ||
| 150 | * QOS class. These priorities are relative only within a given QOS class | ||
| 151 | * and meaningful only for the current process. | ||
| 152 | */ | ||
| 153 | #define QOS_MIN_RELATIVE_PRIORITY (-15) | ||
| 154 | |||
| 155 | /* Userspace (only) definitions */ | ||
| 156 | |||
| 157 | #ifndef KERNEL | ||
| 158 | |||
| 159 | __BEGIN_DECLS | ||
| 160 | |||
| 161 | /*! | ||
| 162 | * @function qos_class_self | ||
| 163 | * | ||
| 164 | * @abstract | ||
| 165 | * Returns the requested QOS class of the current thread. | ||
| 166 | * | ||
| 167 | * @return | ||
| 168 | * One of the QOS class values in qos_class_t. | ||
| 169 | */ | ||
| 170 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 171 | qos_class_t | ||
| 172 | qos_class_self(void); | ||
| 173 | |||
| 174 | /*! | ||
| 175 | * @function qos_class_main | ||
| 176 | * | ||
| 177 | * @abstract | ||
| 178 | * Returns the initial requested QOS class of the main thread. | ||
| 179 | * | ||
| 180 | * @discussion | ||
| 181 | * The QOS class that the main thread of a process is created with depends on | ||
| 182 | * the type of process (e.g. application or daemon) and on how it has been | ||
| 183 | * launched. | ||
| 184 | * | ||
| 185 | * This function returns that initial requested QOS class value chosen by the | ||
| 186 | * system to enable propagation of that classification to matching work not | ||
| 187 | * executing on the main thread. | ||
| 188 | * | ||
| 189 | * @return | ||
| 190 | * One of the QOS class values in qos_class_t. | ||
| 191 | */ | ||
| 192 | __API_AVAILABLE(macos(10.10), ios(8.0)) | ||
| 193 | qos_class_t | ||
| 194 | qos_class_main(void); | ||
| 195 | |||
| 196 | __END_DECLS | ||
| 197 | |||
| 198 | #endif // KERNEL | ||
| 199 | |||
| 200 | #endif // _SYS_QOS_H | ||
lib/libc/include/x86_64-macos-gnu/sys/queue.h created+909| ... | @@ -0,0 +1,909 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*- | ||
| 29 | * Copyright (c) 1991, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 4. Neither the name of the University nor the names of its contributors | ||
| 41 | * may be used to endorse or promote products derived from this software | ||
| 42 | * without specific prior written permission. | ||
| 43 | * | ||
| 44 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 45 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 46 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 47 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 48 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 49 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 50 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 51 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 52 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 53 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 54 | * SUCH DAMAGE. | ||
| 55 | * | ||
| 56 | *	@(#)queue.h	8.5 (Berkeley) 8/20/94 | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef _SYS_QUEUE_H_ | ||
| 60 | #define _SYS_QUEUE_H_ | ||
| 61 | |||
| 62 | #ifndef __improbable | ||
| 63 | #define __improbable(x) (x) /* noop in userspace */ | ||
| 64 | #endif /* __improbable */ | ||
| 65 | |||
| 66 | /* | ||
| 67 | * This file defines five types of data structures: singly-linked lists, | ||
| 68 | * singly-linked tail queues, lists, tail queues, and circular queues. | ||
| 69 | * | ||
| 70 | * A singly-linked list is headed by a single forward pointer. The elements | ||
| 71 | * are singly linked for minimum space and pointer manipulation overhead at | ||
| 72 | * the expense of O(n) removal for arbitrary elements. New elements can be | ||
| 73 | * added to the list after an existing element or at the head of the list. | ||
| 74 | * Elements being removed from the head of the list should use the explicit | ||
| 75 | * macro for this purpose for optimum efficiency. A singly-linked list may | ||
| 76 | * only be traversed in the forward direction. Singly-linked lists are ideal | ||
| 77 | * for applications with large datasets and few or no removals or for | ||
| 78 | * implementing a LIFO queue. | ||
| 79 | * | ||
| 80 | * A singly-linked tail queue is headed by a pair of pointers, one to the | ||
| 81 | * head of the list and the other to the tail of the list. The elements are | ||
| 82 | * singly linked for minimum space and pointer manipulation overhead at the | ||
| 83 | * expense of O(n) removal for arbitrary elements. New elements can be added | ||
| 84 | * to the list after an existing element, at the head of the list, or at the | ||
| 85 | * end of the list. Elements being removed from the head of the tail queue | ||
| 86 | * should use the explicit macro for this purpose for optimum efficiency. | ||
| 87 | * A singly-linked tail queue may only be traversed in the forward direction. | ||
| 88 | * Singly-linked tail queues are ideal for applications with large datasets | ||
| 89 | * and few or no removals or for implementing a FIFO queue. | ||
| 90 | * | ||
| 91 | * A list is headed by a single forward pointer (or an array of forward | ||
| 92 | * pointers for a hash table header). The elements are doubly linked | ||
| 93 | * so that an arbitrary element can be removed without a need to | ||
| 94 | * traverse the list. New elements can be added to the list before | ||
| 95 | * or after an existing element or at the head of the list. A list | ||
| 96 | * may only be traversed in the forward direction. | ||
| 97 | * | ||
| 98 | * A tail queue is headed by a pair of pointers, one to the head of the | ||
| 99 | * list and the other to the tail of the list. The elements are doubly | ||
| 100 | * linked so that an arbitrary element can be removed without a need to | ||
| 101 | * traverse the list. New elements can be added to the list before or | ||
| 102 | * after an existing element, at the head of the list, or at the end of | ||
| 103 | * the list. A tail queue may be traversed in either direction. | ||
| 104 | * | ||
| 105 | * A circle queue is headed by a pair of pointers, one to the head of the | ||
| 106 | * list and the other to the tail of the list. The elements are doubly | ||
| 107 | * linked so that an arbitrary element can be removed without a need to | ||
| 108 | * traverse the list. New elements can be added to the list before or after | ||
| 109 | * an existing element, at the head of the list, or at the end of the list. | ||
| 110 | * A circle queue may be traversed in either direction, but has a more | ||
| 111 | * complex end of list detection. | ||
| 112 | * Note that circle queues are deprecated, because, as the removal log | ||
| 113 | * in FreeBSD states, "CIRCLEQs are a disgrace to everything Knuth taught | ||
| 114 | * us in Volume 1 Chapter 2. [...] Use TAILQ instead, it provides the same | ||
| 115 | * functionality." Code using them will continue to compile, but they | ||
| 116 | * are no longer documented on the man page. | ||
| 117 | * | ||
| 118 | * For details on the use of these macros, see the queue(3) manual page. | ||
| 119 | * | ||
| 120 | * | ||
| 121 | *				SLIST	LIST	STAILQ	TAILQ	CIRCLEQ | ||
| 122 | * _HEAD			+	+	+	+	+ | ||
| 123 | * _HEAD_INITIALIZER		+	+	+	+	- | ||
| 124 | * _ENTRY			+	+	+	+	+ | ||
| 125 | * _INIT			+	+	+	+	+ | ||
| 126 | * _EMPTY			+	+	+	+	+ | ||
| 127 | * _FIRST			+	+	+	+	+ | ||
| 128 | * _NEXT			+	+	+	+	+ | ||
| 129 | * _PREV			-	-	-	+	+ | ||
| 130 | * _LAST			-	-	+	+	+ | ||
| 131 | * _FOREACH			+	+	+	+	+ | ||
| 132 | * _FOREACH_SAFE		+	+	+	+	- | ||
| 133 | * _FOREACH_REVERSE		-	-	-	+	- | ||
| 134 | * _FOREACH_REVERSE_SAFE	-	-	-	+	- | ||
| 135 | * _INSERT_HEAD			+	+	+	+	+ | ||
| 136 | * _INSERT_BEFORE		-	+	-	+	+ | ||
| 137 | * _INSERT_AFTER		+	+	+	+	+ | ||
| 138 | * _INSERT_TAIL			-	-	+	+	+ | ||
| 139 | * _CONCAT			-	-	+	+	- | ||
| 140 | * _REMOVE_AFTER		+	-	+	-	- | ||
| 141 | * _REMOVE_HEAD			+	-	+	-	- | ||
| 142 | * _REMOVE_HEAD_UNTIL		-	-	+	-	- | ||
| 143 | * _REMOVE			+	+	+	+	+ | ||
| 144 | * _SWAP			-	+	+	+	- | ||
| 145 | * | ||
| 146 | */ | ||
| 147 | #ifdef QUEUE_MACRO_DEBUG | ||
| 148 | /* Store the last 2 places the queue element or head was altered */ | ||
| 149 | struct qm_trace { | ||
| 150 | 	char * lastfile; | ||
| 151 | 	int lastline; | ||
| 152 | 	char * prevfile; | ||
| 153 | 	int prevline; | ||
| 154 | }; | ||
| 155 | |||
| 156 | #define TRACEBUF struct qm_trace trace; | ||
| 157 | #define TRASHIT(x) do {(x) = (void *)-1;} while (0) | ||
| 158 | |||
| 159 | #define QMD_TRACE_HEAD(head) do { \ | ||
| 160 | 	(head)->trace.prevline = (head)->trace.lastline; \ | ||
| 161 | 	(head)->trace.prevfile = (head)->trace.lastfile; \ | ||
| 162 | 	(head)->trace.lastline = __LINE__; \ | ||
| 163 | 	(head)->trace.lastfile = __FILE__; \ | ||
| 164 | } while (0) | ||
| 165 | |||
| 166 | #define QMD_TRACE_ELEM(elem) do { \ | ||
| 167 | 	(elem)->trace.prevline = (elem)->trace.lastline; \ | ||
| 168 | 	(elem)->trace.prevfile = (elem)->trace.lastfile; \ | ||
| 169 | 	(elem)->trace.lastline = __LINE__; \ | ||
| 170 | 	(elem)->trace.lastfile = __FILE__; \ | ||
| 171 | } while (0) | ||
| 172 | |||
| 173 | #else | ||
| 174 | #define QMD_TRACE_ELEM(elem) | ||
| 175 | #define QMD_TRACE_HEAD(head) | ||
| 176 | #define TRACEBUF | ||
| 177 | #define TRASHIT(x) | ||
| 178 | #endif /* QUEUE_MACRO_DEBUG */ | ||
| 179 | |||
| 180 | /* | ||
| 181 | * Horrible macros to enable use of code that was meant to be C-specific | ||
| 182 | * (and which push struct onto type) in C++; without these, C++ code | ||
| 183 | * that uses these macros in the context of a class will blow up | ||
| 184 | * due to "struct" being preprended to "type" by the macros, causing | ||
| 185 | * inconsistent use of tags. | ||
| 186 | * | ||
| 187 | * This approach is necessary because these are macros; we have to use | ||
| 188 | * these on a per-macro basis (because the queues are implemented as | ||
| 189 | * macros, disabling this warning in the scope of the header file is | ||
| 190 | * insufficient), whuch means we can't use #pragma, and have to use | ||
| 191 | * _Pragma. We only need to use these for the queue macros that | ||
| 192 | * prepend "struct" to "type" and will cause C++ to blow up. | ||
| 193 | */ | ||
| 194 | #if defined(__clang__) && defined(__cplusplus) | ||
| 195 | #define __MISMATCH_TAGS_PUSH \ | ||
| 196 | 	_Pragma("clang diagnostic push") \ | ||
| 197 | 	_Pragma("clang diagnostic ignored \"-Wmismatched-tags\"") | ||
| 198 | #define __MISMATCH_TAGS_POP \ | ||
| 199 | 	_Pragma("clang diagnostic pop") | ||
| 200 | #else | ||
| 201 | #define __MISMATCH_TAGS_PUSH | ||
| 202 | #define __MISMATCH_TAGS_POP | ||
| 203 | #endif | ||
| 204 | |||
| 205 | /*! | ||
| 206 | * Ensures that these macros can safely be used in structs when compiling with | ||
| 207 | * clang. The macros do not allow for nullability attributes to be specified due | ||
| 208 | * to how they are expanded. For example: | ||
| 209 | * | ||
| 210 | * SLIST_HEAD(, foo _Nullable) bar; | ||
| 211 | * | ||
| 212 | * expands to | ||
| 213 | * | ||
| 214 | * struct { | ||
| 215 | * struct foo _Nullable *slh_first; | ||
| 216 | * } | ||
| 217 | * | ||
| 218 | * which is not valid because the nullability specifier has to apply to the | ||
| 219 | * pointer. So just ignore nullability completeness in all the places where this | ||
| 220 | * is an issue. | ||
| 221 | */ | ||
| 222 | #if defined(__clang__) | ||
| 223 | #define __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 224 | 	_Pragma("clang diagnostic push") \ | ||
| 225 | 	_Pragma("clang diagnostic ignored \"-Wnullability-completeness\"") | ||
| 226 | #define __NULLABILITY_COMPLETENESS_POP \ | ||
| 227 | 	_Pragma("clang diagnostic pop") | ||
| 228 | #else | ||
| 229 | #define __NULLABILITY_COMPLETENESS_PUSH | ||
| 230 | #define __NULLABILITY_COMPLETENESS_POP | ||
| 231 | #endif | ||
| 232 | |||
| 233 | /* | ||
| 234 | * Singly-linked List declarations. | ||
| 235 | */ | ||
| 236 | #define SLIST_HEAD(name, type) \ | ||
| 237 | __MISMATCH_TAGS_PUSH \ | ||
| 238 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 239 | struct name { \ | ||
| 240 | 	struct type *slh_first; /* first element */ \ | ||
| 241 | } \ | ||
| 242 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 243 | __MISMATCH_TAGS_POP | ||
| 244 | |||
| 245 | #define SLIST_HEAD_INITIALIZER(head) \ | ||
| 246 | 	{ NULL } | ||
| 247 | |||
| 248 | #define SLIST_ENTRY(type) \ | ||
| 249 | __MISMATCH_TAGS_PUSH \ | ||
| 250 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 251 | struct { \ | ||
| 252 | 	struct type *sle_next; /* next element */ \ | ||
| 253 | } \ | ||
| 254 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 255 | __MISMATCH_TAGS_POP | ||
| 256 | |||
| 257 | /* | ||
| 258 | * Singly-linked List functions. | ||
| 259 | */ | ||
| 260 | #define SLIST_EMPTY(head) ((head)->slh_first == NULL) | ||
| 261 | |||
| 262 | #define SLIST_FIRST(head) ((head)->slh_first) | ||
| 263 | |||
| 264 | #define SLIST_FOREACH(var, head, field) \ | ||
| 265 | 	for ((var) = SLIST_FIRST((head)); \ | ||
| 266 | 	 (var); \ | ||
| 267 | 	 (var) = SLIST_NEXT((var), field)) | ||
| 268 | |||
| 269 | #define SLIST_FOREACH_SAFE(var, head, field, tvar) \ | ||
| 270 | 	for ((var) = SLIST_FIRST((head)); \ | ||
| 271 | 	 (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ | ||
| 272 | 	 (var) = (tvar)) | ||
| 273 | |||
| 274 | #define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ | ||
| 275 | 	for ((varp) = &SLIST_FIRST((head)); \ | ||
| 276 | 	 ((var) = *(varp)) != NULL; \ | ||
| 277 | 	 (varp) = &SLIST_NEXT((var), field)) | ||
| 278 | |||
| 279 | #define SLIST_INIT(head) do { \ | ||
| 280 | 	SLIST_FIRST((head)) = NULL; \ | ||
| 281 | } while (0) | ||
| 282 | |||
| 283 | #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ | ||
| 284 | 	SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ | ||
| 285 | 	SLIST_NEXT((slistelm), field) = (elm); \ | ||
| 286 | } while (0) | ||
| 287 | |||
| 288 | #define SLIST_INSERT_HEAD(head, elm, field) do { \ | ||
| 289 | 	SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ | ||
| 290 | 	SLIST_FIRST((head)) = (elm); \ | ||
| 291 | } while (0) | ||
| 292 | |||
| 293 | #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) | ||
| 294 | |||
| 295 | #define SLIST_REMOVE(head, elm, type, field) \ | ||
| 296 | __MISMATCH_TAGS_PUSH \ | ||
| 297 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 298 | do { \ | ||
| 299 | 	if (SLIST_FIRST((head)) == (elm)) { \ | ||
| 300 | 	 SLIST_REMOVE_HEAD((head), field); \ | ||
| 301 | 	} \ | ||
| 302 | 	else { \ | ||
| 303 | 	 struct type *curelm = SLIST_FIRST((head)); \ | ||
| 304 | 	 while (SLIST_NEXT(curelm, field) != (elm)) \ | ||
| 305 | 	 curelm = SLIST_NEXT(curelm, field); \ | ||
| 306 | 	 SLIST_REMOVE_AFTER(curelm, field); \ | ||
| 307 | 	} \ | ||
| 308 | 	TRASHIT((elm)->field.sle_next); \ | ||
| 309 | } while (0) \ | ||
| 310 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 311 | __MISMATCH_TAGS_POP | ||
| 312 | |||
| 313 | #define SLIST_REMOVE_AFTER(elm, field) do { \ | ||
| 314 | 	SLIST_NEXT(elm, field) = \ | ||
| 315 | 	 SLIST_NEXT(SLIST_NEXT(elm, field), field); \ | ||
| 316 | } while (0) | ||
| 317 | |||
| 318 | #define SLIST_REMOVE_HEAD(head, field) do { \ | ||
| 319 | 	SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ | ||
| 320 | } while (0) | ||
| 321 | |||
| 322 | /* | ||
| 323 | * Singly-linked Tail queue declarations. | ||
| 324 | */ | ||
| 325 | #define STAILQ_HEAD(name, type) \ | ||
| 326 | __MISMATCH_TAGS_PUSH \ | ||
| 327 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 328 | struct name { \ | ||
| 329 | 	struct type *stqh_first;/* first element */ \ | ||
| 330 | 	struct type **stqh_last;/* addr of last next element */ \ | ||
| 331 | } \ | ||
| 332 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 333 | __MISMATCH_TAGS_POP | ||
| 334 | |||
| 335 | #define STAILQ_HEAD_INITIALIZER(head) \ | ||
| 336 | 	{ NULL, &(head).stqh_first } | ||
| 337 | |||
| 338 | #define STAILQ_ENTRY(type) \ | ||
| 339 | __MISMATCH_TAGS_PUSH \ | ||
| 340 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 341 | struct { \ | ||
| 342 | 	struct type *stqe_next; /* next element */ \ | ||
| 343 | } \ | ||
| 344 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 345 | __MISMATCH_TAGS_POP | ||
| 346 | |||
| 347 | /* | ||
| 348 | * Singly-linked Tail queue functions. | ||
| 349 | */ | ||
| 350 | #define STAILQ_CONCAT(head1, head2) do { \ | ||
| 351 | 	if (!STAILQ_EMPTY((head2))) { \ | ||
| 352 | 	 *(head1)->stqh_last = (head2)->stqh_first; \ | ||
| 353 | 	 (head1)->stqh_last = (head2)->stqh_last; \ | ||
| 354 | 	 STAILQ_INIT((head2)); \ | ||
| 355 | 	} \ | ||
| 356 | } while (0) | ||
| 357 | |||
| 358 | #define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) | ||
| 359 | |||
| 360 | #define STAILQ_FIRST(head) ((head)->stqh_first) | ||
| 361 | |||
| 362 | #define STAILQ_FOREACH(var, head, field) \ | ||
| 363 | 	for((var) = STAILQ_FIRST((head)); \ | ||
| 364 | 	 (var); \ | ||
| 365 | 	 (var) = STAILQ_NEXT((var), field)) | ||
| 366 | |||
| 367 | |||
| 368 | #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ | ||
| 369 | 	for ((var) = STAILQ_FIRST((head)); \ | ||
| 370 | 	 (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ | ||
| 371 | 	 (var) = (tvar)) | ||
| 372 | |||
| 373 | #define STAILQ_INIT(head) do { \ | ||
| 374 | 	STAILQ_FIRST((head)) = NULL; \ | ||
| 375 | 	(head)->stqh_last = &STAILQ_FIRST((head)); \ | ||
| 376 | } while (0) | ||
| 377 | |||
| 378 | #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ | ||
| 379 | 	if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ | ||
| 380 | 	 (head)->stqh_last = &STAILQ_NEXT((elm), field); \ | ||
| 381 | 	STAILQ_NEXT((tqelm), field) = (elm); \ | ||
| 382 | } while (0) | ||
| 383 | |||
| 384 | #define STAILQ_INSERT_HEAD(head, elm, field) do { \ | ||
| 385 | 	if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ | ||
| 386 | 	 (head)->stqh_last = &STAILQ_NEXT((elm), field); \ | ||
| 387 | 	STAILQ_FIRST((head)) = (elm); \ | ||
| 388 | } while (0) | ||
| 389 | |||
| 390 | #define STAILQ_INSERT_TAIL(head, elm, field) do { \ | ||
| 391 | 	STAILQ_NEXT((elm), field) = NULL; \ | ||
| 392 | 	*(head)->stqh_last = (elm); \ | ||
| 393 | 	(head)->stqh_last = &STAILQ_NEXT((elm), field); \ | ||
| 394 | } while (0) | ||
| 395 | |||
| 396 | #define STAILQ_LAST(head, type, field) \ | ||
| 397 | __MISMATCH_TAGS_PUSH \ | ||
| 398 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 399 | 	(STAILQ_EMPTY((head)) ? \ | ||
| 400 | 	 NULL : \ | ||
| 401 | 	 ((struct type *)(void *) \ | ||
| 402 | 	 ((char *)((head)->stqh_last) - __offsetof(struct type, field))))\ | ||
| 403 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 404 | __MISMATCH_TAGS_POP | ||
| 405 | |||
| 406 | #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) | ||
| 407 | |||
| 408 | #define STAILQ_REMOVE(head, elm, type, field) \ | ||
| 409 | __MISMATCH_TAGS_PUSH \ | ||
| 410 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 411 | do { \ | ||
| 412 | 	if (STAILQ_FIRST((head)) == (elm)) { \ | ||
| 413 | 	 STAILQ_REMOVE_HEAD((head), field); \ | ||
| 414 | 	} \ | ||
| 415 | 	else { \ | ||
| 416 | 	 struct type *curelm = STAILQ_FIRST((head)); \ | ||
| 417 | 	 while (STAILQ_NEXT(curelm, field) != (elm)) \ | ||
| 418 | 	 curelm = STAILQ_NEXT(curelm, field); \ | ||
| 419 | 	 STAILQ_REMOVE_AFTER(head, curelm, field); \ | ||
| 420 | 	} \ | ||
| 421 | 	TRASHIT((elm)->field.stqe_next); \ | ||
| 422 | } while (0) \ | ||
| 423 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 424 | __MISMATCH_TAGS_POP | ||
| 425 | |||
| 426 | #define STAILQ_REMOVE_HEAD(head, field) do { \ | ||
| 427 | 	if ((STAILQ_FIRST((head)) = \ | ||
| 428 | 	 STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ | ||
| 429 | 	 (head)->stqh_last = &STAILQ_FIRST((head)); \ | ||
| 430 | } while (0) | ||
| 431 | |||
| 432 | #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ | ||
| 433 | if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ | ||
| 434 | 	 (head)->stqh_last = &STAILQ_FIRST((head)); \ | ||
| 435 | } while (0) | ||
| 436 | |||
| 437 | #define STAILQ_REMOVE_AFTER(head, elm, field) do { \ | ||
| 438 | 	if ((STAILQ_NEXT(elm, field) = \ | ||
| 439 | 	 STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \ | ||
| 440 | 	 (head)->stqh_last = &STAILQ_NEXT((elm), field); \ | ||
| 441 | } while (0) | ||
| 442 | |||
| 443 | #define STAILQ_SWAP(head1, head2, type) \ | ||
| 444 | __MISMATCH_TAGS_PUSH \ | ||
| 445 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 446 | do { \ | ||
| 447 | 	struct type *swap_first = STAILQ_FIRST(head1); \ | ||
| 448 | 	struct type **swap_last = (head1)->stqh_last; \ | ||
| 449 | 	STAILQ_FIRST(head1) = STAILQ_FIRST(head2); \ | ||
| 450 | 	(head1)->stqh_last = (head2)->stqh_last; \ | ||
| 451 | 	STAILQ_FIRST(head2) = swap_first; \ | ||
| 452 | 	(head2)->stqh_last = swap_last; \ | ||
| 453 | 	if (STAILQ_EMPTY(head1)) \ | ||
| 454 | 	 (head1)->stqh_last = &STAILQ_FIRST(head1); \ | ||
| 455 | 	if (STAILQ_EMPTY(head2)) \ | ||
| 456 | 	 (head2)->stqh_last = &STAILQ_FIRST(head2); \ | ||
| 457 | } while (0) \ | ||
| 458 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 459 | __MISMATCH_TAGS_POP | ||
| 460 | |||
| 461 | |||
| 462 | /* | ||
| 463 | * List declarations. | ||
| 464 | */ | ||
| 465 | #define LIST_HEAD(name, type) \ | ||
| 466 | __MISMATCH_TAGS_PUSH \ | ||
| 467 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 468 | struct name { \ | ||
| 469 | 	struct type *lh_first; /* first element */ \ | ||
| 470 | } \ | ||
| 471 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 472 | __MISMATCH_TAGS_POP | ||
| 473 | |||
| 474 | #define LIST_HEAD_INITIALIZER(head) \ | ||
| 475 | 	{ NULL } | ||
| 476 | |||
| 477 | #define LIST_ENTRY(type) \ | ||
| 478 | __MISMATCH_TAGS_PUSH \ | ||
| 479 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 480 | struct { \ | ||
| 481 | 	struct type *le_next; /* next element */ \ | ||
| 482 | 	struct type **le_prev; /* address of previous next element */ \ | ||
| 483 | } \ | ||
| 484 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 485 | __MISMATCH_TAGS_POP | ||
| 486 | |||
| 487 | /* | ||
| 488 | * List functions. | ||
| 489 | */ | ||
| 490 | |||
| 491 | #define LIST_CHECK_HEAD(head, field) | ||
| 492 | #define LIST_CHECK_NEXT(elm, field) | ||
| 493 | #define LIST_CHECK_PREV(elm, field) | ||
| 494 | |||
| 495 | #define LIST_EMPTY(head) ((head)->lh_first == NULL) | ||
| 496 | |||
| 497 | #define LIST_FIRST(head) ((head)->lh_first) | ||
| 498 | |||
| 499 | #define LIST_FOREACH(var, head, field) \ | ||
| 500 | 	for ((var) = LIST_FIRST((head)); \ | ||
| 501 | 	 (var); \ | ||
| 502 | 	 (var) = LIST_NEXT((var), field)) | ||
| 503 | |||
| 504 | #define LIST_FOREACH_SAFE(var, head, field, tvar) \ | ||
| 505 | 	for ((var) = LIST_FIRST((head)); \ | ||
| 506 | 	 (var) && ((tvar) = LIST_NEXT((var), field), 1); \ | ||
| 507 | 	 (var) = (tvar)) | ||
| 508 | |||
| 509 | #define LIST_INIT(head) do { \ | ||
| 510 | 	LIST_FIRST((head)) = NULL; \ | ||
| 511 | } while (0) | ||
| 512 | |||
| 513 | #define LIST_INSERT_AFTER(listelm, elm, field) do { \ | ||
| 514 | 	LIST_CHECK_NEXT(listelm, field); \ | ||
| 515 | 	if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ | ||
| 516 | 	 LIST_NEXT((listelm), field)->field.le_prev = \ | ||
| 517 | 	 &LIST_NEXT((elm), field); \ | ||
| 518 | 	LIST_NEXT((listelm), field) = (elm); \ | ||
| 519 | 	(elm)->field.le_prev = &LIST_NEXT((listelm), field); \ | ||
| 520 | } while (0) | ||
| 521 | |||
| 522 | #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ | ||
| 523 | 	LIST_CHECK_PREV(listelm, field); \ | ||
| 524 | 	(elm)->field.le_prev = (listelm)->field.le_prev; \ | ||
| 525 | 	LIST_NEXT((elm), field) = (listelm); \ | ||
| 526 | 	*(listelm)->field.le_prev = (elm); \ | ||
| 527 | 	(listelm)->field.le_prev = &LIST_NEXT((elm), field); \ | ||
| 528 | } while (0) | ||
| 529 | |||
| 530 | #define LIST_INSERT_HEAD(head, elm, field) do { \ | ||
| 531 | 	LIST_CHECK_HEAD((head), field); \ | ||
| 532 | 	if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ | ||
| 533 | 	 LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ | ||
| 534 | 	LIST_FIRST((head)) = (elm); \ | ||
| 535 | 	(elm)->field.le_prev = &LIST_FIRST((head)); \ | ||
| 536 | } while (0) | ||
| 537 | |||
| 538 | #define LIST_NEXT(elm, field) ((elm)->field.le_next) | ||
| 539 | |||
| 540 | #define LIST_REMOVE(elm, field) do { \ | ||
| 541 | 	LIST_CHECK_NEXT(elm, field); \ | ||
| 542 | 	LIST_CHECK_PREV(elm, field); \ | ||
| 543 | 	if (LIST_NEXT((elm), field) != NULL) \ | ||
| 544 | 	 LIST_NEXT((elm), field)->field.le_prev = \ | ||
| 545 | 	 (elm)->field.le_prev; \ | ||
| 546 | 	*(elm)->field.le_prev = LIST_NEXT((elm), field); \ | ||
| 547 | 	TRASHIT((elm)->field.le_next); \ | ||
| 548 | 	TRASHIT((elm)->field.le_prev); \ | ||
| 549 | } while (0) | ||
| 550 | |||
| 551 | #define LIST_SWAP(head1, head2, type, field) \ | ||
| 552 | __MISMATCH_TAGS_PUSH \ | ||
| 553 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 554 | do { \ | ||
| 555 | 	struct type *swap_tmp = LIST_FIRST((head1)); \ | ||
| 556 | 	LIST_FIRST((head1)) = LIST_FIRST((head2)); \ | ||
| 557 | 	LIST_FIRST((head2)) = swap_tmp; \ | ||
| 558 | 	if ((swap_tmp = LIST_FIRST((head1))) != NULL) \ | ||
| 559 | 	 swap_tmp->field.le_prev = &LIST_FIRST((head1)); \ | ||
| 560 | 	if ((swap_tmp = LIST_FIRST((head2))) != NULL) \ | ||
| 561 | 	 swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ | ||
| 562 | } while (0) \ | ||
| 563 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 564 | __MISMATCH_TAGS_POP | ||
| 565 | |||
| 566 | /* | ||
| 567 | * Tail queue declarations. | ||
| 568 | */ | ||
| 569 | #define TAILQ_HEAD(name, type) \ | ||
| 570 | __MISMATCH_TAGS_PUSH \ | ||
| 571 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 572 | struct name { \ | ||
| 573 | 	struct type *tqh_first; /* first element */ \ | ||
| 574 | 	struct type **tqh_last; /* addr of last next element */ \ | ||
| 575 | 	TRACEBUF \ | ||
| 576 | } \ | ||
| 577 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 578 | __MISMATCH_TAGS_POP | ||
| 579 | |||
| 580 | #define TAILQ_HEAD_INITIALIZER(head) \ | ||
| 581 | 	{ NULL, &(head).tqh_first } | ||
| 582 | |||
| 583 | #define TAILQ_ENTRY(type) \ | ||
| 584 | __MISMATCH_TAGS_PUSH \ | ||
| 585 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 586 | struct { \ | ||
| 587 | 	struct type *tqe_next; /* next element */ \ | ||
| 588 | 	struct type **tqe_prev; /* address of previous next element */ \ | ||
| 589 | 	TRACEBUF \ | ||
| 590 | } \ | ||
| 591 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 592 | __MISMATCH_TAGS_POP | ||
| 593 | |||
| 594 | /* | ||
| 595 | * Tail queue functions. | ||
| 596 | */ | ||
| 597 | #define TAILQ_CHECK_HEAD(head, field) | ||
| 598 | #define TAILQ_CHECK_NEXT(elm, field) | ||
| 599 | #define TAILQ_CHECK_PREV(elm, field) | ||
| 600 | |||
| 601 | #define TAILQ_CONCAT(head1, head2, field) do { \ | ||
| 602 | 	if (!TAILQ_EMPTY(head2)) { \ | ||
| 603 | 	 *(head1)->tqh_last = (head2)->tqh_first; \ | ||
| 604 | 	 (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ | ||
| 605 | 	 (head1)->tqh_last = (head2)->tqh_last; \ | ||
| 606 | 	 TAILQ_INIT((head2)); \ | ||
| 607 | 	 QMD_TRACE_HEAD(head1); \ | ||
| 608 | 	 QMD_TRACE_HEAD(head2); \ | ||
| 609 | 	} \ | ||
| 610 | } while (0) | ||
| 611 | |||
| 612 | #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) | ||
| 613 | |||
| 614 | #define TAILQ_FIRST(head) ((head)->tqh_first) | ||
| 615 | |||
| 616 | #define TAILQ_FOREACH(var, head, field) \ | ||
| 617 | 	for ((var) = TAILQ_FIRST((head)); \ | ||
| 618 | 	 (var); \ | ||
| 619 | 	 (var) = TAILQ_NEXT((var), field)) | ||
| 620 | |||
| 621 | #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ | ||
| 622 | 	for ((var) = TAILQ_FIRST((head)); \ | ||
| 623 | 	 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ | ||
| 624 | 	 (var) = (tvar)) | ||
| 625 | |||
| 626 | #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ | ||
| 627 | 	for ((var) = TAILQ_LAST((head), headname); \ | ||
| 628 | 	 (var); \ | ||
| 629 | 	 (var) = TAILQ_PREV((var), headname, field)) | ||
| 630 | |||
| 631 | #define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ | ||
| 632 | 	for ((var) = TAILQ_LAST((head), headname); \ | ||
| 633 | 	 (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ | ||
| 634 | 	 (var) = (tvar)) | ||
| 635 | |||
| 636 | |||
| 637 | #define TAILQ_INIT(head) do { \ | ||
| 638 | 	TAILQ_FIRST((head)) = NULL; \ | ||
| 639 | 	(head)->tqh_last = &TAILQ_FIRST((head)); \ | ||
| 640 | 	QMD_TRACE_HEAD(head); \ | ||
| 641 | } while (0) | ||
| 642 | |||
| 643 | |||
| 644 | #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ | ||
| 645 | 	TAILQ_CHECK_NEXT(listelm, field); \ | ||
| 646 | 	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ | ||
| 647 | 	 TAILQ_NEXT((elm), field)->field.tqe_prev = \ | ||
| 648 | 	 &TAILQ_NEXT((elm), field); \ | ||
| 649 | 	else { \ | ||
| 650 | 	 (head)->tqh_last = &TAILQ_NEXT((elm), field); \ | ||
| 651 | 	 QMD_TRACE_HEAD(head); \ | ||
| 652 | 	} \ | ||
| 653 | 	TAILQ_NEXT((listelm), field) = (elm); \ | ||
| 654 | 	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ | ||
| 655 | 	QMD_TRACE_ELEM(&(elm)->field); \ | ||
| 656 | 	QMD_TRACE_ELEM(&listelm->field); \ | ||
| 657 | } while (0) | ||
| 658 | |||
| 659 | #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ | ||
| 660 | 	TAILQ_CHECK_PREV(listelm, field); \ | ||
| 661 | 	(elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ | ||
| 662 | 	TAILQ_NEXT((elm), field) = (listelm); \ | ||
| 663 | 	*(listelm)->field.tqe_prev = (elm); \ | ||
| 664 | 	(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ | ||
| 665 | 	QMD_TRACE_ELEM(&(elm)->field); \ | ||
| 666 | 	QMD_TRACE_ELEM(&listelm->field); \ | ||
| 667 | } while (0) | ||
| 668 | |||
| 669 | #define TAILQ_INSERT_HEAD(head, elm, field) do { \ | ||
| 670 | 	TAILQ_CHECK_HEAD(head, field); \ | ||
| 671 | 	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ | ||
| 672 | 	 TAILQ_FIRST((head))->field.tqe_prev = \ | ||
| 673 | 	 &TAILQ_NEXT((elm), field); \ | ||
| 674 | 	else \ | ||
| 675 | 	 (head)->tqh_last = &TAILQ_NEXT((elm), field); \ | ||
| 676 | 	TAILQ_FIRST((head)) = (elm); \ | ||
| 677 | 	(elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ | ||
| 678 | 	QMD_TRACE_HEAD(head); \ | ||
| 679 | 	QMD_TRACE_ELEM(&(elm)->field); \ | ||
| 680 | } while (0) | ||
| 681 | |||
| 682 | #define TAILQ_INSERT_TAIL(head, elm, field) do { \ | ||
| 683 | 	TAILQ_NEXT((elm), field) = NULL; \ | ||
| 684 | 	(elm)->field.tqe_prev = (head)->tqh_last; \ | ||
| 685 | 	*(head)->tqh_last = (elm); \ | ||
| 686 | 	(head)->tqh_last = &TAILQ_NEXT((elm), field); \ | ||
| 687 | 	QMD_TRACE_HEAD(head); \ | ||
| 688 | 	QMD_TRACE_ELEM(&(elm)->field); \ | ||
| 689 | } while (0) | ||
| 690 | |||
| 691 | #define TAILQ_LAST(head, headname) \ | ||
| 692 | __MISMATCH_TAGS_PUSH \ | ||
| 693 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 694 | 	(*(((struct headname *)((head)->tqh_last))->tqh_last)) \ | ||
| 695 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 696 | __MISMATCH_TAGS_POP | ||
| 697 | |||
| 698 | #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) | ||
| 699 | |||
| 700 | #define TAILQ_PREV(elm, headname, field) \ | ||
| 701 | __MISMATCH_TAGS_PUSH \ | ||
| 702 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 703 | 	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) \ | ||
| 704 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 705 | __MISMATCH_TAGS_POP | ||
| 706 | |||
| 707 | #define TAILQ_REMOVE(head, elm, field) do { \ | ||
| 708 | 	TAILQ_CHECK_NEXT(elm, field); \ | ||
| 709 | 	TAILQ_CHECK_PREV(elm, field); \ | ||
| 710 | 	if ((TAILQ_NEXT((elm), field)) != NULL) \ | ||
| 711 | 	 TAILQ_NEXT((elm), field)->field.tqe_prev = \ | ||
| 712 | 	 (elm)->field.tqe_prev; \ | ||
| 713 | 	else { \ | ||
| 714 | 	 (head)->tqh_last = (elm)->field.tqe_prev; \ | ||
| 715 | 	 QMD_TRACE_HEAD(head); \ | ||
| 716 | 	} \ | ||
| 717 | 	*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ | ||
| 718 | 	TRASHIT((elm)->field.tqe_next); \ | ||
| 719 | 	TRASHIT((elm)->field.tqe_prev); \ | ||
| 720 | 	QMD_TRACE_ELEM(&(elm)->field); \ | ||
| 721 | } while (0) | ||
| 722 | |||
| 723 | /* | ||
| 724 | * Why did they switch to spaces for this one macro? | ||
| 725 | */ | ||
| 726 | #define TAILQ_SWAP(head1, head2, type, field) \ | ||
| 727 | __MISMATCH_TAGS_PUSH \ | ||
| 728 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 729 | do { \ | ||
| 730 | 	struct type *swap_first = (head1)->tqh_first; \ | ||
| 731 | 	struct type **swap_last = (head1)->tqh_last; \ | ||
| 732 | 	(head1)->tqh_first = (head2)->tqh_first; \ | ||
| 733 | 	(head1)->tqh_last = (head2)->tqh_last; \ | ||
| 734 | 	(head2)->tqh_first = swap_first; \ | ||
| 735 | 	(head2)->tqh_last = swap_last; \ | ||
| 736 | 	if ((swap_first = (head1)->tqh_first) != NULL) \ | ||
| 737 | 	 swap_first->field.tqe_prev = &(head1)->tqh_first; \ | ||
| 738 | 	else \ | ||
| 739 | 	 (head1)->tqh_last = &(head1)->tqh_first; \ | ||
| 740 | 	if ((swap_first = (head2)->tqh_first) != NULL) \ | ||
| 741 | 	 swap_first->field.tqe_prev = &(head2)->tqh_first; \ | ||
| 742 | 	else \ | ||
| 743 | 	 (head2)->tqh_last = &(head2)->tqh_first; \ | ||
| 744 | } while (0) \ | ||
| 745 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 746 | __MISMATCH_TAGS_POP | ||
| 747 | |||
| 748 | /* | ||
| 749 | * Circular queue definitions. | ||
| 750 | */ | ||
| 751 | #define CIRCLEQ_HEAD(name, type) \ | ||
| 752 | __MISMATCH_TAGS_PUSH \ | ||
| 753 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 754 | struct name { \ | ||
| 755 | 	struct type *cqh_first; /* first element */ \ | ||
| 756 | 	struct type *cqh_last; /* last element */ \ | ||
| 757 | } \ | ||
| 758 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 759 | __MISMATCH_TAGS_POP | ||
| 760 | |||
| 761 | #define CIRCLEQ_ENTRY(type) \ | ||
| 762 | __MISMATCH_TAGS_PUSH \ | ||
| 763 | __NULLABILITY_COMPLETENESS_PUSH \ | ||
| 764 | struct { \ | ||
| 765 | 	struct type *cqe_next; /* next element */ \ | ||
| 766 | 	struct type *cqe_prev; /* previous element */ \ | ||
| 767 | } \ | ||
| 768 | __NULLABILITY_COMPLETENESS_POP \ | ||
| 769 | __MISMATCH_TAGS_POP | ||
| 770 | |||
| 771 | /* | ||
| 772 | * Circular queue functions. | ||
| 773 | */ | ||
| 774 | #define CIRCLEQ_CHECK_HEAD(head, field) | ||
| 775 | #define CIRCLEQ_CHECK_NEXT(head, elm, field) | ||
| 776 | #define CIRCLEQ_CHECK_PREV(head, elm, field) | ||
| 777 | |||
| 778 | #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) | ||
| 779 | |||
| 780 | #define CIRCLEQ_FIRST(head) ((head)->cqh_first) | ||
| 781 | |||
| 782 | #define CIRCLEQ_FOREACH(var, head, field) \ | ||
| 783 | 	for((var) = (head)->cqh_first; \ | ||
| 784 | 	 (var) != (void *)(head); \ | ||
| 785 | 	 (var) = (var)->field.cqe_next) | ||
| 786 | |||
| 787 | #define CIRCLEQ_INIT(head) do { \ | ||
| 788 | 	(head)->cqh_first = (void *)(head); \ | ||
| 789 | 	(head)->cqh_last = (void *)(head); \ | ||
| 790 | } while (0) | ||
| 791 | |||
| 792 | #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ | ||
| 793 | 	CIRCLEQ_CHECK_NEXT(head, listelm, field); \ | ||
| 794 | 	(elm)->field.cqe_next = (listelm)->field.cqe_next; \ | ||
| 795 | 	(elm)->field.cqe_prev = (listelm); \ | ||
| 796 | 	if ((listelm)->field.cqe_next == (void *)(head)) \ | ||
| 797 | 	 (head)->cqh_last = (elm); \ | ||
| 798 | 	else \ | ||
| 799 | 	 (listelm)->field.cqe_next->field.cqe_prev = (elm); \ | ||
| 800 | 	(listelm)->field.cqe_next = (elm); \ | ||
| 801 | } while (0) | ||
| 802 | |||
| 803 | #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ | ||
| 804 | 	CIRCLEQ_CHECK_PREV(head, listelm, field); \ | ||
| 805 | 	(elm)->field.cqe_next = (listelm); \ | ||
| 806 | 	(elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ | ||
| 807 | 	if ((listelm)->field.cqe_prev == (void *)(head)) \ | ||
| 808 | 	 (head)->cqh_first = (elm); \ | ||
| 809 | 	else \ | ||
| 810 | 	 (listelm)->field.cqe_prev->field.cqe_next = (elm); \ | ||
| 811 | 	(listelm)->field.cqe_prev = (elm); \ | ||
| 812 | } while (0) | ||
| 813 | |||
| 814 | #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ | ||
| 815 | 	CIRCLEQ_CHECK_HEAD(head, field); \ | ||
| 816 | 	(elm)->field.cqe_next = (head)->cqh_first; \ | ||
| 817 | 	(elm)->field.cqe_prev = (void *)(head); \ | ||
| 818 | 	if ((head)->cqh_last == (void *)(head)) \ | ||
| 819 | 	 (head)->cqh_last = (elm); \ | ||
| 820 | 	else \ | ||
| 821 | 	 (head)->cqh_first->field.cqe_prev = (elm); \ | ||
| 822 | 	(head)->cqh_first = (elm); \ | ||
| 823 | } while (0) | ||
| 824 | |||
| 825 | #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ | ||
| 826 | 	(elm)->field.cqe_next = (void *)(head); \ | ||
| 827 | 	(elm)->field.cqe_prev = (head)->cqh_last; \ | ||
| 828 | 	if ((head)->cqh_first == (void *)(head)) \ | ||
| 829 | 	 (head)->cqh_first = (elm); \ | ||
| 830 | 	else \ | ||
| 831 | 	 (head)->cqh_last->field.cqe_next = (elm); \ | ||
| 832 | 	(head)->cqh_last = (elm); \ | ||
| 833 | } while (0) | ||
| 834 | |||
| 835 | #define CIRCLEQ_LAST(head) ((head)->cqh_last) | ||
| 836 | |||
| 837 | #define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) | ||
| 838 | |||
| 839 | #define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) | ||
| 840 | |||
| 841 | #define CIRCLEQ_REMOVE(head, elm, field) do { \ | ||
| 842 | 	CIRCLEQ_CHECK_NEXT(head, elm, field); \ | ||
| 843 | 	CIRCLEQ_CHECK_PREV(head, elm, field); \ | ||
| 844 | 	if ((elm)->field.cqe_next == (void *)(head)) \ | ||
| 845 | 	 (head)->cqh_last = (elm)->field.cqe_prev; \ | ||
| 846 | 	else \ | ||
| 847 | 	 (elm)->field.cqe_next->field.cqe_prev = \ | ||
| 848 | 	 (elm)->field.cqe_prev; \ | ||
| 849 | 	if ((elm)->field.cqe_prev == (void *)(head)) \ | ||
| 850 | 	 (head)->cqh_first = (elm)->field.cqe_next; \ | ||
| 851 | 	else \ | ||
| 852 | 	 (elm)->field.cqe_prev->field.cqe_next = \ | ||
| 853 | 	 (elm)->field.cqe_next; \ | ||
| 854 | } while (0) | ||
| 855 | |||
| 856 | #ifdef _KERNEL | ||
| 857 | |||
| 858 | #if NOTFB31 | ||
| 859 | |||
| 860 | /* | ||
| 861 | * XXX insque() and remque() are an old way of handling certain queues. | ||
| 862 | * They bogusly assumes that all queue heads look alike. | ||
| 863 | */ | ||
| 864 | |||
| 865 | struct quehead { | ||
| 866 | 	struct quehead *qh_link; | ||
| 867 | 	struct quehead *qh_rlink; | ||
| 868 | }; | ||
| 869 | |||
| 870 | #ifdef __GNUC__ | ||
| 871 | #define chkquenext(a) | ||
| 872 | #define chkqueprev(a) | ||
| 873 | |||
| 874 | static __inline void | ||
| 875 | insque(void *a, void *b) | ||
| 876 | { | ||
| 877 | 	struct quehead *element = (struct quehead *)a, | ||
| 878 | 	 *head = (struct quehead *)b; | ||
| 879 | 	chkquenext(head); | ||
| 880 | |||
| 881 | 	element->qh_link = head->qh_link; | ||
| 882 | 	element->qh_rlink = head; | ||
| 883 | 	head->qh_link = element; | ||
| 884 | 	element->qh_link->qh_rlink = element; | ||
| 885 | } | ||
| 886 | |||
| 887 | static __inline void | ||
| 888 | remque(void *a) | ||
| 889 | { | ||
| 890 | 	struct quehead *element = (struct quehead *)a; | ||
| 891 | 	chkquenext(element); | ||
| 892 | 	chkqueprev(element); | ||
| 893 | |||
| 894 | 	element->qh_link->qh_rlink = element->qh_rlink; | ||
| 895 | 	element->qh_rlink->qh_link = element->qh_link; | ||
| 896 | 	element->qh_rlink = 0; | ||
| 897 | } | ||
| 898 | |||
| 899 | #else /* !__GNUC__ */ | ||
| 900 | |||
| 901 | void insque(void *a, void *b); | ||
| 902 | void remque(void *a); | ||
| 903 | |||
| 904 | #endif /* __GNUC__ */ | ||
| 905 | |||
| 906 | #endif /* NOTFB31 */ | ||
| 907 | #endif /* _KERNEL */ | ||
| 908 | |||
| 909 | #endif /* !_SYS_QUEUE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/select.h created+134| ... | @@ -0,0 +1,134 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1992, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	@(#)select.h	8.2 (Berkeley) 1/4/94 | ||
| 61 | */ | ||
| 62 | |||
| 63 | #ifndef _SYS_SELECT_H_ | ||
| 64 | #define _SYS_SELECT_H_ | ||
| 65 | |||
| 66 | #include <sys/appleapiopts.h> | ||
| 67 | #include <sys/cdefs.h> | ||
| 68 | #include <sys/_types.h> | ||
| 69 | |||
| 70 | /* | ||
| 71 | * [XSI] The <sys/select.h> header shall define the fd_set type as a structure. | ||
| 72 | * The timespec structure shall be defined as described in <time.h> | ||
| 73 | * The <sys/select.h> header shall define the timeval structure. | ||
| 74 | */ | ||
| 75 | #include <sys/_types/_fd_def.h> | ||
| 76 | #include <sys/_types/_timespec.h> | ||
| 77 | #include <sys/_types/_timeval.h> | ||
| 78 | |||
| 79 | /* | ||
| 80 | * The time_t and suseconds_t types shall be defined as described in | ||
| 81 | * <sys/types.h> | ||
| 82 | * The sigset_t type shall be defined as described in <signal.h> | ||
| 83 | */ | ||
| 84 | #include <sys/_types/_time_t.h> | ||
| 85 | #include <sys/_types/_suseconds_t.h> | ||
| 86 | #include <sys/_types/_sigset_t.h> | ||
| 87 | |||
| 88 | /* | ||
| 89 | * [XSI] FD_CLR, FD_ISSET, FD_SET, FD_ZERO may be declared as a function, or | ||
| 90 | *	 defined as a macro, or both | ||
| 91 | * [XSI] FD_SETSIZE shall be defined as a macro | ||
| 92 | */ | ||
| 93 | |||
| 94 | /* | ||
| 95 | * Select uses bit masks of file descriptors in longs. These macros | ||
| 96 | * manipulate such bit fields (the filesystem macros use chars). The | ||
| 97 | * extra protection here is to permit application redefinition above | ||
| 98 | * the default size. | ||
| 99 | */ | ||
| 100 | #include <sys/_types/_fd_setsize.h> | ||
| 101 | #include <sys/_types/_fd_set.h> | ||
| 102 | #include <sys/_types/_fd_clr.h> | ||
| 103 | #include <sys/_types/_fd_isset.h> | ||
| 104 | #include <sys/_types/_fd_zero.h> | ||
| 105 | |||
| 106 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 107 | #include <sys/_types/_fd_copy.h> | ||
| 108 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 109 | |||
| 110 | |||
| 111 | __BEGIN_DECLS | ||
| 112 | |||
| 113 | #ifndef __MWERKS__ | ||
| 114 | int pselect(int, fd_set * __restrict, fd_set * __restrict, | ||
| 115 | fd_set * __restrict, const struct timespec * __restrict, | ||
| 116 | const sigset_t * __restrict) | ||
| 117 | #if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT) | ||
| 118 | __DARWIN_EXTSN_C(pselect) | ||
| 119 | #else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */ | ||
| 120 | # if defined(__LP64__) && !__DARWIN_NON_CANCELABLE | ||
| 121 | __DARWIN_1050(pselect) | ||
| 122 | # else /* !__LP64__ || __DARWIN_NON_CANCELABLE */ | ||
| 123 | __DARWIN_ALIAS_C(pselect) | ||
| 124 | # endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */ | ||
| 125 | #endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */ | ||
| 126 | ; | ||
| 127 | #endif /* __MWERKS__ */ | ||
| 128 | |||
| 129 | #include <sys/_select.h> /* select() prototype */ | ||
| 130 | |||
| 131 | __END_DECLS | ||
| 132 | |||
| 133 | |||
| 134 | #endif /* !_SYS_SELECT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/sem.h created+206| ... | @@ -0,0 +1,206 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*	$NetBSD: sem.h,v 1.5 1994/06/29 06:45:15 cgd Exp $	*/ | ||
| 29 | |||
| 30 | /* | ||
| 31 | * SVID compatible sem.h file | ||
| 32 | * | ||
| 33 | * Author: Daniel Boulet | ||
| 34 | * John Bellardo modified the implementation for Darwin. 12/2000 | ||
| 35 | */ | ||
| 36 | |||
| 37 | #ifndef _SYS_SEM_H_ | ||
| 38 | #define _SYS_SEM_H_ | ||
| 39 | |||
| 40 | |||
| 41 | #include <sys/cdefs.h> | ||
| 42 | #include <sys/_types.h> | ||
| 43 | #include <machine/types.h> /* __int32_t */ | ||
| 44 | |||
| 45 | /* | ||
| 46 | * [XSI]	All of the symbols from <sys/ipc.h> SHALL be defined | ||
| 47 | *		when this header is included | ||
| 48 | */ | ||
| 49 | #include <sys/ipc.h> | ||
| 50 | |||
| 51 | |||
| 52 | /* | ||
| 53 | * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as | ||
| 54 | * described in <sys/types.h>. | ||
| 55 | * | ||
| 56 | * NOTE:	The definition of the key_t type is implicit from the | ||
| 57 | *		inclusion of <sys/ipc.h> | ||
| 58 | */ | ||
| 59 | #include <sys/_types/_pid_t.h> | ||
| 60 | #include <sys/_types/_time_t.h> | ||
| 61 | #include <sys/_types/_size_t.h> | ||
| 62 | |||
| 63 | /* | ||
| 64 | * Technically, we should force all code references to the new structure | ||
| 65 | * definition, not in just the standards conformance case, and leave the | ||
| 66 | * legacy interface there for binary compatibility only. Currently, we | ||
| 67 | * are only forcing this for programs requesting standards conformance. | ||
| 68 | */ | ||
| 69 | #if __DARWIN_UNIX03 || defined(KERNEL) | ||
| 70 | #pragma pack(4) | ||
| 71 | /* | ||
| 72 | * Structure used internally. | ||
| 73 | * | ||
| 74 | * This structure is exposed because standards dictate that it is used as | ||
| 75 | * the semun union member 'buf' as the fourth argment to semctl() when the | ||
| 76 | * third argument is IPC_STAT or IPC_SET. | ||
| 77 | * | ||
| 78 | * Note: only the fields sem_perm, sem_nsems, sem_otime, and sem_ctime | ||
| 79 | * are meaningful in user space. | ||
| 80 | */ | ||
| 81 | #if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE)) | ||
| 82 | struct semid_ds | ||
| 83 | #else | ||
| 84 | #define semid_ds __semid_ds_new | ||
| 85 | struct __semid_ds_new | ||
| 86 | #endif | ||
| 87 | { | ||
| 88 | 	struct __ipc_perm_new sem_perm; /* [XSI] operation permission struct */ | ||
| 89 | 	__int32_t sem_base; /* 32 bit base ptr for semaphore set */ | ||
| 90 | 	unsigned short sem_nsems; /* [XSI] number of sems in set */ | ||
| 91 | 	time_t sem_otime; /* [XSI] last operation time */ | ||
| 92 | 	__int32_t sem_pad1; /* RESERVED: DO NOT USE! */ | ||
| 93 | 	time_t sem_ctime; /* [XSI] last change time */ | ||
| 94 | 	 /* Times measured in secs since */ | ||
| 95 | 	 /* 00:00:00 GMT, Jan. 1, 1970 */ | ||
| 96 | 	__int32_t sem_pad2; /* RESERVED: DO NOT USE! */ | ||
| 97 | 	__int32_t sem_pad3[4]; /* RESERVED: DO NOT USE! */ | ||
| 98 | }; | ||
| 99 | #pragma pack() | ||
| 100 | #else /* !__DARWIN_UNIX03 */ | ||
| 101 | #define semid_ds __semid_ds_old | ||
| 102 | #endif /* __DARWIN_UNIX03 */ | ||
| 103 | |||
| 104 | #if !__DARWIN_UNIX03 | ||
| 105 | struct __semid_ds_old { | ||
| 106 | 	struct __ipc_perm_old sem_perm; /* [XSI] operation permission struct */ | ||
| 107 | 	__int32_t sem_base; /* 32 bit base ptr for semaphore set */ | ||
| 108 | 	unsigned short sem_nsems; /* [XSI] number of sems in set */ | ||
| 109 | 	time_t sem_otime; /* [XSI] last operation time */ | ||
| 110 | 	__int32_t sem_pad1; /* RESERVED: DO NOT USE! */ | ||
| 111 | 	time_t sem_ctime; /* [XSI] last change time */ | ||
| 112 | 	 /* Times measured in secs since */ | ||
| 113 | 	 /* 00:00:00 GMT, Jan. 1, 1970 */ | ||
| 114 | 	__int32_t sem_pad2; /* RESERVED: DO NOT USE! */ | ||
| 115 | 	__int32_t sem_pad3[4]; /* RESERVED: DO NOT USE! */ | ||
| 116 | }; | ||
| 117 | #endif /* !__DARWIN_UNIX03 */ | ||
| 118 | |||
| 119 | /* | ||
| 120 | * Possible values for the third argument to semctl() | ||
| 121 | */ | ||
| 122 | #define GETNCNT 3 /* [XSI] Return the value of semncnt {READ} */ | ||
| 123 | #define GETPID 4 /* [XSI] Return the value of sempid {READ} */ | ||
| 124 | #define GETVAL 5 /* [XSI] Return the value of semval {READ} */ | ||
| 125 | #define GETALL 6 /* [XSI] Return semvals into arg.array {READ} */ | ||
| 126 | #define GETZCNT 7 /* [XSI] Return the value of semzcnt {READ} */ | ||
| 127 | #define SETVAL 8 /* [XSI] Set the value of semval to arg.val {ALTER} */ | ||
| 128 | #define SETALL 9 /* [XSI] Set semvals from arg.array {ALTER} */ | ||
| 129 | |||
| 130 | |||
| 131 | /* A semaphore; this is an anonymous structure, not for external use */ | ||
| 132 | struct sem { | ||
| 133 | 	unsigned short semval; /* semaphore value */ | ||
| 134 | 	pid_t sempid; /* pid of last operation */ | ||
| 135 | 	unsigned short semncnt; /* # awaiting semval > cval */ | ||
| 136 | 	unsigned short semzcnt; /* # awaiting semval == 0 */ | ||
| 137 | }; | ||
| 138 | |||
| 139 | |||
| 140 | /* | ||
| 141 | * Structure of array element for second argument to semop() | ||
| 142 | */ | ||
| 143 | struct sembuf { | ||
| 144 | 	unsigned short sem_num; /* [XSI] semaphore # */ | ||
| 145 | 	short sem_op; /* [XSI] semaphore operation */ | ||
| 146 | 	short sem_flg; /* [XSI] operation flags */ | ||
| 147 | }; | ||
| 148 | |||
| 149 | /* | ||
| 150 | * Possible flag values for sem_flg | ||
| 151 | */ | ||
| 152 | #define SEM_UNDO 010000 /* [XSI] Set up adjust on exit entry */ | ||
| 153 | |||
| 154 | |||
| 155 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 156 | |||
| 157 | /* | ||
| 158 | * Union used as the fourth argment to semctl() in all cases. Specific | ||
| 159 | * member values are used for different values of the third parameter: | ||
| 160 | * | ||
| 161 | * Command					Member | ||
| 162 | * -------------------------------------------	------ | ||
| 163 | * GETALL, SETALL				array | ||
| 164 | * SETVAL					val | ||
| 165 | * IPC_STAT, IPC_SET				buf | ||
| 166 | * | ||
| 167 | * The union definition is intended to be defined by the user application | ||
| 168 | * in conforming applications; it is provided here for two reasons: | ||
| 169 | * | ||
| 170 | * 1)	Historical source compatability for non-conforming applications | ||
| 171 | *	expecting this header to declare the union type on their behalf | ||
| 172 | * | ||
| 173 | * 2)	Documentation; specifically, 64 bit applications that do not pass | ||
| 174 | *	this structure for 'val', or, alternately, a 64 bit type, will | ||
| 175 | *	not function correctly | ||
| 176 | */ | ||
| 177 | union semun { | ||
| 178 | 	int val; /* value for SETVAL */ | ||
| 179 | 	struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ | ||
| 180 | 	unsigned short *array; /* array for GETALL & SETALL */ | ||
| 181 | }; | ||
| 182 | typedef union semun semun_t; | ||
| 183 | |||
| 184 | |||
| 185 | /* | ||
| 186 | * Permissions | ||
| 187 | */ | ||
| 188 | #define SEM_A 0200 /* alter permission */ | ||
| 189 | #define SEM_R 0400 /* read permission */ | ||
| 190 | |||
| 191 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 192 | |||
| 193 | |||
| 194 | |||
| 195 | |||
| 196 | __BEGIN_DECLS | ||
| 197 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 198 | int semsys(int, ...); | ||
| 199 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 200 | int semctl(int, int, int, ...) __DARWIN_ALIAS(semctl); | ||
| 201 | int semget(key_t, int, int); | ||
| 202 | int semop(int, struct sembuf *, size_t); | ||
| 203 | __END_DECLS | ||
| 204 | |||
| 205 | |||
| 206 | #endif /* !_SEM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/semaphore.h created+64| ... | @@ -0,0 +1,64 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*	@(#)semaphore.h	1.0	2/29/00		*/ | ||
| 29 | |||
| 30 | |||
| 31 | |||
| 32 | /* | ||
| 33 | * semaphore.h - POSIX semaphores | ||
| 34 | * | ||
| 35 | * HISTORY | ||
| 36 | * 29-Feb-00	A.Ramesh at Apple | ||
| 37 | *	Created for Mac OS X | ||
| 38 | */ | ||
| 39 | |||
| 40 | #ifndef _SYS_SEMAPHORE_H_ | ||
| 41 | #define _SYS_SEMAPHORE_H_ | ||
| 42 | |||
| 43 | typedef int sem_t; | ||
| 44 | |||
| 45 | /* this should go in limits.h> */ | ||
| 46 | #define SEM_VALUE_MAX 32767 | ||
| 47 | #define SEM_FAILED ((sem_t *)-1) | ||
| 48 | |||
| 49 | #include <sys/cdefs.h> | ||
| 50 | |||
| 51 | __BEGIN_DECLS | ||
| 52 | int sem_close(sem_t *); | ||
| 53 | int sem_destroy(sem_t *) __deprecated; | ||
| 54 | int sem_getvalue(sem_t * __restrict, int * __restrict) __deprecated; | ||
| 55 | int sem_init(sem_t *, int, unsigned int) __deprecated; | ||
| 56 | sem_t * sem_open(const char *, int, ...); | ||
| 57 | int sem_post(sem_t *); | ||
| 58 | int sem_trywait(sem_t *); | ||
| 59 | int sem_unlink(const char *); | ||
| 60 | int sem_wait(sem_t *) __DARWIN_ALIAS_C(sem_wait); | ||
| 61 | __END_DECLS | ||
| 62 | |||
| 63 | |||
| 64 | #endif /* _SYS_SEMAPHORE_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/shm.h created+186| ... | @@ -0,0 +1,186 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /*	$NetBSD: shm.h,v 1.15 1994/06/29 06:45:17 cgd Exp $	*/ | ||
| 29 | |||
| 30 | /* | ||
| 31 | * Copyright (c) 1994 Adam Glass | ||
| 32 | * All rights reserved. | ||
| 33 | * | ||
| 34 | * Redistribution and use in source and binary forms, with or without | ||
| 35 | * modification, are permitted provided that the following conditions | ||
| 36 | * are met: | ||
| 37 | * 1. Redistributions of source code must retain the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer. | ||
| 39 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 40 | * notice, this list of conditions and the following disclaimer in the | ||
| 41 | * documentation and/or other materials provided with the distribution. | ||
| 42 | * 3. All advertising materials mentioning features or use of this software | ||
| 43 | * must display the following acknowledgement: | ||
| 44 | * This product includes software developed by Adam Glass. | ||
| 45 | * 4. The name of the author may not be used to endorse or promote products | ||
| 46 | * derived from this software without specific prior written permission | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
| 49 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
| 50 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
| 51 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
| 52 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 53 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 54 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 55 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 56 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
| 57 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 58 | */ | ||
| 59 | |||
| 60 | /* | ||
| 61 | * As defined+described in "X/Open System Interfaces and Headers" | ||
| 62 | * Issue 4, p. XXX | ||
| 63 | */ | ||
| 64 | |||
| 65 | #ifndef _SYS_SHM_H_ | ||
| 66 | #define _SYS_SHM_H_ | ||
| 67 | |||
| 68 | #include <sys/cdefs.h> | ||
| 69 | #include <sys/_types.h> | ||
| 70 | |||
| 71 | /* | ||
| 72 | * [XSI]	All of the symbols from <sys/ipc.h> SHALL be defined | ||
| 73 | *		when this header is included | ||
| 74 | */ | ||
| 75 | #include <sys/ipc.h> | ||
| 76 | |||
| 77 | /* | ||
| 78 | * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as | ||
| 79 | * described in <sys/types.h>. | ||
| 80 | * | ||
| 81 | * NOTE:	The definition of the key_t type is implicit from the | ||
| 82 | *		inclusion of <sys/ipc.h> | ||
| 83 | */ | ||
| 84 | #include <sys/_types/_pid_t.h> | ||
| 85 | #include <sys/_types/_time_t.h> | ||
| 86 | #include <sys/_types/_size_t.h> | ||
| 87 | |||
| 88 | /* | ||
| 89 | * [XSI] The unsigned integer type used for the number of current attaches | ||
| 90 | * that MUST be able to store values at least as large as a type unsigned | ||
| 91 | * short. | ||
| 92 | */ | ||
| 93 | typedef unsigned short shmatt_t; | ||
| 94 | |||
| 95 | |||
| 96 | /* | ||
| 97 | * Possible flag values which may be OR'ed into the third argument to | ||
| 98 | * shmat() | ||
| 99 | */ | ||
| 100 | #define SHM_RDONLY 010000 /* [XSI] Attach read-only (else read-write) */ | ||
| 101 | #define SHM_RND 020000 /* [XSI] Round attach address to SHMLBA */ | ||
| 102 | |||
| 103 | /* | ||
| 104 | * This value is symbolic, and generally not expected to be sed by user | ||
| 105 | * programs directly, although such ise is permitted by the standard. Its | ||
| 106 | * value in our implementation is equal to the number of bytes per page. | ||
| 107 | * | ||
| 108 | * NOTE:	We DO NOT obtain this value from the appropriate system | ||
| 109 | *		headers at this time, to avoid the resulting namespace | ||
| 110 | *		pollution, which is why we discourages its use. | ||
| 111 | */ | ||
| 112 | #define SHMLBA 4096 /* [XSI] Segment low boundary address multiple*/ | ||
| 113 | |||
| 114 | /* "official" access mode definitions; somewhat braindead since you have | ||
| 115 | * to specify (SHM_* >> 3) for group and (SHM_* >> 6) for world permissions */ | ||
| 116 | #define SHM_R (IPC_R) | ||
| 117 | #define SHM_W (IPC_W) | ||
| 118 | |||
| 119 | #pragma pack(4) | ||
| 120 | |||
| 121 | /* | ||
| 122 | * Technically, we should force all code references to the new structure | ||
| 123 | * definition, not in just the standards conformance case, and leave the | ||
| 124 | * legacy interface there for binary compatibility only. Currently, we | ||
| 125 | * are only forcing this for programs requesting standards conformance. | ||
| 126 | */ | ||
| 127 | #if __DARWIN_UNIX03 || defined(KERNEL) | ||
| 128 | /* | ||
| 129 | * Structure used internally. | ||
| 130 | * | ||
| 131 | * This structure is exposed because standards dictate that it is used as | ||
| 132 | * the third argment to shmctl(). | ||
| 133 | * | ||
| 134 | * NOTE:	The field shm_internal is not meaningful in user space, | ||
| 135 | *		and must not be used there. | ||
| 136 | */ | ||
| 137 | #if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE)) | ||
| 138 | struct shmid_ds | ||
| 139 | #else | ||
| 140 | #define shmid_ds __shmid_ds_new | ||
| 141 | struct __shmid_ds_new | ||
| 142 | #endif | ||
| 143 | { | ||
| 144 | 	struct __ipc_perm_new shm_perm; /* [XSI] Operation permission value */ | ||
| 145 | 	size_t shm_segsz; /* [XSI] Size of segment in bytes */ | ||
| 146 | 	pid_t shm_lpid; /* [XSI] PID of last shared memory op */ | ||
| 147 | 	pid_t shm_cpid; /* [XSI] PID of creator */ | ||
| 148 | 	shmatt_t shm_nattch; /* [XSI] Number of current attaches */ | ||
| 149 | 	time_t shm_atime; /* [XSI] Time of last shmat() */ | ||
| 150 | 	time_t shm_dtime; /* [XSI] Time of last shmdt() */ | ||
| 151 | 	time_t shm_ctime; /* [XSI] Time of last shmctl() change */ | ||
| 152 | 	void *shm_internal; /* reserved for kernel use */ | ||
| 153 | }; | ||
| 154 | #else /* !__DARWIN_UNIX03 */ | ||
| 155 | #define shmid_ds __shmid_ds_old | ||
| 156 | #endif /* !__DARWIN_UNIX03 */ | ||
| 157 | |||
| 158 | #if !__DARWIN_UNIX03 | ||
| 159 | struct __shmid_ds_old { | ||
| 160 | 	struct __ipc_perm_old shm_perm; /* [XSI] Operation permission value */ | ||
| 161 | 	size_t shm_segsz; /* [XSI] Size of segment in bytes */ | ||
| 162 | 	pid_t shm_lpid; /* [XSI] PID of last shared memory op */ | ||
| 163 | 	pid_t shm_cpid; /* [XSI] PID of creator */ | ||
| 164 | 	shmatt_t shm_nattch; /* [XSI] Number of current attaches */ | ||
| 165 | 	time_t shm_atime; /* [XSI] Time of last shmat() */ | ||
| 166 | 	time_t shm_dtime; /* [XSI] Time of last shmdt() */ | ||
| 167 | 	time_t shm_ctime; /* [XSI] Time of last shmctl() change */ | ||
| 168 | 	void *shm_internal; /* reserved for kernel use */ | ||
| 169 | }; | ||
| 170 | #endif /* !__DARWIN_UNIX03 */ | ||
| 171 | |||
| 172 | #pragma pack() | ||
| 173 | |||
| 174 | |||
| 175 | __BEGIN_DECLS | ||
| 176 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 177 | int shmsys(int, ...); | ||
| 178 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 179 | void *shmat(int, const void *, int); | ||
| 180 | int shmctl(int, int, struct shmid_ds *) __DARWIN_ALIAS(shmctl); | ||
| 181 | int shmdt(const void *); | ||
| 182 | int shmget(key_t, size_t, int); | ||
| 183 | __END_DECLS | ||
| 184 | |||
| 185 | |||
| 186 | #endif /* !_SYS_SHM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/socket.h created+732| ... | @@ -0,0 +1,732 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2019 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved */ | ||
| 29 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 30 | /* | ||
| 31 | * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 | ||
| 32 | *	The Regents of the University of California. All rights reserved. | ||
| 33 | * | ||
| 34 | * Redistribution and use in source and binary forms, with or without | ||
| 35 | * modification, are permitted provided that the following conditions | ||
| 36 | * are met: | ||
| 37 | * 1. Redistributions of source code must retain the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer. | ||
| 39 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 40 | * notice, this list of conditions and the following disclaimer in the | ||
| 41 | * documentation and/or other materials provided with the distribution. | ||
| 42 | * 3. All advertising materials mentioning features or use of this software | ||
| 43 | * must display the following acknowledgement: | ||
| 44 | *	This product includes software developed by the University of | ||
| 45 | *	California, Berkeley and its contributors. | ||
| 46 | * 4. Neither the name of the University nor the names of its contributors | ||
| 47 | * may be used to endorse or promote products derived from this software | ||
| 48 | * without specific prior written permission. | ||
| 49 | * | ||
| 50 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 51 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 52 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 53 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 54 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 55 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 56 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 57 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 58 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 59 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 60 | * SUCH DAMAGE. | ||
| 61 | * | ||
| 62 | *	@(#)socket.h	8.4 (Berkeley) 2/21/94 | ||
| 63 | * $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $ | ||
| 64 | */ | ||
| 65 | /* | ||
| 66 | * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce | ||
| 67 | * support for mandatory and extensible security protections. This notice | ||
| 68 | * is included in support of clause 2.2 (b) of the Apple Public License, | ||
| 69 | * Version 2.0. | ||
| 70 | */ | ||
| 71 | |||
| 72 | #ifndef _SYS_SOCKET_H_ | ||
| 73 | #define _SYS_SOCKET_H_ | ||
| 74 | |||
| 75 | #include <sys/types.h> | ||
| 76 | #include <sys/cdefs.h> | ||
| 77 | #include <machine/_param.h> | ||
| 78 | #include <net/net_kev.h> | ||
| 79 | |||
| 80 | |||
| 81 | #include <Availability.h> | ||
| 82 | |||
| 83 | /* | ||
| 84 | * Definitions related to sockets: types, address families, options. | ||
| 85 | */ | ||
| 86 | |||
| 87 | /* | ||
| 88 | * Data types. | ||
| 89 | */ | ||
| 90 | |||
| 91 | #include <sys/_types/_gid_t.h> | ||
| 92 | #include <sys/_types/_off_t.h> | ||
| 93 | #include <sys/_types/_pid_t.h> | ||
| 94 | #include <sys/_types/_sa_family_t.h> | ||
| 95 | #include <sys/_types/_socklen_t.h> | ||
| 96 | |||
| 97 | /* XXX Not explicitly defined by POSIX, but function return types are */ | ||
| 98 | #include <sys/_types/_size_t.h> | ||
| 99 | |||
| 100 | /* XXX Not explicitly defined by POSIX, but function return types are */ | ||
| 101 | #include <sys/_types/_ssize_t.h> | ||
| 102 | |||
| 103 | /* | ||
| 104 | * [XSI] The iovec structure shall be defined as described in <sys/uio.h>. | ||
| 105 | */ | ||
| 106 | #include <sys/_types/_iovec_t.h> | ||
| 107 | |||
| 108 | /* | ||
| 109 | * Types | ||
| 110 | */ | ||
| 111 | #define SOCK_STREAM 1 /* stream socket */ | ||
| 112 | #define SOCK_DGRAM 2 /* datagram socket */ | ||
| 113 | #define SOCK_RAW 3 /* raw-protocol interface */ | ||
| 114 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 115 | #define SOCK_RDM 4 /* reliably-delivered message */ | ||
| 116 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 117 | #define SOCK_SEQPACKET 5 /* sequenced packet stream */ | ||
| 118 | |||
| 119 | /* | ||
| 120 | * Option flags per-socket. | ||
| 121 | */ | ||
| 122 | #define SO_DEBUG 0x0001 /* turn on debugging info recording */ | ||
| 123 | #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ | ||
| 124 | #define SO_REUSEADDR 0x0004 /* allow local address reuse */ | ||
| 125 | #define SO_KEEPALIVE 0x0008 /* keep connections alive */ | ||
| 126 | #define SO_DONTROUTE 0x0010 /* just use interface addresses */ | ||
| 127 | #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ | ||
| 128 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 129 | #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ | ||
| 130 | #define SO_LINGER 0x0080 /* linger on close if data present (in ticks) */ | ||
| 131 | #else | ||
| 132 | #define SO_LINGER 0x1080 /* linger on close if data present (in seconds) */ | ||
| 133 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 134 | #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ | ||
| 135 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 136 | #define SO_REUSEPORT 0x0200 /* allow local address & port reuse */ | ||
| 137 | #define SO_TIMESTAMP 0x0400 /* timestamp received dgram traffic */ | ||
| 138 | #define SO_TIMESTAMP_MONOTONIC 0x0800 /* Monotonically increasing timestamp on rcvd dgram */ | ||
| 139 | #ifndef __APPLE__ | ||
| 140 | #define SO_ACCEPTFILTER 0x1000 /* there is an accept filter */ | ||
| 141 | #else | ||
| 142 | #define SO_DONTTRUNC 0x2000 /* APPLE: Retain unread data */ | ||
| 143 | /* (ATOMIC proto) */ | ||
| 144 | #define SO_WANTMORE 0x4000 /* APPLE: Give hint when more data ready */ | ||
| 145 | #define SO_WANTOOBFLAG 0x8000 /* APPLE: Want OOB in MSG_FLAG on receive */ | ||
| 146 | |||
| 147 | |||
| 148 | #endif /* (!__APPLE__) */ | ||
| 149 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 150 | |||
| 151 | /* | ||
| 152 | * Additional options, not kept in so_options. | ||
| 153 | */ | ||
| 154 | #define SO_SNDBUF 0x1001 /* send buffer size */ | ||
| 155 | #define SO_RCVBUF 0x1002 /* receive buffer size */ | ||
| 156 | #define SO_SNDLOWAT 0x1003 /* send low-water mark */ | ||
| 157 | #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ | ||
| 158 | #define SO_SNDTIMEO 0x1005 /* send timeout */ | ||
| 159 | #define SO_RCVTIMEO 0x1006 /* receive timeout */ | ||
| 160 | #define SO_ERROR 0x1007 /* get error status and clear */ | ||
| 161 | #define SO_TYPE 0x1008 /* get socket type */ | ||
| 162 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 163 | #define SO_LABEL 0x1010 /* socket's MAC label */ | ||
| 164 | #define SO_PEERLABEL 0x1011 /* socket's peer MAC label */ | ||
| 165 | #ifdef __APPLE__ | ||
| 166 | #define SO_NREAD 0x1020 /* APPLE: get 1st-packet byte count */ | ||
| 167 | #define SO_NKE 0x1021 /* APPLE: Install socket-level NKE */ | ||
| 168 | #define SO_NOSIGPIPE 0x1022 /* APPLE: No SIGPIPE on EPIPE */ | ||
| 169 | #define SO_NOADDRERR 0x1023 /* APPLE: Returns EADDRNOTAVAIL when src is not available anymore */ | ||
| 170 | #define SO_NWRITE 0x1024 /* APPLE: Get number of bytes currently in send socket buffer */ | ||
| 171 | #define SO_REUSESHAREUID 0x1025 /* APPLE: Allow reuse of port/socket by different userids */ | ||
| 172 | #ifdef __APPLE_API_PRIVATE | ||
| 173 | #define SO_NOTIFYCONFLICT 0x1026 /* APPLE: send notification if there is a bind on a port which is already in use */ | ||
| 174 | #define SO_UPCALLCLOSEWAIT 0x1027 /* APPLE: block on close until an upcall returns */ | ||
| 175 | #endif | ||
| 176 | #define SO_LINGER_SEC 0x1080 /* linger on close if data present (in seconds) */ | ||
| 177 | #define SO_RANDOMPORT 0x1082 /* APPLE: request local port randomization */ | ||
| 178 | #define SO_NP_EXTENSIONS 0x1083 /* To turn off some POSIX behavior */ | ||
| 179 | #endif | ||
| 180 | |||
| 181 | #define SO_NUMRCVPKT 0x1112 /* number of datagrams in receive socket buffer */ | ||
| 182 | #define SO_NET_SERVICE_TYPE 0x1116 /* Network service type */ | ||
| 183 | |||
| 184 | |||
| 185 | #define SO_NETSVC_MARKING_LEVEL 0x1119 /* Get QoS marking in effect for socket */ | ||
| 186 | |||
| 187 | /* | ||
| 188 | * Network Service Type for option SO_NET_SERVICE_TYPE | ||
| 189 | * | ||
| 190 | * The vast majority of sockets should use Best Effort that is the default | ||
| 191 | * Network Service Type. Other Network Service Types have to be used only if | ||
| 192 | * the traffic actually matches the description of the Network Service Type. | ||
| 193 | * | ||
| 194 | * Network Service Types do not represent priorities but rather describe | ||
| 195 | * different categories of delay, jitter and loss parameters. | ||
| 196 | * Those parameters may influence protocols from layer 4 protocols like TCP | ||
| 197 | * to layer 2 protocols like Wi-Fi. The Network Service Type can determine | ||
| 198 | * how the traffic is queued and scheduled by the host networking stack and | ||
| 199 | * by other entities on the network like switches and routers. For example | ||
| 200 | * for Wi-Fi, the Network Service Type can select the marking of the | ||
| 201 | * layer 2 packet with the appropriate WMM Access Category. | ||
| 202 | * | ||
| 203 | * There is no point in attempting to game the system and use | ||
| 204 | * a Network Service Type that does not correspond to the actual | ||
| 205 | * traffic characteristic but one that seems to have a higher precedence. | ||
| 206 | * The reason is that for service classes that have lower tolerance | ||
| 207 | * for delay and jitter, the queues size is lower than for service | ||
| 208 | * classes that are more tolerant to delay and jitter. | ||
| 209 | * | ||
| 210 | * For example using a voice service type for bulk data transfer will lead | ||
| 211 | * to disastrous results as soon as congestion happens because the voice | ||
| 212 | * queue overflows and packets get dropped. This is not only bad for the bulk | ||
| 213 | * data transfer but it is also bad for VoIP apps that legitimately are using | ||
| 214 | * the voice service type. | ||
| 215 | * | ||
| 216 | * The characteristics of the Network Service Types are based on the service | ||
| 217 | * classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service | ||
| 218 | * Classes" | ||
| 219 | * | ||
| 220 | * When system detects the outgoing interface belongs to a DiffServ domain | ||
| 221 | * that follows the recommendation of the IETF draft "Guidelines for DiffServ to | ||
| 222 | * IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value | ||
| 223 | * that corresponds to Network Service Type. | ||
| 224 | * | ||
| 225 | * NET_SERVICE_TYPE_BE | ||
| 226 | *	"Best Effort", unclassified/standard. This is the default service | ||
| 227 | *	class and cover the majority of the traffic. | ||
| 228 | * | ||
| 229 | * NET_SERVICE_TYPE_BK | ||
| 230 | *	"Background", high delay tolerant, loss tolerant. elastic flow, | ||
| 231 | *	variable size & long-lived. E.g: non-interactive network bulk transfer | ||
| 232 | *	like synching or backup. | ||
| 233 | * | ||
| 234 | * NET_SERVICE_TYPE_RD | ||
| 235 | *	"Responsive Data", a notch higher than "Best Effort", medium delay | ||
| 236 | *	tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email, | ||
| 237 | *	instant messaging, for which there is a sense of interactivity and | ||
| 238 | *	urgency (user waiting for output). | ||
| 239 | * | ||
| 240 | * NET_SERVICE_TYPE_OAM | ||
| 241 | *	"Operations, Administration, and Management", medium delay tolerant, | ||
| 242 | *	low-medium loss tolerant, elastic & inelastic flows, variable size. | ||
| 243 | *	E.g. VPN tunnels. | ||
| 244 | * | ||
| 245 | * NET_SERVICE_TYPE_AV | ||
| 246 | *	"Multimedia Audio/Video Streaming", medium delay tolerant, low-medium | ||
| 247 | *	loss tolerant, elastic flow, constant packet interval, variable rate | ||
| 248 | *	and size. E.g. video and audio playback with buffering. | ||
| 249 | * | ||
| 250 | * NET_SERVICE_TYPE_RV | ||
| 251 | *	"Responsive Multimedia Audio/Video", low delay tolerant, low-medium | ||
| 252 | *	loss tolerant, elastic flow, variable packet interval, rate and size. | ||
| 253 | *	E.g. screen sharing. | ||
| 254 | * | ||
| 255 | * NET_SERVICE_TYPE_VI | ||
| 256 | *	"Interactive Video", low delay tolerant, low-medium loss tolerant, | ||
| 257 | *	elastic flow, constant packet interval, variable rate & size. E.g. | ||
| 258 | *	video telephony. | ||
| 259 | * | ||
| 260 | * NET_SERVICE_TYPE_SIG | ||
| 261 | *	"Signaling", low delay tolerant, low loss tolerant, inelastic flow, | ||
| 262 | *	jitter tolerant, rate is bursty but short, variable size. E.g. SIP. | ||
| 263 | * | ||
| 264 | * NET_SERVICE_TYPE_VO | ||
| 265 | *	"Interactive Voice", very low delay tolerant, very low loss tolerant, | ||
| 266 | *	inelastic flow, constant packet rate, somewhat fixed size. | ||
| 267 | *	E.g. VoIP. | ||
| 268 | */ | ||
| 269 | |||
| 270 | #define NET_SERVICE_TYPE_BE 0 /* Best effort */ | ||
| 271 | #define NET_SERVICE_TYPE_BK 1 /* Background system initiated */ | ||
| 272 | #define NET_SERVICE_TYPE_SIG 2 /* Signaling */ | ||
| 273 | #define NET_SERVICE_TYPE_VI 3 /* Interactive Video */ | ||
| 274 | #define NET_SERVICE_TYPE_VO 4 /* Interactive Voice */ | ||
| 275 | #define NET_SERVICE_TYPE_RV 5 /* Responsive Multimedia Audio/Video */ | ||
| 276 | #define NET_SERVICE_TYPE_AV 6 /* Multimedia Audio/Video Streaming */ | ||
| 277 | #define NET_SERVICE_TYPE_OAM 7 /* Operations, Administration, and Management */ | ||
| 278 | #define NET_SERVICE_TYPE_RD 8 /* Responsive Data */ | ||
| 279 | |||
| 280 | |||
| 281 | /* These are supported values for SO_NETSVC_MARKING_LEVEL */ | ||
| 282 | #define NETSVC_MRKNG_UNKNOWN 0 /* The outgoing network interface is not known */ | ||
| 283 | #define NETSVC_MRKNG_LVL_L2 1 /* Default marking at layer 2 (for example Wi-Fi WMM) */ | ||
| 284 | #define NETSVC_MRKNG_LVL_L3L2_ALL 2 /* Layer 3 DSCP marking and layer 2 marking for all Network Service Types */ | ||
| 285 | #define NETSVC_MRKNG_LVL_L3L2_BK 3 /* The system policy limits layer 3 DSCP marking and layer 2 marking | ||
| 286 | 	 * to background Network Service Types */ | ||
| 287 | |||
| 288 | |||
| 289 | typedef __uint32_t sae_associd_t; | ||
| 290 | #define SAE_ASSOCID_ANY 0 | ||
| 291 | #define SAE_ASSOCID_ALL ((sae_associd_t)(-1ULL)) | ||
| 292 | |||
| 293 | typedef __uint32_t sae_connid_t; | ||
| 294 | #define SAE_CONNID_ANY 0 | ||
| 295 | #define SAE_CONNID_ALL ((sae_connid_t)(-1ULL)) | ||
| 296 | |||
| 297 | /* connectx() flag parameters */ | ||
| 298 | #define CONNECT_RESUME_ON_READ_WRITE 0x1 /* resume connect() on read/write */ | ||
| 299 | #define CONNECT_DATA_IDEMPOTENT 0x2 /* data is idempotent */ | ||
| 300 | #define CONNECT_DATA_AUTHENTICATED 0x4 /* data includes security that replaces the TFO-cookie */ | ||
| 301 | |||
| 302 | /* sockaddr endpoints */ | ||
| 303 | typedef struct sa_endpoints { | ||
| 304 | 	unsigned int sae_srcif; /* optional source interface */ | ||
| 305 | 	const struct sockaddr *sae_srcaddr; /* optional source address */ | ||
| 306 | 	socklen_t sae_srcaddrlen; /* size of source address */ | ||
| 307 | 	const struct sockaddr *sae_dstaddr; /* destination address */ | ||
| 308 | 	socklen_t sae_dstaddrlen; /* size of destination address */ | ||
| 309 | } sa_endpoints_t; | ||
| 310 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 311 | |||
| 312 | /* | ||
| 313 | * Structure used for manipulating linger option. | ||
| 314 | */ | ||
| 315 | struct linger { | ||
| 316 | 	int l_onoff; /* option on/off */ | ||
| 317 | 	int l_linger; /* linger time */ | ||
| 318 | }; | ||
| 319 | |||
| 320 | #ifndef __APPLE__ | ||
| 321 | struct accept_filter_arg { | ||
| 322 | 	char af_name[16]; | ||
| 323 | 	char af_arg[256 - 16]; | ||
| 324 | }; | ||
| 325 | #endif | ||
| 326 | |||
| 327 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 328 | #ifdef __APPLE__ | ||
| 329 | |||
| 330 | /* | ||
| 331 | * Structure to control non-portable Sockets extension to POSIX | ||
| 332 | */ | ||
| 333 | struct so_np_extensions { | ||
| 334 | 	u_int32_t npx_flags; | ||
| 335 | 	u_int32_t npx_mask; | ||
| 336 | }; | ||
| 337 | |||
| 338 | #define SONPX_SETOPTSHUT 0x000000001 /* flag for allowing setsockopt after shutdown */ | ||
| 339 | |||
| 340 | |||
| 341 | |||
| 342 | #endif | ||
| 343 | #endif | ||
| 344 | |||
| 345 | /* | ||
| 346 | * Level number for (get/set)sockopt() to apply to socket itself. | ||
| 347 | */ | ||
| 348 | #define SOL_SOCKET 0xffff /* options for socket level */ | ||
| 349 | |||
| 350 | |||
| 351 | /* | ||
| 352 | * Address families. | ||
| 353 | */ | ||
| 354 | #define AF_UNSPEC 0 /* unspecified */ | ||
| 355 | #define AF_UNIX 1 /* local to host (pipes) */ | ||
| 356 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 357 | #define AF_LOCAL AF_UNIX /* backward compatibility */ | ||
| 358 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 359 | #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ | ||
| 360 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 361 | #define AF_IMPLINK 3 /* arpanet imp addresses */ | ||
| 362 | #define AF_PUP 4 /* pup protocols: e.g. BSP */ | ||
| 363 | #define AF_CHAOS 5 /* mit CHAOS protocols */ | ||
| 364 | #define AF_NS 6 /* XEROX NS protocols */ | ||
| 365 | #define AF_ISO 7 /* ISO protocols */ | ||
| 366 | #define AF_OSI AF_ISO | ||
| 367 | #define AF_ECMA 8 /* European computer manufacturers */ | ||
| 368 | #define AF_DATAKIT 9 /* datakit protocols */ | ||
| 369 | #define AF_CCITT 10 /* CCITT protocols, X.25 etc */ | ||
| 370 | #define AF_SNA 11 /* IBM SNA */ | ||
| 371 | #define AF_DECnet 12 /* DECnet */ | ||
| 372 | #define AF_DLI 13 /* DEC Direct data link interface */ | ||
| 373 | #define AF_LAT 14 /* LAT */ | ||
| 374 | #define AF_HYLINK 15 /* NSC Hyperchannel */ | ||
| 375 | #define AF_APPLETALK 16 /* Apple Talk */ | ||
| 376 | #define AF_ROUTE 17 /* Internal Routing Protocol */ | ||
| 377 | #define AF_LINK 18 /* Link layer interface */ | ||
| 378 | #define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */ | ||
| 379 | #define AF_COIP 20 /* connection-oriented IP, aka ST II */ | ||
| 380 | #define AF_CNT 21 /* Computer Network Technology */ | ||
| 381 | #define pseudo_AF_RTIP 22 /* Help Identify RTIP packets */ | ||
| 382 | #define AF_IPX 23 /* Novell Internet Protocol */ | ||
| 383 | #define AF_SIP 24 /* Simple Internet Protocol */ | ||
| 384 | #define pseudo_AF_PIP 25 /* Help Identify PIP packets */ | ||
| 385 | #define AF_NDRV 27 /* Network Driver 'raw' access */ | ||
| 386 | #define AF_ISDN 28 /* Integrated Services Digital Network */ | ||
| 387 | #define AF_E164 AF_ISDN /* CCITT E.164 recommendation */ | ||
| 388 | #define pseudo_AF_KEY 29 /* Internal key-management function */ | ||
| 389 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 390 | #define AF_INET6 30 /* IPv6 */ | ||
| 391 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 392 | #define AF_NATM 31 /* native ATM access */ | ||
| 393 | #define AF_SYSTEM 32 /* Kernel event messages */ | ||
| 394 | #define AF_NETBIOS 33 /* NetBIOS */ | ||
| 395 | #define AF_PPP 34 /* PPP communication protocol */ | ||
| 396 | #define pseudo_AF_HDRCMPLT 35 /* Used by BPF to not rewrite headers | ||
| 397 | 	 * in interface output routine */ | ||
| 398 | #define AF_RESERVED_36 36 /* Reserved for internal usage */ | ||
| 399 | #define AF_IEEE80211 37 /* IEEE 802.11 protocol */ | ||
| 400 | #define AF_UTUN 38 | ||
| 401 | #define AF_MAX 40 | ||
| 402 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 403 | |||
| 404 | /* | ||
| 405 | * [XSI] Structure used by kernel to store most addresses. | ||
| 406 | */ | ||
| 407 | struct sockaddr { | ||
| 408 | 	__uint8_t sa_len; /* total length */ | ||
| 409 | 	sa_family_t sa_family; /* [XSI] address family */ | ||
| 410 | 	char sa_data[14]; /* [XSI] addr value (actually larger) */ | ||
| 411 | }; | ||
| 412 | |||
| 413 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 414 | #define SOCK_MAXADDRLEN 255 /* longest possible addresses */ | ||
| 415 | |||
| 416 | /* | ||
| 417 | * Structure used by kernel to pass protocol | ||
| 418 | * information in raw sockets. | ||
| 419 | */ | ||
| 420 | struct sockproto { | ||
| 421 | 	__uint16_t sp_family; /* address family */ | ||
| 422 | 	__uint16_t sp_protocol; /* protocol */ | ||
| 423 | }; | ||
| 424 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 425 | |||
| 426 | /* | ||
| 427 | * RFC 2553: protocol-independent placeholder for socket addresses | ||
| 428 | */ | ||
| 429 | #define _SS_MAXSIZE 128 | ||
| 430 | #define _SS_ALIGNSIZE (sizeof(__int64_t)) | ||
| 431 | #define _SS_PAD1SIZE \ | ||
| 432 | 	 (_SS_ALIGNSIZE - sizeof(__uint8_t) - sizeof(sa_family_t)) | ||
| 433 | #define _SS_PAD2SIZE \ | ||
| 434 | 	 (_SS_MAXSIZE - sizeof(__uint8_t) - sizeof(sa_family_t) - \ | ||
| 435 | 	 _SS_PAD1SIZE - _SS_ALIGNSIZE) | ||
| 436 | |||
| 437 | /* | ||
| 438 | * [XSI] sockaddr_storage | ||
| 439 | */ | ||
| 440 | struct sockaddr_storage { | ||
| 441 | 	__uint8_t ss_len; /* address length */ | ||
| 442 | 	sa_family_t ss_family; /* [XSI] address family */ | ||
| 443 | 	char __ss_pad1[_SS_PAD1SIZE]; | ||
| 444 | 	__int64_t __ss_align; /* force structure storage alignment */ | ||
| 445 | 	char __ss_pad2[_SS_PAD2SIZE]; | ||
| 446 | }; | ||
| 447 | |||
| 448 | /* | ||
| 449 | * Protocol families, same as address families for now. | ||
| 450 | */ | ||
| 451 | #define PF_UNSPEC AF_UNSPEC | ||
| 452 | #define PF_LOCAL AF_LOCAL | ||
| 453 | #define PF_UNIX PF_LOCAL /* backward compatibility */ | ||
| 454 | #define PF_INET AF_INET | ||
| 455 | #define PF_IMPLINK AF_IMPLINK | ||
| 456 | #define PF_PUP AF_PUP | ||
| 457 | #define PF_CHAOS AF_CHAOS | ||
| 458 | #define PF_NS AF_NS | ||
| 459 | #define PF_ISO AF_ISO | ||
| 460 | #define PF_OSI AF_ISO | ||
| 461 | #define PF_ECMA AF_ECMA | ||
| 462 | #define PF_DATAKIT AF_DATAKIT | ||
| 463 | #define PF_CCITT AF_CCITT | ||
| 464 | #define PF_SNA AF_SNA | ||
| 465 | #define PF_DECnet AF_DECnet | ||
| 466 | #define PF_DLI AF_DLI | ||
| 467 | #define PF_LAT AF_LAT | ||
| 468 | #define PF_HYLINK AF_HYLINK | ||
| 469 | #define PF_APPLETALK AF_APPLETALK | ||
| 470 | #define PF_ROUTE AF_ROUTE | ||
| 471 | #define PF_LINK AF_LINK | ||
| 472 | #define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */ | ||
| 473 | #define PF_COIP AF_COIP | ||
| 474 | #define PF_CNT AF_CNT | ||
| 475 | #define PF_SIP AF_SIP | ||
| 476 | #define PF_IPX AF_IPX /* same format as AF_NS */ | ||
| 477 | #define PF_RTIP pseudo_AF_RTIP /* same format as AF_INET */ | ||
| 478 | #define PF_PIP pseudo_AF_PIP | ||
| 479 | #define PF_NDRV AF_NDRV | ||
| 480 | #define PF_ISDN AF_ISDN | ||
| 481 | #define PF_KEY pseudo_AF_KEY | ||
| 482 | #define PF_INET6 AF_INET6 | ||
| 483 | #define PF_NATM AF_NATM | ||
| 484 | #define PF_SYSTEM AF_SYSTEM | ||
| 485 | #define PF_NETBIOS AF_NETBIOS | ||
| 486 | #define PF_PPP AF_PPP | ||
| 487 | #define PF_RESERVED_36 AF_RESERVED_36 | ||
| 488 | #define PF_UTUN AF_UTUN | ||
| 489 | #define PF_MAX AF_MAX | ||
| 490 | |||
| 491 | /* | ||
| 492 | * These do not have socket-layer support: | ||
| 493 | */ | ||
| 494 | #define PF_VLAN ((uint32_t)0x766c616e) /* 'vlan' */ | ||
| 495 | #define PF_BOND ((uint32_t)0x626f6e64) /* 'bond' */ | ||
| 496 | |||
| 497 | /* | ||
| 498 | * Definitions for network related sysctl, CTL_NET. | ||
| 499 | * | ||
| 500 | * Second level is protocol family. | ||
| 501 | * Third level is protocol number. | ||
| 502 | * | ||
| 503 | * Further levels are defined by the individual families below. | ||
| 504 | */ | ||
| 505 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 506 | #define NET_MAXID AF_MAX | ||
| 507 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 508 | |||
| 509 | |||
| 510 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 511 | /* | ||
| 512 | * PF_ROUTE - Routing table | ||
| 513 | * | ||
| 514 | * Three additional levels are defined: | ||
| 515 | *	Fourth: address family, 0 is wildcard | ||
| 516 | *	Fifth: type of info, defined below | ||
| 517 | *	Sixth: flag(s) to mask with for NET_RT_FLAGS | ||
| 518 | */ | ||
| 519 | #define NET_RT_DUMP 1 /* dump; may limit to a.f. */ | ||
| 520 | #define NET_RT_FLAGS 2 /* by flags, e.g. RESOLVING */ | ||
| 521 | #define NET_RT_IFLIST 3 /* survey interface list */ | ||
| 522 | #define NET_RT_STAT 4 /* routing statistics */ | ||
| 523 | #define NET_RT_TRASH 5 /* routes not in table but not freed */ | ||
| 524 | #define NET_RT_IFLIST2 6 /* interface list with addresses */ | ||
| 525 | #define NET_RT_DUMP2 7 /* dump; may limit to a.f. */ | ||
| 526 | /* | ||
| 527 | * Allows read access non-local host's MAC address | ||
| 528 | * if the process has neighbor cache entitlement. | ||
| 529 | */ | ||
| 530 | #define NET_RT_FLAGS_PRIV 10 | ||
| 531 | #define NET_RT_MAXID 11 | ||
| 532 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 533 | |||
| 534 | |||
| 535 | |||
| 536 | |||
| 537 | /* | ||
| 538 | * Maximum queue length specifiable by listen. | ||
| 539 | */ | ||
| 540 | #define SOMAXCONN 128 | ||
| 541 | |||
| 542 | /* | ||
| 543 | * [XSI] Message header for recvmsg and sendmsg calls. | ||
| 544 | * Used value-result for recvmsg, value only for sendmsg. | ||
| 545 | */ | ||
| 546 | struct msghdr { | ||
| 547 | 	void *msg_name; /* [XSI] optional address */ | ||
| 548 | 	socklen_t msg_namelen; /* [XSI] size of address */ | ||
| 549 | 	struct iovec *msg_iov; /* [XSI] scatter/gather array */ | ||
| 550 | 	int msg_iovlen; /* [XSI] # elements in msg_iov */ | ||
| 551 | 	void *msg_control; /* [XSI] ancillary data, see below */ | ||
| 552 | 	socklen_t msg_controllen; /* [XSI] ancillary data buffer len */ | ||
| 553 | 	int msg_flags; /* [XSI] flags on received message */ | ||
| 554 | }; | ||
| 555 | |||
| 556 | |||
| 557 | |||
| 558 | #define MSG_OOB 0x1 /* process out-of-band data */ | ||
| 559 | #define MSG_PEEK 0x2 /* peek at incoming message */ | ||
| 560 | #define MSG_DONTROUTE 0x4 /* send without using routing tables */ | ||
| 561 | #define MSG_EOR 0x8 /* data completes record */ | ||
| 562 | #define MSG_TRUNC 0x10 /* data discarded before delivery */ | ||
| 563 | #define MSG_CTRUNC 0x20 /* control data lost before delivery */ | ||
| 564 | #define MSG_WAITALL 0x40 /* wait for full request or error */ | ||
| 565 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 566 | #define MSG_DONTWAIT 0x80 /* this message should be nonblocking */ | ||
| 567 | #define MSG_EOF 0x100 /* data completes connection */ | ||
| 568 | #ifdef __APPLE__ | ||
| 569 | #ifdef __APPLE_API_OBSOLETE | ||
| 570 | #define MSG_WAITSTREAM 0x200 /* wait up to full request.. may return partial */ | ||
| 571 | #endif | ||
| 572 | #define MSG_FLUSH 0x400 /* Start of 'hold' seq; dump so_temp, deprecated */ | ||
| 573 | #define MSG_HOLD 0x800 /* Hold frag in so_temp, deprecated */ | ||
| 574 | #define MSG_SEND 0x1000 /* Send the packet in so_temp, deprecated */ | ||
| 575 | #define MSG_HAVEMORE 0x2000 /* Data ready to be read */ | ||
| 576 | #define MSG_RCVMORE 0x4000 /* Data remains in current pkt */ | ||
| 577 | #endif | ||
| 578 | #define MSG_NEEDSA 0x10000 /* Fail receive if socket address cannot be allocated */ | ||
| 579 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 580 | |||
| 581 | /* | ||
| 582 | * Header for ancillary data objects in msg_control buffer. | ||
| 583 | * Used for additional information with/about a datagram | ||
| 584 | * not expressible by flags. The format is a sequence | ||
| 585 | * of message elements headed by cmsghdr structures. | ||
| 586 | */ | ||
| 587 | struct cmsghdr { | ||
| 588 | 	socklen_t cmsg_len; /* [XSI] data byte count, including hdr */ | ||
| 589 | 	int cmsg_level; /* [XSI] originating protocol */ | ||
| 590 | 	int cmsg_type; /* [XSI] protocol-specific type */ | ||
| 591 | /* followed by	unsigned char cmsg_data[]; */ | ||
| 592 | }; | ||
| 593 | |||
| 594 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 595 | #ifndef __APPLE__ | ||
| 596 | /* | ||
| 597 | * While we may have more groups than this, the cmsgcred struct must | ||
| 598 | * be able to fit in an mbuf, and NGROUPS_MAX is too large to allow | ||
| 599 | * this. | ||
| 600 | */ | ||
| 601 | #define CMGROUP_MAX 16 | ||
| 602 | |||
| 603 | /* | ||
| 604 | * Credentials structure, used to verify the identity of a peer | ||
| 605 | * process that has sent us a message. This is allocated by the | ||
| 606 | * peer process but filled in by the kernel. This prevents the | ||
| 607 | * peer from lying about its identity. (Note that cmcred_groups[0] | ||
| 608 | * is the effective GID.) | ||
| 609 | */ | ||
| 610 | struct cmsgcred { | ||
| 611 | 	pid_t cmcred_pid; /* PID of sending process */ | ||
| 612 | 	uid_t cmcred_uid; /* real UID of sending process */ | ||
| 613 | 	uid_t cmcred_euid; /* effective UID of sending process */ | ||
| 614 | 	gid_t cmcred_gid; /* real GID of sending process */ | ||
| 615 | 	short cmcred_ngroups; /* number or groups */ | ||
| 616 | 	gid_t cmcred_groups[CMGROUP_MAX]; /* groups */ | ||
| 617 | }; | ||
| 618 | #endif | ||
| 619 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 620 | |||
| 621 | /* given pointer to struct cmsghdr, return pointer to data */ | ||
| 622 | #define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) + \ | ||
| 623 | 	__DARWIN_ALIGN32(sizeof(struct cmsghdr))) | ||
| 624 | |||
| 625 | /* | ||
| 626 | * RFC 2292 requires to check msg_controllen, in case that the kernel returns | ||
| 627 | * an empty list for some reasons. | ||
| 628 | */ | ||
| 629 | #define CMSG_FIRSTHDR(mhdr) \ | ||
| 630 | 	((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \ | ||
| 631 | 	 (struct cmsghdr *)(mhdr)->msg_control : \ | ||
| 632 | 	 (struct cmsghdr *)0L) | ||
| 633 | |||
| 634 | |||
| 635 | /* | ||
| 636 | * Given pointer to struct cmsghdr, return pointer to next cmsghdr | ||
| 637 | * RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr) | ||
| 638 | */ | ||
| 639 | #define CMSG_NXTHDR(mhdr, cmsg) \ | ||
| 640 | 	((char *)(cmsg) == (char *)0L ? CMSG_FIRSTHDR(mhdr) : \ | ||
| 641 | 	 ((((unsigned char *)(cmsg) + \ | ||
| 642 | 	 __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len) + \ | ||
| 643 | 	 __DARWIN_ALIGN32(sizeof(struct cmsghdr))) > \ | ||
| 644 | 	 ((unsigned char *)(mhdr)->msg_control + \ | ||
| 645 | 	 (mhdr)->msg_controllen)) ? \ | ||
| 646 | 	 (struct cmsghdr *)0L /* NULL */ : \ | ||
| 647 | 	 (struct cmsghdr *)(void *)((unsigned char *)(cmsg) + \ | ||
| 648 | 	 __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len)))) | ||
| 649 | |||
| 650 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 651 | /* RFC 2292 additions */ | ||
| 652 | #define CMSG_SPACE(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + __DARWIN_ALIGN32(l)) | ||
| 653 | #define CMSG_LEN(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l)) | ||
| 654 | |||
| 655 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 656 | |||
| 657 | /* "Socket"-level control message types: */ | ||
| 658 | #define SCM_RIGHTS 0x01 /* access rights (array of int) */ | ||
| 659 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 660 | #define SCM_TIMESTAMP 0x02 /* timestamp (struct timeval) */ | ||
| 661 | #define SCM_CREDS 0x03 /* process creds (struct cmsgcred) */ | ||
| 662 | #define SCM_TIMESTAMP_MONOTONIC 0x04 /* timestamp (uint64_t) */ | ||
| 663 | |||
| 664 | |||
| 665 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 666 | |||
| 667 | /* | ||
| 668 | * howto arguments for shutdown(2), specified by Posix.1g. | ||
| 669 | */ | ||
| 670 | #define SHUT_RD 0 /* shut down the reading side */ | ||
| 671 | #define SHUT_WR 1 /* shut down the writing side */ | ||
| 672 | #define SHUT_RDWR 2 /* shut down both sides */ | ||
| 673 | |||
| 674 | #if !defined(_POSIX_C_SOURCE) | ||
| 675 | /* | ||
| 676 | * sendfile(2) header/trailer struct | ||
| 677 | */ | ||
| 678 | struct sf_hdtr { | ||
| 679 | 	struct iovec *headers; /* pointer to an array of header struct iovec's */ | ||
| 680 | 	int hdr_cnt; /* number of header iovec's */ | ||
| 681 | 	struct iovec *trailers; /* pointer to an array of trailer struct iovec's */ | ||
| 682 | 	int trl_cnt; /* number of trailer iovec's */ | ||
| 683 | }; | ||
| 684 | |||
| 685 | |||
| 686 | #endif /* !_POSIX_C_SOURCE */ | ||
| 687 | |||
| 688 | |||
| 689 | __BEGIN_DECLS | ||
| 690 | |||
| 691 | int accept(int, struct sockaddr * __restrict, socklen_t * __restrict) | ||
| 692 | __DARWIN_ALIAS_C(accept); | ||
| 693 | int bind(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS(bind); | ||
| 694 | int connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect); | ||
| 695 | int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict) | ||
| 696 | __DARWIN_ALIAS(getpeername); | ||
| 697 | int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict) | ||
| 698 | __DARWIN_ALIAS(getsockname); | ||
| 699 | int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict); | ||
| 700 | int listen(int, int) __DARWIN_ALIAS(listen); | ||
| 701 | ssize_t recv(int, void *, size_t, int) __DARWIN_ALIAS_C(recv); | ||
| 702 | ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict, | ||
| 703 | socklen_t * __restrict) __DARWIN_ALIAS_C(recvfrom); | ||
| 704 | ssize_t recvmsg(int, struct msghdr *, int) __DARWIN_ALIAS_C(recvmsg); | ||
| 705 | ssize_t send(int, const void *, size_t, int) __DARWIN_ALIAS_C(send); | ||
| 706 | ssize_t sendmsg(int, const struct msghdr *, int) __DARWIN_ALIAS_C(sendmsg); | ||
| 707 | ssize_t sendto(int, const void *, size_t, | ||
| 708 | int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(sendto); | ||
| 709 | int setsockopt(int, int, int, const void *, socklen_t); | ||
| 710 | int shutdown(int, int); | ||
| 711 | int sockatmark(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 712 | int socket(int, int, int); | ||
| 713 | int socketpair(int, int, int, int *) __DARWIN_ALIAS(socketpair); | ||
| 714 | |||
| 715 | #if !defined(_POSIX_C_SOURCE) | ||
| 716 | int sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int); | ||
| 717 | #endif /* !_POSIX_C_SOURCE */ | ||
| 718 | |||
| 719 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 720 | void pfctlinput(int, struct sockaddr *); | ||
| 721 | |||
| 722 | __API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0)) | ||
| 723 | int connectx(int, const sa_endpoints_t *, sae_associd_t, unsigned int, | ||
| 724 | const struct iovec *, unsigned int, size_t *, sae_connid_t *); | ||
| 725 | |||
| 726 | __API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0)) | ||
| 727 | int disconnectx(int, sae_associd_t, sae_connid_t); | ||
| 728 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 729 | __END_DECLS | ||
| 730 | |||
| 731 | |||
| 732 | #endif /* !_SYS_SOCKET_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/spawn.h created+77| ... | @@ -0,0 +1,77 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | |||
| 29 | /* | ||
| 30 | * [SPN] Support for _POSIX_SPAWN | ||
| 31 | * | ||
| 32 | * This header contains information that is shared between the user space | ||
| 33 | * and kernel versions of the posix_spawn() code. Shared elements are all | ||
| 34 | * manifest constants, at the current time. | ||
| 35 | */ | ||
| 36 | |||
| 37 | #ifndef _SYS_SPAWN_H_ | ||
| 38 | #define _SYS_SPAWN_H_ | ||
| 39 | |||
| 40 | /* | ||
| 41 | * Possible bit values which may be OR'ed together and provided as the second | ||
| 42 | * parameter to posix_spawnattr_setflags() or implicit returned in the value of | ||
| 43 | * the second parameter to posix_spawnattr_getflags(). | ||
| 44 | */ | ||
| 45 | #define POSIX_SPAWN_RESETIDS 0x0001 /* [SPN] R[UG]ID not E[UG]ID */ | ||
| 46 | #define POSIX_SPAWN_SETPGROUP 0x0002 /* [SPN] set non-parent PGID */ | ||
| 47 | #define POSIX_SPAWN_SETSIGDEF 0x0004 /* [SPN] reset sigset default */ | ||
| 48 | #define POSIX_SPAWN_SETSIGMASK 0x0008 /* [SPN] set signal mask */ | ||
| 49 | |||
| 50 | #if 0 /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */ | ||
| 51 | #define POSIX_SPAWN_SETSCHEDPARAM 0x0010 | ||
| 52 | #define POSIX_SPAWN_SETSCHEDULER 0x0020 | ||
| 53 | #endif /* 0 */ | ||
| 54 | |||
| 55 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 56 | /* | ||
| 57 | * Darwin-specific flags | ||
| 58 | */ | ||
| 59 | #define POSIX_SPAWN_SETEXEC 0x0040 | ||
| 60 | #define POSIX_SPAWN_START_SUSPENDED 0x0080 | ||
| 61 | #define POSIX_SPAWN_SETSID 0x0400 | ||
| 62 | #define POSIX_SPAWN_CLOEXEC_DEFAULT 0x4000 | ||
| 63 | |||
| 64 | /* | ||
| 65 | * Possible values to be set for the process control actions on resource starvation. | ||
| 66 | * POSIX_SPAWN_PCONTROL_THROTTLE indicates that the process is to be throttled on starvation. | ||
| 67 | * POSIX_SPAWN_PCONTROL_SUSPEND indicates that the process is to be suspended on starvation. | ||
| 68 | * POSIX_SPAWN_PCONTROL_KILL indicates that the process is to be terminated on starvation. | ||
| 69 | */ | ||
| 70 | #define POSIX_SPAWN_PCONTROL_NONE 0x0000 | ||
| 71 | #define POSIX_SPAWN_PCONTROL_THROTTLE 0x0001 | ||
| 72 | #define POSIX_SPAWN_PCONTROL_SUSPEND 0x0002 | ||
| 73 | #define POSIX_SPAWN_PCONTROL_KILL 0x0003 | ||
| 74 | |||
| 75 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 76 | |||
| 77 | #endif /* _SYS_SPAWN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/stat.h created+430| ... | @@ -0,0 +1,430 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2014 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1989, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | *	This product includes software developed by the University of | ||
| 49 | *	California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)stat.h	8.9 (Berkeley) 8/17/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | |||
| 70 | #ifndef _SYS_STAT_H_ | ||
| 71 | #define _SYS_STAT_H_ | ||
| 72 | |||
| 73 | #include <sys/_types.h> | ||
| 74 | #include <sys/cdefs.h> | ||
| 75 | #include <Availability.h> | ||
| 76 | |||
| 77 | /* [XSI] The timespec structure may be defined as described in <time.h> */ | ||
| 78 | #include <sys/_types/_timespec.h> | ||
| 79 | |||
| 80 | /* | ||
| 81 | * [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t, | ||
| 82 | * gid_t, off_t, and time_t types shall be defined as described in | ||
| 83 | * <sys/types.h>. | ||
| 84 | */ | ||
| 85 | #include <sys/_types/_blkcnt_t.h> | ||
| 86 | #include <sys/_types/_blksize_t.h> | ||
| 87 | #include <sys/_types/_dev_t.h> /* device number */ | ||
| 88 | #include <sys/_types/_ino_t.h> | ||
| 89 | |||
| 90 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 91 | #include <sys/_types/_ino64_t.h> | ||
| 92 | #endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */ | ||
| 93 | |||
| 94 | #include <sys/_types/_mode_t.h> | ||
| 95 | #include <sys/_types/_nlink_t.h> | ||
| 96 | #include <sys/_types/_uid_t.h> | ||
| 97 | #include <sys/_types/_gid_t.h> | ||
| 98 | #include <sys/_types/_off_t.h> | ||
| 99 | #include <sys/_types/_time_t.h> | ||
| 100 | |||
| 101 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 102 | /* | ||
| 103 | * XXX So deprecated, it would make your head spin | ||
| 104 | * | ||
| 105 | * The old stat structure. In fact, this is not used by the kernel at all, | ||
| 106 | * and should not be used by user space, and should be removed from this | ||
| 107 | * header file entirely (along with the unused cvtstat() prototype in | ||
| 108 | * vnode_internal.h). | ||
| 109 | */ | ||
| 110 | struct ostat { | ||
| 111 | 	__uint16_t st_dev; /* inode's device */ | ||
| 112 | 	ino_t st_ino; /* inode's number */ | ||
| 113 | 	mode_t st_mode; /* inode protection mode */ | ||
| 114 | 	nlink_t st_nlink; /* number of hard links */ | ||
| 115 | 	__uint16_t st_uid; /* user ID of the file's owner */ | ||
| 116 | 	__uint16_t st_gid; /* group ID of the file's group */ | ||
| 117 | 	__uint16_t st_rdev; /* device type */ | ||
| 118 | 	__int32_t st_size; /* file size, in bytes */ | ||
| 119 | 	struct timespec st_atimespec; /* time of last access */ | ||
| 120 | 	struct timespec st_mtimespec; /* time of last data modification */ | ||
| 121 | 	struct timespec st_ctimespec; /* time of last file status change */ | ||
| 122 | 	__int32_t st_blksize; /* optimal blocksize for I/O */ | ||
| 123 | 	__int32_t st_blocks; /* blocks allocated for file */ | ||
| 124 | 	__uint32_t st_flags; /* user defined flags for file */ | ||
| 125 | 	__uint32_t st_gen; /* file generation number */ | ||
| 126 | }; | ||
| 127 | |||
| 128 | #define __DARWIN_STRUCT_STAT64_TIMES \ | ||
| 129 | 	struct timespec st_atimespec; /* time of last access */ \ | ||
| 130 | 	struct timespec st_mtimespec; /* time of last data modification */ \ | ||
| 131 | 	struct timespec st_ctimespec; /* time of last status change */ \ | ||
| 132 | 	struct timespec st_birthtimespec; /* time of file creation(birth) */ | ||
| 133 | |||
| 134 | #else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 135 | |||
| 136 | #define __DARWIN_STRUCT_STAT64_TIMES \ | ||
| 137 | 	time_t		st_atime; /* [XSI] Time of last access */ \ | ||
| 138 | 	long		st_atimensec; /* nsec of last access */ \ | ||
| 139 | 	time_t		st_mtime; /* [XSI] Last data modification time */ \ | ||
| 140 | 	long		st_mtimensec; /* last data modification nsec */ \ | ||
| 141 | 	time_t		st_ctime; /* [XSI] Time of last status change */ \ | ||
| 142 | 	long		st_ctimensec; /* nsec of last status change */ \ | ||
| 143 | 	time_t		st_birthtime; /* File creation time(birth) */ \ | ||
| 144 | 	long		st_birthtimensec; /* nsec of File creation time */ | ||
| 145 | |||
| 146 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 147 | |||
| 148 | /* | ||
| 149 | * This structure is used as the second parameter to the fstat64(), | ||
| 150 | * lstat64(), and stat64() functions, and for struct stat when | ||
| 151 | * __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined | ||
| 152 | * above, depending on whether we use struct timespec or the direct | ||
| 153 | * components. | ||
| 154 | * | ||
| 155 | * This is simillar to stat except for 64bit inode number | ||
| 156 | * number instead of 32bit ino_t and the addition of create(birth) time. | ||
| 157 | */ | ||
| 158 | #define __DARWIN_STRUCT_STAT64 { \ | ||
| 159 | 	dev_t		st_dev; /* [XSI] ID of device containing file */ \ | ||
| 160 | 	mode_t		st_mode; /* [XSI] Mode of file (see below) */ \ | ||
| 161 | 	nlink_t		st_nlink; /* [XSI] Number of hard links */ \ | ||
| 162 | 	__darwin_ino64_t st_ino; /* [XSI] File serial number */ \ | ||
| 163 | 	uid_t		st_uid; /* [XSI] User ID of the file */ \ | ||
| 164 | 	gid_t		st_gid; /* [XSI] Group ID of the file */ \ | ||
| 165 | 	dev_t		st_rdev; /* [XSI] Device ID */ \ | ||
| 166 | 	__DARWIN_STRUCT_STAT64_TIMES \ | ||
| 167 | 	off_t		st_size; /* [XSI] file size, in bytes */ \ | ||
| 168 | 	blkcnt_t	st_blocks; /* [XSI] blocks allocated for file */ \ | ||
| 169 | 	blksize_t	st_blksize; /* [XSI] optimal blocksize for I/O */ \ | ||
| 170 | 	__uint32_t	st_flags; /* user defined flags for file */ \ | ||
| 171 | 	__uint32_t	st_gen; /* file generation number */ \ | ||
| 172 | 	__int32_t	st_lspare; /* RESERVED: DO NOT USE! */ \ | ||
| 173 | 	__int64_t	st_qspare[2]; /* RESERVED: DO NOT USE! */ \ | ||
| 174 | } | ||
| 175 | |||
| 176 | /* | ||
| 177 | * [XSI] This structure is used as the second parameter to the fstat(), | ||
| 178 | * lstat(), and stat() functions. | ||
| 179 | */ | ||
| 180 | #if __DARWIN_64_BIT_INO_T | ||
| 181 | |||
| 182 | struct stat __DARWIN_STRUCT_STAT64; | ||
| 183 | |||
| 184 | #else /* !__DARWIN_64_BIT_INO_T */ | ||
| 185 | |||
| 186 | struct stat { | ||
| 187 | 	dev_t st_dev; /* [XSI] ID of device containing file */ | ||
| 188 | 	ino_t st_ino; /* [XSI] File serial number */ | ||
| 189 | 	mode_t st_mode; /* [XSI] Mode of file (see below) */ | ||
| 190 | 	nlink_t st_nlink; /* [XSI] Number of hard links */ | ||
| 191 | 	uid_t st_uid; /* [XSI] User ID of the file */ | ||
| 192 | 	gid_t st_gid; /* [XSI] Group ID of the file */ | ||
| 193 | 	dev_t st_rdev; /* [XSI] Device ID */ | ||
| 194 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 195 | 	struct timespec st_atimespec; /* time of last access */ | ||
| 196 | 	struct timespec st_mtimespec; /* time of last data modification */ | ||
| 197 | 	struct timespec st_ctimespec; /* time of last status change */ | ||
| 198 | #else | ||
| 199 | 	time_t st_atime; /* [XSI] Time of last access */ | ||
| 200 | 	long st_atimensec; /* nsec of last access */ | ||
| 201 | 	time_t st_mtime; /* [XSI] Last data modification time */ | ||
| 202 | 	long st_mtimensec; /* last data modification nsec */ | ||
| 203 | 	time_t st_ctime; /* [XSI] Time of last status change */ | ||
| 204 | 	long st_ctimensec; /* nsec of last status change */ | ||
| 205 | #endif | ||
| 206 | 	off_t st_size; /* [XSI] file size, in bytes */ | ||
| 207 | 	blkcnt_t st_blocks; /* [XSI] blocks allocated for file */ | ||
| 208 | 	blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */ | ||
| 209 | 	__uint32_t st_flags; /* user defined flags for file */ | ||
| 210 | 	__uint32_t st_gen; /* file generation number */ | ||
| 211 | 	__int32_t st_lspare; /* RESERVED: DO NOT USE! */ | ||
| 212 | 	__int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */ | ||
| 213 | }; | ||
| 214 | |||
| 215 | #endif /* __DARWIN_64_BIT_INO_T */ | ||
| 216 | |||
| 217 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 218 | |||
| 219 | #if !__DARWIN_ONLY_64_BIT_INO_T | ||
| 220 | |||
| 221 | struct stat64 __DARWIN_STRUCT_STAT64; | ||
| 222 | |||
| 223 | #endif /* !__DARWIN_ONLY_64_BIT_INO_T */ | ||
| 224 | |||
| 225 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 226 | |||
| 227 | |||
| 228 | |||
| 229 | |||
| 230 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 231 | #define st_atime st_atimespec.tv_sec | ||
| 232 | #define st_mtime st_mtimespec.tv_sec | ||
| 233 | #define st_ctime st_ctimespec.tv_sec | ||
| 234 | #define st_birthtime st_birthtimespec.tv_sec | ||
| 235 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 236 | |||
| 237 | /* | ||
| 238 | * [XSI] The following are symbolic names for the values of type mode_t. They | ||
| 239 | * are bitmap values. | ||
| 240 | */ | ||
| 241 | #include <sys/_types/_s_ifmt.h> | ||
| 242 | |||
| 243 | /* | ||
| 244 | * [XSI] The following macros shall be provided to test whether a file is | ||
| 245 | * of the specified type. The value m supplied to the macros is the value | ||
| 246 | * of st_mode from a stat structure. The macro shall evaluate to a non-zero | ||
| 247 | * value if the test is true; 0 if the test is false. | ||
| 248 | */ | ||
| 249 | #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) /* block special */ | ||
| 250 | #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) /* char special */ | ||
| 251 | #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */ | ||
| 252 | #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* fifo or socket */ | ||
| 253 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* regular file */ | ||
| 254 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* symbolic link */ | ||
| 255 | #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) /* socket */ | ||
| 256 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 257 | #define S_ISWHT(m) (((m) & S_IFMT) == S_IFWHT) /* OBSOLETE: whiteout */ | ||
| 258 | #endif | ||
| 259 | |||
| 260 | /* | ||
| 261 | * [XSI] The implementation may implement message queues, semaphores, or | ||
| 262 | * shared memory objects as distinct file types. The following macros | ||
| 263 | * shall be provided to test whether a file is of the specified type. | ||
| 264 | * The value of the buf argument supplied to the macros is a pointer to | ||
| 265 | * a stat structure. The macro shall evaluate to a non-zero value if | ||
| 266 | * the specified object is implemented as a distinct file type and the | ||
| 267 | * specified file type is contained in the stat structure referenced by | ||
| 268 | * buf. Otherwise, the macro shall evaluate to zero. | ||
| 269 | * | ||
| 270 | * NOTE:	The current implementation does not do this, although | ||
| 271 | *		this may change in future revisions, and co currently only | ||
| 272 | *		provides these macros to ensure source compatability with | ||
| 273 | *		implementations which do. | ||
| 274 | */ | ||
| 275 | #define S_TYPEISMQ(buf) (0) /* Test for a message queue */ | ||
| 276 | #define S_TYPEISSEM(buf) (0) /* Test for a semaphore */ | ||
| 277 | #define S_TYPEISSHM(buf) (0) /* Test for a shared memory object */ | ||
| 278 | |||
| 279 | /* | ||
| 280 | * [TYM] The implementation may implement typed memory objects as distinct | ||
| 281 | * file types, and the following macro shall test whether a file is of the | ||
| 282 | * specified type. The value of the buf argument supplied to the macros is | ||
| 283 | * a pointer to a stat structure. The macro shall evaluate to a non-zero | ||
| 284 | * value if the specified object is implemented as a distinct file type and | ||
| 285 | * the specified file type is contained in the stat structure referenced by | ||
| 286 | * buf. Otherwise, the macro shall evaluate to zero. | ||
| 287 | * | ||
| 288 | * NOTE:	The current implementation does not do this, although | ||
| 289 | *		this may change in future revisions, and co currently only | ||
| 290 | *		provides this macro to ensure source compatability with | ||
| 291 | *		implementations which do. | ||
| 292 | */ | ||
| 293 | #define S_TYPEISTMO(buf) (0) /* Test for a typed memory object */ | ||
| 294 | |||
| 295 | |||
| 296 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 297 | #define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ | ||
| 298 | /* 7777 */ | ||
| 299 | #define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) | ||
| 300 | /* 0666 */ | ||
| 301 | #define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) | ||
| 302 | |||
| 303 | #define S_BLKSIZE 512 /* block size used in the stat struct */ | ||
| 304 | |||
| 305 | /* | ||
| 306 | * Definitions of flags stored in file flags word. | ||
| 307 | * | ||
| 308 | * Super-user and owner changeable flags. | ||
| 309 | */ | ||
| 310 | #define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */ | ||
| 311 | #define UF_NODUMP 0x00000001 /* do not dump file */ | ||
| 312 | #define UF_IMMUTABLE 0x00000002 /* file may not be changed */ | ||
| 313 | #define UF_APPEND 0x00000004 /* writes to file may only append */ | ||
| 314 | #define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */ | ||
| 315 | /* | ||
| 316 | * The following bit is reserved for FreeBSD. It is not implemented | ||
| 317 | * in Mac OS X. | ||
| 318 | */ | ||
| 319 | /* #define UF_NOUNLINK	0x00000010 */	/* file may not be removed or renamed */ | ||
| 320 | #define UF_COMPRESSED 0x00000020 /* file is compressed (some file-systems) */ | ||
| 321 | |||
| 322 | /* UF_TRACKED is used for dealing with document IDs. We no longer issue | ||
| 323 | * notifications for deletes or renames for files which have UF_TRACKED set. */ | ||
| 324 | #define UF_TRACKED 0x00000040 | ||
| 325 | |||
| 326 | #define UF_DATAVAULT 0x00000080 /* entitlement required for reading */ | ||
| 327 | /* and writing */ | ||
| 328 | |||
| 329 | /* Bits 0x0100 through 0x4000 are currently undefined. */ | ||
| 330 | #define UF_HIDDEN 0x00008000 /* hint that this item should not be */ | ||
| 331 | /* displayed in a GUI */ | ||
| 332 | /* | ||
| 333 | * Super-user changeable flags. | ||
| 334 | */ | ||
| 335 | #define SF_SUPPORTED 0x009f0000 /* mask of superuser supported flags */ | ||
| 336 | #define SF_SETTABLE 0x3fff0000 /* mask of superuser changeable flags */ | ||
| 337 | #define SF_SYNTHETIC 0xc0000000 /* mask of system read-only synthetic flags */ | ||
| 338 | #define SF_ARCHIVED 0x00010000 /* file is archived */ | ||
| 339 | #define SF_IMMUTABLE 0x00020000 /* file may not be changed */ | ||
| 340 | #define SF_APPEND 0x00040000 /* writes to file may only append */ | ||
| 341 | #define SF_RESTRICTED 0x00080000 /* entitlement required for writing */ | ||
| 342 | #define SF_NOUNLINK 0x00100000 /* Item may not be removed, renamed or mounted on */ | ||
| 343 | |||
| 344 | /* | ||
| 345 | * The following two bits are reserved for FreeBSD. They are not | ||
| 346 | * implemented in Mac OS X. | ||
| 347 | */ | ||
| 348 | /* #define SF_SNAPSHOT	0x00200000 */	/* snapshot inode */ | ||
| 349 | /* NOTE: There is no SF_HIDDEN bit. */ | ||
| 350 | |||
| 351 | #define SF_FIRMLINK 0x00800000 /* file is a firmlink */ | ||
| 352 | |||
| 353 | /* | ||
| 354 | * Synthetic flags. | ||
| 355 | * | ||
| 356 | * These are read-only. We keep them out of SF_SUPPORTED so that | ||
| 357 | * attempts to set them will fail. | ||
| 358 | */ | ||
| 359 | #define SF_DATALESS 0x40000000 /* file is dataless object */ | ||
| 360 | |||
| 361 | |||
| 362 | #endif | ||
| 363 | |||
| 364 | /* | ||
| 365 | * Extended flags ("EF") returned by ATTR_CMNEXT_EXT_FLAGS from getattrlist/getattrlistbulk | ||
| 366 | */ | ||
| 367 | #define EF_MAY_SHARE_BLOCKS 0x00000001 /* file may share blocks with another file */ | ||
| 368 | #define EF_NO_XATTRS 0x00000002 /* file has no xattrs at all */ | ||
| 369 | #define EF_IS_SYNC_ROOT 0x00000004 /* file is a sync root for iCloud */ | ||
| 370 | #define EF_IS_PURGEABLE 0x00000008 /* file is purgeable */ | ||
| 371 | #define EF_IS_SPARSE 0x00000010 /* file has at least one sparse region */ | ||
| 372 | |||
| 373 | |||
| 374 | |||
| 375 | |||
| 376 | __BEGIN_DECLS | ||
| 377 | /* [XSI] */ | ||
| 378 | int chmod(const char *, mode_t) __DARWIN_ALIAS(chmod); | ||
| 379 | int fchmod(int, mode_t) __DARWIN_ALIAS(fchmod); | ||
| 380 | int fstat(int, struct stat *) __DARWIN_INODE64(fstat); | ||
| 381 | int lstat(const char *, struct stat *) __DARWIN_INODE64(lstat); | ||
| 382 | int mkdir(const char *, mode_t); | ||
| 383 | int mkfifo(const char *, mode_t); | ||
| 384 | int stat(const char *, struct stat *) __DARWIN_INODE64(stat); | ||
| 385 | int mknod(const char *, mode_t, dev_t); | ||
| 386 | mode_t umask(mode_t); | ||
| 387 | |||
| 388 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 389 | int fchmodat(int, const char *, mode_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 390 | int fstatat(int, const char *, struct stat *, int) __DARWIN_INODE64(fstatat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 391 | int mkdirat(int, const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 392 | |||
| 393 | #define UTIME_NOW -1 | ||
| 394 | #define UTIME_OMIT -2 | ||
| 395 | |||
| 396 | int futimens(int __fd, const struct timespec __times[2]) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0)); | ||
| 397 | int utimensat(int __fd, const char *__path, const struct timespec __times[2], | ||
| 398 | int __flag) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0)); | ||
| 399 | #endif | ||
| 400 | |||
| 401 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 402 | |||
| 403 | #include <sys/_types/_filesec_t.h> | ||
| 404 | |||
| 405 | int chflags(const char *, __uint32_t); | ||
| 406 | int chmodx_np(const char *, filesec_t); | ||
| 407 | int fchflags(int, __uint32_t); | ||
| 408 | int fchmodx_np(int, filesec_t); | ||
| 409 | int fstatx_np(int, struct stat *, filesec_t) __DARWIN_INODE64(fstatx_np); | ||
| 410 | int lchflags(const char *, __uint32_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 411 | int lchmod(const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 412 | int lstatx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(lstatx_np); | ||
| 413 | int mkdirx_np(const char *, filesec_t); | ||
| 414 | int mkfifox_np(const char *, filesec_t); | ||
| 415 | int statx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(statx_np); | ||
| 416 | int umaskx_np(filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 417 | |||
| 418 | #if !__DARWIN_ONLY_64_BIT_INO_T | ||
| 419 | /* The following deprecated routines are simillar to stat and friends except provide struct stat64 instead of struct stat */ | ||
| 420 | int fstatx64_np(int, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 421 | int lstatx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 422 | int statx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 423 | int fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 424 | int lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 425 | int stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); | ||
| 426 | #endif /* !__DARWIN_ONLY_64_BIT_INO_T */ | ||
| 427 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 428 | |||
| 429 | __END_DECLS | ||
| 430 | #endif /* !_SYS_STAT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/statvfs.h created+60| ... | @@ -0,0 +1,60 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | |||
| 24 | /* | ||
| 25 | * sys/statvfs.h | ||
| 26 | */ | ||
| 27 | #ifndef _SYS_STATVFS_H_ | ||
| 28 | #define	_SYS_STATVFS_H_ | ||
| 29 | |||
| 30 | #include <sys/_types.h> | ||
| 31 | #include <sys/cdefs.h> | ||
| 32 | |||
| 33 | #include <sys/_types/_fsblkcnt_t.h> | ||
| 34 | #include <sys/_types/_fsfilcnt_t.h> | ||
| 35 | |||
| 36 | /* Following structure is used as a statvfs/fstatvfs function parameter */ | ||
| 37 | struct statvfs { | ||
| 38 | 	unsigned long	f_bsize;	/* File system block size */ | ||
| 39 | 	unsigned long	f_frsize;	/* Fundamental file system block size */ | ||
| 40 | 	fsblkcnt_t	f_blocks;	/* Blocks on FS in units of f_frsize */ | ||
| 41 | 	fsblkcnt_t	f_bfree;	/* Free blocks */ | ||
| 42 | 	fsblkcnt_t	f_bavail;	/* Blocks available to non-root */ | ||
| 43 | 	fsfilcnt_t	f_files;	/* Total inodes */ | ||
| 44 | 	fsfilcnt_t	f_ffree;	/* Free inodes */ | ||
| 45 | 	fsfilcnt_t	f_favail;	/* Free inodes for non-root */ | ||
| 46 | 	unsigned long	f_fsid;		/* Filesystem ID */ | ||
| 47 | 	unsigned long	f_flag;		/* Bit mask of values */ | ||
| 48 | 	unsigned long	f_namemax;	/* Max file name length */ | ||
| 49 | }; | ||
| 50 | |||
| 51 | /* Defined bits for f_flag field value */ | ||
| 52 | #define	ST_RDONLY	0x00000001	/* Read-only file system */ | ||
| 53 | #define	ST_NOSUID	0x00000002	/* Does not honor setuid/setgid */ | ||
| 54 | |||
| 55 | __BEGIN_DECLS | ||
| 56 | int fstatvfs(int, struct statvfs *); | ||
| 57 | int statvfs(const char * __restrict, struct statvfs * __restrict); | ||
| 58 | __END_DECLS | ||
| 59 | |||
| 60 | #endif	/* _SYS_STATVFS_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/syslog.h created+236| ... | @@ -0,0 +1,236 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1988, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 4. Neither the name of the University nor the names of its contributors | ||
| 42 | * may be used to endorse or promote products derived from this software | ||
| 43 | * without specific prior written permission. | ||
| 44 | * | ||
| 45 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 46 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 47 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 48 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 49 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 50 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 51 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 52 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 53 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 54 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 55 | * SUCH DAMAGE. | ||
| 56 | * | ||
| 57 | *	@(#)syslog.h	8.1 (Berkeley) 6/2/93 | ||
| 58 | * $FreeBSD: src/sys/sys/syslog.h,v 1.27.2.1.4.1 2010/06/14 02:09:06 kensmith Exp $ | ||
| 59 | */ | ||
| 60 | |||
| 61 | #ifndef _SYS_SYSLOG_H_ | ||
| 62 | #define _SYS_SYSLOG_H_ | ||
| 63 | |||
| 64 | #include <sys/appleapiopts.h> | ||
| 65 | #include <sys/cdefs.h> | ||
| 66 | |||
| 67 | #define _PATH_LOG "/var/run/syslog" | ||
| 68 | |||
| 69 | /* | ||
| 70 | * priorities/facilities are encoded into a single 32-bit quantity, where the | ||
| 71 | * bottom 3 bits are the priority (0-7) and the top 28 bits are the facility | ||
| 72 | * (0-big number). Both the priorities and the facilities map roughly | ||
| 73 | * one-to-one to strings in the syslogd(8) source code. This mapping is | ||
| 74 | * included in this file. | ||
| 75 | * | ||
| 76 | * priorities (these are ordered) | ||
| 77 | */ | ||
| 78 | #define LOG_EMERG 0 /* system is unusable */ | ||
| 79 | #define LOG_ALERT 1 /* action must be taken immediately */ | ||
| 80 | #define LOG_CRIT 2 /* critical conditions */ | ||
| 81 | #define LOG_ERR 3 /* error conditions */ | ||
| 82 | #define LOG_WARNING 4 /* warning conditions */ | ||
| 83 | #define LOG_NOTICE 5 /* normal but significant condition */ | ||
| 84 | #define LOG_INFO 6 /* informational */ | ||
| 85 | #define LOG_DEBUG 7 /* debug-level messages */ | ||
| 86 | |||
| 87 | #define LOG_PRIMASK 0x07 /* mask to extract priority part (internal) */ | ||
| 88 | /* extract priority */ | ||
| 89 | #define LOG_PRI(p) ((p) & LOG_PRIMASK) | ||
| 90 | #define LOG_MAKEPRI(fac, pri) ((fac) | (pri)) | ||
| 91 | |||
| 92 | #ifdef SYSLOG_NAMES | ||
| 93 | #define INTERNAL_NOPRI 0x10 /* the "no priority" priority */ | ||
| 94 | /* mark "facility" */ | ||
| 95 | #define INTERNAL_MARK LOG_MAKEPRI((LOG_NFACILITIES<<3), 0) | ||
| 96 | typedef struct _code { | ||
| 97 | 	const char *c_name; | ||
| 98 | 	int c_val; | ||
| 99 | } CODE; | ||
| 100 | |||
| 101 | CODE prioritynames[] = { | ||
| 102 | 	{ "alert", LOG_ALERT, }, | ||
| 103 | 	{ "crit", LOG_CRIT, }, | ||
| 104 | 	{ "debug", LOG_DEBUG, }, | ||
| 105 | 	{ "emerg", LOG_EMERG, }, | ||
| 106 | 	{ "err", LOG_ERR, }, | ||
| 107 | 	{ "error", LOG_ERR, }, /* DEPRECATED */ | ||
| 108 | 	{ "info", LOG_INFO, }, | ||
| 109 | 	{ "none", INTERNAL_NOPRI, }, /* INTERNAL */ | ||
| 110 | 	{ "notice", LOG_NOTICE, }, | ||
| 111 | 	{ "panic", LOG_EMERG, }, /* DEPRECATED */ | ||
| 112 | 	{ "warn", LOG_WARNING, }, /* DEPRECATED */ | ||
| 113 | 	{ "warning", LOG_WARNING, }, | ||
| 114 | 	{ NULL, -1, } | ||
| 115 | }; | ||
| 116 | #endif | ||
| 117 | |||
| 118 | /* facility codes */ | ||
| 119 | #define LOG_KERN (0<<3) /* kernel messages */ | ||
| 120 | #define LOG_USER (1<<3) /* random user-level messages */ | ||
| 121 | #define LOG_MAIL (2<<3) /* mail system */ | ||
| 122 | #define LOG_DAEMON (3<<3) /* system daemons */ | ||
| 123 | #define LOG_AUTH (4<<3) /* authorization messages */ | ||
| 124 | #define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */ | ||
| 125 | #define LOG_LPR (6<<3) /* line printer subsystem */ | ||
| 126 | #define LOG_NEWS (7<<3) /* network news subsystem */ | ||
| 127 | #define LOG_UUCP (8<<3) /* UUCP subsystem */ | ||
| 128 | #define LOG_CRON (9<<3) /* clock daemon */ | ||
| 129 | #define LOG_AUTHPRIV (10<<3) /* authorization messages (private) */ | ||
| 130 | /* Facility #10 clashes in DEC UNIX, where */ | ||
| 131 | /* it's defined as LOG_MEGASAFE for AdvFS */ | ||
| 132 | /* event logging. */ | ||
| 133 | #define LOG_FTP (11<<3) /* ftp daemon */ | ||
| 134 | //#define	LOG_NTP		(12<<3)	/* NTP subsystem */ | ||
| 135 | //#define	LOG_SECURITY	(13<<3) /* security subsystems (firewalling, etc.) */ | ||
| 136 | //#define	LOG_CONSOLE	(14<<3) /* /dev/console output */ | ||
| 137 | #define LOG_NETINFO (12<<3) /* NetInfo */ | ||
| 138 | #define LOG_REMOTEAUTH (13<<3) /* remote authentication/authorization */ | ||
| 139 | #define LOG_INSTALL (14<<3) /* installer subsystem */ | ||
| 140 | #define LOG_RAS (15<<3) /* Remote Access Service (VPN / PPP) */ | ||
| 141 | |||
| 142 | /* other codes through 15 reserved for system use */ | ||
| 143 | #define LOG_LOCAL0 (16<<3) /* reserved for local use */ | ||
| 144 | #define LOG_LOCAL1 (17<<3) /* reserved for local use */ | ||
| 145 | #define LOG_LOCAL2 (18<<3) /* reserved for local use */ | ||
| 146 | #define LOG_LOCAL3 (19<<3) /* reserved for local use */ | ||
| 147 | #define LOG_LOCAL4 (20<<3) /* reserved for local use */ | ||
| 148 | #define LOG_LOCAL5 (21<<3) /* reserved for local use */ | ||
| 149 | #define LOG_LOCAL6 (22<<3) /* reserved for local use */ | ||
| 150 | #define LOG_LOCAL7 (23<<3) /* reserved for local use */ | ||
| 151 | |||
| 152 | #define LOG_LAUNCHD (24<<3) /* launchd - general bootstrap daemon */ | ||
| 153 | |||
| 154 | #define LOG_NFACILITIES 25 /* current number of facilities */ | ||
| 155 | #define LOG_FACMASK 0x03f8 /* mask to extract facility part */ | ||
| 156 | /* facility of pri */ | ||
| 157 | #define LOG_FAC(p) (((p) & LOG_FACMASK) >> 3) | ||
| 158 | |||
| 159 | #ifdef SYSLOG_NAMES | ||
| 160 | CODE facilitynames[] = { | ||
| 161 | 	{ "auth", LOG_AUTH, }, | ||
| 162 | 	{ "authpriv", LOG_AUTHPRIV, }, | ||
| 163 | 	{ "cron", LOG_CRON, }, | ||
| 164 | 	{ "daemon", LOG_DAEMON, }, | ||
| 165 | 	{ "ftp", LOG_FTP, }, | ||
| 166 | 	{ "install", LOG_INSTALL }, | ||
| 167 | 	{ "kern", LOG_KERN, }, | ||
| 168 | 	{ "lpr", LOG_LPR, }, | ||
| 169 | 	{ "mail", LOG_MAIL, }, | ||
| 170 | 	{ "mark", INTERNAL_MARK, }, /* INTERNAL */ | ||
| 171 | 	{ "netinfo", LOG_NETINFO, }, | ||
| 172 | 	{ "ras", LOG_RAS }, | ||
| 173 | 	{ "remoteauth", LOG_REMOTEAUTH }, | ||
| 174 | 	{ "news", LOG_NEWS, }, | ||
| 175 | 	{ "security", LOG_AUTH }, /* DEPRECATED */ | ||
| 176 | 	{ "syslog", LOG_SYSLOG, }, | ||
| 177 | 	{ "user", LOG_USER, }, | ||
| 178 | 	{ "uucp", LOG_UUCP, }, | ||
| 179 | 	{ "local0", LOG_LOCAL0, }, | ||
| 180 | 	{ "local1", LOG_LOCAL1, }, | ||
| 181 | 	{ "local2", LOG_LOCAL2, }, | ||
| 182 | 	{ "local3", LOG_LOCAL3, }, | ||
| 183 | 	{ "local4", LOG_LOCAL4, }, | ||
| 184 | 	{ "local5", LOG_LOCAL5, }, | ||
| 185 | 	{ "local6", LOG_LOCAL6, }, | ||
| 186 | 	{ "local7", LOG_LOCAL7, }, | ||
| 187 | 	{ "launchd", LOG_LAUNCHD }, | ||
| 188 | 	{ NULL, -1, } | ||
| 189 | }; | ||
| 190 | #endif | ||
| 191 | |||
| 192 | |||
| 193 | /* | ||
| 194 | * arguments to setlogmask. | ||
| 195 | */ | ||
| 196 | #define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */ | ||
| 197 | #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */ | ||
| 198 | |||
| 199 | /* | ||
| 200 | * Option flags for openlog. | ||
| 201 | * | ||
| 202 | * LOG_ODELAY no longer does anything. | ||
| 203 | * LOG_NDELAY is the inverse of what it used to be. | ||
| 204 | */ | ||
| 205 | #define LOG_PID 0x01 /* log the pid with each message */ | ||
| 206 | #define LOG_CONS 0x02 /* log on the console if errors in sending */ | ||
| 207 | #define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */ | ||
| 208 | #define LOG_NDELAY 0x08 /* don't delay open */ | ||
| 209 | #define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */ | ||
| 210 | #define LOG_PERROR 0x20 /* log to stderr as well */ | ||
| 211 | |||
| 212 | |||
| 213 | /* | ||
| 214 | * Don't use va_list in the vsyslog() prototype. Va_list is typedef'd in two | ||
| 215 | * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one | ||
| 216 | * of them here we may collide with the utility's includes. It's unreasonable | ||
| 217 | * for utilities to have to include one of them to include syslog.h, so we get | ||
| 218 | * __va_list from <sys/_types.h> and use it. | ||
| 219 | */ | ||
| 220 | #include <sys/_types.h> | ||
| 221 | |||
| 222 | __BEGIN_DECLS | ||
| 223 | void closelog(void); | ||
| 224 | void openlog(const char *, int, int); | ||
| 225 | int setlogmask(int); | ||
| 226 | #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 227 | void syslog(int, const char *, ...) __DARWIN_ALIAS_STARTING(__MAC_10_13, __IPHONE_NA, __DARWIN_EXTSN(syslog)) __printflike(2, 3) __not_tail_called; | ||
| 228 | #else | ||
| 229 | void syslog(int, const char *, ...) __printflike(2, 3) __not_tail_called; | ||
| 230 | #endif | ||
| 231 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 232 | void vsyslog(int, const char *, __darwin_va_list) __printflike(2, 0) __not_tail_called; | ||
| 233 | #endif | ||
| 234 | __END_DECLS | ||
| 235 | |||
| 236 | #endif /* !_SYS_SYSLOG_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/termios.h created+366| ... | @@ -0,0 +1,366 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */ | ||
| 29 | /* | ||
| 30 | * Copyright (c) 1988, 1989, 1993, 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | * This product includes software developed by the University of | ||
| 44 | * California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)termios.h	8.3 (Berkeley) 3/28/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _SYS_TERMIOS_H_ | ||
| 65 | #define _SYS_TERMIOS_H_ | ||
| 66 | |||
| 67 | #include <sys/cdefs.h> | ||
| 68 | |||
| 69 | /* | ||
| 70 | * Special Control Characters | ||
| 71 | * | ||
| 72 | * Index into c_cc[] character array. | ||
| 73 | * | ||
| 74 | *	Name	 Subscript	Enabled by | ||
| 75 | */ | ||
| 76 | #define VEOF 0 /* ICANON */ | ||
| 77 | #define VEOL 1 /* ICANON */ | ||
| 78 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 79 | #define VEOL2 2 /* ICANON together with IEXTEN */ | ||
| 80 | #endif | ||
| 81 | #define VERASE 3 /* ICANON */ | ||
| 82 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 83 | #define VWERASE 4 /* ICANON together with IEXTEN */ | ||
| 84 | #endif | ||
| 85 | #define VKILL 5 /* ICANON */ | ||
| 86 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 87 | #define VREPRINT 6 /* ICANON together with IEXTEN */ | ||
| 88 | #endif | ||
| 89 | /*			7	 spare 1 */ | ||
| 90 | #define VINTR 8 /* ISIG */ | ||
| 91 | #define VQUIT 9 /* ISIG */ | ||
| 92 | #define VSUSP 10 /* ISIG */ | ||
| 93 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 94 | #define VDSUSP 11 /* ISIG together with IEXTEN */ | ||
| 95 | #endif | ||
| 96 | #define VSTART 12 /* IXON, IXOFF */ | ||
| 97 | #define VSTOP 13 /* IXON, IXOFF */ | ||
| 98 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 99 | #define VLNEXT 14 /* IEXTEN */ | ||
| 100 | #define VDISCARD 15 /* IEXTEN */ | ||
| 101 | #endif | ||
| 102 | #define VMIN 16 /* !ICANON */ | ||
| 103 | #define VTIME 17 /* !ICANON */ | ||
| 104 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 105 | #define VSTATUS 18 /* ICANON together with IEXTEN */ | ||
| 106 | /*			19	 spare 2 */ | ||
| 107 | #endif | ||
| 108 | #define NCCS 20 | ||
| 109 | |||
| 110 | #include <sys/_types/_posix_vdisable.h> | ||
| 111 | |||
| 112 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 113 | #define CCEQ(val, c) ((c) == (val) ? (val) != _POSIX_VDISABLE : 0) | ||
| 114 | #endif | ||
| 115 | |||
| 116 | /* | ||
| 117 | * Input flags - software input processing | ||
| 118 | */ | ||
| 119 | #define IGNBRK 0x00000001 /* ignore BREAK condition */ | ||
| 120 | #define BRKINT 0x00000002 /* map BREAK to SIGINTR */ | ||
| 121 | #define IGNPAR 0x00000004 /* ignore (discard) parity errors */ | ||
| 122 | #define PARMRK 0x00000008 /* mark parity and framing errors */ | ||
| 123 | #define INPCK 0x00000010 /* enable checking of parity errors */ | ||
| 124 | #define ISTRIP 0x00000020 /* strip 8th bit off chars */ | ||
| 125 | #define INLCR 0x00000040 /* map NL into CR */ | ||
| 126 | #define IGNCR 0x00000080 /* ignore CR */ | ||
| 127 | #define ICRNL 0x00000100 /* map CR to NL (ala CRMOD) */ | ||
| 128 | #define IXON 0x00000200 /* enable output flow control */ | ||
| 129 | #define IXOFF 0x00000400 /* enable input flow control */ | ||
| 130 | #define IXANY 0x00000800 /* any char will restart after stop */ | ||
| 131 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 132 | #define IMAXBEL 0x00002000 /* ring bell on input queue full */ | ||
| 133 | #define IUTF8 0x00004000 /* maintain state for UTF-8 VERASE */ | ||
| 134 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 135 | |||
| 136 | /* | ||
| 137 | * Output flags - software output processing | ||
| 138 | */ | ||
| 139 | #define OPOST 0x00000001 /* enable following output processing */ | ||
| 140 | #define ONLCR 0x00000002 /* map NL to CR-NL (ala CRMOD) */ | ||
| 141 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 142 | #define OXTABS 0x00000004 /* expand tabs to spaces */ | ||
| 143 | #define ONOEOT 0x00000008 /* discard EOT's (^D) on output) */ | ||
| 144 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 145 | /* | ||
| 146 | * The following block of features is unimplemented. Use of these flags in | ||
| 147 | * programs will currently result in unexpected behaviour. | ||
| 148 | * | ||
| 149 | * - Begin unimplemented features | ||
| 150 | */ | ||
| 151 | #define OCRNL 0x00000010 /* map CR to NL on output */ | ||
| 152 | #define ONOCR 0x00000020 /* no CR output at column 0 */ | ||
| 153 | #define ONLRET 0x00000040 /* NL performs CR function */ | ||
| 154 | #define OFILL 0x00000080 /* use fill characters for delay */ | ||
| 155 | #define NLDLY 0x00000300 /* \n delay */ | ||
| 156 | #define TABDLY 0x00000c04 /* horizontal tab delay */ | ||
| 157 | #define CRDLY 0x00003000 /* \r delay */ | ||
| 158 | #define FFDLY 0x00004000 /* form feed delay */ | ||
| 159 | #define BSDLY 0x00008000 /* \b delay */ | ||
| 160 | #define VTDLY 0x00010000 /* vertical tab delay */ | ||
| 161 | #define OFDEL 0x00020000 /* fill is DEL, else NUL */ | ||
| 162 | #if !defined(_SYS_IOCTL_COMPAT_H_) || __DARWIN_UNIX03 | ||
| 163 | /* | ||
| 164 | * These manifest constants have the same names as those in the header | ||
| 165 | * <sys/ioctl_compat.h>, so you are not permitted to have both definitions | ||
| 166 | * in scope simultaneously in the same compilation unit. Nevertheless, | ||
| 167 | * they are required to be in scope when _POSIX_C_SOURCE is requested; | ||
| 168 | * this means that including the <sys/ioctl_compat.h> header before this | ||
| 169 | * one when _POSIX_C_SOURCE is in scope will result in redefintions. We | ||
| 170 | * attempt to maintain these as the same values so as to avoid this being | ||
| 171 | * an outright error in most compilers. | ||
| 172 | */ | ||
| 173 | #define NL0 0x00000000 | ||
| 174 | #define NL1 0x00000100 | ||
| 175 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 176 | #define NL2 0x00000200 | ||
| 177 | #define NL3 0x00000300 | ||
| 178 | #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 179 | #define TAB0 0x00000000 | ||
| 180 | #define TAB1 0x00000400 | ||
| 181 | #define TAB2 0x00000800 | ||
| 182 | /* not in sys/ioctl_compat.h, use OXTABS value */ | ||
| 183 | #define TAB3 0x00000004 | ||
| 184 | #define CR0 0x00000000 | ||
| 185 | #define CR1 0x00001000 | ||
| 186 | #define CR2 0x00002000 | ||
| 187 | #define CR3 0x00003000 | ||
| 188 | #define FF0 0x00000000 | ||
| 189 | #define FF1 0x00004000 | ||
| 190 | #define BS0 0x00000000 | ||
| 191 | #define BS1 0x00008000 | ||
| 192 | #define VT0 0x00000000 | ||
| 193 | #define VT1 0x00010000 | ||
| 194 | #endif /* !_SYS_IOCTL_COMPAT_H_ */ | ||
| 195 | /* | ||
| 196 | * + End unimplemented features | ||
| 197 | */ | ||
| 198 | |||
| 199 | /* | ||
| 200 | * Control flags - hardware control of terminal | ||
| 201 | */ | ||
| 202 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 203 | #define CIGNORE 0x00000001 /* ignore control flags */ | ||
| 204 | #endif | ||
| 205 | #define CSIZE 0x00000300 /* character size mask */ | ||
| 206 | #define CS5 0x00000000 /* 5 bits (pseudo) */ | ||
| 207 | #define CS6 0x00000100 /* 6 bits */ | ||
| 208 | #define CS7 0x00000200 /* 7 bits */ | ||
| 209 | #define CS8 0x00000300 /* 8 bits */ | ||
| 210 | #define CSTOPB 0x00000400 /* send 2 stop bits */ | ||
| 211 | #define CREAD 0x00000800 /* enable receiver */ | ||
| 212 | #define PARENB 0x00001000 /* parity enable */ | ||
| 213 | #define PARODD 0x00002000 /* odd parity, else even */ | ||
| 214 | #define HUPCL 0x00004000 /* hang up on last close */ | ||
| 215 | #define CLOCAL 0x00008000 /* ignore modem status lines */ | ||
| 216 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 217 | #define CCTS_OFLOW 0x00010000 /* CTS flow control of output */ | ||
| 218 | #define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) | ||
| 219 | #define CRTS_IFLOW 0x00020000 /* RTS flow control of input */ | ||
| 220 | #define CDTR_IFLOW 0x00040000 /* DTR flow control of input */ | ||
| 221 | #define CDSR_OFLOW 0x00080000 /* DSR flow control of output */ | ||
| 222 | #define CCAR_OFLOW 0x00100000 /* DCD flow control of output */ | ||
| 223 | #define MDMBUF 0x00100000 /* old name for CCAR_OFLOW */ | ||
| 224 | #endif | ||
| 225 | |||
| 226 | |||
| 227 | /* | ||
| 228 | * "Local" flags - dumping ground for other state | ||
| 229 | * | ||
| 230 | * Warning: some flags in this structure begin with | ||
| 231 | * the letter "I" and look like they belong in the | ||
| 232 | * input flag. | ||
| 233 | */ | ||
| 234 | |||
| 235 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 236 | #define ECHOKE 0x00000001 /* visual erase for line kill */ | ||
| 237 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 238 | #define ECHOE 0x00000002 /* visually erase chars */ | ||
| 239 | #define ECHOK 0x00000004 /* echo NL after line kill */ | ||
| 240 | #define ECHO 0x00000008 /* enable echoing */ | ||
| 241 | #define ECHONL 0x00000010 /* echo NL even if ECHO is off */ | ||
| 242 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 243 | #define ECHOPRT 0x00000020 /* visual erase mode for hardcopy */ | ||
| 244 | #define ECHOCTL 0x00000040 /* echo control chars as ^(Char) */ | ||
| 245 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 246 | #define ISIG 0x00000080 /* enable signals INTR, QUIT, [D]SUSP */ | ||
| 247 | #define ICANON 0x00000100 /* canonicalize input lines */ | ||
| 248 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 249 | #define ALTWERASE 0x00000200 /* use alternate WERASE algorithm */ | ||
| 250 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 251 | #define IEXTEN 0x00000400 /* enable DISCARD and LNEXT */ | ||
| 252 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 253 | #define EXTPROC 0x00000800 /* external processing */ | ||
| 254 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 255 | #define TOSTOP 0x00400000 /* stop background jobs from output */ | ||
| 256 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 257 | #define FLUSHO 0x00800000 /* output being flushed (state) */ | ||
| 258 | #define NOKERNINFO 0x02000000 /* no kernel output from VSTATUS */ | ||
| 259 | #define PENDIN 0x20000000 /* XXX retype pending input (state) */ | ||
| 260 | #endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ | ||
| 261 | #define NOFLSH 0x80000000 /* don't flush after interrupt */ | ||
| 262 | |||
| 263 | typedef unsigned long tcflag_t; | ||
| 264 | typedef unsigned char cc_t; | ||
| 265 | typedef unsigned long speed_t; | ||
| 266 | |||
| 267 | struct termios { | ||
| 268 | 	tcflag_t c_iflag; /* input flags */ | ||
| 269 | 	tcflag_t c_oflag; /* output flags */ | ||
| 270 | 	tcflag_t c_cflag; /* control flags */ | ||
| 271 | 	tcflag_t c_lflag; /* local flags */ | ||
| 272 | 	cc_t c_cc[NCCS]; /* control chars */ | ||
| 273 | 	speed_t c_ispeed; /* input speed */ | ||
| 274 | 	speed_t c_ospeed; /* output speed */ | ||
| 275 | }; | ||
| 276 | |||
| 277 | |||
| 278 | /* | ||
| 279 | * Commands passed to tcsetattr() for setting the termios structure. | ||
| 280 | */ | ||
| 281 | #define TCSANOW 0 /* make change immediate */ | ||
| 282 | #define TCSADRAIN 1 /* drain output, then change */ | ||
| 283 | #define TCSAFLUSH 2 /* drain output, flush input */ | ||
| 284 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 285 | #define TCSASOFT 0x10 /* flag - don't alter h.w. state */ | ||
| 286 | #endif | ||
| 287 | |||
| 288 | /* | ||
| 289 | * Standard speeds | ||
| 290 | */ | ||
| 291 | #define B0 0 | ||
| 292 | #define B50 50 | ||
| 293 | #define B75 75 | ||
| 294 | #define B110 110 | ||
| 295 | #define B134 134 | ||
| 296 | #define B150 150 | ||
| 297 | #define B200 200 | ||
| 298 | #define B300 300 | ||
| 299 | #define B600 600 | ||
| 300 | #define B1200 1200 | ||
| 301 | #define B1800 1800 | ||
| 302 | #define B2400 2400 | ||
| 303 | #define B4800 4800 | ||
| 304 | #define B9600 9600 | ||
| 305 | #define B19200 19200 | ||
| 306 | #define B38400 38400 | ||
| 307 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 308 | #define B7200 7200 | ||
| 309 | #define B14400 14400 | ||
| 310 | #define B28800 28800 | ||
| 311 | #define B57600 57600 | ||
| 312 | #define B76800 76800 | ||
| 313 | #define B115200 115200 | ||
| 314 | #define B230400 230400 | ||
| 315 | #define EXTA 19200 | ||
| 316 | #define EXTB 38400 | ||
| 317 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 318 | |||
| 319 | |||
| 320 | #define TCIFLUSH 1 | ||
| 321 | #define TCOFLUSH 2 | ||
| 322 | #define TCIOFLUSH 3 | ||
| 323 | #define TCOOFF 1 | ||
| 324 | #define TCOON 2 | ||
| 325 | #define TCIOFF 3 | ||
| 326 | #define TCION 4 | ||
| 327 | |||
| 328 | #include <sys/cdefs.h> | ||
| 329 | |||
| 330 | __BEGIN_DECLS | ||
| 331 | speed_t cfgetispeed(const struct termios *); | ||
| 332 | speed_t cfgetospeed(const struct termios *); | ||
| 333 | int cfsetispeed(struct termios *, speed_t); | ||
| 334 | int cfsetospeed(struct termios *, speed_t); | ||
| 335 | int tcgetattr(int, struct termios *); | ||
| 336 | int tcsetattr(int, int, const struct termios *); | ||
| 337 | int tcdrain(int) __DARWIN_ALIAS_C(tcdrain); | ||
| 338 | int tcflow(int, int); | ||
| 339 | int tcflush(int, int); | ||
| 340 | int tcsendbreak(int, int); | ||
| 341 | |||
| 342 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 343 | void cfmakeraw(struct termios *); | ||
| 344 | int cfsetspeed(struct termios *, speed_t); | ||
| 345 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 346 | __END_DECLS | ||
| 347 | |||
| 348 | |||
| 349 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 350 | |||
| 351 | /* | ||
| 352 | * Include tty ioctl's that aren't just for backwards compatibility | ||
| 353 | * with the old tty driver. These ioctl definitions were previously | ||
| 354 | * in <sys/ioctl.h>. | ||
| 355 | */ | ||
| 356 | #include <sys/ttycom.h> | ||
| 357 | #endif | ||
| 358 | |||
| 359 | /* | ||
| 360 | * END OF PROTECTED INCLUDE. | ||
| 361 | */ | ||
| 362 | #endif /* !_SYS_TERMIOS_H_ */ | ||
| 363 | |||
| 364 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 365 | #include <sys/ttydefaults.h> | ||
| 366 | #endif | ||
lib/libc/include/x86_64-macos-gnu/sys/time.h created+208| ... | @@ -0,0 +1,208 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /* | ||
| 30 | * Copyright (c) 1982, 1986, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)time.h	8.2 (Berkeley) 7/10/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _SYS_TIME_H_ | ||
| 65 | #define _SYS_TIME_H_ | ||
| 66 | |||
| 67 | #include <sys/cdefs.h> | ||
| 68 | #include <sys/_types.h> | ||
| 69 | #include <Availability.h> | ||
| 70 | |||
| 71 | /* | ||
| 72 | * [XSI] The fd_set type shall be defined as described in <sys/select.h>. | ||
| 73 | * The timespec structure shall be defined as described in <time.h> | ||
| 74 | */ | ||
| 75 | #include <sys/_types/_fd_def.h> | ||
| 76 | #include <sys/_types/_timespec.h> | ||
| 77 | #include <sys/_types/_timeval.h> | ||
| 78 | |||
| 79 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 80 | #include <sys/_types/_timeval64.h> | ||
| 81 | #endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */ | ||
| 82 | |||
| 83 | |||
| 84 | #include <sys/_types/_time_t.h> | ||
| 85 | #include <sys/_types/_suseconds_t.h> | ||
| 86 | |||
| 87 | /* | ||
| 88 | * Structure used as a parameter by getitimer(2) and setitimer(2) system | ||
| 89 | * calls. | ||
| 90 | */ | ||
| 91 | struct itimerval { | ||
| 92 | 	struct timeval it_interval; /* timer interval */ | ||
| 93 | 	struct timeval it_value; /* current value */ | ||
| 94 | }; | ||
| 95 | |||
| 96 | /* | ||
| 97 | * Names of the interval timers, and structure | ||
| 98 | * defining a timer setting. | ||
| 99 | */ | ||
| 100 | #define ITIMER_REAL 0 | ||
| 101 | #define ITIMER_VIRTUAL 1 | ||
| 102 | #define ITIMER_PROF 2 | ||
| 103 | |||
| 104 | /* | ||
| 105 | * Select uses bit masks of file descriptors in longs. These macros | ||
| 106 | * manipulate such bit fields (the filesystem macros use chars). The | ||
| 107 | * extra protection here is to permit application redefinition above | ||
| 108 | * the default size. | ||
| 109 | */ | ||
| 110 | #include <sys/_types/_fd_setsize.h> | ||
| 111 | #include <sys/_types/_fd_set.h> | ||
| 112 | #include <sys/_types/_fd_clr.h> | ||
| 113 | #include <sys/_types/_fd_isset.h> | ||
| 114 | #include <sys/_types/_fd_zero.h> | ||
| 115 | |||
| 116 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 117 | |||
| 118 | #include <sys/_types/_fd_copy.h> | ||
| 119 | |||
| 120 | #define TIMEVAL_TO_TIMESPEC(tv, ts) { \ | ||
| 121 | 	(ts)->tv_sec = (tv)->tv_sec; \ | ||
| 122 | 	(ts)->tv_nsec = (tv)->tv_usec * 1000; \ | ||
| 123 | } | ||
| 124 | #define TIMESPEC_TO_TIMEVAL(tv, ts) { \ | ||
| 125 | 	(tv)->tv_sec = (ts)->tv_sec; \ | ||
| 126 | 	(tv)->tv_usec = (ts)->tv_nsec / 1000; \ | ||
| 127 | } | ||
| 128 | |||
| 129 | struct timezone { | ||
| 130 | 	int tz_minuteswest; /* minutes west of Greenwich */ | ||
| 131 | 	int tz_dsttime; /* type of dst correction */ | ||
| 132 | }; | ||
| 133 | #define DST_NONE 0 /* not on dst */ | ||
| 134 | #define DST_USA 1 /* USA style dst */ | ||
| 135 | #define DST_AUST 2 /* Australian style dst */ | ||
| 136 | #define DST_WET 3 /* Western European dst */ | ||
| 137 | #define DST_MET 4 /* Middle European dst */ | ||
| 138 | #define DST_EET 5 /* Eastern European dst */ | ||
| 139 | #define DST_CAN 6 /* Canada */ | ||
| 140 | |||
| 141 | /* Operations on timevals. */ | ||
| 142 | #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 | ||
| 143 | #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) | ||
| 144 | #define timercmp(tvp, uvp, cmp) \ | ||
| 145 | 	(((tvp)->tv_sec == (uvp)->tv_sec) ? \ | ||
| 146 | 	 ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ | ||
| 147 | 	 ((tvp)->tv_sec cmp (uvp)->tv_sec)) | ||
| 148 | #define timeradd(tvp, uvp, vvp) \ | ||
| 149 | 	do { \ | ||
| 150 | 	 (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ | ||
| 151 | 	 (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ | ||
| 152 | 	 if ((vvp)->tv_usec >= 1000000) { \ | ||
| 153 | 	 (vvp)->tv_sec++; \ | ||
| 154 | 	 (vvp)->tv_usec -= 1000000; \ | ||
| 155 | 	 } \ | ||
| 156 | 	} while (0) | ||
| 157 | #define timersub(tvp, uvp, vvp) \ | ||
| 158 | 	do { \ | ||
| 159 | 	 (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ | ||
| 160 | 	 (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ | ||
| 161 | 	 if ((vvp)->tv_usec < 0) { \ | ||
| 162 | 	 (vvp)->tv_sec--; \ | ||
| 163 | 	 (vvp)->tv_usec += 1000000; \ | ||
| 164 | 	 } \ | ||
| 165 | 	} while (0) | ||
| 166 | |||
| 167 | #define timevalcmp(l, r, cmp) timercmp(l, r, cmp) /* freebsd */ | ||
| 168 | |||
| 169 | /* | ||
| 170 | * Getkerninfo clock information structure | ||
| 171 | */ | ||
| 172 | struct clockinfo { | ||
| 173 | 	int hz; /* clock frequency */ | ||
| 174 | 	int tick; /* micro-seconds per hz tick */ | ||
| 175 | 	int tickadj; /* clock skew rate for adjtime() */ | ||
| 176 | 	int stathz; /* statistics clock frequency */ | ||
| 177 | 	int profhz; /* profiling clock frequency */ | ||
| 178 | }; | ||
| 179 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 180 | |||
| 181 | |||
| 182 | |||
| 183 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 184 | #include <time.h> | ||
| 185 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 186 | |||
| 187 | __BEGIN_DECLS | ||
| 188 | |||
| 189 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 190 | int adjtime(const struct timeval *, struct timeval *); | ||
| 191 | int futimes(int, const struct timeval *); | ||
| 192 | int lutimes(const char *, const struct timeval *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 193 | int settimeofday(const struct timeval *, const struct timezone *); | ||
| 194 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 195 | |||
| 196 | int getitimer(int, struct itimerval *); | ||
| 197 | int gettimeofday(struct timeval * __restrict, void * __restrict); | ||
| 198 | |||
| 199 | #include <sys/_select.h> /* select() prototype */ | ||
| 200 | |||
| 201 | int setitimer(int, const struct itimerval * __restrict, | ||
| 202 | struct itimerval * __restrict); | ||
| 203 | int utimes(const char *, const struct timeval *); | ||
| 204 | |||
| 205 | __END_DECLS | ||
| 206 | |||
| 207 | |||
| 208 | #endif /* !_SYS_TIME_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/times.h created+92| ... | @@ -0,0 +1,92 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1990, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | *	This product includes software developed by the University of | ||
| 49 | *	California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)times.h	8.4 (Berkeley) 1/21/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | #ifndef _SYS_TIMES_H_ | ||
| 70 | #define _SYS_TIMES_H_ | ||
| 71 | |||
| 72 | #include <sys/appleapiopts.h> | ||
| 73 | #include <sys/cdefs.h> | ||
| 74 | #include <sys/_types.h> | ||
| 75 | |||
| 76 | /* [XSI] The clock_t type shall be defined as described in <sys/types.h> */ | ||
| 77 | #include <sys/_types/_clock_t.h> | ||
| 78 | |||
| 79 | /* | ||
| 80 | * [XSI] Structure whose address is passed as the first parameter to times() | ||
| 81 | */ | ||
| 82 | struct tms { | ||
| 83 | 	clock_t tms_utime; /* [XSI] User CPU time */ | ||
| 84 | 	clock_t tms_stime; /* [XSI] System CPU time */ | ||
| 85 | 	clock_t tms_cutime; /* [XSI] Terminated children user CPU time */ | ||
| 86 | 	clock_t tms_cstime; /* [XSI] Terminated children System CPU time */ | ||
| 87 | }; | ||
| 88 | |||
| 89 | __BEGIN_DECLS | ||
| 90 | clock_t times(struct tms *); | ||
| 91 | __END_DECLS | ||
| 92 | #endif /* !_SYS_TIMES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/ttycom.h created+173| ... | @@ -0,0 +1,173 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1990, 1993, 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | * This product includes software developed by the University of | ||
| 49 | * California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)ttycom.h	8.1 (Berkeley) 3/28/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | #ifndef _SYS_TTYCOM_H_ | ||
| 70 | #define _SYS_TTYCOM_H_ | ||
| 71 | |||
| 72 | #include <sys/ioccom.h> | ||
| 73 | /* | ||
| 74 | * Tty ioctl's except for those supported only for backwards compatibility | ||
| 75 | * with the old tty driver. | ||
| 76 | */ | ||
| 77 | |||
| 78 | /* | ||
| 79 | * Window/terminal size structure. This information is stored by the kernel | ||
| 80 | * in order to provide a consistent interface, but is not used by the kernel. | ||
| 81 | */ | ||
| 82 | struct winsize { | ||
| 83 | 	unsigned short ws_row; /* rows, in characters */ | ||
| 84 | 	unsigned short ws_col; /* columns, in characters */ | ||
| 85 | 	unsigned short ws_xpixel; /* horizontal size, pixels */ | ||
| 86 | 	unsigned short ws_ypixel; /* vertical size, pixels */ | ||
| 87 | }; | ||
| 88 | |||
| 89 | #define TIOCMODG _IOR('t', 3, int) /* get modem control state */ | ||
| 90 | #define TIOCMODS _IOW('t', 4, int) /* set modem control state */ | ||
| 91 | #define TIOCM_LE 0001 /* line enable */ | ||
| 92 | #define TIOCM_DTR 0002 /* data terminal ready */ | ||
| 93 | #define TIOCM_RTS 0004 /* request to send */ | ||
| 94 | #define TIOCM_ST 0010 /* secondary transmit */ | ||
| 95 | #define TIOCM_SR 0020 /* secondary receive */ | ||
| 96 | #define TIOCM_CTS 0040 /* clear to send */ | ||
| 97 | #define TIOCM_CAR 0100 /* carrier detect */ | ||
| 98 | #define TIOCM_CD TIOCM_CAR | ||
| 99 | #define TIOCM_RNG 0200 /* ring */ | ||
| 100 | #define TIOCM_RI TIOCM_RNG | ||
| 101 | #define TIOCM_DSR 0400 /* data set ready */ | ||
| 102 | /* 8-10 compat */ | ||
| 103 | #define TIOCEXCL _IO('t', 13) /* set exclusive use of tty */ | ||
| 104 | #define TIOCNXCL _IO('t', 14) /* reset exclusive use of tty */ | ||
| 105 | /* 15 unused */ | ||
| 106 | #define TIOCFLUSH _IOW('t', 16, int) /* flush buffers */ | ||
| 107 | /* 17-18 compat */ | ||
| 108 | #define TIOCGETA _IOR('t', 19, struct termios) /* get termios struct */ | ||
| 109 | #define TIOCSETA _IOW('t', 20, struct termios) /* set termios struct */ | ||
| 110 | #define TIOCSETAW _IOW('t', 21, struct termios) /* drain output, set */ | ||
| 111 | #define TIOCSETAF _IOW('t', 22, struct termios) /* drn out, fls in, set */ | ||
| 112 | #define TIOCGETD _IOR('t', 26, int) /* get line discipline */ | ||
| 113 | #define TIOCSETD _IOW('t', 27, int) /* set line discipline */ | ||
| 114 | #define TIOCIXON _IO('t', 129) /* internal input VSTART */ | ||
| 115 | #define TIOCIXOFF _IO('t', 128) /* internal input VSTOP */ | ||
| 116 | /* 127-124 compat */ | ||
| 117 | #define TIOCSBRK _IO('t', 123) /* set break bit */ | ||
| 118 | #define TIOCCBRK _IO('t', 122) /* clear break bit */ | ||
| 119 | #define TIOCSDTR _IO('t', 121) /* set data terminal ready */ | ||
| 120 | #define TIOCCDTR _IO('t', 120) /* clear data terminal ready */ | ||
| 121 | #define TIOCGPGRP _IOR('t', 119, int) /* get pgrp of tty */ | ||
| 122 | #define TIOCSPGRP _IOW('t', 118, int) /* set pgrp of tty */ | ||
| 123 | /* 117-116 compat */ | ||
| 124 | #define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ | ||
| 125 | #define TIOCSTI _IOW('t', 114, char) /* simulate terminal input */ | ||
| 126 | #define TIOCNOTTY _IO('t', 113) /* void tty association */ | ||
| 127 | #define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */ | ||
| 128 | #define TIOCPKT_DATA 0x00 /* data packet */ | ||
| 129 | #define TIOCPKT_FLUSHREAD 0x01 /* flush packet */ | ||
| 130 | #define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ | ||
| 131 | #define TIOCPKT_STOP 0x04 /* stop output */ | ||
| 132 | #define TIOCPKT_START 0x08 /* start output */ | ||
| 133 | #define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ | ||
| 134 | #define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ | ||
| 135 | #define TIOCPKT_IOCTL 0x40 /* state change of pty driver */ | ||
| 136 | #define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ | ||
| 137 | #define TIOCSTART _IO('t', 110) /* start output, like ^Q */ | ||
| 138 | #define TIOCMSET _IOW('t', 109, int) /* set all modem bits */ | ||
| 139 | #define TIOCMBIS _IOW('t', 108, int) /* bis modem bits */ | ||
| 140 | #define TIOCMBIC _IOW('t', 107, int) /* bic modem bits */ | ||
| 141 | #define TIOCMGET _IOR('t', 106, int) /* get all modem bits */ | ||
| 142 | #define TIOCREMOTE _IOW('t', 105, int) /* remote input editing */ | ||
| 143 | #define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */ | ||
| 144 | #define TIOCSWINSZ _IOW('t', 103, struct winsize) /* set window size */ | ||
| 145 | #define TIOCUCNTL _IOW('t', 102, int) /* pty: set/clr usr cntl mode */ | ||
| 146 | #define TIOCSTAT _IO('t', 101) /* simulate ^T status message */ | ||
| 147 | #define UIOCCMD(n) _IO('u', n) /* usr cntl op "n" */ | ||
| 148 | #define TIOCSCONS _IO('t', 99) /* 4.2 compatibility */ | ||
| 149 | #define TIOCCONS _IOW('t', 98, int) /* become virtual console */ | ||
| 150 | #define TIOCSCTTY _IO('t', 97) /* become controlling tty */ | ||
| 151 | #define TIOCEXT _IOW('t', 96, int) /* pty: external processing */ | ||
| 152 | #define TIOCSIG _IO('t', 95) /* pty: generate signal */ | ||
| 153 | #define TIOCDRAIN _IO('t', 94) /* wait till output drained */ | ||
| 154 | #define TIOCMSDTRWAIT _IOW('t', 91, int) /* modem: set wait on close */ | ||
| 155 | #define TIOCMGDTRWAIT _IOR('t', 90, int) /* modem: get wait on close */ | ||
| 156 | #define TIOCTIMESTAMP _IOR('t', 89, struct timeval) /* enable/get timestamp | ||
| 157 | 	 * of last input event */ | ||
| 158 | #define TIOCDCDTIMESTAMP _IOR('t', 88, struct timeval) /* enable/get timestamp | ||
| 159 | 	 * of last DCd rise */ | ||
| 160 | #define TIOCSDRAINWAIT _IOW('t', 87, int) /* set ttywait timeout */ | ||
| 161 | #define TIOCGDRAINWAIT _IOR('t', 86, int) /* get ttywait timeout */ | ||
| 162 | #define TIOCDSIMICROCODE _IO('t', 85) /* download microcode to | ||
| 163 | 	 * DSI Softmodem */ | ||
| 164 | #define TIOCPTYGRANT _IO('t', 84) /* grantpt(3) */ | ||
| 165 | #define TIOCPTYGNAME _IOC(IOC_OUT, 't', 83, 128) /* ptsname(3) */ | ||
| 166 | #define TIOCPTYUNLK _IO('t', 82) /* unlockpt(3) */ | ||
| 167 | |||
| 168 | #define TTYDISC 0 /* termios tty line discipline */ | ||
| 169 | #define TABLDISC 3 /* tablet discipline */ | ||
| 170 | #define SLIPDISC 4 /* serial IP discipline */ | ||
| 171 | #define PPPDISC 5 /* PPP discipline */ | ||
| 172 | |||
| 173 | #endif /* !_SYS_TTYCOM_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/ttydefaults.h created+124| ... | @@ -0,0 +1,124 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1982, 1986, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | * This product includes software developed by the University of | ||
| 49 | * California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)ttydefaults.h	8.4 (Berkeley) 1/21/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | /* | ||
| 70 | * System wide defaults for terminal state. | ||
| 71 | */ | ||
| 72 | #ifndef _SYS_TTYDEFAULTS_H_ | ||
| 73 | #define _SYS_TTYDEFAULTS_H_ | ||
| 74 | |||
| 75 | /* | ||
| 76 | * Defaults on "first" open. | ||
| 77 | */ | ||
| 78 | #define TTYDEF_IFLAG (BRKINT	| ICRNL	| IMAXBEL | IXON | IXANY) | ||
| 79 | #define TTYDEF_OFLAG (OPOST | ONLCR) | ||
| 80 | #define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL) | ||
| 81 | #define TTYDEF_CFLAG (CREAD | CS8 | HUPCL) | ||
| 82 | #define TTYDEF_SPEED (B9600) | ||
| 83 | |||
| 84 | /* | ||
| 85 | * Control Character Defaults | ||
| 86 | */ | ||
| 87 | #define CTRL(x) (x&037) | ||
| 88 | #define CEOF CTRL('d') | ||
| 89 | #define CEOL 0xff /* XXX avoid _POSIX_VDISABLE */ | ||
| 90 | #define CERASE 0177 | ||
| 91 | #define CINTR CTRL('c') | ||
| 92 | #define CSTATUS CTRL('t') | ||
| 93 | #define CKILL CTRL('u') | ||
| 94 | #define CMIN 1 | ||
| 95 | #define CQUIT 034 /* FS, ^\ */ | ||
| 96 | #define CSUSP CTRL('z') | ||
| 97 | #define CTIME 0 | ||
| 98 | #define CDSUSP CTRL('y') | ||
| 99 | #define CSTART CTRL('q') | ||
| 100 | #define CSTOP CTRL('s') | ||
| 101 | #define CLNEXT CTRL('v') | ||
| 102 | #define CDISCARD CTRL('o') | ||
| 103 | #define CWERASE CTRL('w') | ||
| 104 | #define CREPRINT CTRL('r') | ||
| 105 | #define CEOT CEOF | ||
| 106 | /* compat */ | ||
| 107 | #define CBRK CEOL | ||
| 108 | #define CRPRNT CREPRINT | ||
| 109 | #define CFLUSH CDISCARD | ||
| 110 | |||
| 111 | /* PROTECTED INCLUSION ENDS HERE */ | ||
| 112 | #endif /* !_SYS_TTYDEFAULTS_H_ */ | ||
| 113 | |||
| 114 | /* | ||
| 115 | * #define TTYDEFCHARS to include an array of default control characters. | ||
| 116 | */ | ||
| 117 | #ifdef TTYDEFCHARS | ||
| 118 | static cc_t ttydefchars[NCCS] = { | ||
| 119 | 	CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, | ||
| 120 | 	_POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, | ||
| 121 | 	CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE | ||
| 122 | }; | ||
| 123 | #undef TTYDEFCHARS | ||
| 124 | #endif | ||
lib/libc/include/x86_64-macos-gnu/sys/types.h created+235| ... | @@ -0,0 +1,235 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2008 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /* | ||
| 30 | * Copyright (c) 1982, 1986, 1991, 1993, 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * (c) UNIX System Laboratories, Inc. | ||
| 33 | * All or some portions of this file are derived from material licensed | ||
| 34 | * to the University of California by American Telephone and Telegraph | ||
| 35 | * Co. or Unix System Laboratories, Inc. and are reproduced herein with | ||
| 36 | * the permission of UNIX System Laboratories, Inc. | ||
| 37 | * | ||
| 38 | * Redistribution and use in source and binary forms, with or without | ||
| 39 | * modification, are permitted provided that the following conditions | ||
| 40 | * are met: | ||
| 41 | * 1. Redistributions of source code must retain the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer. | ||
| 43 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 44 | * notice, this list of conditions and the following disclaimer in the | ||
| 45 | * documentation and/or other materials provided with the distribution. | ||
| 46 | * 3. All advertising materials mentioning features or use of this software | ||
| 47 | * must display the following acknowledgement: | ||
| 48 | *	This product includes software developed by the University of | ||
| 49 | *	California, Berkeley and its contributors. | ||
| 50 | * 4. Neither the name of the University nor the names of its contributors | ||
| 51 | * may be used to endorse or promote products derived from this software | ||
| 52 | * without specific prior written permission. | ||
| 53 | * | ||
| 54 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 55 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 56 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 57 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 58 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 59 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 60 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 61 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 62 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 63 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 64 | * SUCH DAMAGE. | ||
| 65 | * | ||
| 66 | *	@(#)types.h	8.4 (Berkeley) 1/21/94 | ||
| 67 | */ | ||
| 68 | |||
| 69 | #ifndef _SYS_TYPES_H_ | ||
| 70 | #define _SYS_TYPES_H_ | ||
| 71 | |||
| 72 | #include <sys/appleapiopts.h> | ||
| 73 | |||
| 74 | #ifndef __ASSEMBLER__ | ||
| 75 | #include <sys/cdefs.h> | ||
| 76 | |||
| 77 | /* Machine type dependent parameters. */ | ||
| 78 | #include <machine/types.h> | ||
| 79 | #include <sys/_types.h> | ||
| 80 | |||
| 81 | #include <machine/endian.h> | ||
| 82 | |||
| 83 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 84 | #include <sys/_types/_u_char.h> | ||
| 85 | #include <sys/_types/_u_short.h> | ||
| 86 | #include <sys/_types/_u_int.h> | ||
| 87 | #ifndef _U_LONG | ||
| 88 | typedef unsigned long u_long; | ||
| 89 | #define _U_LONG | ||
| 90 | #endif | ||
| 91 | typedef unsigned short ushort; /* Sys V compatibility */ | ||
| 92 | typedef unsigned int uint; /* Sys V compatibility */ | ||
| 93 | #endif | ||
| 94 | |||
| 95 | typedef u_int64_t u_quad_t; /* quads */ | ||
| 96 | typedef int64_t quad_t; | ||
| 97 | typedef quad_t * qaddr_t; | ||
| 98 | |||
| 99 | #include <sys/_types/_caddr_t.h> /* core address */ | ||
| 100 | |||
| 101 | typedef int32_t daddr_t; /* disk address */ | ||
| 102 | |||
| 103 | #include <sys/_types/_dev_t.h> /* device number */ | ||
| 104 | |||
| 105 | typedef u_int32_t fixpt_t; /* fixed point number */ | ||
| 106 | |||
| 107 | #include <sys/_types/_blkcnt_t.h> | ||
| 108 | #include <sys/_types/_blksize_t.h> | ||
| 109 | #include <sys/_types/_gid_t.h> | ||
| 110 | #include <sys/_types/_in_addr_t.h> | ||
| 111 | #include <sys/_types/_in_port_t.h> | ||
| 112 | #include <sys/_types/_ino_t.h> | ||
| 113 | |||
| 114 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 115 | #include <sys/_types/_ino64_t.h> /* 64bit inode number */ | ||
| 116 | #endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */ | ||
| 117 | |||
| 118 | #include <sys/_types/_key_t.h> | ||
| 119 | #include <sys/_types/_mode_t.h> | ||
| 120 | #include <sys/_types/_nlink_t.h> | ||
| 121 | #include <sys/_types/_id_t.h> | ||
| 122 | #include <sys/_types/_pid_t.h> | ||
| 123 | #include <sys/_types/_off_t.h> | ||
| 124 | |||
| 125 | typedef int32_t segsz_t; /* segment size */ | ||
| 126 | typedef int32_t swblk_t; /* swap offset */ | ||
| 127 | |||
| 128 | #include <sys/_types/_uid_t.h> | ||
| 129 | |||
| 130 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 131 | /* Major, minor numbers, dev_t's. */ | ||
| 132 | #if defined(__cplusplus) | ||
| 133 | /* | ||
| 134 | * These lowercase macros tend to match member functions in some C++ code, | ||
| 135 | * so for C++, we must use inline functions instead. | ||
| 136 | */ | ||
| 137 | |||
| 138 | static inline __int32_t | ||
| 139 | major(__uint32_t _x) | ||
| 140 | { | ||
| 141 | 	return (__int32_t)(((__uint32_t)_x >> 24) & 0xff); | ||
| 142 | } | ||
| 143 | |||
| 144 | static inline __int32_t | ||
| 145 | minor(__uint32_t _x) | ||
| 146 | { | ||
| 147 | 	return (__int32_t)((_x) & 0xffffff); | ||
| 148 | } | ||
| 149 | |||
| 150 | static inline dev_t | ||
| 151 | makedev(__uint32_t _major, __uint32_t _minor) | ||
| 152 | { | ||
| 153 | 	return (dev_t)(((_major) << 24) | (_minor)); | ||
| 154 | } | ||
| 155 | |||
| 156 | #else /* !__cplusplus */ | ||
| 157 | |||
| 158 | #define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff)) | ||
| 159 | #define minor(x) ((int32_t)((x) & 0xffffff)) | ||
| 160 | #define makedev(x, y) ((dev_t)(((x) << 24) | (y))) | ||
| 161 | |||
| 162 | #endif /* !__cplusplus */ | ||
| 163 | #endif /* !_POSIX_C_SOURCE */ | ||
| 164 | |||
| 165 | #include <sys/_types/_clock_t.h> | ||
| 166 | #include <sys/_types/_size_t.h> | ||
| 167 | #include <sys/_types/_ssize_t.h> | ||
| 168 | #include <sys/_types/_time_t.h> | ||
| 169 | |||
| 170 | #include <sys/_types/_useconds_t.h> | ||
| 171 | #include <sys/_types/_suseconds_t.h> | ||
| 172 | |||
| 173 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 174 | #include <sys/_types/_rsize_t.h> | ||
| 175 | #include <sys/_types/_errno_t.h> | ||
| 176 | #endif | ||
| 177 | |||
| 178 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 179 | /* | ||
| 180 | * This code is present here in order to maintain historical backward | ||
| 181 | * compatability, and is intended to be removed at some point in the | ||
| 182 | * future; please include <sys/select.h> instead. | ||
| 183 | */ | ||
| 184 | #include <sys/_types/_fd_def.h> | ||
| 185 | |||
| 186 | #define NBBY __DARWIN_NBBY /* bits in a byte */ | ||
| 187 | #define NFDBITS __DARWIN_NFDBITS /* bits per mask */ | ||
| 188 | #define howmany(x, y) __DARWIN_howmany(x, y) /* # y's == x bits? */ | ||
| 189 | typedef __int32_t fd_mask; | ||
| 190 | |||
| 191 | /* | ||
| 192 | * Select uses bit masks of file descriptors in longs. These macros | ||
| 193 | * manipulate such bit fields (the filesystem macros use chars). The | ||
| 194 | * extra protection here is to permit application redefinition above | ||
| 195 | * the default size. | ||
| 196 | */ | ||
| 197 | #include <sys/_types/_fd_setsize.h> | ||
| 198 | #include <sys/_types/_fd_set.h> | ||
| 199 | #include <sys/_types/_fd_clr.h> | ||
| 200 | #include <sys/_types/_fd_zero.h> | ||
| 201 | #include <sys/_types/_fd_isset.h> | ||
| 202 | |||
| 203 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 204 | #include <sys/_types/_fd_copy.h> | ||
| 205 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 206 | |||
| 207 | |||
| 208 | |||
| 209 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 210 | #endif /* __ASSEMBLER__ */ | ||
| 211 | |||
| 212 | |||
| 213 | #ifndef __POSIX_LIB__ | ||
| 214 | |||
| 215 | #include <sys/_pthread/_pthread_attr_t.h> | ||
| 216 | #include <sys/_pthread/_pthread_cond_t.h> | ||
| 217 | #include <sys/_pthread/_pthread_condattr_t.h> | ||
| 218 | #include <sys/_pthread/_pthread_mutex_t.h> | ||
| 219 | #include <sys/_pthread/_pthread_mutexattr_t.h> | ||
| 220 | #include <sys/_pthread/_pthread_once_t.h> | ||
| 221 | #include <sys/_pthread/_pthread_rwlock_t.h> | ||
| 222 | #include <sys/_pthread/_pthread_rwlockattr_t.h> | ||
| 223 | #include <sys/_pthread/_pthread_t.h> | ||
| 224 | |||
| 225 | #endif /* __POSIX_LIB__ */ | ||
| 226 | |||
| 227 | #include <sys/_pthread/_pthread_key_t.h> | ||
| 228 | |||
| 229 | |||
| 230 | /* statvfs and fstatvfs */ | ||
| 231 | |||
| 232 | #include <sys/_types/_fsblkcnt_t.h> | ||
| 233 | #include <sys/_types/_fsfilcnt_t.h> | ||
| 234 | |||
| 235 | #endif /* !_SYS_TYPES_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/uio.h created+100| ... | @@ -0,0 +1,100 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2008 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /* | ||
| 30 | * Copyright (c) 1982, 1986, 1993, 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)uio.h	8.5 (Berkeley) 2/22/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _SYS_UIO_H_ | ||
| 65 | #define _SYS_UIO_H_ | ||
| 66 | |||
| 67 | #include <sys/cdefs.h> | ||
| 68 | #include <sys/_types.h> | ||
| 69 | |||
| 70 | /* | ||
| 71 | * [XSI] The ssize_t and size_t types shall be defined as described | ||
| 72 | * in <sys/types.h>. | ||
| 73 | */ | ||
| 74 | #include <sys/_types/_size_t.h> | ||
| 75 | #include <sys/_types/_ssize_t.h> | ||
| 76 | |||
| 77 | /* | ||
| 78 | * [XSI] Structure whose address is passed as the second parameter to the | ||
| 79 | * readv() and writev() functions. | ||
| 80 | */ | ||
| 81 | #include <sys/_types/_iovec_t.h> | ||
| 82 | |||
| 83 | |||
| 84 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 85 | /* | ||
| 86 | * IO direction for uio_t. | ||
| 87 | *	UIO_READ - data moves into iovec(s) associated with uio_t | ||
| 88 | *	UIO_WRITE - data moves out of iovec(s) associated with uio_t | ||
| 89 | */ | ||
| 90 | enum uio_rw { UIO_READ, UIO_WRITE }; | ||
| 91 | #endif | ||
| 92 | |||
| 93 | |||
| 94 | |||
| 95 | __BEGIN_DECLS | ||
| 96 | ssize_t readv(int, const struct iovec *, int) __DARWIN_ALIAS_C(readv); | ||
| 97 | ssize_t writev(int, const struct iovec *, int) __DARWIN_ALIAS_C(writev); | ||
| 98 | __END_DECLS | ||
| 99 | |||
| 100 | #endif /* !_SYS_UIO_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/un.h created+105| ... | @@ -0,0 +1,105 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* | ||
| 29 | * Copyright (c) 1982, 1986, 1993 | ||
| 30 | *	The Regents of the University of California. All rights reserved. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | *	This product includes software developed by the University of | ||
| 43 | *	California, Berkeley and its contributors. | ||
| 44 | * 4. Neither the name of the University nor the names of its contributors | ||
| 45 | * may be used to endorse or promote products derived from this software | ||
| 46 | * without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 58 | * SUCH DAMAGE. | ||
| 59 | * | ||
| 60 | *	@(#)un.h	8.3 (Berkeley) 2/19/95 | ||
| 61 | */ | ||
| 62 | |||
| 63 | #ifndef _SYS_UN_H_ | ||
| 64 | #define _SYS_UN_H_ | ||
| 65 | |||
| 66 | #include <sys/appleapiopts.h> | ||
| 67 | #include <sys/cdefs.h> | ||
| 68 | #include <sys/_types.h> | ||
| 69 | |||
| 70 | /* [XSI] The sa_family_t type shall be defined as described in <sys/socket.h> */ | ||
| 71 | #include <sys/_types/_sa_family_t.h> | ||
| 72 | |||
| 73 | /* | ||
| 74 | * [XSI] Definitions for UNIX IPC domain. | ||
| 75 | */ | ||
| 76 | struct sockaddr_un { | ||
| 77 | 	unsigned char sun_len; /* sockaddr len including null */ | ||
| 78 | 	sa_family_t sun_family; /* [XSI] AF_UNIX */ | ||
| 79 | 	char sun_path[104]; /* [XSI] path name (gag) */ | ||
| 80 | }; | ||
| 81 | |||
| 82 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 83 | |||
| 84 | /* Level number of get/setsockopt for local domain sockets */ | ||
| 85 | #define SOL_LOCAL 0 | ||
| 86 | |||
| 87 | /* Socket options. */ | ||
| 88 | #define LOCAL_PEERCRED 0x001 /* retrieve peer credentials */ | ||
| 89 | #define LOCAL_PEERPID 0x002 /* retrieve peer pid */ | ||
| 90 | #define LOCAL_PEEREPID 0x003 /* retrieve eff. peer pid */ | ||
| 91 | #define LOCAL_PEERUUID 0x004 /* retrieve peer UUID */ | ||
| 92 | #define LOCAL_PEEREUUID 0x005 /* retrieve eff. peer UUID */ | ||
| 93 | |||
| 94 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 95 | |||
| 96 | |||
| 97 | |||
| 98 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 99 | /* actual length of an initialized sockaddr_un */ | ||
| 100 | #define SUN_LEN(su) \ | ||
| 101 | 	(sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) | ||
| 102 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ | ||
| 103 | |||
| 104 | |||
| 105 | #endif /* !_SYS_UN_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/unistd.h created+218| ... | @@ -0,0 +1,218 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000-2013 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ | ||
| 29 | /* | ||
| 30 | * Copyright (c) 1989, 1993 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * Redistribution and use in source and binary forms, with or without | ||
| 34 | * modification, are permitted provided that the following conditions | ||
| 35 | * are met: | ||
| 36 | * 1. Redistributions of source code must retain the above copyright | ||
| 37 | * notice, this list of conditions and the following disclaimer. | ||
| 38 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 39 | * notice, this list of conditions and the following disclaimer in the | ||
| 40 | * documentation and/or other materials provided with the distribution. | ||
| 41 | * 3. All advertising materials mentioning features or use of this software | ||
| 42 | * must display the following acknowledgement: | ||
| 43 | *	This product includes software developed by the University of | ||
| 44 | *	California, Berkeley and its contributors. | ||
| 45 | * 4. Neither the name of the University nor the names of its contributors | ||
| 46 | * may be used to endorse or promote products derived from this software | ||
| 47 | * without specific prior written permission. | ||
| 48 | * | ||
| 49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 50 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 51 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 52 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 53 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 54 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 55 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 56 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 57 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 58 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 59 | * SUCH DAMAGE. | ||
| 60 | * | ||
| 61 | *	@(#)unistd.h	8.2 (Berkeley) 1/7/94 | ||
| 62 | */ | ||
| 63 | |||
| 64 | #ifndef _SYS_UNISTD_H_ | ||
| 65 | #define _SYS_UNISTD_H_ | ||
| 66 | |||
| 67 | #include <sys/cdefs.h> | ||
| 68 | |||
| 69 | /* | ||
| 70 | * Although we have saved user/group IDs, we do not use them in setuid | ||
| 71 | * as described in POSIX 1003.1, because the feature does not work for | ||
| 72 | * root. We use the saved IDs in seteuid/setegid, which are not currently | ||
| 73 | * part of the POSIX 1003.1 specification. | ||
| 74 | */ | ||
| 75 | #ifdef _NOT_AVAILABLE | ||
| 76 | #define _POSIX_SAVED_IDS /* saved set-user-ID and set-group-ID */ | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #define _POSIX_VERSION 200112L | ||
| 80 | #define _POSIX2_VERSION 200112L | ||
| 81 | |||
| 82 | /* execution-time symbolic constants */ | ||
| 83 | /* may disable terminal special characters */ | ||
| 84 | #include <sys/_types/_posix_vdisable.h> | ||
| 85 | |||
| 86 | #define _POSIX_THREAD_KEYS_MAX 128 | ||
| 87 | |||
| 88 | /* access function */ | ||
| 89 | #define F_OK 0 /* test for existence of file */ | ||
| 90 | #define X_OK (1<<0) /* test for execute or search permission */ | ||
| 91 | #define W_OK (1<<1) /* test for write permission */ | ||
| 92 | #define R_OK (1<<2) /* test for read permission */ | ||
| 93 | |||
| 94 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 95 | /* | ||
| 96 | * Extended access functions. | ||
| 97 | * Note that we depend on these matching the definitions in sys/kauth.h, | ||
| 98 | * but with the bits shifted left by 8. | ||
| 99 | */ | ||
| 100 | #define _READ_OK (1<<9) /* read file data / read directory */ | ||
| 101 | #define _WRITE_OK (1<<10) /* write file data / add file to directory */ | ||
| 102 | #define _EXECUTE_OK (1<<11) /* execute file / search in directory*/ | ||
| 103 | #define _DELETE_OK (1<<12) /* delete file / delete directory */ | ||
| 104 | #define _APPEND_OK (1<<13) /* append to file / add subdirectory to directory */ | ||
| 105 | #define _RMFILE_OK (1<<14) /* - / remove file from directory */ | ||
| 106 | #define _RATTR_OK (1<<15) /* read basic attributes */ | ||
| 107 | #define _WATTR_OK (1<<16) /* write basic attributes */ | ||
| 108 | #define _REXT_OK (1<<17) /* read extended attributes */ | ||
| 109 | #define _WEXT_OK (1<<18) /* write extended attributes */ | ||
| 110 | #define _RPERM_OK (1<<19) /* read permissions */ | ||
| 111 | #define _WPERM_OK (1<<20) /* write permissions */ | ||
| 112 | #define _CHOWN_OK (1<<21) /* change ownership */ | ||
| 113 | |||
| 114 | #define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | \ | ||
| 115 | 	 _DELETE_OK | _APPEND_OK | \ | ||
| 116 | 	 _RMFILE_OK | _REXT_OK | \ | ||
| 117 | 	 _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | \ | ||
| 118 | 	 _WPERM_OK | _CHOWN_OK) | ||
| 119 | #endif | ||
| 120 | |||
| 121 | /* whence values for lseek(2) */ | ||
| 122 | #include <sys/_types/_seek_set.h> | ||
| 123 | |||
| 124 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 125 | /* whence values for lseek(2); renamed by POSIX 1003.1 */ | ||
| 126 | #define L_SET SEEK_SET | ||
| 127 | #define L_INCR SEEK_CUR | ||
| 128 | #define L_XTND SEEK_END | ||
| 129 | #endif | ||
| 130 | |||
| 131 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 132 | struct accessx_descriptor { | ||
| 133 | 	unsigned int ad_name_offset; | ||
| 134 | 	int ad_flags; | ||
| 135 | 	int ad_pad[2]; | ||
| 136 | }; | ||
| 137 | #define ACCESSX_MAX_DESCRIPTORS 100 | ||
| 138 | #define ACCESSX_MAX_TABLESIZE (16 * 1024) | ||
| 139 | #endif | ||
| 140 | |||
| 141 | /* configurable pathname variables */ | ||
| 142 | #define _PC_LINK_MAX 1 | ||
| 143 | #define _PC_MAX_CANON 2 | ||
| 144 | #define _PC_MAX_INPUT 3 | ||
| 145 | #define _PC_NAME_MAX 4 | ||
| 146 | #define _PC_PATH_MAX 5 | ||
| 147 | #define _PC_PIPE_BUF 6 | ||
| 148 | #define _PC_CHOWN_RESTRICTED 7 | ||
| 149 | #define _PC_NO_TRUNC 8 | ||
| 150 | #define _PC_VDISABLE 9 | ||
| 151 | |||
| 152 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 153 | #define _PC_NAME_CHARS_MAX 10 | ||
| 154 | #define _PC_CASE_SENSITIVE 11 | ||
| 155 | #define _PC_CASE_PRESERVING 12 | ||
| 156 | #define _PC_EXTENDED_SECURITY_NP 13 | ||
| 157 | #define _PC_AUTH_OPAQUE_NP 14 | ||
| 158 | #endif | ||
| 159 | |||
| 160 | #define _PC_2_SYMLINKS 15 /* Symlink supported in directory */ | ||
| 161 | #define _PC_ALLOC_SIZE_MIN 16 /* Minimum storage actually allocated */ | ||
| 162 | #define _PC_ASYNC_IO 17 /* Async I/O [AIO] supported? */ | ||
| 163 | #define _PC_FILESIZEBITS 18 /* # of bits to represent file size */ | ||
| 164 | #define _PC_PRIO_IO 19 /* Priority I/O [PIO] supported? */ | ||
| 165 | #define _PC_REC_INCR_XFER_SIZE 20 /* Recommended increment for next two */ | ||
| 166 | #define _PC_REC_MAX_XFER_SIZE 21 /* Recommended max file transfer size */ | ||
| 167 | #define _PC_REC_MIN_XFER_SIZE 22 /* Recommended min file transfer size */ | ||
| 168 | #define _PC_REC_XFER_ALIGN 23 /* Recommended buffer alignment */ | ||
| 169 | #define _PC_SYMLINK_MAX 24 /* Max # of bytes in symlink name */ | ||
| 170 | #define _PC_SYNC_IO 25 /* Sync I/O [SIO] supported? */ | ||
| 171 | #define _PC_XATTR_SIZE_BITS 26 /* # of bits to represent maximum xattr size */ | ||
| 172 | #define _PC_MIN_HOLE_SIZE 27 /* Recommended minimum hole size for sparse files */ | ||
| 173 | |||
| 174 | /* configurable system strings */ | ||
| 175 | #define _CS_PATH 1 | ||
| 176 | |||
| 177 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 178 | |||
| 179 | #include <machine/_types.h> | ||
| 180 | #include <sys/_types/_size_t.h> | ||
| 181 | #include <_types/_uint64_t.h> | ||
| 182 | #include <_types/_uint32_t.h> | ||
| 183 | #include <Availability.h> | ||
| 184 | |||
| 185 | __BEGIN_DECLS | ||
| 186 | |||
| 187 | int getattrlistbulk(int, void *, void *, size_t, uint64_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 188 | int getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 189 | 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); | ||
| 190 | |||
| 191 | __END_DECLS | ||
| 192 | |||
| 193 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 194 | |||
| 195 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 196 | |||
| 197 | #include <machine/_types.h> | ||
| 198 | #include <sys/_types/_size_t.h> | ||
| 199 | #include <sys/_types/_ssize_t.h> | ||
| 200 | #include <sys/_types.h> | ||
| 201 | #include <sys/_types/_uid_t.h> | ||
| 202 | #include <sys/_types/_gid_t.h> | ||
| 203 | #include <Availability.h> | ||
| 204 | |||
| 205 | __BEGIN_DECLS | ||
| 206 | |||
| 207 | int faccessat(int, const char *, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 208 | int fchownat(int, const char *, uid_t, gid_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 209 | int linkat(int, const char *, int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 210 | ssize_t readlinkat(int, const char *, char *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 211 | int symlinkat(const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 212 | int unlinkat(int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); | ||
| 213 | |||
| 214 | __END_DECLS | ||
| 215 | |||
| 216 | #endif /* __DARWIN_C_LEVEL >= 200809L */ | ||
| 217 | |||
| 218 | #endif /* !_SYS_UNISTD_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/sys/utsname.h created+86| ... | @@ -0,0 +1,86 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. The rights granted to you under the License | ||
| 10 | * may not be used to create, or enable the creation or redistribution of, | ||
| 11 | * unlawful or unlicensed copies of an Apple operating system, or to | ||
| 12 | * circumvent, violate, or enable the circumvention or violation of, any | ||
| 13 | * terms of an Apple operating system software license agreement. | ||
| 14 | * | ||
| 15 | * Please obtain a copy of the License at | ||
| 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
| 17 | * | ||
| 18 | * The Original Code and all software distributed under the License are | ||
| 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 23 | * Please see the License for the specific language governing rights and | ||
| 24 | * limitations under the License. | ||
| 25 | * | ||
| 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
| 27 | */ | ||
| 28 | /* Copyright 1993,1995 NeXT Computer Inc. All Rights Reserved */ | ||
| 29 | /*- | ||
| 30 | * Copyright (c) 1994 | ||
| 31 | *	The Regents of the University of California. All rights reserved. | ||
| 32 | * | ||
| 33 | * This code is derived from software contributed to Berkeley by | ||
| 34 | * Chuck Karish of Mindcraft, Inc. | ||
| 35 | * | ||
| 36 | * Redistribution and use in source and binary forms, with or without | ||
| 37 | * modification, are permitted provided that the following conditions | ||
| 38 | * are met: | ||
| 39 | * 1. Redistributions of source code must retain the above copyright | ||
| 40 | * notice, this list of conditions and the following disclaimer. | ||
| 41 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 42 | * notice, this list of conditions and the following disclaimer in the | ||
| 43 | * documentation and/or other materials provided with the distribution. | ||
| 44 | * 3. All advertising materials mentioning features or use of this software | ||
| 45 | * must display the following acknowledgement: | ||
| 46 | *	This product includes software developed by the University of | ||
| 47 | *	California, Berkeley and its contributors. | ||
| 48 | * 4. Neither the name of the University nor the names of its contributors | ||
| 49 | * may be used to endorse or promote products derived from this software | ||
| 50 | * without specific prior written permission. | ||
| 51 | * | ||
| 52 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 53 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 54 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 55 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 56 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 57 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 58 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 59 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 60 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 61 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 62 | * SUCH DAMAGE. | ||
| 63 | * | ||
| 64 | *	@(#)utsname.h	8.1 (Berkeley) 1/4/94 | ||
| 65 | */ | ||
| 66 | |||
| 67 | #ifndef _SYS_UTSNAME_H | ||
| 68 | #define _SYS_UTSNAME_H | ||
| 69 | |||
| 70 | #include <sys/cdefs.h> | ||
| 71 | |||
| 72 | #define _SYS_NAMELEN 256 | ||
| 73 | |||
| 74 | struct utsname { | ||
| 75 | 	char sysname[_SYS_NAMELEN]; /* [XSI] Name of OS */ | ||
| 76 | 	char nodename[_SYS_NAMELEN]; /* [XSI] Name of this network node */ | ||
| 77 | 	char release[_SYS_NAMELEN]; /* [XSI] Release level */ | ||
| 78 | 	char version[_SYS_NAMELEN]; /* [XSI] Version level */ | ||
| 79 | 	char machine[_SYS_NAMELEN]; /* [XSI] Hardware type */ | ||
| 80 | }; | ||
| 81 | |||
| 82 | __BEGIN_DECLS | ||
| 83 | int uname(struct utsname *); | ||
| 84 | __END_DECLS | ||
| 85 | |||
| 86 | #endif /* !_SYS_UTSNAME_H */ | ||
lib/libc/include/x86_64-macos-gnu/syslog.h created+24| ... | @@ -0,0 +1,24 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | #include <sys/syslog.h> | ||
| 24 | |||
lib/libc/include/x86_64-macos-gnu/tar.h created+73| ... | @@ -0,0 +1,73 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 1994 | ||
| 3 | *	The Regents of the University of California. All rights reserved. | ||
| 4 | * | ||
| 5 | * This code is derived from software contributed to Berkeley by | ||
| 6 | * Chuck Karish of Mindcraft, Inc. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * 1. Redistributions of source code must retain the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer. | ||
| 13 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer in the | ||
| 15 | * documentation and/or other materials provided with the distribution. | ||
| 16 | * 3. All advertising materials mentioning features or use of this software | ||
| 17 | * must display the following acknowledgement: | ||
| 18 | *	This product includes software developed by the University of | ||
| 19 | *	California, Berkeley and its contributors. | ||
| 20 | * 4. Neither the name of the University nor the names of its contributors | ||
| 21 | * may be used to endorse or promote products derived from this software | ||
| 22 | * without specific prior written permission. | ||
| 23 | * | ||
| 24 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 25 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 30 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 31 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 33 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 34 | * SUCH DAMAGE. | ||
| 35 | * | ||
| 36 | *	@(#)tar.h	8.2 (Berkeley) 1/4/94 | ||
| 37 | */ | ||
| 38 | |||
| 39 | #ifndef _TAR_H | ||
| 40 | #define _TAR_H | ||
| 41 | |||
| 42 | #define	TMAGIC		"ustar"	/* ustar and a null */ | ||
| 43 | #define	TMAGLEN		6 | ||
| 44 | #define	TVERSION	"00"	/* 00 and no null */ | ||
| 45 | #define	TVERSLEN	2 | ||
| 46 | |||
| 47 | /* Values used in typeflag field */ | ||
| 48 | #define	REGTYPE		'0'	/* Regular file */ | ||
| 49 | #define	AREGTYPE	'\0'	/* Regular file */ | ||
| 50 | #define	LNKTYPE		'1'	/* Link */ | ||
| 51 | #define	SYMTYPE		'2'	/* Reserved */ | ||
| 52 | #define	CHRTYPE		'3'	/* Character special */ | ||
| 53 | #define	BLKTYPE		'4'	/* Block special */ | ||
| 54 | #define	DIRTYPE		'5'	/* Directory */ | ||
| 55 | #define	FIFOTYPE	'6'	/* FIFO special */ | ||
| 56 | #define	CONTTYPE	'7'	/* Reserved */ | ||
| 57 | |||
| 58 | /* Bits used in the mode field - values in octal */ | ||
| 59 | #define	TSUID		04000	/* Set UID on execution */ | ||
| 60 | #define	TSGID		02000	/* Set GID on execution */ | ||
| 61 | #define	TSVTX		01000	/* Reserved */ | ||
| 62 | 				/* File permissions */ | ||
| 63 | #define	TUREAD		00400	/* Read by owner */ | ||
| 64 | #define	TUWRITE		00200	/* Write by owner */ | ||
| 65 | #define	TUEXEC		00100	/* Execute/Search by owner */ | ||
| 66 | #define	TGREAD		00040	/* Read by group */ | ||
| 67 | #define	TGWRITE		00020	/* Write by group */ | ||
| 68 | #define	TGEXEC		00010	/* Execute/Search by group */ | ||
| 69 | #define	TOREAD		00004	/* Read by other */ | ||
| 70 | #define	TOWRITE		00002	/* Write by other */ | ||
| 71 | #define	TOEXEC		00001	/* Execute/Search by other */ | ||
| 72 | |||
| 73 | #endif | ||
lib/libc/include/x86_64-macos-gnu/termios.h created+35| ... | @@ -0,0 +1,35 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | #ifndef __TERMIOS_H__ | ||
| 24 | #define __TERMIOS_H__ | ||
| 25 | |||
| 26 | #include <sys/cdefs.h> | ||
| 27 | #include <sys/termios.h> | ||
| 28 | #include <_types.h> | ||
| 29 | #include <sys/_types/_pid_t.h> | ||
| 30 | |||
| 31 | __BEGIN_DECLS | ||
| 32 | pid_t	tcgetsid(int); | ||
| 33 | __END_DECLS | ||
| 34 | |||
| 35 | #endif /* __TERMIOS_H__ */ | ||
lib/libc/include/x86_64-macos-gnu/ulimit.h created+41| ... | @@ -0,0 +1,41 @@ | ||
| 1 | /*- | ||
| 2 | * Copyright (c) 2002 Kyle Martin <mkm@ieee.org> | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer in the | ||
| 12 | * documentation and/or other materials provided with the distribution. | ||
| 13 | * | ||
| 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 24 | * SUCH DAMAGE. | ||
| 25 | * | ||
| 26 | * $FreeBSD: src/include/ulimit.h,v 1.4 2003/01/08 01:18:13 tjr Exp $ | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef _ULIMIT_H_ | ||
| 30 | #define	_ULIMIT_H_ | ||
| 31 | |||
| 32 | #include <sys/cdefs.h> | ||
| 33 | |||
| 34 | #define	UL_GETFSIZE	1 | ||
| 35 | #define	UL_SETFSIZE	2 | ||
| 36 | |||
| 37 | __BEGIN_DECLS | ||
| 38 | long	ulimit(int, ...); | ||
| 39 | __END_DECLS | ||
| 40 | |||
| 41 | #endif /* !_ULIMIT_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/unistd.h created+787| ... | @@ -0,0 +1,787 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*- | ||
| 24 | * Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved | ||
| 25 | * Copyright (c) 1991, 1993, 1994 | ||
| 26 | *	The Regents of the University of California. All rights reserved. | ||
| 27 | * | ||
| 28 | * Redistribution and use in source and binary forms, with or without | ||
| 29 | * modification, are permitted provided that the following conditions | ||
| 30 | * are met: | ||
| 31 | * 1. Redistributions of source code must retain the above copyright | ||
| 32 | * notice, this list of conditions and the following disclaimer. | ||
| 33 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 34 | * notice, this list of conditions and the following disclaimer in the | ||
| 35 | * documentation and/or other materials provided with the distribution. | ||
| 36 | * 3. All advertising materials mentioning features or use of this software | ||
| 37 | * must display the following acknowledgement: | ||
| 38 | *	This product includes software developed by the University of | ||
| 39 | *	California, Berkeley and its contributors. | ||
| 40 | * 4. Neither the name of the University nor the names of its contributors | ||
| 41 | * may be used to endorse or promote products derived from this software | ||
| 42 | * without specific prior written permission. | ||
| 43 | * | ||
| 44 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 45 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 46 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 47 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 48 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 49 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 50 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 51 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 52 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 53 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 54 | * SUCH DAMAGE. | ||
| 55 | * | ||
| 56 | *	@(#)unistd.h	8.12 (Berkeley) 4/27/95 | ||
| 57 | * | ||
| 58 | * Copyright (c) 1998 Apple Compter, Inc. | ||
| 59 | * All Rights Reserved | ||
| 60 | */ | ||
| 61 | |||
| 62 | /* History: | ||
| 63 | 7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr | ||
| 64 | 3/26/98 CHW at Apple added real interface to searchfs call | ||
| 65 | 	3/5/98 CHW at Apple added hfs semantic system calls headers | ||
| 66 | */ | ||
| 67 | |||
| 68 | #ifndef _UNISTD_H_ | ||
| 69 | #define	_UNISTD_H_ | ||
| 70 | |||
| 71 | #include <_types.h> | ||
| 72 | #include <sys/unistd.h> | ||
| 73 | #include <Availability.h> | ||
| 74 | #include <sys/_types/_gid_t.h> | ||
| 75 | #include <sys/_types/_intptr_t.h> | ||
| 76 | #include <sys/_types/_off_t.h> | ||
| 77 | #include <sys/_types/_pid_t.h> | ||
| 78 | /* DO NOT REMOVE THIS COMMENT: fixincludes needs to see: | ||
| 79 | * _GCC_SIZE_T */ | ||
| 80 | #include <sys/_types/_size_t.h> | ||
| 81 | #include <sys/_types/_ssize_t.h> | ||
| 82 | #include <sys/_types/_uid_t.h> | ||
| 83 | #include <sys/_types/_useconds_t.h> | ||
| 84 | #include <sys/_types/_null.h> | ||
| 85 | |||
| 86 | #define	 STDIN_FILENO	0	/* standard input file descriptor */ | ||
| 87 | #define	STDOUT_FILENO	1	/* standard output file descriptor */ | ||
| 88 | #define	STDERR_FILENO	2	/* standard error file descriptor */ | ||
| 89 | |||
| 90 | |||
| 91 | /* Version test macros */ | ||
| 92 | /* _POSIX_VERSION and _POSIX2_VERSION from sys/unistd.h */ | ||
| 93 | #define	_XOPEN_VERSION			600		/* [XSI] */ | ||
| 94 | #define	_XOPEN_XCU_VERSION		4		/* Older standard */ | ||
| 95 | |||
| 96 | |||
| 97 | /* Please keep this list in the same order as the applicable standard */ | ||
| 98 | #define	_POSIX_ADVISORY_INFO		(-1)		/* [ADV] */ | ||
| 99 | #define	_POSIX_ASYNCHRONOUS_IO		(-1)		/* [AIO] */ | ||
| 100 | #define	_POSIX_BARRIERS			(-1)		/* [BAR] */ | ||
| 101 | #define	_POSIX_CHOWN_RESTRICTED		200112L | ||
| 102 | #define	_POSIX_CLOCK_SELECTION		(-1)		/* [CS] */ | ||
| 103 | #define	_POSIX_CPUTIME			(-1)		/* [CPT] */ | ||
| 104 | #define	_POSIX_FSYNC			200112L		/* [FSC] */ | ||
| 105 | #define	_POSIX_IPV6			200112L | ||
| 106 | #define	_POSIX_JOB_CONTROL		200112L | ||
| 107 | #define	_POSIX_MAPPED_FILES		200112L		/* [MF] */ | ||
| 108 | #define	_POSIX_MEMLOCK			(-1)		/* [ML] */ | ||
| 109 | #define	_POSIX_MEMLOCK_RANGE		(-1)		/* [MR] */ | ||
| 110 | #define	_POSIX_MEMORY_PROTECTION	200112L		/* [MPR] */ | ||
| 111 | #define	_POSIX_MESSAGE_PASSING		(-1)		/* [MSG] */ | ||
| 112 | #define	_POSIX_MONOTONIC_CLOCK		(-1)		/* [MON] */ | ||
| 113 | #define	_POSIX_NO_TRUNC			200112L | ||
| 114 | #define	_POSIX_PRIORITIZED_IO		(-1)		/* [PIO] */ | ||
| 115 | #define	_POSIX_PRIORITY_SCHEDULING	(-1)		/* [PS] */ | ||
| 116 | #define	_POSIX_RAW_SOCKETS		(-1)		/* [RS] */ | ||
| 117 | #define	_POSIX_READER_WRITER_LOCKS	200112L		/* [THR] */ | ||
| 118 | #define	_POSIX_REALTIME_SIGNALS		(-1)		/* [RTS] */ | ||
| 119 | #define	_POSIX_REGEXP			200112L | ||
| 120 | #define	_POSIX_SAVED_IDS		200112L		/* XXX required */ | ||
| 121 | #define	_POSIX_SEMAPHORES		(-1)		/* [SEM] */ | ||
| 122 | #define	_POSIX_SHARED_MEMORY_OBJECTS	(-1)		/* [SHM] */ | ||
| 123 | #define	_POSIX_SHELL			200112L | ||
| 124 | #define	_POSIX_SPAWN			(-1)		/* [SPN] */ | ||
| 125 | #define	_POSIX_SPIN_LOCKS		(-1)		/* [SPI] */ | ||
| 126 | #define	_POSIX_SPORADIC_SERVER		(-1)		/* [SS] */ | ||
| 127 | #define	_POSIX_SYNCHRONIZED_IO		(-1)		/* [SIO] */ | ||
| 128 | #define	_POSIX_THREAD_ATTR_STACKADDR	200112L		/* [TSA] */ | ||
| 129 | #define	_POSIX_THREAD_ATTR_STACKSIZE	200112L		/* [TSS] */ | ||
| 130 | #define	_POSIX_THREAD_CPUTIME		(-1)		/* [TCT] */ | ||
| 131 | #define	_POSIX_THREAD_PRIO_INHERIT	(-1)		/* [TPI] */ | ||
| 132 | #define	_POSIX_THREAD_PRIO_PROTECT	(-1)		/* [TPP] */ | ||
| 133 | #define	_POSIX_THREAD_PRIORITY_SCHEDULING	(-1)	/* [TPS] */ | ||
| 134 | #define	_POSIX_THREAD_PROCESS_SHARED	200112L		/* [TSH] */ | ||
| 135 | #define	_POSIX_THREAD_SAFE_FUNCTIONS	200112L		/* [TSF] */ | ||
| 136 | #define	_POSIX_THREAD_SPORADIC_SERVER	(-1)		/* [TSP] */ | ||
| 137 | #define	_POSIX_THREADS			200112L		/* [THR] */ | ||
| 138 | #define	_POSIX_TIMEOUTS			(-1)		/* [TMO] */ | ||
| 139 | #define	_POSIX_TIMERS			(-1)		/* [TMR] */ | ||
| 140 | #define	_POSIX_TRACE			(-1)		/* [TRC] */ | ||
| 141 | #define	_POSIX_TRACE_EVENT_FILTER	(-1)		/* [TEF] */ | ||
| 142 | #define	_POSIX_TRACE_INHERIT		(-1)		/* [TRI] */ | ||
| 143 | #define	_POSIX_TRACE_LOG		(-1)		/* [TRL] */ | ||
| 144 | #define	_POSIX_TYPED_MEMORY_OBJECTS	(-1)		/* [TYM] */ | ||
| 145 | #ifndef _POSIX_VDISABLE | ||
| 146 | #define	_POSIX_VDISABLE			0xff		/* same as sys/termios.h */ | ||
| 147 | #endif /* _POSIX_VDISABLE */ | ||
| 148 | |||
| 149 | #if __DARWIN_C_LEVEL >= 199209L | ||
| 150 | #define	_POSIX2_C_BIND			200112L | ||
| 151 | #define	_POSIX2_C_DEV			200112L		/* c99 command */ | ||
| 152 | #define	_POSIX2_CHAR_TERM		200112L | ||
| 153 | #define	_POSIX2_FORT_DEV		(-1)		/* fort77 command */ | ||
| 154 | #define	_POSIX2_FORT_RUN		200112L | ||
| 155 | #define	_POSIX2_LOCALEDEF		200112L		/* localedef command */ | ||
| 156 | #define	_POSIX2_PBS			(-1) | ||
| 157 | #define	_POSIX2_PBS_ACCOUNTING		(-1) | ||
| 158 | #define	_POSIX2_PBS_CHECKPOINT		(-1) | ||
| 159 | #define	_POSIX2_PBS_LOCATE		(-1) | ||
| 160 | #define	_POSIX2_PBS_MESSAGE		(-1) | ||
| 161 | #define	_POSIX2_PBS_TRACK		(-1) | ||
| 162 | #define	_POSIX2_SW_DEV			200112L | ||
| 163 | #define	_POSIX2_UPE			200112L	/* XXXX no fc, newgrp, tabs */ | ||
| 164 | #endif /* __DARWIN_C_LEVEL */ | ||
| 165 | |||
| 166 | #define	__ILP32_OFF32 (-1) | ||
| 167 | #define	__ILP32_OFFBIG (-1) | ||
| 168 | |||
| 169 | #define	__LP64_OFF64 (1) | ||
| 170 | #define	__LPBIG_OFFBIG (1) | ||
| 171 | |||
| 172 | #if __DARWIN_C_LEVEL >= 200112L | ||
| 173 | #define	_POSIX_V6_ILP32_OFF32		__ILP32_OFF32 | ||
| 174 | #define	_POSIX_V6_ILP32_OFFBIG		__ILP32_OFFBIG | ||
| 175 | #define	_POSIX_V6_LP64_OFF64		__LP64_OFF64 | ||
| 176 | #define	_POSIX_V6_LPBIG_OFFBIG		__LPBIG_OFFBIG | ||
| 177 | #endif /* __DARWIN_C_LEVEL >= 200112L */ | ||
| 178 | |||
| 179 | #if __DARWIN_C_LEVEL >= 200809L | ||
| 180 | #define	_POSIX_V7_ILP32_OFF32		__ILP32_OFF32 | ||
| 181 | #define	_POSIX_V7_ILP32_OFFBIG		__ILP32_OFFBIG | ||
| 182 | #define	_POSIX_V7_LP64_OFF64		__LP64_OFF64 | ||
| 183 | #define	_POSIX_V7_LPBIG_OFFBIG		__LPBIG_OFFBIG | ||
| 184 | #endif /* __DARWIN_C_LEVEL >= 200809L */ | ||
| 185 | |||
| 186 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 187 | #define	_V6_ILP32_OFF32 __ILP32_OFF32 | ||
| 188 | #define	_V6_ILP32_OFFBIG __ILP32_OFFBIG | ||
| 189 | #define	_V6_LP64_OFF64 __LP64_OFF64 | ||
| 190 | #define	_V6_LPBIG_OFFBIG __LPBIG_OFFBIG | ||
| 191 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 192 | |||
| 193 | #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 194 | /* Removed in Issue 7 */ | ||
| 195 | #define	_XBS5_ILP32_OFF32		 __ILP32_OFF32 | ||
| 196 | #define	_XBS5_ILP32_OFFBIG		 __ILP32_OFFBIG | ||
| 197 | #define	_XBS5_LP64_OFF64		 __LP64_OFF64 | ||
| 198 | #define	_XBS5_LPBIG_OFFBIG		 __LPBIG_OFFBIG | ||
| 199 | #endif /* __DARWIN_C_LEVEL < 200809L */ | ||
| 200 | |||
| 201 | #if __DARWIN_C_LEVEL >= 199506L /* This really should be XSI */ | ||
| 202 | #define	_XOPEN_CRYPT			(1) | ||
| 203 | #define	_XOPEN_ENH_I18N			(1)		/* XXX required */ | ||
| 204 | #define	_XOPEN_LEGACY			(-1)	/* no ftime gcvt, wcswcs */ | ||
| 205 | #define	_XOPEN_REALTIME			(-1)	/* no q'ed signals, mq_* */ | ||
| 206 | #define	_XOPEN_REALTIME_THREADS		(-1)	/* no posix_spawn, et. al. */ | ||
| 207 | #define	_XOPEN_SHM			(1) | ||
| 208 | #define	_XOPEN_STREAMS			(-1) /* Issue 6 */ | ||
| 209 | #define	_XOPEN_UNIX			(1) | ||
| 210 | #endif /* XSI */ | ||
| 211 | |||
| 212 | /* configurable system variables */ | ||
| 213 | #define	_SC_ARG_MAX			 1 | ||
| 214 | #define	_SC_CHILD_MAX			 2 | ||
| 215 | #define	_SC_CLK_TCK			 3 | ||
| 216 | #define	_SC_NGROUPS_MAX			 4 | ||
| 217 | #define	_SC_OPEN_MAX			 5 | ||
| 218 | #define	_SC_JOB_CONTROL			 6 | ||
| 219 | #define	_SC_SAVED_IDS			 7 | ||
| 220 | #define	_SC_VERSION			 8 | ||
| 221 | #define	_SC_BC_BASE_MAX			 9 | ||
| 222 | #define	_SC_BC_DIM_MAX			10 | ||
| 223 | #define	_SC_BC_SCALE_MAX		11 | ||
| 224 | #define	_SC_BC_STRING_MAX		12 | ||
| 225 | #define	_SC_COLL_WEIGHTS_MAX		13 | ||
| 226 | #define	_SC_EXPR_NEST_MAX		14 | ||
| 227 | #define	_SC_LINE_MAX			15 | ||
| 228 | #define	_SC_RE_DUP_MAX			16 | ||
| 229 | #define	_SC_2_VERSION			17 | ||
| 230 | #define	_SC_2_C_BIND			18 | ||
| 231 | #define	_SC_2_C_DEV			19 | ||
| 232 | #define	_SC_2_CHAR_TERM			20 | ||
| 233 | #define	_SC_2_FORT_DEV			21 | ||
| 234 | #define	_SC_2_FORT_RUN			22 | ||
| 235 | #define	_SC_2_LOCALEDEF			23 | ||
| 236 | #define	_SC_2_SW_DEV			24 | ||
| 237 | #define	_SC_2_UPE			25 | ||
| 238 | #define	_SC_STREAM_MAX			26 | ||
| 239 | #define	_SC_TZNAME_MAX			27 | ||
| 240 | |||
| 241 | #if __DARWIN_C_LEVEL >= 199309L | ||
| 242 | #define	_SC_ASYNCHRONOUS_IO		28 | ||
| 243 | #define	_SC_PAGESIZE			29 | ||
| 244 | #define	_SC_MEMLOCK			30 | ||
| 245 | #define	_SC_MEMLOCK_RANGE		31 | ||
| 246 | #define	_SC_MEMORY_PROTECTION		32 | ||
| 247 | #define	_SC_MESSAGE_PASSING		33 | ||
| 248 | #define	_SC_PRIORITIZED_IO		34 | ||
| 249 | #define	_SC_PRIORITY_SCHEDULING		35 | ||
| 250 | #define	_SC_REALTIME_SIGNALS		36 | ||
| 251 | #define	_SC_SEMAPHORES			37 | ||
| 252 | #define	_SC_FSYNC			38 | ||
| 253 | #define	_SC_SHARED_MEMORY_OBJECTS 	39 | ||
| 254 | #define	_SC_SYNCHRONIZED_IO		40 | ||
| 255 | #define	_SC_TIMERS			41 | ||
| 256 | #define	_SC_AIO_LISTIO_MAX		42 | ||
| 257 | #define	_SC_AIO_MAX			43 | ||
| 258 | #define	_SC_AIO_PRIO_DELTA_MAX		44 | ||
| 259 | #define	_SC_DELAYTIMER_MAX		45 | ||
| 260 | #define	_SC_MQ_OPEN_MAX			46 | ||
| 261 | #define	_SC_MAPPED_FILES		47	/* swap _SC_PAGESIZE vs. BSD */ | ||
| 262 | #define	_SC_RTSIG_MAX			48 | ||
| 263 | #define	_SC_SEM_NSEMS_MAX		49 | ||
| 264 | #define	_SC_SEM_VALUE_MAX		50 | ||
| 265 | #define	_SC_SIGQUEUE_MAX		51 | ||
| 266 | #define	_SC_TIMER_MAX			52 | ||
| 267 | #endif /* __DARWIN_C_LEVEL >= 199309L */ | ||
| 268 | |||
| 269 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 270 | #define	_SC_NPROCESSORS_CONF		57 | ||
| 271 | #define	_SC_NPROCESSORS_ONLN		58 | ||
| 272 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 273 | |||
| 274 | #if __DARWIN_C_LEVEL >= 200112L | ||
| 275 | #define	_SC_2_PBS			59 | ||
| 276 | #define	_SC_2_PBS_ACCOUNTING		60 | ||
| 277 | #define	_SC_2_PBS_CHECKPOINT		61 | ||
| 278 | #define	_SC_2_PBS_LOCATE		62 | ||
| 279 | #define	_SC_2_PBS_MESSAGE		63 | ||
| 280 | #define	_SC_2_PBS_TRACK			64 | ||
| 281 | #define	_SC_ADVISORY_INFO		65 | ||
| 282 | #define	_SC_BARRIERS			66 | ||
| 283 | #define	_SC_CLOCK_SELECTION		67 | ||
| 284 | #define	_SC_CPUTIME			68 | ||
| 285 | #define	_SC_FILE_LOCKING		69 | ||
| 286 | #define	_SC_GETGR_R_SIZE_MAX		70 | ||
| 287 | #define	_SC_GETPW_R_SIZE_MAX		71 | ||
| 288 | #define	_SC_HOST_NAME_MAX		72 | ||
| 289 | #define	_SC_LOGIN_NAME_MAX		73 | ||
| 290 | #define	_SC_MONOTONIC_CLOCK		74 | ||
| 291 | #define	_SC_MQ_PRIO_MAX			75 | ||
| 292 | #define	_SC_READER_WRITER_LOCKS		76 | ||
| 293 | #define	_SC_REGEXP			77 | ||
| 294 | #define	_SC_SHELL			78 | ||
| 295 | #define	_SC_SPAWN			79 | ||
| 296 | #define	_SC_SPIN_LOCKS			80 | ||
| 297 | #define	_SC_SPORADIC_SERVER		81 | ||
| 298 | #define	_SC_THREAD_ATTR_STACKADDR	82 | ||
| 299 | #define	_SC_THREAD_ATTR_STACKSIZE	83 | ||
| 300 | #define	_SC_THREAD_CPUTIME		84 | ||
| 301 | #define	_SC_THREAD_DESTRUCTOR_ITERATIONS 85 | ||
| 302 | #define	_SC_THREAD_KEYS_MAX		86 | ||
| 303 | #define	_SC_THREAD_PRIO_INHERIT		87 | ||
| 304 | #define	_SC_THREAD_PRIO_PROTECT		88 | ||
| 305 | #define	_SC_THREAD_PRIORITY_SCHEDULING	89 | ||
| 306 | #define	_SC_THREAD_PROCESS_SHARED	90 | ||
| 307 | #define	_SC_THREAD_SAFE_FUNCTIONS	91 | ||
| 308 | #define	_SC_THREAD_SPORADIC_SERVER	92 | ||
| 309 | #define	_SC_THREAD_STACK_MIN		93 | ||
| 310 | #define	_SC_THREAD_THREADS_MAX		94 | ||
| 311 | #define	_SC_TIMEOUTS			95 | ||
| 312 | #define	_SC_THREADS			96 | ||
| 313 | #define	_SC_TRACE			97 | ||
| 314 | #define	_SC_TRACE_EVENT_FILTER		98 | ||
| 315 | #define	_SC_TRACE_INHERIT		99 | ||
| 316 | #define	_SC_TRACE_LOG			100 | ||
| 317 | #define	_SC_TTY_NAME_MAX		101 | ||
| 318 | #define	_SC_TYPED_MEMORY_OBJECTS	102 | ||
| 319 | #define	_SC_V6_ILP32_OFF32		103 | ||
| 320 | #define	_SC_V6_ILP32_OFFBIG		104 | ||
| 321 | #define	_SC_V6_LP64_OFF64		105 | ||
| 322 | #define	_SC_V6_LPBIG_OFFBIG		106 | ||
| 323 | #define	_SC_IPV6			118 | ||
| 324 | #define	_SC_RAW_SOCKETS			119 | ||
| 325 | #define	_SC_SYMLOOP_MAX			120 | ||
| 326 | #endif /* __DARWIN_C_LEVEL >= 200112L */ | ||
| 327 | |||
| 328 | #if __DARWIN_C_LEVEL >= 199506L /* Really XSI */ | ||
| 329 | #define	_SC_ATEXIT_MAX			107 | ||
| 330 | #define	_SC_IOV_MAX			56 | ||
| 331 | #define	_SC_PAGE_SIZE			_SC_PAGESIZE | ||
| 332 | #define	_SC_XOPEN_CRYPT			108 | ||
| 333 | #define	_SC_XOPEN_ENH_I18N		109 | ||
| 334 | #define	_SC_XOPEN_LEGACY		110 /* Issue 6 */ | ||
| 335 | #define	_SC_XOPEN_REALTIME		111 /* Issue 6 */ | ||
| 336 | #define	_SC_XOPEN_REALTIME_THREADS	112 /* Issue 6 */ | ||
| 337 | #define	_SC_XOPEN_SHM			113 | ||
| 338 | #define	_SC_XOPEN_STREAMS		114 /* Issue 6 */ | ||
| 339 | #define	_SC_XOPEN_UNIX			115 | ||
| 340 | #define	_SC_XOPEN_VERSION		116 | ||
| 341 | #define	_SC_XOPEN_XCU_VERSION		121 | ||
| 342 | #endif /* XSI */ | ||
| 343 | |||
| 344 | #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 345 | /* Removed in Issue 7 */ | ||
| 346 | #define	_SC_XBS5_ILP32_OFF32		122 | ||
| 347 | #define	_SC_XBS5_ILP32_OFFBIG		123 | ||
| 348 | #define	_SC_XBS5_LP64_OFF64		124 | ||
| 349 | #define	_SC_XBS5_LPBIG_OFFBIG		125 | ||
| 350 | #endif /* __DARWIN_C_LEVEL <= 200809L */ | ||
| 351 | |||
| 352 | #if __DARWIN_C_LEVEL >= 200112L | ||
| 353 | #define	_SC_SS_REPL_MAX			126 | ||
| 354 | #define	_SC_TRACE_EVENT_NAME_MAX	127 | ||
| 355 | #define	_SC_TRACE_NAME_MAX		128 | ||
| 356 | #define	_SC_TRACE_SYS_MAX		129 | ||
| 357 | #define	_SC_TRACE_USER_EVENT_MAX	130 | ||
| 358 | #endif | ||
| 359 | |||
| 360 | #if __DARWIN_C_LEVEL < 200112L || __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 361 | /* Removed in Issue 6 */ | ||
| 362 | #define	_SC_PASS_MAX			131 | ||
| 363 | #endif | ||
| 364 | |||
| 365 | /* 132-199 available for future use */ | ||
| 366 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 367 | #define	_SC_PHYS_PAGES			200 | ||
| 368 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 369 | |||
| 370 | #if __DARWIN_C_LEVEL >= 199209L | ||
| 371 | #ifndef _CS_PATH /* Defined in <sys/unistd.h> */ | ||
| 372 | #define	_CS_PATH				1 | ||
| 373 | #endif | ||
| 374 | #endif | ||
| 375 | |||
| 376 | #if __DARWIN_C_LEVEL >= 200112 | ||
| 377 | #define	_CS_POSIX_V6_ILP32_OFF32_CFLAGS		2 | ||
| 378 | #define	_CS_POSIX_V6_ILP32_OFF32_LDFLAGS	3 | ||
| 379 | #define	_CS_POSIX_V6_ILP32_OFF32_LIBS		4 | ||
| 380 | #define	_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS	5 | ||
| 381 | #define	_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS	6 | ||
| 382 | #define	_CS_POSIX_V6_ILP32_OFFBIG_LIBS		7 | ||
| 383 | #define	_CS_POSIX_V6_LP64_OFF64_CFLAGS		8 | ||
| 384 | #define	_CS_POSIX_V6_LP64_OFF64_LDFLAGS		9 | ||
| 385 | #define	_CS_POSIX_V6_LP64_OFF64_LIBS		10 | ||
| 386 | #define	_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS	11 | ||
| 387 | #define	_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS	12 | ||
| 388 | #define	_CS_POSIX_V6_LPBIG_OFFBIG_LIBS		13 | ||
| 389 | #define	_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	14 | ||
| 390 | #endif | ||
| 391 | |||
| 392 | #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 393 | /* Removed in Issue 7 */ | ||
| 394 | #define	_CS_XBS5_ILP32_OFF32_CFLAGS		20 | ||
| 395 | #define	_CS_XBS5_ILP32_OFF32_LDFLAGS		21 | ||
| 396 | #define	_CS_XBS5_ILP32_OFF32_LIBS		22 | ||
| 397 | #define	_CS_XBS5_ILP32_OFF32_LINTFLAGS		23 | ||
| 398 | #define	_CS_XBS5_ILP32_OFFBIG_CFLAGS		24 | ||
| 399 | #define	_CS_XBS5_ILP32_OFFBIG_LDFLAGS		25 | ||
| 400 | #define	_CS_XBS5_ILP32_OFFBIG_LIBS		26 | ||
| 401 | #define	_CS_XBS5_ILP32_OFFBIG_LINTFLAGS		27 | ||
| 402 | #define	_CS_XBS5_LP64_OFF64_CFLAGS		28 | ||
| 403 | #define	_CS_XBS5_LP64_OFF64_LDFLAGS		29 | ||
| 404 | #define	_CS_XBS5_LP64_OFF64_LIBS		30 | ||
| 405 | #define	_CS_XBS5_LP64_OFF64_LINTFLAGS		31 | ||
| 406 | #define	_CS_XBS5_LPBIG_OFFBIG_CFLAGS		32 | ||
| 407 | #define	_CS_XBS5_LPBIG_OFFBIG_LDFLAGS		33 | ||
| 408 | #define	_CS_XBS5_LPBIG_OFFBIG_LIBS		34 | ||
| 409 | #define	_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS		35 | ||
| 410 | #endif | ||
| 411 | |||
| 412 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 413 | #define	_CS_DARWIN_USER_DIR			65536 | ||
| 414 | #define	_CS_DARWIN_USER_TEMP_DIR		65537 | ||
| 415 | #define	_CS_DARWIN_USER_CACHE_DIR		65538 | ||
| 416 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 417 | |||
| 418 | |||
| 419 | #ifdef _DARWIN_UNLIMITED_GETGROUPS | ||
| 420 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 | ||
| 421 | #error "_DARWIN_UNLIMITED_GETGROUPS specified, but -miphoneos-version-min version does not support it." | ||
| 422 | #elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6 | ||
| 423 | #error "_DARWIN_UNLIMITED_GETGROUPS specified, but -mmacosx-version-min version does not support it." | ||
| 424 | #endif | ||
| 425 | #endif | ||
| 426 | |||
| 427 | /* POSIX.1-1990 */ | ||
| 428 | |||
| 429 | __BEGIN_DECLS | ||
| 430 | void	 _exit(int) __dead2; | ||
| 431 | int	 access(const char *, int); | ||
| 432 | unsigned int | ||
| 433 | 	 alarm(unsigned int); | ||
| 434 | int	 chdir(const char *); | ||
| 435 | int	 chown(const char *, uid_t, gid_t); | ||
| 436 | |||
| 437 | int	 close(int) __DARWIN_ALIAS_C(close); | ||
| 438 | |||
| 439 | int	 dup(int); | ||
| 440 | int	 dup2(int, int); | ||
| 441 | int	 execl(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 442 | int	 execle(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 443 | int	 execlp(const char * __file, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 444 | int	 execv(const char * __path, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 445 | int	 execve(const char * __file, char * const * __argv, char * const * __envp) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 446 | int	 execvp(const char * __file, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 447 | pid_t	 fork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 448 | long	 fpathconf(int, int); | ||
| 449 | char	*getcwd(char *, size_t); | ||
| 450 | gid_t	 getegid(void); | ||
| 451 | uid_t	 geteuid(void); | ||
| 452 | gid_t	 getgid(void); | ||
| 453 | #if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE) | ||
| 454 | int	 getgroups(int, gid_t []) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups)); | ||
| 455 | #else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */ | ||
| 456 | int	 getgroups(int, gid_t []); | ||
| 457 | #endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */ | ||
| 458 | char	*getlogin(void); | ||
| 459 | pid_t	 getpgrp(void); | ||
| 460 | pid_t	 getpid(void); | ||
| 461 | pid_t	 getppid(void); | ||
| 462 | uid_t	 getuid(void); | ||
| 463 | int	 isatty(int); | ||
| 464 | int	 link(const char *, const char *); | ||
| 465 | off_t	 lseek(int, off_t, int); | ||
| 466 | long	 pathconf(const char *, int); | ||
| 467 | |||
| 468 | int	 pause(void) __DARWIN_ALIAS_C(pause); | ||
| 469 | |||
| 470 | int	 pipe(int [2]); | ||
| 471 | |||
| 472 | ssize_t	 read(int, void *, size_t) __DARWIN_ALIAS_C(read); | ||
| 473 | |||
| 474 | int	 rmdir(const char *); | ||
| 475 | int	 setgid(gid_t); | ||
| 476 | int	 setpgid(pid_t, pid_t); | ||
| 477 | pid_t	 setsid(void); | ||
| 478 | int	 setuid(uid_t); | ||
| 479 | |||
| 480 | unsigned int | ||
| 481 | 	 sleep(unsigned int) __DARWIN_ALIAS_C(sleep); | ||
| 482 | |||
| 483 | long	 sysconf(int); | ||
| 484 | pid_t	 tcgetpgrp(int); | ||
| 485 | int	 tcsetpgrp(int, pid_t); | ||
| 486 | char	*ttyname(int); | ||
| 487 | |||
| 488 | #if __DARWIN_UNIX03 | ||
| 489 | int	 ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r); | ||
| 490 | #else /* !__DARWIN_UNIX03 */ | ||
| 491 | char	*ttyname_r(int, char *, size_t); | ||
| 492 | #endif /* __DARWIN_UNIX03 */ | ||
| 493 | |||
| 494 | int	 unlink(const char *); | ||
| 495 | |||
| 496 | ssize_t	 write(int __fd, const void * __buf, size_t __nbyte) __DARWIN_ALIAS_C(write); | ||
| 497 | __END_DECLS | ||
| 498 | |||
| 499 | |||
| 500 | |||
| 501 | /* Additional functionality provided by: | ||
| 502 | * POSIX.2-1992 C Language Binding Option | ||
| 503 | */ | ||
| 504 | |||
| 505 | #if __DARWIN_C_LEVEL >= 199209L | ||
| 506 | __BEGIN_DECLS | ||
| 507 | size_t	 confstr(int, char *, size_t) __DARWIN_ALIAS(confstr); | ||
| 508 | |||
| 509 | int	 getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt); | ||
| 510 | |||
| 511 | extern char *optarg;			/* getopt(3) external variables */ | ||
| 512 | extern int optind, opterr, optopt; | ||
| 513 | __END_DECLS | ||
| 514 | #endif /* __DARWIN_C_LEVEL >= 199209L */ | ||
| 515 | |||
| 516 | |||
| 517 | |||
| 518 | /* Additional functionality provided by: | ||
| 519 | * POSIX.1c-1995, | ||
| 520 | * POSIX.1i-1995, | ||
| 521 | * and the omnibus ISO/IEC 9945-1: 1996 | ||
| 522 | */ | ||
| 523 | |||
| 524 | #if __DARWIN_C_LEVEL >= 199506L | ||
| 525 | #include <_ctermid.h> | ||
| 526 | /* These F_* are really XSI or Issue 6 */ | ||
| 527 | #define F_ULOCK 0 /* unlock locked section */ | ||
| 528 | #define	F_LOCK 1 /* lock a section for exclusive use */ | ||
| 529 | #define	F_TLOCK 2 /* test and lock a section for exclusive use */ | ||
| 530 | #define	F_TEST 3 /* test a section for locks by other procs */ | ||
| 531 | |||
| 532 | __BEGIN_DECLS | ||
| 533 | |||
| 534 | /* Begin XSI */ | ||
| 535 | /* Removed in Issue 6 */ | ||
| 536 | #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L | ||
| 537 | #if !defined(_POSIX_C_SOURCE) | ||
| 538 | __deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 539 | #endif | ||
| 540 | void	*brk(const void *); | ||
| 541 | int	 chroot(const char *) __POSIX_C_DEPRECATED(199506L); | ||
| 542 | #endif | ||
| 543 | |||
| 544 | char	*crypt(const char *, const char *); | ||
| 545 | #if __DARWIN_UNIX03 | ||
| 546 | void	 encrypt(char *, int) __DARWIN_ALIAS(encrypt); | ||
| 547 | #else /* !__DARWIN_UNIX03 */ | ||
| 548 | int	 encrypt(char *, int); | ||
| 549 | #endif /* __DARWIN_UNIX03 */ | ||
| 550 | int	 fchdir(int); | ||
| 551 | long	 gethostid(void); | ||
| 552 | pid_t	 getpgid(pid_t); | ||
| 553 | pid_t	 getsid(pid_t); | ||
| 554 | |||
| 555 | /* Removed in Issue 6 */ | ||
| 556 | #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L | ||
| 557 | int	 getdtablesize(void) __POSIX_C_DEPRECATED(199506L); | ||
| 558 | int	 getpagesize(void) __pure2 __POSIX_C_DEPRECATED(199506L); | ||
| 559 | char	*getpass(const char *) __POSIX_C_DEPRECATED(199506L); | ||
| 560 | #endif | ||
| 561 | |||
| 562 | /* Removed in Issue 7 */ | ||
| 563 | #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L | ||
| 564 | char	*getwd(char *) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */ | ||
| 565 | #endif | ||
| 566 | |||
| 567 | int	 lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown); | ||
| 568 | |||
| 569 | int	 lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf); | ||
| 570 | |||
| 571 | int	 nice(int) __DARWIN_ALIAS(nice); | ||
| 572 | |||
| 573 | ssize_t	 pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pread); | ||
| 574 | |||
| 575 | ssize_t	 pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pwrite); | ||
| 576 | |||
| 577 | /* Removed in Issue 6 */ | ||
| 578 | #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L | ||
| 579 | /* Note that Issue 5 changed the argument as intprt_t, | ||
| 580 | * but we keep it as int for binary compatability. */ | ||
| 581 | #if !defined(_POSIX_C_SOURCE) | ||
| 582 | __deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 583 | #endif | ||
| 584 | void	*sbrk(int); | ||
| 585 | #endif | ||
| 586 | |||
| 587 | #if __DARWIN_UNIX03 | ||
| 588 | pid_t	 setpgrp(void) __DARWIN_ALIAS(setpgrp); | ||
| 589 | #else /* !__DARWIN_UNIX03 */ | ||
| 590 | int	 setpgrp(pid_t pid, pid_t pgrp);	/* obsoleted by setpgid() */ | ||
| 591 | #endif /* __DARWIN_UNIX03 */ | ||
| 592 | |||
| 593 | int	 setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid); | ||
| 594 | |||
| 595 | int	 setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid); | ||
| 596 | |||
| 597 | void swab(const void * __restrict, void * __restrict, ssize_t); | ||
| 598 | void	 sync(void); | ||
| 599 | int	 truncate(const char *, off_t); | ||
| 600 | useconds_t	 ualarm(useconds_t, useconds_t); | ||
| 601 | int	 usleep(useconds_t) __DARWIN_ALIAS_C(usleep); | ||
| 602 | pid_t	 vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 603 | /* End XSI */ | ||
| 604 | |||
| 605 | int	 fsync(int) __DARWIN_ALIAS_C(fsync); | ||
| 606 | |||
| 607 | int	 ftruncate(int, off_t); | ||
| 608 | int	 getlogin_r(char *, size_t); | ||
| 609 | __END_DECLS | ||
| 610 | #endif /* __DARWIN_C_LEVEL >= 199506L */ | ||
| 611 | |||
| 612 | |||
| 613 | |||
| 614 | /* Additional functionality provided by: | ||
| 615 | * POSIX.1-2001 | ||
| 616 | * ISO C99 | ||
| 617 | */ | ||
| 618 | |||
| 619 | #if __DARWIN_C_LEVEL >= 200112L | ||
| 620 | __BEGIN_DECLS | ||
| 621 | int	 fchown(int, uid_t, gid_t); | ||
| 622 | int	 gethostname(char *, size_t); | ||
| 623 | ssize_t readlink(const char * __restrict, char * __restrict, size_t); | ||
| 624 | int	 setegid(gid_t); | ||
| 625 | int	 seteuid(uid_t); | ||
| 626 | int	 symlink(const char *, const char *); | ||
| 627 | __END_DECLS | ||
| 628 | #endif /* __DARWIN_C_LEVEL >= 200112L */ | ||
| 629 | |||
| 630 | |||
| 631 | |||
| 632 | /* Darwin extensions */ | ||
| 633 | |||
| 634 | #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL | ||
| 635 | #include <sys/select.h> | ||
| 636 | |||
| 637 | #include <sys/_types/_dev_t.h> | ||
| 638 | #include <sys/_types/_mode_t.h> | ||
| 639 | #include <sys/_types/_uuid_t.h> | ||
| 640 | |||
| 641 | __BEGIN_DECLS | ||
| 642 | void	 _Exit(int) __dead2; | ||
| 643 | int	 accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); | ||
| 644 | int	 acct(const char *); | ||
| 645 | int	 add_profil(char *, size_t, unsigned long, unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 646 | void	 endusershell(void); | ||
| 647 | int	 execvP(const char * __file, const char * __searchpath, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 648 | char	*fflagstostr(unsigned long); | ||
| 649 | int	 getdomainname(char *, int); | ||
| 650 | int	 getgrouplist(const char *, int, int *, int *); | ||
| 651 | #if defined(__has_include) | ||
| 652 | #if __has_include(<gethostuuid_private.h>) | ||
| 653 | #include <gethostuuid_private.h> | ||
| 654 | #else | ||
| 655 | #include <gethostuuid.h> | ||
| 656 | #endif | ||
| 657 | #else | ||
| 658 | #include <gethostuuid.h> | ||
| 659 | #endif | ||
| 660 | mode_t	 getmode(const void *, mode_t); | ||
| 661 | int	 getpeereid(int, uid_t *, gid_t *); | ||
| 662 | int	 getsgroups_np(int *, uuid_t); | ||
| 663 | char	*getusershell(void); | ||
| 664 | int	 getwgroups_np(int *, uuid_t); | ||
| 665 | int	 initgroups(const char *, int); | ||
| 666 | int	 issetugid(void); | ||
| 667 | char	*mkdtemp(char *); | ||
| 668 | int	 mknod(const char *, mode_t, dev_t); | ||
| 669 | int	 mkpath_np(const char *path, mode_t omode) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0); /* returns errno */ | ||
| 670 | int	 mkpathat_np(int dfd, const char *path, mode_t omode) /* returns errno */ | ||
| 671 | 		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) | ||
| 672 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 673 | int	 mkstemp(char *); | ||
| 674 | int	 mkstemps(char *, int); | ||
| 675 | char	*mktemp(char *); | ||
| 676 | int	 mkostemp(char *path, int oflags) | ||
| 677 | 		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) | ||
| 678 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 679 | int	 mkostemps(char *path, int slen, int oflags) | ||
| 680 | 		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) | ||
| 681 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 682 | /* Non-portable mkstemp that uses open_dprotected_np */ | ||
| 683 | int	 mkstemp_dprotected_np(char *path, int dpclass, int dpflags) | ||
| 684 | 		__OSX_UNAVAILABLE __IOS_AVAILABLE(10.0) | ||
| 685 | 		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); | ||
| 686 | char *mkdtempat_np(int dfd, char *path) | ||
| 687 | 		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) | ||
| 688 | 		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); | ||
| 689 | int mkstempsat_np(int dfd, char *path, int slen) | ||
| 690 | 		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) | ||
| 691 | 		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); | ||
| 692 | int mkostempsat_np(int dfd, char *path, int slen, int oflags) | ||
| 693 | 		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) | ||
| 694 | 		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); | ||
| 695 | int	 nfssvc(int, void *); | ||
| 696 | int	 profil(char *, size_t, unsigned long, unsigned int); | ||
| 697 | |||
| 698 | __deprecated_msg("Use of per-thread security contexts is error-prone and discouraged.") | ||
| 699 | int	 pthread_setugid_np(uid_t, gid_t); | ||
| 700 | int	 pthread_getugid_np( uid_t *, gid_t *); | ||
| 701 | |||
| 702 | int	 reboot(int); | ||
| 703 | int	 revoke(const char *); | ||
| 704 | |||
| 705 | __deprecated int	 rcmd(char **, int, const char *, const char *, const char *, int *); | ||
| 706 | __deprecated int	 rcmd_af(char **, int, const char *, const char *, const char *, int *, | ||
| 707 | 		int); | ||
| 708 | __deprecated int	 rresvport(int *); | ||
| 709 | __deprecated int	 rresvport_af(int *, int); | ||
| 710 | __deprecated int	 iruserok(unsigned long, int, const char *, const char *); | ||
| 711 | __deprecated int	 iruserok_sa(const void *, int, int, const char *, const char *); | ||
| 712 | __deprecated int	 ruserok(const char *, int, const char *, const char *); | ||
| 713 | |||
| 714 | int	 setdomainname(const char *, int); | ||
| 715 | int	 setgroups(int, const gid_t *); | ||
| 716 | void	 sethostid(long); | ||
| 717 | int	 sethostname(const char *, int); | ||
| 718 | #if __DARWIN_UNIX03 | ||
| 719 | void	 setkey(const char *) __DARWIN_ALIAS(setkey); | ||
| 720 | #else /* !__DARWIN_UNIX03 */ | ||
| 721 | int	 setkey(const char *); | ||
| 722 | #endif /* __DARWIN_UNIX03 */ | ||
| 723 | int	 setlogin(const char *); | ||
| 724 | void	*setmode(const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(setmode)); | ||
| 725 | int	 setrgid(gid_t); | ||
| 726 | int	 setruid(uid_t); | ||
| 727 | int	 setsgroups_np(int, const uuid_t); | ||
| 728 | void	 setusershell(void); | ||
| 729 | int	 setwgroups_np(int, const uuid_t); | ||
| 730 | int	 strtofflags(char **, unsigned long *, unsigned long *); | ||
| 731 | int	 swapon(const char *); | ||
| 732 | int	 ttyslot(void); | ||
| 733 | int	 undelete(const char *); | ||
| 734 | int	 unwhiteout(const char *); | ||
| 735 | void	*valloc(size_t);			 | ||
| 736 | |||
| 737 | __WATCHOS_PROHIBITED __TVOS_PROHIBITED | ||
| 738 | __OS_AVAILABILITY_MSG(ios,deprecated=10.0,"syscall(2) is unsupported; " | ||
| 739 | "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().") | ||
| 740 | __OS_AVAILABILITY_MSG(macosx,deprecated=10.12,"syscall(2) is unsupported; " | ||
| 741 | "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().") | ||
| 742 | int	 syscall(int, ...); | ||
| 743 | |||
| 744 | extern char *suboptarg;			/* getsubopt(3) external variable */ | ||
| 745 | int	 getsubopt(char **, char * const *, char **); | ||
| 746 | |||
| 747 | /* HFS & HFS Plus semantics system calls go here */ | ||
| 748 | #ifdef __LP64__ | ||
| 749 | int fgetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); | ||
| 750 | int fsetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); | ||
| 751 | int getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist); | ||
| 752 | int setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist); | ||
| 753 | int exchangedata(const char*,const char*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 754 | int getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 755 | |||
| 756 | #else /* __LP64__ */ | ||
| 757 | int	fgetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); | ||
| 758 | int	fsetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); | ||
| 759 | int	getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist); | ||
| 760 | int	setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist); | ||
| 761 | int exchangedata(const char*,const char*,unsigned long) | ||
| 762 | 		__OSX_DEPRECATED(10.0, 10.13, "use renamex_np with the RENAME_SWAP flag") | ||
| 763 | 		__IOS_DEPRECATED(2.0, 11.0, "use renamex_np with the RENAME_SWAP flag") | ||
| 764 | 		__WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 765 | int	getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 766 | |||
| 767 | #endif /* __LP64__ */ | ||
| 768 | |||
| 769 | struct fssearchblock; | ||
| 770 | struct searchstate; | ||
| 771 | |||
| 772 | int	 searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; | ||
| 773 | int	 fsctl(const char *,unsigned long,void*,unsigned int); | ||
| 774 | int	 ffsctl(int,unsigned long,void*,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); | ||
| 775 | |||
| 776 | #define	SYNC_VOLUME_FULLSYNC	0x01	/* Flush data and metadata to platter, not just to disk cache */ | ||
| 777 | #define SYNC_VOLUME_WAIT	0x02	/* Wait for sync to complete */ | ||
| 778 | |||
| 779 | int	fsync_volume_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 780 | int	sync_volume_np(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); | ||
| 781 | |||
| 782 | extern int optreset; | ||
| 783 | |||
| 784 | __END_DECLS | ||
| 785 | #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ | ||
| 786 | |||
| 787 | #endif /* _UNISTD_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/utime.h created+75| ... | @@ -0,0 +1,75 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*- | ||
| 24 | * Copyright (c) 1990, 1993 | ||
| 25 | *	The Regents of the University of California. All rights reserved. | ||
| 26 | * | ||
| 27 | * Redistribution and use in source and binary forms, with or without | ||
| 28 | * modification, are permitted provided that the following conditions | ||
| 29 | * are met: | ||
| 30 | * 1. Redistributions of source code must retain the above copyright | ||
| 31 | * notice, this list of conditions and the following disclaimer. | ||
| 32 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 33 | * notice, this list of conditions and the following disclaimer in the | ||
| 34 | * documentation and/or other materials provided with the distribution. | ||
| 35 | * 3. All advertising materials mentioning features or use of this software | ||
| 36 | * must display the following acknowledgement: | ||
| 37 | *	This product includes software developed by the University of | ||
| 38 | *	California, Berkeley and its contributors. | ||
| 39 | * 4. Neither the name of the University nor the names of its contributors | ||
| 40 | * may be used to endorse or promote products derived from this software | ||
| 41 | * without specific prior written permission. | ||
| 42 | * | ||
| 43 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 44 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 45 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 46 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 47 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 48 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 49 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 50 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 51 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 52 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 53 | * SUCH DAMAGE. | ||
| 54 | * | ||
| 55 | *	@(#)utime.h	8.1 (Berkeley) 6/2/93 | ||
| 56 | */ | ||
| 57 | |||
| 58 | #ifndef	_UTIME_H_ | ||
| 59 | #define	_UTIME_H_ | ||
| 60 | |||
| 61 | #include <_types.h> | ||
| 62 | #include <sys/_types/_time_t.h> | ||
| 63 | |||
| 64 | struct utimbuf { | ||
| 65 | 	time_t actime;		/* Access time */ | ||
| 66 | 	time_t modtime;		/* Modification time */ | ||
| 67 | }; | ||
| 68 | |||
| 69 | #include <sys/cdefs.h> | ||
| 70 | |||
| 71 | __BEGIN_DECLS | ||
| 72 | int utime(const char *, const struct utimbuf *); | ||
| 73 | __END_DECLS | ||
| 74 | |||
| 75 | #endif /* !_UTIME_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/utmpx.h created+176| ... | @@ -0,0 +1,176 @@ | ||
| 1 | /* | ||
| 2 | * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * @APPLE_LICENSE_HEADER_START@ | ||
| 5 | * | ||
| 6 | * This file contains Original Code and/or Modifications of Original Code | ||
| 7 | * as defined in and that are subject to the Apple Public Source License | ||
| 8 | * Version 2.0 (the 'License'). You may not use this file except in | ||
| 9 | * compliance with the License. Please obtain a copy of the License at | ||
| 10 | * http://www.opensource.apple.com/apsl/ and read it before using this | ||
| 11 | * file. | ||
| 12 | * | ||
| 13 | * The Original Code and all software distributed under the License are | ||
| 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
| 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
| 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
| 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
| 18 | * Please see the License for the specific language governing rights and | ||
| 19 | * limitations under the License. | ||
| 20 | * | ||
| 21 | * @APPLE_LICENSE_HEADER_END@ | ||
| 22 | */ | ||
| 23 | /*	$NetBSD: utmpx.h,v 1.11 2003/08/26 16:48:32 wiz Exp $	 */ | ||
| 24 | |||
| 25 | /*- | ||
| 26 | * Copyright (c) 2002 The NetBSD Foundation, Inc. | ||
| 27 | * All rights reserved. | ||
| 28 | * | ||
| 29 | * This code is derived from software contributed to The NetBSD Foundation | ||
| 30 | * by Christos Zoulas. | ||
| 31 | * | ||
| 32 | * Redistribution and use in source and binary forms, with or without | ||
| 33 | * modification, are permitted provided that the following conditions | ||
| 34 | * are met: | ||
| 35 | * 1. Redistributions of source code must retain the above copyright | ||
| 36 | * notice, this list of conditions and the following disclaimer. | ||
| 37 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | * notice, this list of conditions and the following disclaimer in the | ||
| 39 | * documentation and/or other materials provided with the distribution. | ||
| 40 | * 3. All advertising materials mentioning features or use of this software | ||
| 41 | * must display the following acknowledgement: | ||
| 42 | * This product includes software developed by the NetBSD | ||
| 43 | * Foundation, Inc. and its contributors. | ||
| 44 | * 4. Neither the name of The NetBSD Foundation nor the names of its | ||
| 45 | * contributors may be used to endorse or promote products derived | ||
| 46 | * from this software without specific prior written permission. | ||
| 47 | * | ||
| 48 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | ||
| 49 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
| 50 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 51 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | ||
| 52 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
| 53 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
| 54 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
| 55 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
| 56 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 57 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| 58 | * POSSIBILITY OF SUCH DAMAGE. | ||
| 59 | */ | ||
| 60 | #ifndef	_UTMPX_H_ | ||
| 61 | #define	_UTMPX_H_ | ||
| 62 | |||
| 63 | #include <_types.h> | ||
| 64 | #include <sys/time.h> | ||
| 65 | #include <sys/cdefs.h> | ||
| 66 | #include <Availability.h> | ||
| 67 | #include <sys/_types/_pid_t.h> | ||
| 68 | |||
| 69 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 70 | #include <sys/_types/_uid_t.h> | ||
| 71 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 72 | |||
| 73 | #define	_PATH_UTMPX		"/var/run/utmpx" | ||
| 74 | |||
| 75 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 76 | #define	UTMPX_FILE	_PATH_UTMPX | ||
| 77 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 78 | |||
| 79 | #define _UTX_USERSIZE	256	/* matches MAXLOGNAME */ | ||
| 80 | #define _UTX_LINESIZE	32 | ||
| 81 | #define	_UTX_IDSIZE	4 | ||
| 82 | #define _UTX_HOSTSIZE	256 | ||
| 83 | |||
| 84 | #define EMPTY		0 | ||
| 85 | #define RUN_LVL		1 | ||
| 86 | #define BOOT_TIME	2 | ||
| 87 | #define OLD_TIME	3 | ||
| 88 | #define NEW_TIME	4 | ||
| 89 | #define INIT_PROCESS	5 | ||
| 90 | #define LOGIN_PROCESS	6 | ||
| 91 | #define USER_PROCESS	7 | ||
| 92 | #define DEAD_PROCESS	8 | ||
| 93 | |||
| 94 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 95 | #define ACCOUNTING	9 | ||
| 96 | #define SIGNATURE	10 | ||
| 97 | #define SHUTDOWN_TIME	11 | ||
| 98 | |||
| 99 | #define UTMPX_AUTOFILL_MASK			0x8000 | ||
| 100 | #define UTMPX_DEAD_IF_CORRESPONDING_MASK	0x4000 | ||
| 101 | |||
| 102 | /* notify(3) change notification name */ | ||
| 103 | #define UTMPX_CHANGE_NOTIFICATION		"com.apple.system.utmpx" | ||
| 104 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 105 | |||
| 106 | /* | ||
| 107 | * The following structure describes the fields of the utmpx entries | ||
| 108 | * stored in _PATH_UTMPX. This is not the format the | ||
| 109 | * entries are stored in the files, and application should only access | ||
| 110 | * entries using routines described in getutxent(3). | ||
| 111 | */ | ||
| 112 | |||
| 113 | #ifdef _UTMPX_COMPAT | ||
| 114 | #define ut_user ut_name | ||
| 115 | #define ut_xtime ut_tv.tv_sec | ||
| 116 | #endif /* _UTMPX_COMPAT */ | ||
| 117 | |||
| 118 | struct utmpx { | ||
| 119 | 	char ut_user[_UTX_USERSIZE];	/* login name */ | ||
| 120 | 	char ut_id[_UTX_IDSIZE];	/* id */ | ||
| 121 | 	char ut_line[_UTX_LINESIZE];	/* tty name */ | ||
| 122 | 	pid_t ut_pid;			/* process id creating the entry */ | ||
| 123 | 	short ut_type;			/* type of this entry */ | ||
| 124 | 	struct timeval ut_tv;		/* time entry was created */ | ||
| 125 | 	char ut_host[_UTX_HOSTSIZE];	/* host name */ | ||
| 126 | 	__uint32_t ut_pad[16];		/* reserved for future use */ | ||
| 127 | }; | ||
| 128 | |||
| 129 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 130 | struct lastlogx { | ||
| 131 | 	struct timeval ll_tv;		/* time entry was created */ | ||
| 132 | 	char ll_line[_UTX_LINESIZE];	/* tty name */ | ||
| 133 | 	char ll_host[_UTX_HOSTSIZE];	/* host name */ | ||
| 134 | }; | ||
| 135 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 136 | |||
| 137 | __BEGIN_DECLS | ||
| 138 | |||
| 139 | void	endutxent(void); | ||
| 140 | |||
| 141 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 142 | void	endutxent_wtmp(void) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 143 | struct lastlogx * | ||
| 144 | 	getlastlogx(uid_t, struct lastlogx *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 145 | struct lastlogx * | ||
| 146 | 	getlastlogxbyname(const char*, struct lastlogx *)__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 147 | struct utmp;	/* forward reference */ | ||
| 148 | 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; | ||
| 149 | 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; | ||
| 150 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 151 | |||
| 152 | struct utmpx * | ||
| 153 | 	getutxent(void); | ||
| 154 | |||
| 155 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 156 | struct utmpx * | ||
| 157 | 	getutxent_wtmp(void) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 158 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 159 | |||
| 160 | struct utmpx * | ||
| 161 | 	getutxid(const struct utmpx *); | ||
| 162 | struct utmpx * | ||
| 163 | 	getutxline(const struct utmpx *); | ||
| 164 | struct utmpx * | ||
| 165 | 	pututxline(const struct utmpx *); | ||
| 166 | void	setutxent(void); | ||
| 167 | |||
| 168 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) | ||
| 169 | void	setutxent_wtmp(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 170 | int	utmpxname(const char *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 171 | int	wtmpxname(const char *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); | ||
| 172 | #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ | ||
| 173 | |||
| 174 | __END_DECLS | ||
| 175 | |||
| 176 | #endif /* !_UTMPX_H_ */ | ||
lib/libc/include/x86_64-macos-gnu/uuid/uuid.h created+79| ... | @@ -0,0 +1,79 @@ | ||
| 1 | /* | ||
| 2 | * Public include file for the UUID library | ||
| 3 | * | ||
| 4 | * Copyright (C) 1996, 1997, 1998 Theodore Ts'o. | ||
| 5 | * | ||
| 6 | * %Begin-Header% | ||
| 7 | * Redistribution and use in source and binary forms, with or without | ||
| 8 | * modification, are permitted provided that the following conditions | ||
| 9 | * are met: | ||
| 10 | * 1. Redistributions of source code must retain the above copyright | ||
| 11 | * notice, and the entire permission notice in its entirety, | ||
| 12 | * including the disclaimer of warranties. | ||
| 13 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer in the | ||
| 15 | * documentation and/or other materials provided with the distribution. | ||
| 16 | * 3. The name of the author may not be used to endorse or promote | ||
| 17 | * products derived from this software without specific prior | ||
| 18 | * written permission. | ||
| 19 | * | ||
| 20 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
| 21 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
| 22 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF | ||
| 23 | * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE | ||
| 24 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
| 25 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | ||
| 26 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | ||
| 27 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
| 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 29 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||
| 30 | * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH | ||
| 31 | * DAMAGE. | ||
| 32 | * %End-Header% | ||
| 33 | */ | ||
| 34 | |||
| 35 | #ifndef _UUID_UUID_H | ||
| 36 | #define _UUID_UUID_H | ||
| 37 | |||
| 38 | #include <sys/_types.h> | ||
| 39 | #include <sys/_types/_uuid_t.h> | ||
| 40 | |||
| 41 | #ifndef _UUID_STRING_T | ||
| 42 | #define _UUID_STRING_T | ||
| 43 | typedef __darwin_uuid_string_t uuid_string_t; | ||
| 44 | #endif /* _UUID_STRING_T */ | ||
| 45 | |||
| 46 | #define UUID_DEFINE(name, u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) \ | ||
| 47 | 	static const uuid_t name __attribute__ ((unused)) = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} | ||
| 48 | |||
| 49 | UUID_DEFINE(UUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); | ||
| 50 | |||
| 51 | #ifdef __cplusplus | ||
| 52 | extern "C" { | ||
| 53 | #endif | ||
| 54 | |||
| 55 | void uuid_clear(uuid_t uu); | ||
| 56 | |||
| 57 | int uuid_compare(const uuid_t uu1, const uuid_t uu2); | ||
| 58 | |||
| 59 | void uuid_copy(uuid_t dst, const uuid_t src); | ||
| 60 | |||
| 61 | void uuid_generate(uuid_t out); | ||
| 62 | void uuid_generate_random(uuid_t out); | ||
| 63 | void uuid_generate_time(uuid_t out); | ||
| 64 | |||
| 65 | void uuid_generate_early_random(uuid_t out); | ||
| 66 | |||
| 67 | int uuid_is_null(const uuid_t uu); | ||
| 68 | |||
| 69 | int uuid_parse(const uuid_string_t in, uuid_t uu); | ||
| 70 | |||
| 71 | void uuid_unparse(const uuid_t uu, uuid_string_t out); | ||
| 72 | void uuid_unparse_lower(const uuid_t uu, uuid_string_t out); | ||
| 73 | void uuid_unparse_upper(const uuid_t uu, uuid_string_t out); | ||
| 74 | |||
| 75 | #ifdef __cplusplus | ||
| 76 | } | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #endif /* _UUID_UUID_H */ | ||
lib/libc/include/x86_64-macos-gnu/wordexp.h created+85| ... | @@ -0,0 +1,85 @@ | ||
| 1 | /* | ||
| 2 | * Copyright 1994, University Corporation for Atmospheric Research | ||
| 3 | * See ../COPYRIGHT file for copying and redistribution conditions. | ||
| 4 | */ | ||
| 5 | /* | ||
| 6 | * Reproduction of ../COPYRIGHT file: | ||
| 7 | * | ||
| 8 | ********************************************************************* | ||
| 9 | |||
| 10 | Copyright 1995-2002 University Corporation for Atmospheric Research/Unidata | ||
| 11 | |||
| 12 | Portions of this software were developed by the Unidata Program at the | ||
| 13 | University Corporation for Atmospheric Research. | ||
| 14 | |||
| 15 | Access and use of this software shall impose the following obligations | ||
| 16 | and understandings on the user. The user is granted the right, without | ||
| 17 | any fee or cost, to use, copy, modify, alter, enhance and distribute | ||
| 18 | this software, and any derivative works thereof, and its supporting | ||
| 19 | documentation for any purpose whatsoever, provided that this entire | ||
| 20 | notice appears in all copies of the software, derivative works and | ||
| 21 | supporting documentation. Further, UCAR requests that the user credit | ||
| 22 | UCAR/Unidata in any publications that result from the use of this | ||
| 23 | software or in any product that includes this software. The names UCAR | ||
| 24 | and/or Unidata, however, may not be used in any advertising or publicity | ||
| 25 | to endorse or promote any products or commercial entity unless specific | ||
| 26 | written permission is obtained from UCAR/Unidata. The user also | ||
| 27 | understands that UCAR/Unidata is not obligated to provide the user with | ||
| 28 | any support, consulting, training or assistance of any kind with regard | ||
| 29 | to the use, operation and performance of this software nor to provide | ||
| 30 | the user with any updates, revisions, new versions or "bug fixes." | ||
| 31 | |||
| 32 | THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR | ||
| 33 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
| 34 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
| 35 | DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, | ||
| 36 | INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING | ||
| 37 | FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, | ||
| 38 | NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION | ||
| 39 | WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. | ||
| 40 | |||
| 41 | ********************************************************************* | ||
| 42 | * | ||
| 43 | */ | ||
| 44 | |||
| 45 | /* $Id: wordexp.h,v 1.5 1994/05/12 20:46:40 davis Exp $ */ | ||
| 46 | #ifndef _WORDEXP_H | ||
| 47 | #define _WORDEXP_H | ||
| 48 | |||
| 49 | #include <sys/cdefs.h> | ||
| 50 | #include <_types.h> | ||
| 51 | #include <sys/_types/_size_t.h> | ||
| 52 | #include <Availability.h> | ||
| 53 | |||
| 54 | typedef struct { | ||
| 55 | 	size_t we_wordc; | ||
| 56 | 	char **we_wordv; | ||
| 57 | 	size_t we_offs; | ||
| 58 | } wordexp_t; | ||
| 59 | |||
| 60 | /* wordexp() flags Argument */ | ||
| 61 | #define WRDE_APPEND	0x01 | ||
| 62 | #define WRDE_DOOFFS	0x02 | ||
| 63 | #define WRDE_NOCMD	0x04 | ||
| 64 | #define WRDE_REUSE	0x08 | ||
| 65 | #define WRDE_SHOWERR	0x10 | ||
| 66 | #define WRDE_UNDEF	0x20 | ||
| 67 | |||
| 68 | /* | ||
| 69 | * wordexp() Return Values | ||
| 70 | */ | ||
| 71 | /* required */ | ||
| 72 | #define WRDE_BADCHAR	1 | ||
| 73 | #define WRDE_BADVAL	2 | ||
| 74 | #define WRDE_CMDSUB	3 | ||
| 75 | #define WRDE_NOSPACE	4 | ||
| 76 | #define WRDE_NOSYS	5 | ||
| 77 | #define WRDE_SYNTAX	6 | ||
| 78 | |||
| 79 | |||
| 80 | __BEGIN_DECLS | ||
| 81 | int wordexp(const char * __restrict, wordexp_t * __restrict, int) __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA); | ||
| 82 | void wordfree(wordexp_t *) __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA); | ||
| 83 | __END_DECLS | ||
| 84 | |||
| 85 | #endif /* _WORDEXP_H */ | ||