1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21
22#
23# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
24# Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
25# Copyright 2018 Nexenta Systems, Inc.
26#
27
28#
29# MAPFILE HEADER START
30#
31# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
32# Object versioning must comply with the rules detailed in
33#
34#	usr/src/lib/README.mapfiles
35#
36# You should not be making modifications here until you've read the most current
37# copy of that file. If you need help, contact a gatekeeper for guidance.
38#
39# MAPFILE HEADER END
40#
41
42$mapfile_version 2
43
44SYMBOL_VERSION ILLUMOS_0.3 {	# AF_LINK workaround
45    global:
46	__getifaddrs;
47} ILLUMOS_0.2;
48
49SYMBOL_VERSION ILLUMOS_0.2 {	# reentrant ethers(3SOCKET)
50    global:
51	ether_aton_r;
52	ether_ntoa_r;
53} ILLUMOS_0.1;
54
55SYMBOL_VERSION ILLUMOS_0.1 {	# illumos additions
56    global:
57	accept4;
58} SUNW_1.7;
59
60SYMBOL_VERSION SUNW_1.7 {
61    global:
62	freeifaddrs;
63	getifaddrs;
64} SUNW_1.6;
65
66SYMBOL_VERSION SUNW_1.6 {
67    global:
68	getipv4sourcefilter;
69	getsourcefilter;
70	setipv4sourcefilter;
71	setsourcefilter;
72} SUNW_1.5;
73
74SYMBOL_VERSION SUNW_1.5 {
75    global:
76	inet6_opt_append;
77	inet6_opt_find;
78	inet6_opt_finish;
79	inet6_opt_get_val;
80	inet6_opt_init;
81	inet6_opt_next;
82	inet6_opt_set_val;
83	inet6_rth_add;
84	inet6_rth_getaddr;
85	inet6_rth_init;
86	inet6_rth_reverse;
87	inet6_rth_segments;
88	inet6_rth_space;
89	sockatmark;
90	__xnet_getaddrinfo;
91} SUNW_1.4;
92
93SYMBOL_VERSION SUNW_1.4 {
94    global:
95	freeaddrinfo;
96	gai_strerror;
97	getaddrinfo;
98	getnameinfo;
99	if_freenameindex;
100	if_indextoname;
101	if_nameindex;
102	if_nametoindex;
103	in6addr_any		{
104				  ASSERT = {
105					  TYPE = OBJECT;
106					  SIZE = 16;
107					};
108				};
109	in6addr_loopback	{
110				  ASSERT = {
111					  TYPE = OBJECT;
112					  SIZE = 16;
113					};
114				};
115	rcmd_af;
116	rexec_af;
117	rresvport_af;
118} SUNW_1.3;
119
120# Due to mistakes made early in the history of this library, there are
121# no SUNW_1.2 or SUNW_1.3 symbols, but they are now kept as placeholders.
122# Don't add any symbols to these versions.
123
124SYMBOL_VERSION SUNW_1.3 {
125    global:
126	SUNW_1.3;
127} SUNW_1.2;
128
129SYMBOL_VERSION SUNW_1.2 {
130    global:
131	SUNW_1.2;
132} SUNW_1.1;
133
134SYMBOL_VERSION SUNW_1.1 {
135    global:
136	__xnet_bind;
137	__xnet_connect;
138	__xnet_getsockopt;
139	__xnet_listen;
140	__xnet_recvmsg;
141	__xnet_sendmsg;
142	__xnet_sendto;
143	__xnet_socket;
144	__xnet_socketpair;
145} SUNW_0.7;
146
147SYMBOL_VERSION SUNW_0.7 {
148    global:
149	endnetent;
150	endprotoent;
151	endservent;
152	ether_aton;
153	ether_hostton;
154	ether_line;
155	ether_ntoa;
156	ether_ntohost;
157	getnetbyaddr;
158	getnetbyaddr_r;
159	getnetbyname;
160	getnetbyname_r;
161	getnetent;
162	getnetent_r;
163	getprotobyname_r;
164	getprotobynumber_r;
165	getprotoent_r;
166	getservbyname_r;
167	getservbyport_r;
168	getservent;
169	getservent_r;
170	htonl	{ TYPE = FUNCTION; FILTER = libc.so.1; };
171	htons	{ TYPE = FUNCTION; FILTER = libc.so.1; };
172	ntohl	{ TYPE = FUNCTION; FILTER = libc.so.1; };
173	ntohs	{ TYPE = FUNCTION; FILTER = libc.so.1; };
174	rcmd;
175	rexec;
176	rresvport;
177	ruserok;
178	setnetent;
179	setprotoent;
180	setservent;
181	socketpair;
182
183	# For ABI reasons, the following symbols are in SISCD_2.3 on 32-bit
184	# sparc, which is inherited by SUNW_0.7. On all other platforms,
185	# they are simply in SUNW_0.7
186$if _sparc && _ELF32
187} SISCD_2.3;
188
189SYMBOL_VERSION SISCD_2.3 {
190    global:
191$endif
192	accept;
193	bind;
194	connect;
195	getpeername;
196	getprotobyname;
197	getprotobynumber;
198	getprotoent;
199	getservbyname;
200	getservbyport;
201	getsockname;
202	getsockopt;
203	inet_lnaof	{ TYPE = FUNCTION; FILTER = libc.so.1; };
204	inet_makeaddr	{ TYPE = FUNCTION; FILTER = libc.so.1; };
205	inet_network	{ TYPE = FUNCTION; FILTER = libc.so.1; };
206	listen;
207	recv;
208	recvfrom;
209	recvmsg;
210	send;
211	sendmsg;
212	sendto;
213	setsockopt;
214	shutdown;
215	socket;
216};
217
218# There really should be only one SUNWprivate version.
219# Don't add any more.  Add new private symbols to SUNWprivate_1.3
220
221SYMBOL_VERSION SUNWprivate_1.3 {
222    global:
223	_accept4;
224	_link_aton;
225	_link_ntoa;
226	_nss_initf_ethers;
227	_nss_initf_net;
228	_nss_initf_netmasks;
229	_nss_initf_proto;
230	_nss_initf_services;
231	getallifaddrs;
232	getallifs;
233	str2ether;
234	str2addr;
235	str2netent;
236	str2protoent;
237} SUNWprivate_1.2;
238
239SYMBOL_VERSION SUNWprivate_1.2 {
240    global:
241	getnetmaskbyaddr;
242	getnetmaskbynet;
243} SUNWprivate_1.1;
244
245SYMBOL_VERSION SUNWprivate_1.1 {
246    global:
247	_accept;
248	_bind;
249	bindresvport;
250	bootparams_getbyname;
251	_connect;
252	_getpeername;
253	_getsockname;
254	_getsockopt;
255	_listen;
256	_recv;
257	_recvfrom;
258	_recvmsg;
259	rresvport_addr;
260	_ruserpass;
261	_send;
262	_sendmsg;
263	_sendto;
264	_setsockopt;
265	_shutdown;
266	_socket;
267	_socket_bsd;
268	_socketpair;
269	_socketpair_bsd;
270    local:
271	*;
272};
273