Skip to content

Commit 7e0a02e

Browse files
committed
macos+libc: add zlib.h,sys/paths.h,netinet/{ip.h,udp.h}
1 parent 629f0d2 commit 7e0a02e

File tree

6 files changed

+2920
-0
lines changed

6 files changed

+2920
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
* Copyright (c) 2000-2018 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+
* @(#)in_systm.h 8.1 (Berkeley) 6/10/93
61+
* $FreeBSD: src/sys/netinet/in_systm.h,v 1.9 1999/12/29 04:41:00 peter Exp $
62+
*/
63+
64+
#ifndef _NETINET_IN_SYSTM_H_
65+
#define _NETINET_IN_SYSTM_H_
66+
67+
#include <sys/appleapiopts.h>
68+
69+
#include <sys/_types.h>
70+
71+
/*
72+
* Miscellaneous internetwork
73+
* definitions for kernel.
74+
*/
75+
76+
/*
77+
* Network types.
78+
*
79+
* Internally the system keeps counters in the headers with the bytes
80+
* swapped so that VAX instructions will work on them. It reverses
81+
* the bytes before transmission at each protocol level. The n_ types
82+
* represent the types with the bytes in ``high-ender'' order.
83+
*/
84+
typedef __uint16_t n_short; /* short as received from the net */
85+
typedef __uint32_t n_long; /* long as received from the net */
86+
87+
typedef __uint32_t n_time; /* ms since 00:00 GMT, byte rev */
88+
89+
#endif /* _NETINET_IN_SYSTM_H_ */
Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
/*
2+
* Copyright (c) 2000-2016 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+
* @(#)ip.h 8.2 (Berkeley) 6/1/94
61+
* $FreeBSD: src/sys/netinet/ip.h,v 1.17 1999/12/22 19:13:20 shin Exp $
62+
*/
63+
64+
#ifndef _NETINET_IP_H_
65+
#define _NETINET_IP_H_
66+
#include <sys/appleapiopts.h>
67+
#include <sys/types.h> /* XXX temporary hack to get u_ types */
68+
69+
#include <netinet/in.h>
70+
#include <netinet/in_systm.h>
71+
72+
/*
73+
* Definitions for internet protocol version 4.
74+
* Per RFC 791, September 1981.
75+
*/
76+
#define IPVERSION 4
77+
78+
/*
79+
* Structure of an internet header, naked of options.
80+
*/
81+
struct ip {
82+
#ifdef _IP_VHL
83+
u_char ip_vhl; /* version << 4 | header length >> 2 */
84+
#else
85+
#if BYTE_ORDER == LITTLE_ENDIAN
86+
u_int ip_hl:4, /* header length */
87+
ip_v:4; /* version */
88+
#endif
89+
#if BYTE_ORDER == BIG_ENDIAN
90+
u_int ip_v:4, /* version */
91+
ip_hl:4; /* header length */
92+
#endif
93+
#endif /* not _IP_VHL */
94+
u_char ip_tos; /* type of service */
95+
u_short ip_len; /* total length */
96+
u_short ip_id; /* identification */
97+
u_short ip_off; /* fragment offset field */
98+
#define IP_RF 0x8000 /* reserved fragment flag */
99+
#define IP_DF 0x4000 /* dont fragment flag */
100+
#define IP_MF 0x2000 /* more fragments flag */
101+
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
102+
u_char ip_ttl; /* time to live */
103+
u_char ip_p; /* protocol */
104+
u_short ip_sum; /* checksum */
105+
struct in_addr ip_src, ip_dst; /* source and dest address */
106+
};
107+
108+
#ifdef _IP_VHL
109+
#define IP_MAKE_VHL(v, hl) ((uint8_t)((v) << 4 | (hl)))
110+
#define IP_VHL_HL(vhl) ((vhl) & 0x0f)
111+
#define IP_VHL_V(vhl) ((vhl) >> 4)
112+
#define IP_VHL_BORING 0x45
113+
#endif
114+
115+
#define IP_MAXPACKET 65535 /* maximum packet size */
116+
117+
/*
118+
* Definitions for IP type of service (ip_tos)
119+
*/
120+
#define IPTOS_LOWDELAY 0x10
121+
#define IPTOS_THROUGHPUT 0x08
122+
#define IPTOS_RELIABILITY 0x04
123+
#define IPTOS_MINCOST 0x02
124+
#if 1
125+
/* ECN RFC3168 obsoletes RFC2481, and these will be deprecated soon. */
126+
#define IPTOS_CE 0x01
127+
#define IPTOS_ECT 0x02
128+
#endif
129+
130+
#define IPTOS_DSCP_SHIFT 2
131+
132+
/*
133+
* ECN (Explicit Congestion Notification) codepoints in RFC3168
134+
* mapped to the lower 2 bits of the TOS field.
135+
*/
136+
#define IPTOS_ECN_NOTECT 0x00 /* not-ECT */
137+
#define IPTOS_ECN_ECT1 0x01 /* ECN-capable transport (1) */
138+
#define IPTOS_ECN_ECT0 0x02 /* ECN-capable transport (0) */
139+
#define IPTOS_ECN_CE 0x03 /* congestion experienced */
140+
#define IPTOS_ECN_MASK 0x03 /* ECN field mask */
141+
142+
/*
143+
* Definitions for IP precedence (also in ip_tos) (hopefully unused)
144+
*/
145+
#define IPTOS_PREC_NETCONTROL 0xe0
146+
#define IPTOS_PREC_INTERNETCONTROL 0xc0
147+
#define IPTOS_PREC_CRITIC_ECP 0xa0
148+
#define IPTOS_PREC_FLASHOVERRIDE 0x80
149+
#define IPTOS_PREC_FLASH 0x60
150+
#define IPTOS_PREC_IMMEDIATE 0x40
151+
#define IPTOS_PREC_PRIORITY 0x20
152+
#define IPTOS_PREC_ROUTINE 0x00
153+
154+
/*
155+
* Definitions for options.
156+
*/
157+
#define IPOPT_COPIED(o) ((o)&0x80)
158+
#define IPOPT_CLASS(o) ((o)&0x60)
159+
#define IPOPT_NUMBER(o) ((o)&0x1f)
160+
161+
#define IPOPT_CONTROL 0x00
162+
#define IPOPT_RESERVED1 0x20
163+
#define IPOPT_DEBMEAS 0x40
164+
#define IPOPT_RESERVED2 0x60
165+
166+
#define IPOPT_EOL 0 /* end of option list */
167+
#define IPOPT_NOP 1 /* no operation */
168+
169+
#define IPOPT_RR 7 /* record packet route */
170+
#define IPOPT_TS 68 /* timestamp */
171+
#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */
172+
#define IPOPT_LSRR 131 /* loose source route */
173+
#define IPOPT_SATID 136 /* satnet id */
174+
#define IPOPT_SSRR 137 /* strict source route */
175+
#define IPOPT_RA 148 /* router alert */
176+
177+
/*
178+
* Offsets to fields in options other than EOL and NOP.
179+
*/
180+
#define IPOPT_OPTVAL 0 /* option ID */
181+
#define IPOPT_OLEN 1 /* option length */
182+
#define IPOPT_OFFSET 2 /* offset within option */
183+
#define IPOPT_MINOFF 4 /* min value of above */
184+
185+
/*
186+
* Time stamp option structure.
187+
*/
188+
struct ip_timestamp {
189+
u_char ipt_code; /* IPOPT_TS */
190+
u_char ipt_len; /* size of structure (variable) */
191+
u_char ipt_ptr; /* index of current entry */
192+
#if BYTE_ORDER == LITTLE_ENDIAN
193+
u_int ipt_flg:4, /* flags, see below */
194+
ipt_oflw:4; /* overflow counter */
195+
#endif
196+
#if BYTE_ORDER == BIG_ENDIAN
197+
u_int ipt_oflw:4, /* overflow counter */
198+
ipt_flg:4; /* flags, see below */
199+
#endif
200+
union ipt_timestamp {
201+
n_long ipt_time[1];
202+
struct ipt_ta {
203+
struct in_addr ipt_addr;
204+
n_long ipt_time;
205+
} ipt_ta[1];
206+
} ipt_timestamp;
207+
};
208+
209+
/* flag bits for ipt_flg */
210+
#define IPOPT_TS_TSONLY 0 /* timestamps only */
211+
#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */
212+
#define IPOPT_TS_PRESPEC 3 /* specified modules only */
213+
214+
/* bits for security (not byte swapped) */
215+
#define IPOPT_SECUR_UNCLASS 0x0000
216+
#define IPOPT_SECUR_CONFID 0xf135
217+
#define IPOPT_SECUR_EFTO 0x789a
218+
#define IPOPT_SECUR_MMMM 0xbc4d
219+
#define IPOPT_SECUR_RESTR 0xaf13
220+
#define IPOPT_SECUR_SECRET 0xd788
221+
#define IPOPT_SECUR_TOPSECRET 0x6bc5
222+
223+
/*
224+
* Internet implementation parameters.
225+
*/
226+
#define MAXTTL 255 /* maximum time to live (seconds) */
227+
#define IPDEFTTL 64 /* default ttl, from RFC 1340 */
228+
#define IPFRAGTTL 30 /* time to live for frags (seconds) */
229+
#define IPTTLDEC 1 /* subtracted when forwarding */
230+
231+
#define IP_MSS 576 /* default maximum segment size */
232+
233+
#endif

0 commit comments

Comments
 (0)