#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright 2018 Nexenta Systems, Inc.
#

#
# MAPFILE HEADER START
#
# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
# Object versioning must comply with the rules detailed in
#
#	usr/src/lib/README.mapfiles
#
# You should not be making modifications here until you've read the most current
# copy of that file. If you need help, contact a gatekeeper for guidance.
#
# MAPFILE HEADER END
#

$mapfile_version 2

SYMBOL_VERSION ILLUMOS_0.1 {    # illumos additions
    global:
	svc_tp_create_addr;
} SUNW_1.10;

SYMBOL_VERSION SUNW_1.10 {	# SunOS 5.11 (Solaris 11)
    global:
	SUNW_1.10;
} SUNW_1.9.1;

SYMBOL_VERSION SUNW_1.9.1 {	# SunOS 5.10 (Solaris 10 update 5)
    global:
	inet_aton		{ TYPE = FUNCTION; FILTER = libc.so.1 };
} SUNW_1.9;

SYMBOL_VERSION SUNW_1.9 {	# SunOS 5.10 (Solaris 10)
    global:
	freeipsecalgent;
	getipsecalgbyname;
	getipsecalgbynum;
	getipsecprotobyname;
	getipsecprotobynum;
	svc_fd_negotiate_ucred;
	svc_getcallerucred;
} SUNW_1.8;

SYMBOL_VERSION SUNW_1.8 {	# SunOS 5.9 (Solaris 9)
    global:
	clnt_send;
	svc_add_input;
	svc_remove_input;
} SUNW_1.7;

SYMBOL_VERSION SUNW_1.7 {	# SunOS 5.8 (Solaris 8)
    global:
	freehostent;
	getipnodebyaddr;
	getipnodebyname;
	inet_ntop		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	inet_pton		{ TYPE = FUNCTION; FILTER = libc.so.1 };
} SUNW_1.6;

SYMBOL_VERSION SUNW_1.6 {	# SunOS 5.7 (Solaris 7)
    global:
	_xti_rcvreldata;
	_xti_rcvv;
	_xti_rcvvudata;
	_xti_sndreldata;
	_xti_sndv;
	_xti_sndvudata;
	_xti_sysconf;
	_xti_xns5_accept;
	_xti_xns5_snd;
} SUNW_1.5;

# The empty versions SUNW_1.2 through SUNW_1.5 must be preserved because
# applications built on Solaris 2.6 Beta (when they did contain symbols)
# may depend on them.  All symbol content for SunOS 5.6 is now in SUNW_1.1

SYMBOL_VERSION SUNW_1.5 {
    global:
	SUNW_1.5;
} SUNW_1.4;

SYMBOL_VERSION SUNW_1.4 {
    global:
	SUNW_1.4;
} SUNW_1.3;

SYMBOL_VERSION SUNW_1.3 {
    global:
	SUNW_1.3;
} SUNW_1.2;

SYMBOL_VERSION SUNW_1.2 {
    global:
	SUNW_1.2;
} SUNW_1.1;

SYMBOL_VERSION SUNW_1.1 {		# SunOS 5.6 (Solaris 2.6)
    global:
	clnt_create_vers_timed;
	clnt_door_create;
$if _ELF32
	_new_svc_fdset;
$endif
	rpc_gss_getcred;
	rpc_gss_get_error;
	rpc_gss_get_mechanisms;
	rpc_gss_get_mech_info;
	rpc_gss_get_principal_name;
	rpc_gss_get_versions;
	rpc_gss_is_installed;
	rpc_gss_max_data_length;
	rpc_gss_mech_to_oid;
	rpc_gss_qop_to_num;
	rpc_gss_seccreate;
	rpc_gss_set_callback;
	rpc_gss_set_defaults;
	rpc_gss_set_svc_name;
	rpc_gss_svc_max_data_length;
	svc_door_create;
	svc_max_pollfd;
	svc_pollfd;
	_xti_accept;
	_xti_alloc;
	_xti_bind;
	_xti_close;
	_xti_connect;
	_xti_error;
	_xti_free;
	_xti_getinfo;
	_xti_getprotaddr;
	_xti_getstate;
	_xti_listen;
	_xti_look;
	_xti_open;
	_xti_optmgmt;
	_xti_rcv;
	_xti_rcvconnect;
	_xti_rcvdis;
	_xti_rcvrel;
	_xti_rcvudata;
	_xti_rcvuderr;
	_xti_snd;
	_xti_snddis;
	_xti_sndrel;
	_xti_sndudata;
	_xti_strerror;
	_xti_sync;
	_xti_unbind;
} SUNW_0.9;

SYMBOL_VERSION SUNW_0.9 {	# SunOS 5.5 (Solaris 2.5)
    global:
	clnt_create_timed;
	clnt_tp_create_timed;
	getrpcport;
} SUNW_0.8;

SYMBOL_VERSION SUNW_0.8 {	# SunOS 5.4 (Solaris 2.4)
    global:
	rpc_control;
	svc_done;
} SUNW_0.7;

# SUNW_0.7 is complicated by ABI issues:
#
# - On 32-bit sparc, SUNW_0.7 contains __rpc_createerr and svc_exit, and
#   inherits everyting else from SISCD_2.3, which in turn inherits from
#   SYSVABI_1.3.
# - On 32-bit X86, there is no SISCD_2.3, the symbols it contained are
#   instead found in SUNW_0.7, which directly inherits SYSVABI_1.3.
# - The other platforms do not have SISCD_2.3, or SYSVABI_1.3, and everything
#   is directly found in in SUNW_0.7, which does not inherit anything.
#
SYMBOL_VERSION SUNW_0.7 {	# SunOS 5.3 (Solaris 2.3)
    global:
	authdes_create;
	authdes_lock;
	auth_destroy;
	callrpc;
	clnt_broadcast;
	clnt_call;
	clnt_control;
	clnt_create_vers;
	clnt_destroy;
	clnt_freeres;
	clnt_geterr;
	clntraw_create;
	clnttcp_create;
	clntudp_bufcreate;
	clntudp_create;
	dbmclose;
	dbminit;
	delete;
	des_setparity;
	dial;
	doconfig;
	endhostent;
	endrpcent;
	fetch;
	firstkey;
	gethostbyaddr_r;
	gethostbyname_r;
	gethostent;
	gethostent_r;
	get_myaddress;
	getrpcbyname;
	getrpcbyname_r;
	getrpcbynumber;
	getrpcbynumber_r;
	getrpcent;
	getrpcent_r;
	h_errno			{ FLAGS = NODIRECT };
	inet_ntoa_r		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	key_secretkey_is_set;
	maxbno;
	nc_sperror;
	netdir_perror;
	netdir_sperror;
	nextkey;
	nis_clone_object;
	nis_destroy_object;
	nis_dir_cmp;
	nis_domain_of;
	nis_leaf_of;
	nis_leaf_of_r;
	nis_local_directory;
	nis_local_group;
	nis_local_host;
	nis_name_of;
	pmap_getmaps;
	pmap_getport;
	pmap_rmtcall;
	pmap_set;
	pmap_unset;
	registerrpc;
	__rpc_createerr;
	sethostent;
	setrpcent;
	store;
	svc_auth_reg;
	svc_control;
	svc_destroy;
	svc_dg_enablecache;
	svcfd_create;
	svc_exit;
	svc_freeargs;
	svc_getargs;
	svc_getreq;
	svc_getreq_common;
	svc_getreq_poll;
	svc_getrpccaller;
	svcraw_create;
	svc_register;
	svctcp_create;
	svcudp_bufcreate;
	svcudp_create;
	svc_unregister;
	__t_errno;
	t_getname;
	t_nerr;
	t_strerror;
	undial;
	xdr_destroy;
	xdr_getpos;
	xdr_hyper;
	xdr_inline;
	xdr_longlong_t;
	xdr_quadruple;
	xdrrec_endofrecord;
	xdrrec_readbytes;
	xdr_setpos;
	xdr_sizeof;
	xdr_u_hyper;
	xdr_u_int;
	xdr_u_longlong_t;
	yp_all;
	yp_bind;
	yperr_string;
	yp_first;
	yp_get_default_domain;
	yp_master;
	yp_match;
	yp_next;
	yp_order;
	ypprot_err;
	yp_unbind;
	yp_update;
$if _sparc && _ELF32
} SISCD_2.3;

SYMBOL_VERSION SISCD_2.3 {
    global:
$endif
	gethostbyaddr;
	gethostbyname;
	inet_addr		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	inet_netof		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	inet_ntoa		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	_null_auth;
	rpc_broadcast_exp;
	svc_fdset;
$if _ELF32
} SYSVABI_1.3;

SYMBOL_VERSION SYSVABI_1.3 {
    global:
$endif
	authdes_getucred;
	authdes_seccreate;
	authnone_create;
	authsys_create;
	authsys_create_default;
	clnt_create;
	clnt_dg_create;
	clnt_pcreateerror;
	clnt_perrno;
	clnt_perror;
	clnt_raw_create;
	clnt_spcreateerror;
	clnt_sperrno;
	clnt_sperror;
	clnt_tli_create;
	clnt_tp_create;
	clnt_vc_create;
	endnetconfig;
	endnetpath;
	freenetconfigent;
	getnetconfig;
	getnetconfigent;
	getnetname;
	getnetpath;
	getpublickey;
	getsecretkey;
	host2netname;
	key_decryptsession;
	key_encryptsession;
	key_gendes;
	key_setsecret;
	nc_perror;
	_nderror;
	netdir_free;
	netdir_getbyaddr;
	netdir_getbyname;
	netdir_options;
	netname2host;
	netname2user;
	rpcb_getaddr;
	rpcb_getmaps;
	rpcb_gettime;
	rpcb_rmtcall;
	rpc_broadcast;
	rpcb_set;
	rpcb_unset;
	rpc_call;
	rpc_createerr;
	rpc_reg;
	setnetconfig;
	setnetpath;
	svc_create;
	svc_dg_create;
	svcerr_auth;
	svcerr_decode;
	svcerr_noproc;
	svcerr_noprog;
	svcerr_progvers;
	svcerr_systemerr;
	svcerr_weakauth;
	svc_fd_create;
	svc_getreqset;
	svc_raw_create;
	svc_reg;
	svc_run;
	svc_sendreply;
	svc_tli_create;
	svc_tp_create;
	svc_unreg;
	svc_vc_create;
	t_accept;
	taddr2uaddr;
	t_alloc;
	t_bind;
	t_close;
	t_connect;
	t_errno;
	t_error;
	t_free;
	t_getinfo;
	t_getstate;
	t_listen;
	t_look;
	t_open;
	t_optmgmt;
	t_rcv;
	t_rcvconnect;
	t_rcvdis;
	t_rcvrel;
	t_rcvudata;
	t_rcvuderr;
	t_snd;
	t_snddis;
	t_sndrel;
	t_sndudata;
	t_sync;
	t_unbind;
	uaddr2taddr;
	user2netname;
	xdr_accepted_reply;
	xdr_array;
	xdr_authsys_parms;
	xdr_bool;
	xdr_bytes;
	xdr_callhdr;
	xdr_callmsg;
	xdr_char;
	xdr_double;
	xdr_enum;
	xdr_float;
	xdr_free;
	xdr_int;
	xdr_long;
	xdrmem_create;
	xdr_opaque;
	xdr_opaque_auth;
	xdr_pointer;
	xdrrec_create;
	xdrrec_eof;
	xdrrec_skiprecord;
	xdr_reference;
	xdr_rejected_reply;
	xdr_replymsg;
	xdr_short;
	xdrstdio_create;
	xdr_string;
	xdr_u_char;
	xdr_u_long;
	xdr_union;
	xdr_u_short;
	xdr_vector;
	xdr_void;
	xdr_wrapstring;
	xprt_register;
	xprt_unregister;
};


# There really should be only one SUNWprivate version.
# Don't add any more.  Add new private symbols to SUNWprivate_1.5

SYMBOL_VERSION SUNWprivate_1.5 {
    global:
	clnt_create_service_timed;
	inet_matchaddr;
} SUNWprivate_1.4;

SYMBOL_VERSION SUNWprivate_1.4 {
    global:
	_build_internal_algs;
	_check_daemon_lock;
	_clean_trash;
	_create_daemon_lock;
	_duplicate_alg;
	_enter_daemon_lock;
	_real_getipsecalgs;
	_real_getipsecprotos;
	str2hostent6;
	_str_to_ipsec_exec_mode;
	__yp_all_cflookup;
} SUNWprivate_1.3;

SYMBOL_VERSION SUNWprivate_1.3 {
    global:
	key_call_ruid;
	key_removesecret_g_ruid;
	key_secretkey_is_set_g_ruid;
	key_setnet_g_ruid;
	key_setnet_ruid;
} SUNWprivate_1.2;

SYMBOL_VERSION SUNWprivate_1.2 {
    global:
	_doexeclist;
	_dup_execstr;
	_endauthattr;
	_endauuser;
	_endexecattr;
	__endhostent6;
	_endprofattr;
	_enduserattr;
	_escape;
	_exec_cleanup;
	_exec_wild_id;
	_fgetuserattr;
	_free_execstr;
	_getauthattr;
	_getauthnam;
	_getauuserent;
	_getauusernam;
	_getexecattr;
	_getexecprof;
	__gethostent6;
	_getprofattr;
	_getprofnam;
	_getuserattr;
	_getusernam;
	__nis_netconfig2ep;
	__nis_netconfig_matches_ep;
	_readbufline;
	__rpc_bindresvport_ipv6;
	_setauthattr;
	_setauuser;
	_setexecattr;
	__sethostent6;
	_setprofattr;
	_setuserattr;
	_strdup_null;
	_strpbrk_escape;
	_strtok_escape;
	_switch_getipnodebyaddr_r;
	_switch_getipnodebyname_r;
	_uncached_getipnodebyaddr;
	_uncached_getipnodebyname;
	_unescape;
	__yp_first_cflookup;
	__yp_match_cflookup;
	__yp_match_rsvdport_cflookup;
	__yp_next_cflookup;
} SUNWprivate_1.1;

SYMBOL_VERSION SUNWprivate_1.1 {
    global:
	__authenticate;
	bitno;
	blkno;
	calchash;
	cbc_crypt;
	__cbc_triple_crypt;
	check_version;
	__clnt_create_loopback;
	dbrdonly;
	__des_crypt;
	des_setparity_g;
	dirbuf;
	dirf;
	ecb_crypt;
	__empty_yp_cache;
	firsthash;
	__gen_common_dhkeys_g;
	__gen_dhkeys;
	__gen_dhkeys_g;
	getdomainname;
	gethostname		{ TYPE = FUNCTION; FILTER = libc.so.1 };
	_get_hostserv_inetnetdir_byaddr;
	_get_hostserv_inetnetdir_byname;
	__getnetnamebyuid;
	__getpublickey_cached;
	__getpublickey_cached_g;
	__getpublickey_flush;
	__getpublickey_flush_g;
	getpublickey_g;
	getsecretkey_g;
	hashinc;
	_herrno2nss;
	hmask;
	__inet_address_count;
	__inet_free_local_interfaces;
	__inet_get_addr;
	__inet_get_local_interfaces;
	__inet_get_networka;
	__inet_get_uaddr;
	__inet_uaddr_is_local;
	key_call;
	key_decryptsession_g;
	key_decryptsession_pk;
	key_decryptsession_pk_g;
	__key_decryptsession_pk_LOCAL;
	key_encryptsession_g;
	key_encryptsession_pk;
	key_encryptsession_pk_g;
	__key_encryptsession_pk_LOCAL;
	key_gendes_g;
	__key_gendes_LOCAL;
	key_get_conv;
	key_get_conv_g;
	key_removesecret_g;
	key_secretkey_is_set_g;
	key_setnet;
	key_setnet_g;
	key_setsecret_g;
	makdatum;
	__nderror;
	__netdir_getbyaddr_nosrv;
	__nis_authtype2mechalias;
	__nis_clnt_create;
	__nis_dhext_extract_pkey;
	__nis_get_mechanism_library;
	__nis_get_mechanisms;
	__nis_get_mechanism_symbol;
	nis_get_static_storage;
	__nis_gssprin2netname;
	__nis_keyalg2authtype;
	__nis_keyalg2mechalias;
	__nis_mechalias2authtype;
	__nis_mechname2alias;
	nis_read_obj;
	__nis_release_mechanisms;
	__nis_rpc_domain;
	__nis_translate_mechanism;
	nis_write_obj;
	__nsl_dom;
	__nss2herrno;
	nss_ioctl;
	order_haddrlist_af;
	pagbuf;
	pagf;
	passwd2des;
	passwd2des_g;
	__rpcbind_is_up;
	__rpc_bindresvport;
	rpcb_taddr2uaddr;
	rpcb_uaddr2taddr;
	__rpc_control;
	__rpc_dtbsize;
	__rpc_endconf;
	__rpcfd_to_nconf;
	__rpc_get_a_size;
	__rpc_getconf;
	__rpc_getconfip;
	__rpc_get_default_domain;
	__rpc_get_local_uid;
	__rpc_get_t_size;
	__rpc_matchserv;
	__rpc_negotiate_uid;
	__rpc_select_to_poll;
	__rpc_setconf;
	__rpc_timeval_to_msec;
	__rpc_tli_set_options;
	rtime_tli;
	setdomainname;
	__seterr_reply;
	str2hostent;
	str2servent;
	__svcauth_des;
	svc_get_local_cred;
	_svc_getreqset_proc;
	__svc_get_svcauth;
	__svc_set_proc_cleanup_cb;
	__svc_vc_dup;
	__svc_vc_dupcache_init;
	__svc_vc_dupdone;
	svc_xprt_alloc;
	svc_xprt_free;
	_switch_gethostbyaddr_r;
	_switch_gethostbyname_r;
	t_errlist;
	tiusr_statetbl;
	_uncached_gethostbyaddr_r;
	_uncached_gethostbyname_r;
	usingypmap;
	xdecrypt;
	xdecrypt_g;
	xdr_authdes_cred;
	xdr_authdes_verf;
	xdr_cryptkeyarg;
	xdr_cryptkeyarg2;
	xdr_cryptkeyarg3;
	xdr_cryptkeyres;
	xdr_cryptkeyres3;
	xdr_datum;
	xdr_des_block;
	xdr_deskeyarg3;
	xdr_deskeyarray;
	xdr_directory_obj;
	xdr_endpoint;
	xdr_entry_obj;
	xdr_getcredres;
	xdr_getcredres3;
	xdr_gid_t;
	xdr_int16_t;
	xdr_int32_t;
	xdr_int64_t;
	xdr_int8_t;
	xdr_keybuf;
	xdr_keybuf3;
	xdr_key_netstarg;
	xdr_key_netstarg3;
	xdr_key_netstres;
	xdr_key_netstres3;
	xdr_keynum_t;
	xdr_keystatus;
	xdr_mechtype;
	xdr_netbuf;
	xdr_netnamestr;
	xdr_netobj;
	xdr_nis_attr;
	xdr_nis_name;
	xdr_nis_object;
	xdr_nis_oid;
	xdr_nis_server;
	xdr_objdata;
	xdr_pmap;
	xdr_pmaplist;
	xdr_pmaplist_ptr;
	xdr_rmtcallargs;
	xdr_rmtcallres;
	xdr_rpcb;
	xdr_rpcb_entry;
	xdr_rpcb_entry_list_ptr;
	xdr_rpcblist;
	xdr_rpcblist_ptr;
	xdr_rpcb_rmtcallargs;
	xdr_rpcb_rmtcallres;
	xdr_rpcbs_addrlist;
	xdr_rpcbs_addrlist_ptr;
	xdr_rpcbs_proc;
	xdr_rpcbs_rmtcalllist;
	xdr_rpcbs_rmtcalllist_ptr;
	xdr_rpcb_stat;
	xdr_rpcb_stat_byvers;
	xdr_setkeyarg3;
	xdr_table_obj;
	xdr_uid_t;
	xdr_uint16_t;
	xdr_uint32_t;
	xdr_uint64_t;
	xdr_uint8_t;
	xdr_ulonglong_t;
	xdr_unixcred;
	xdr_ypall;
	xdr_ypbind_domain;
	xdr_ypbind_resp;
	xdr_ypbind_resptype;
	xdr_ypbind_setdom;
	xdr_yp_buf;
	xdr_ypdelete_args;
	xdr_ypdomain_wrap_string;
	xdr_ypmap_parms;
	xdr_ypmap_wrap_string;
	xdr_ypowner_wrap_string;
	xdr_yppasswd;
	xdr_yppushresp_xfr;
	xdr_ypreq_key;
	xdr_ypreq_newxfr;
	xdr_ypreq_nokey;
	xdr_ypreq_xfr;
	xdr_ypresp_key_val;
	xdr_ypresp_maplist;
	xdr_ypresp_master;
	xdr_ypresp_order;
	xdr_ypresp_val;
	xdr_ypupdate_args;
	xencrypt;
	xencrypt_g;
	__yp_add_binding;
	__yp_all_rsvdport;
	ypbindproc_domain_3;
	__yp_clnt_create_rsvdport;
	__yp_dobind;
	__yp_master_rsvdport;
	yp_match_rsvdport;
	__yp_rel_binding;
    local:
	*;
};