xref: /onnv-gate/usr/src/lib/libnsl/common/llib-lnsl (revision 11262:b7ebfbf2359e)
10Sstevel@tonic-gate/*
20Sstevel@tonic-gate * CDDL HEADER START
30Sstevel@tonic-gate *
40Sstevel@tonic-gate * The contents of this file are subject to the terms of the
52830Sdjl * Common Development and Distribution License (the "License").
62830Sdjl * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate *
80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate * See the License for the specific language governing permissions
110Sstevel@tonic-gate * and limitations under the License.
120Sstevel@tonic-gate *
130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate *
190Sstevel@tonic-gate * CDDL HEADER END
200Sstevel@tonic-gate */
21132Srobinson
220Sstevel@tonic-gate/*
2310008SAshok.Kumar@Sun.COM * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
240Sstevel@tonic-gate * Use is subject to license terms.
250Sstevel@tonic-gate */
260Sstevel@tonic-gate
270Sstevel@tonic-gate
286812Sraf/* LINTLIBRARY */
296812Sraf/* PROTOLIB1 */
306812Sraf
310Sstevel@tonic-gate#include <sys/types.h>
320Sstevel@tonic-gate#include <thread.h>
330Sstevel@tonic-gate#include <synch.h>
340Sstevel@tonic-gate#include <fcntl.h>
350Sstevel@tonic-gate#include <sys/des.h>
360Sstevel@tonic-gate#include <des/softdes.h>
370Sstevel@tonic-gate#include <des/desdata.h>
380Sstevel@tonic-gate#include <rpc/rpc.h>
390Sstevel@tonic-gate#include <rpc/key_prot.h>
400Sstevel@tonic-gate#include <rpc/des_crypt.h>
410Sstevel@tonic-gate#include <rpc/pmap_prot.h>
420Sstevel@tonic-gate#include <sys/ioctl.h>
430Sstevel@tonic-gate#include <netdir.h>
440Sstevel@tonic-gate#include <nss_netdir.h>
450Sstevel@tonic-gate#include <nss_dbdefs.h>
460Sstevel@tonic-gate#include <sac.h>
470Sstevel@tonic-gate#include <netconfig.h>
480Sstevel@tonic-gate#include <ndbm.h>
490Sstevel@tonic-gate#include <rpcsvc/yp_prot.h>
500Sstevel@tonic-gate#include <rpcsvc/ypclnt.h>
510Sstevel@tonic-gate#include <rpcsvc/yppasswd.h>
520Sstevel@tonic-gate#include <rpcsvc/ypupd.h>
530Sstevel@tonic-gate#include <rpcsvc/nis.h>
540Sstevel@tonic-gate#include <rpcsvc/nislib.h>
550Sstevel@tonic-gate#include <sys/stream.h>
560Sstevel@tonic-gate#include <sys/stropts.h>
570Sstevel@tonic-gate#include <sys/tihdr.h>
580Sstevel@tonic-gate#include <sys/timod.h>
590Sstevel@tonic-gate#include <tiuser.h>
600Sstevel@tonic-gate
610Sstevel@tonic-gate
620Sstevel@tonic-gate/*
630Sstevel@tonic-gate * Declare t_errno, even though this file is compiled '_REENTRANT'.  This
640Sstevel@tonic-gate * way t_errno is defined in the lint library, which is used for programs
650Sstevel@tonic-gate * compiled with _REENTRANT and those compiled without it.
660Sstevel@tonic-gate */
670Sstevel@tonic-gate#ifdef t_errno
680Sstevel@tonic-gate#undef t_errno
690Sstevel@tonic-gate#endif
700Sstevel@tonic-gateextern int t_errno;
710Sstevel@tonic-gate
720Sstevel@tonic-gate/*
730Sstevel@tonic-gate * usr/src/lib/libnsl/common routines
740Sstevel@tonic-gate */
750Sstevel@tonic-gate
760Sstevel@tonic-gate/* common.c */
770Sstevel@tonic-gate
780Sstevel@tonic-gate/*
790Sstevel@tonic-gate * usr/src/lib/libnsl/des routines
800Sstevel@tonic-gate */
810Sstevel@tonic-gate
820Sstevel@tonic-gate/* des_crypt.c */
830Sstevel@tonic-gateint cbc_crypt(char *key, char *buf, size_t len, uint_t mode, char *ivec);
840Sstevel@tonic-gateint ecb_crypt(char *key, char *buf, size_t len, uint_t mode);
850Sstevel@tonic-gate
860Sstevel@tonic-gate/* des_soft.c */
870Sstevel@tonic-gatevoid des_setparity(char *p);
880Sstevel@tonic-gateint __des_crypt(char *buf, unsigned len, struct desparams *desp);
890Sstevel@tonic-gate
900Sstevel@tonic-gate/* intl_crypt.c */
910Sstevel@tonic-gate
920Sstevel@tonic-gate/* intl_soft.c */
930Sstevel@tonic-gateint _des_crypt(char *buf, unsigned len, struct desparams *desp);
940Sstevel@tonic-gate
950Sstevel@tonic-gate/*
960Sstevel@tonic-gate * usr/src/lib/libnsl/dial routines
970Sstevel@tonic-gate */
980Sstevel@tonic-gate
990Sstevel@tonic-gate/* callers.c */
1000Sstevel@tonic-gate
1010Sstevel@tonic-gate/* conn.c */
1020Sstevel@tonic-gate
1030Sstevel@tonic-gate/* dial.c */
1040Sstevel@tonic-gatevoid undial(int fd);
1050Sstevel@tonic-gate
1060Sstevel@tonic-gate/* getargs.c */
1070Sstevel@tonic-gate
1080Sstevel@tonic-gate/* interface.c */
1090Sstevel@tonic-gate
1100Sstevel@tonic-gate/* line.c */
1110Sstevel@tonic-gate
1120Sstevel@tonic-gate/* stoa.c */
1130Sstevel@tonic-gate
1140Sstevel@tonic-gate/* strecpy.c */
1150Sstevel@tonic-gate
1160Sstevel@tonic-gate/* strsave.c */
1170Sstevel@tonic-gate
1180Sstevel@tonic-gate/* sysfiles.c */
1190Sstevel@tonic-gate
1200Sstevel@tonic-gate/* ulockf.c */
1210Sstevel@tonic-gate
1220Sstevel@tonic-gate/* uucpdefs.c */
1230Sstevel@tonic-gate
1240Sstevel@tonic-gate/*
1250Sstevel@tonic-gate * usr/src/lib/libnsl/key routines
1260Sstevel@tonic-gate */
1270Sstevel@tonic-gate
1280Sstevel@tonic-gate/* gen_dhkeys.c */
1290Sstevel@tonic-gatevoid __gen_dhkeys(char *public, char *secret, char *pass);
1300Sstevel@tonic-gate
1310Sstevel@tonic-gate/* publickey.c */
1320Sstevel@tonic-gateint getpublickey(const char *netname, char *pkey);
1330Sstevel@tonic-gateint __getpublickey_cached(char *netname, char *pkey, int *from_cache);
1340Sstevel@tonic-gatevoid __getpublickey_flush(const char *netname);
1350Sstevel@tonic-gateint getsecretkey(const char *netname, char *skey, const char *passwd);
1360Sstevel@tonic-gate
1370Sstevel@tonic-gate/* xcrypt.c */
1380Sstevel@tonic-gateint xencrypt(char *secret, char *passwd);
1390Sstevel@tonic-gateint xdecrypt(char *secret, char *passwd);
1400Sstevel@tonic-gateint passwd2des(char *pw, char *key);
1410Sstevel@tonic-gate
1420Sstevel@tonic-gate/*
1430Sstevel@tonic-gate * usr/src/lib/libnsl/netdir routines
1440Sstevel@tonic-gate */
1450Sstevel@tonic-gate
1460Sstevel@tonic-gate/* netdir.c */
1470Sstevel@tonic-gateint *__nderror(void);
1480Sstevel@tonic-gateint netdir_getbyname(struct netconfig *tp, struct nd_hostserv *serv,
1490Sstevel@tonic-gate				struct nd_addrlist **addrs);
1500Sstevel@tonic-gateint netdir_getbyaddr(struct netconfig *tp, struct nd_hostservlist **serv,
1510Sstevel@tonic-gate				struct netbuf *addr);
1520Sstevel@tonic-gateint __netdir_getbyaddr_nosrv(struct netconfig *tp,
1530Sstevel@tonic-gate				struct nd_hostservlist **serv,
1540Sstevel@tonic-gate				struct netbuf *addr);
1550Sstevel@tonic-gateint netdir_options(struct netconfig *tp, int option, int fd, char *par);
1560Sstevel@tonic-gatestruct netbuf *uaddr2taddr(struct netconfig *tp, char *addr);
1570Sstevel@tonic-gatechar *taddr2uaddr(struct netconfig *tp, struct netbuf *addr);
1580Sstevel@tonic-gatevoid netdir_free(void *ptr, int type);
1590Sstevel@tonic-gatechar *netdir_sperror(void);
1600Sstevel@tonic-gatevoid netdir_perror(char *s);
1610Sstevel@tonic-gate
1620Sstevel@tonic-gate/*
1630Sstevel@tonic-gate * usr/src/lib/libnsl/netselect routines
1640Sstevel@tonic-gate */
1650Sstevel@tonic-gate
1660Sstevel@tonic-gate/* netselect.c */
1670Sstevel@tonic-gatevoid *setnetconfig(void);
1680Sstevel@tonic-gateint endnetconfig(void *vdata);
1690Sstevel@tonic-gatestruct netconfig *getnetconfig(void *vdata);
1700Sstevel@tonic-gatestruct netconfig *getnetconfigent(const char *netid);
1710Sstevel@tonic-gatevoid freenetconfigent(struct netconfig *netp);
1720Sstevel@tonic-gatevoid *setnetpath(void);
1730Sstevel@tonic-gateint endnetpath(void *vdata);
1740Sstevel@tonic-gatestruct netconfig *getnetpath(void *vdata);
1750Sstevel@tonic-gatechar *nc_sperror(void);
1760Sstevel@tonic-gatevoid nc_perror(const char *string);
1770Sstevel@tonic-gate
1780Sstevel@tonic-gate/*
1790Sstevel@tonic-gate * usr/src/lib/libnsl/nis/gen routines
1800Sstevel@tonic-gate */
1810Sstevel@tonic-gate
1820Sstevel@tonic-gate/* nis_subr.c */
1830Sstevel@tonic-gatename_pos nis_dir_cmp(nis_name n1, nis_name n2);
1840Sstevel@tonic-gatenis_name nis_local_group(void);
1850Sstevel@tonic-gatenis_name nis_domain_of(char *s);
1860Sstevel@tonic-gatenis_name nis_leaf_of_r(const nis_name  s, char *buf, size_t bufsize);
1870Sstevel@tonic-gatenis_name nis_leaf_of(char *s);
1880Sstevel@tonic-gatenis_name nis_name_of(char *s);
1890Sstevel@tonic-gatenis_name nis_local_directory(void);
1900Sstevel@tonic-gatenis_name nis_local_host(void);
1910Sstevel@tonic-gatevoid nis_destroy_object(nis_object *obj);
1920Sstevel@tonic-gatenis_object *nis_clone_object(nis_object *obj, nis_object *dest);
1930Sstevel@tonic-gatenis_object *nis_read_obj(char *f);
1940Sstevel@tonic-gateint nis_write_obj(char *f, nis_object *o);
1950Sstevel@tonic-gatevoid *nis_get_static_storage(struct nis_sdata *bs, u_int el, u_int nel);
196*11262SRajagopal.Andra@Sun.COM/*
197*11262SRajagopal.Andra@Sun.COM * char *nis_old_data(char *s);
198*11262SRajagopal.Andra@Sun.COM * char *nis_data(char *s);
199*11262SRajagopal.Andra@Sun.COM */
2000Sstevel@tonic-gate
2010Sstevel@tonic-gate/* nis_xdr.c */
2020Sstevel@tonic-gatebool_t xdr_nis_attr(XDR *xdrs, nis_attr *objp);
2030Sstevel@tonic-gatebool_t xdr_nis_name(XDR *xdrs, nis_name *objp);
2040Sstevel@tonic-gatebool_t xdr_endpoint(XDR *xdrs, endpoint *objp);
2050Sstevel@tonic-gatebool_t xdr_nis_server(XDR *xdrs, nis_server *objp);
2060Sstevel@tonic-gatebool_t xdr_directory_obj(XDR *xdrs, directory_obj *objp);
2070Sstevel@tonic-gatebool_t xdr_entry_obj(XDR *xdrs, entry_obj *objp);
2080Sstevel@tonic-gatebool_t xdr_table_obj(XDR *xdrs, table_obj *objp);
2090Sstevel@tonic-gatebool_t xdr_objdata(XDR *xdrs, objdata *objp);
2100Sstevel@tonic-gatebool_t xdr_nis_oid(XDR *xdrs, nis_oid *objp);
2110Sstevel@tonic-gatebool_t xdr_nis_object(XDR *xdrs, nis_object *objp);
2120Sstevel@tonic-gatebool_t xdr_nis_object(XDR *xdrs, nis_object *objp);
2130Sstevel@tonic-gatebool_t xdr_log_entry_t(XDR *xdrs, log_entry_t *objp);
2140Sstevel@tonic-gatebool_t xdr_log_entry(XDR *xdrs, log_entry *objp);
2150Sstevel@tonic-gatebool_t xdr_nis_tag(XDR *xdrs, nis_tag *objp);
2160Sstevel@tonic-gatebool_t xdr_nis_bound_endpoint(XDR *xdrs, nis_bound_endpoint *objp);
2170Sstevel@tonic-gatebool_t xdr_nis_bound_directory(XDR *xdrs, nis_bound_directory *objp);
2180Sstevel@tonic-gatebool_t xdr_nis_active_endpoint(XDR *xdrs, nis_active_endpoint *objp);
2190Sstevel@tonic-gate
2200Sstevel@tonic-gate/* thr_misc.c */
2210Sstevel@tonic-gate
2220Sstevel@tonic-gate/*
2230Sstevel@tonic-gate * usr/src/lib/libnsl/nsl routines
2240Sstevel@tonic-gate */
2250Sstevel@tonic-gate
2260Sstevel@tonic-gate/* _conn_util.c */
2270Sstevel@tonic-gate
2280Sstevel@tonic-gate/* _data2.c */
2290Sstevel@tonic-gate
2300Sstevel@tonic-gate/* _errlst.c */
2310Sstevel@tonic-gateint *__t_errno(void);
2320Sstevel@tonic-gate
2330Sstevel@tonic-gate/* _utility.c */
2340Sstevel@tonic-gate
2350Sstevel@tonic-gate/* t_accept.c */
2360Sstevel@tonic-gateint t_accept(int, int, struct t_call *);
2370Sstevel@tonic-gate
2380Sstevel@tonic-gate/* t_alloc.c */
2390Sstevel@tonic-gatechar *t_alloc(int, int, int);
2400Sstevel@tonic-gate
2410Sstevel@tonic-gate/* t_bind.c */
2420Sstevel@tonic-gateint t_bind(int, struct t_bind *, struct t_bind *);
2430Sstevel@tonic-gate
2440Sstevel@tonic-gate/* t_close.c */
2450Sstevel@tonic-gateint t_close(int);
2460Sstevel@tonic-gate
2470Sstevel@tonic-gate/* t_connect.c */
2480Sstevel@tonic-gateint t_connect(int, struct t_call *, struct t_call *);
2490Sstevel@tonic-gate
2500Sstevel@tonic-gate/* t_error.c */
2510Sstevel@tonic-gatevoid t_error(const char *);
2520Sstevel@tonic-gate
2530Sstevel@tonic-gate/* t_free.c */
2540Sstevel@tonic-gateint t_free(char *, int);
2550Sstevel@tonic-gate
2560Sstevel@tonic-gate/* t_getinfo.c */
2570Sstevel@tonic-gateint t_getinfo(int, struct t_info *);
2580Sstevel@tonic-gate
2590Sstevel@tonic-gate/* t_getname.c */
2600Sstevel@tonic-gateint t_getname(int, struct netbuf *, int);
2610Sstevel@tonic-gate
2620Sstevel@tonic-gate/* t_getstate.c */
2630Sstevel@tonic-gateint t_getstate(int);
2640Sstevel@tonic-gate
2650Sstevel@tonic-gate/* t_listen.c */
2660Sstevel@tonic-gateint t_listen(int, struct t_call *);
2670Sstevel@tonic-gate
2680Sstevel@tonic-gate/* t_look.c */
2690Sstevel@tonic-gateint t_look(int);
2700Sstevel@tonic-gate
2710Sstevel@tonic-gate/* t_open.c */
2720Sstevel@tonic-gateint t_open(const char *, int, struct t_info *);
2730Sstevel@tonic-gate
2740Sstevel@tonic-gate/* t_optmgmt.c */
2750Sstevel@tonic-gateint t_optmgmt(int, struct t_optmgmt *, struct t_optmgmt *);
2760Sstevel@tonic-gate
2770Sstevel@tonic-gate/* t_rcv.c */
2780Sstevel@tonic-gateint t_rcv(int, char *, unsigned, int *);
2790Sstevel@tonic-gate
2800Sstevel@tonic-gate/* t_rcvconnect.c */
2810Sstevel@tonic-gateint t_rcvconnect(int, struct t_call *);
2820Sstevel@tonic-gate
2830Sstevel@tonic-gate/* t_rcvdis.c */
2840Sstevel@tonic-gateint t_rcvdis(int, struct t_discon *);
2850Sstevel@tonic-gate
2860Sstevel@tonic-gate/* t_rcvrel.c */
2870Sstevel@tonic-gateint t_rcvrel(int);
2880Sstevel@tonic-gate
2890Sstevel@tonic-gate/* t_rcvudata.c */
2900Sstevel@tonic-gateint t_rcvudata(int, struct t_unitdata *, int *);
2910Sstevel@tonic-gate
2920Sstevel@tonic-gate/* t_rcvuderr.c */
2930Sstevel@tonic-gateint t_rcvuderr(int, struct t_uderr *);
2940Sstevel@tonic-gate
2950Sstevel@tonic-gate/* t_snd.c */
2960Sstevel@tonic-gateint t_snd(int, char *, unsigned, int);
2970Sstevel@tonic-gate
2980Sstevel@tonic-gate/* t_snddis */
2990Sstevel@tonic-gateint t_snddis(int, struct t_call *);
3000Sstevel@tonic-gate
3010Sstevel@tonic-gate/* t_sndrel.c */
3020Sstevel@tonic-gateint t_sndrel(int);
3030Sstevel@tonic-gate
3040Sstevel@tonic-gate/* t_sndudata.c */
3050Sstevel@tonic-gateint t_sndudata(int, struct t_unitdata *);
3060Sstevel@tonic-gate
3070Sstevel@tonic-gate/* t_strerror.c */
3086812Srafchar *t_strerror(int);
3090Sstevel@tonic-gate
3100Sstevel@tonic-gate/* t_sync.c */
3110Sstevel@tonic-gateint t_sync(int);
3120Sstevel@tonic-gate
3130Sstevel@tonic-gate/* t_unbind.c */
3140Sstevel@tonic-gateint t_unbind(int);
3150Sstevel@tonic-gate
3160Sstevel@tonic-gate/*
3170Sstevel@tonic-gate * struct t_iovec is defined in <xti.h>. But <xti.h> cannot be included
3180Sstevel@tonic-gate * because inclusion of <xti.h> and <tiuser.h> are mututally exclusive
3190Sstevel@tonic-gate * and <tiuser.h> is exposed by the inclusion of <rpc/rpc.h>. Needs to
3200Sstevel@tonic-gate * be seen how to build llib-lnsl.ln from multiple source files to avoid
3210Sstevel@tonic-gate * this problem.
3220Sstevel@tonic-gate */
3230Sstevel@tonic-gatestruct t_iovec {
3240Sstevel@tonic-gate	void	*iov_base;
3250Sstevel@tonic-gate	size_t	iov_len;
3260Sstevel@tonic-gate};
3270Sstevel@tonic-gate
3280Sstevel@tonic-gate/* t_sndv.c */
3290Sstevel@tonic-gateint t_sndv(int, const struct t_iovec *,  unsigned int, int);
3300Sstevel@tonic-gate
3310Sstevel@tonic-gate/* t_sndvudata.c */
3320Sstevel@tonic-gateint t_sndvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int);
3330Sstevel@tonic-gate
3340Sstevel@tonic-gate/* t_sndreldata.c */
3350Sstevel@tonic-gateint t_sndreldata(int, struct t_discon *);
3360Sstevel@tonic-gate
3370Sstevel@tonic-gate/* t_rcvv.c */
3380Sstevel@tonic-gateint t_rcvv(int, struct t_iovec *, unsigned int, int *);
3390Sstevel@tonic-gate
3400Sstevel@tonic-gate/* t_rcvvudata.c */
3410Sstevel@tonic-gateint t_rcvvudata(int, struct t_unitdata *, struct t_iovec *,
3420Sstevel@tonic-gate        unsigned int, int *);
3430Sstevel@tonic-gate
3440Sstevel@tonic-gate/* t_rcvreldata.c */
3450Sstevel@tonic-gateextern int t_rcvreldata(int, struct t_discon *);
3460Sstevel@tonic-gate
3470Sstevel@tonic-gate/* t_sysconf.c */
3480Sstevel@tonic-gateint t_sysconf(int);
3490Sstevel@tonic-gate
3500Sstevel@tonic-gate/* xti_wrappers.c */
3510Sstevel@tonic-gateint _xti_accept(int, int, struct t_call *);
3520Sstevel@tonic-gateint _xti_xns5_accept(int, int, struct t_call *);
3530Sstevel@tonic-gatechar *_xti_alloc(int, int, int);
3540Sstevel@tonic-gateint _xti_bind(int, struct t_bind *, struct t_bind *);
3550Sstevel@tonic-gateint _xti_close(int);
3560Sstevel@tonic-gateint _xti_connect(int, struct t_call *, struct t_call *);
3570Sstevel@tonic-gateint _xti_error(char *);
3580Sstevel@tonic-gateint _xti_free(char *, int);
3590Sstevel@tonic-gateint _xti_getinfo(int, struct t_info *);
3600Sstevel@tonic-gateint _xti_getprotaddr(int, struct t_bind *, struct t_bind *);
3610Sstevel@tonic-gateint _xti_getstate(int);
3620Sstevel@tonic-gateint _xti_listen(int, struct t_call *);
3630Sstevel@tonic-gateint _xti_look(int);
3640Sstevel@tonic-gateint _xti_open(char *, int, struct t_info *);
3650Sstevel@tonic-gateint _xti_optmgmt(int, struct t_optmgmt *, struct t_optmgmt *);
3660Sstevel@tonic-gateint _xti_rcv(int, char *, unsigned int, int *);
3670Sstevel@tonic-gateint _xti_rcvconnect(int, struct t_call *);
3680Sstevel@tonic-gateint _xti_rcvdis(int, struct t_discon *);
3690Sstevel@tonic-gateint _xti_rcvrel(int);
3700Sstevel@tonic-gateint _xti_rcvreldata(int, struct t_discon *);
3710Sstevel@tonic-gateint _xti_rcvudata(int, struct t_unitdata *, int *);
3720Sstevel@tonic-gateint _xti_rcvuderr(int, struct t_uderr *);
3730Sstevel@tonic-gateint _xti_rcvv(int, struct t_iovec *, unsigned int, int *);
3740Sstevel@tonic-gateint _xti_rcvvudata(int, struct t_unitdata *, struct t_iovec *,
3750Sstevel@tonic-gate    unsigned int, int *);
3760Sstevel@tonic-gateint _xti_snd(int, char *, unsigned int, int);
3770Sstevel@tonic-gateint _xti_xns5_snd(int, char *, unsigned int, int);
3780Sstevel@tonic-gateint _xti_snddis(int, struct t_call *);
3790Sstevel@tonic-gateint _xti_sndrel(int);
3800Sstevel@tonic-gateint _xti_sndreldata(int, struct t_discon *);
3810Sstevel@tonic-gateint _xti_sndudata(int, struct t_unitdata *);
3820Sstevel@tonic-gateint _xti_sndv(int, const struct t_iovec *, unsigned int, int);
3830Sstevel@tonic-gateint _xti_sndvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int);
3840Sstevel@tonic-gatechar *_xti_strerror(int);
3850Sstevel@tonic-gateint _xti_sync(int);
3860Sstevel@tonic-gateint _xti_sysconf(int);
3870Sstevel@tonic-gateint _xti_unbind(int);
3880Sstevel@tonic-gate
3890Sstevel@tonic-gate/*
3900Sstevel@tonic-gate * usr/src/lib/libnsl/nss routines
3910Sstevel@tonic-gate */
3920Sstevel@tonic-gate
3930Sstevel@tonic-gate/* gethostby_door.c */
3940Sstevel@tonic-gate
3950Sstevel@tonic-gate/* gethostbyname_r.c */
3960Sstevel@tonic-gatestruct hostent *_uncached_gethostbyname_r(const char *nam,
3970Sstevel@tonic-gate				struct hostent *result,
3980Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
3990Sstevel@tonic-gatestruct hostent *_uncached_gethostbyaddr_r(const char *addr, int length,
4000Sstevel@tonic-gate				int type, struct hostent *result,
4010Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
4020Sstevel@tonic-gatestruct hostent *gethostbyname_r(const char *nam, struct hostent *result,
4030Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
4040Sstevel@tonic-gatestruct hostent *gethostbyaddr_r(const char *addr, int length, int type,
4050Sstevel@tonic-gate				struct hostent *result,
4060Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
4070Sstevel@tonic-gate
4080Sstevel@tonic-gate/* gethostent.c */
4090Sstevel@tonic-gatestruct hostent *gethostbyname(const char *nam);
4100Sstevel@tonic-gatestruct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
4110Sstevel@tonic-gatestruct hostent *gethostent(void);
4120Sstevel@tonic-gate
4130Sstevel@tonic-gate/* gethostent_r.c */
4140Sstevel@tonic-gateint sethostent(int stay);
4150Sstevel@tonic-gateint endhostent(void);
4160Sstevel@tonic-gatestruct hostent *gethostent_r(struct hostent *result, char *buffer, int buflen,
4170Sstevel@tonic-gate				int *h_errnop);
4180Sstevel@tonic-gate
4190Sstevel@tonic-gate/* getipnodeby.c */
4200Sstevel@tonic-gatevoid freehostent(struct hostent *hent);
4210Sstevel@tonic-gatestruct hostent *getipnodebyaddr(const void *src, size_t len, int type,
4220Sstevel@tonic-gate				int *error_num);
4230Sstevel@tonic-gatestruct hostent *getipnodebyname(const char *name, int af, int flags,
4240Sstevel@tonic-gate				int *error_num);
4250Sstevel@tonic-gate
4260Sstevel@tonic-gate/* getrpcent.c */
4270Sstevel@tonic-gatestruct rpcent *getrpcbyname(const char *nam);
4280Sstevel@tonic-gatestruct rpcent *getrpcbynumber(const int num);
4290Sstevel@tonic-gatestruct rpcent *getrpcent(void);
4300Sstevel@tonic-gate
4310Sstevel@tonic-gate/* getrpcent_r.c */
4320Sstevel@tonic-gatestruct rpcent *getrpcbyname_r(const char *name, struct rpcent *result,
4330Sstevel@tonic-gate				char *buffer, int buflen);
4340Sstevel@tonic-gatestruct rpcent *getrpcbynumber_r(const int number, struct rpcent *result,
4350Sstevel@tonic-gate				char *buffer, int buflen);
4360Sstevel@tonic-gatevoid setrpcent(const int stay);
4370Sstevel@tonic-gatevoid endrpcent(void);
4380Sstevel@tonic-gatestruct rpcent *getrpcent_r(struct rpcent *result, char *buffer, int buflen);
4390Sstevel@tonic-gate
4400Sstevel@tonic-gate/* inet_ntop.c */
4410Sstevel@tonic-gateconst char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
4420Sstevel@tonic-gate
4430Sstevel@tonic-gate/* inet_pton.c */
4440Sstevel@tonic-gateint inet_pton(int af, const char *src, void *dst);
4450Sstevel@tonic-gate
4460Sstevel@tonic-gate/* netdir_inet.c */
4470Sstevel@tonic-gateint _get_hostserv_inetnetdir_byname(struct netconfig *nconf,
4480Sstevel@tonic-gate				struct nss_netdirbyname_in *args,
4490Sstevel@tonic-gate				union nss_netdirbyname_out *res);
4500Sstevel@tonic-gateint _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf,
4510Sstevel@tonic-gate				struct nss_netdirbyaddr_in *args,
4520Sstevel@tonic-gate				union nss_netdirbyaddr_out *res);
4530Sstevel@tonic-gateint __nss2herrno(nss_status_t nsstat);
4540Sstevel@tonic-gatenss_status_t _herrno2nss(int h_errno);
4550Sstevel@tonic-gatestruct hostent *_switch_gethostbyname_r(const char *name,
4560Sstevel@tonic-gate				struct hostent *result,
4570Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
4580Sstevel@tonic-gatestruct hostent *_switch_gethostbyaddr_r(const char *addr, int len, int type,
4590Sstevel@tonic-gate				struct hostent *result,
4600Sstevel@tonic-gate				char *buffer, int buflen, int *h_errnop);
4610Sstevel@tonic-gateint str2servent(const char *instr, int lenstr, void *ent,
4620Sstevel@tonic-gate				char *buffer, int buflen);
4630Sstevel@tonic-gatevoid *__inet_get_local_interfaces(void);
4640Sstevel@tonic-gatevoid __inet_free_local_interfaces(void *p);
4650Sstevel@tonic-gateint __inet_address_is_local(void *p, struct in_addr addr);
4660Sstevel@tonic-gateint __inet_uaddr_is_local(void *p, struct netconfig *nc, char *uaddr);
4670Sstevel@tonic-gateint __inet_address_count(void *p);
4680Sstevel@tonic-gateulong_t __inet_get_addr(void *p, int n);
4690Sstevel@tonic-gatechar *__inet_get_uaddr(void *p, struct netconfig *nc, int n);
4700Sstevel@tonic-gatechar *__inet_get_networka(void *p, int n);
4710Sstevel@tonic-gate
4720Sstevel@tonic-gate/* netdir_inet_sundry.c */
4730Sstevel@tonic-gate
4740Sstevel@tonic-gate/*
4750Sstevel@tonic-gate * usr/src/lib/libnsl/rpc routines
4760Sstevel@tonic-gate */
4770Sstevel@tonic-gate
4780Sstevel@tonic-gate/* auth_des.c */
4790Sstevel@tonic-gateAUTH *authdes_seccreate(const char *servername, uint_t win,
4800Sstevel@tonic-gate			const char *timehost, const des_block *ckey);
4810Sstevel@tonic-gate
4820Sstevel@tonic-gate/* auth_none.c */
4830Sstevel@tonic-gateAUTH *authnone_create(void);
4840Sstevel@tonic-gate
4850Sstevel@tonic-gate/* auth_sys.c */
4860Sstevel@tonic-gateAUTH *authsys_create(const char *machname, uid_t uid, gid_t gid, int len,
4870Sstevel@tonic-gate			const gid_t *aup_gids);
4880Sstevel@tonic-gateAUTH *authsys_create_default(void);
4890Sstevel@tonic-gate
4900Sstevel@tonic-gate/* auth_time.c */
4910Sstevel@tonic-gate
4920Sstevel@tonic-gate/* authdes_prot.c */
4930Sstevel@tonic-gatebool_t xdr_authdes_cred(XDR *xdrs, struct authdes_cred *cred);
4940Sstevel@tonic-gatebool_t xdr_authdes_verf(XDR *xdrs, struct authdes_verf *verf);
4950Sstevel@tonic-gate
4960Sstevel@tonic-gate/* authsys_prot.c */
4970Sstevel@tonic-gatebool_t xdr_authsys_parms(XDR *xdrs, struct authsys_parms *p);
4980Sstevel@tonic-gatebool_t xdr_uid_t(XDR *xdrs, uid_t *ip);
4990Sstevel@tonic-gatebool_t xdr_gid_t(XDR *xdrs, gid_t *ip);
5000Sstevel@tonic-gate
5010Sstevel@tonic-gate/* clnt_bcast.c */
5020Sstevel@tonic-gateenum clnt_stat rpc_broadcast_exp(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
5030Sstevel@tonic-gate		xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
5040Sstevel@tonic-gate		caddr_t resultsp, resultproc_t eachresult, int inittime,
5050Sstevel@tonic-gate		int waittime, const char *netclass);
5060Sstevel@tonic-gateenum clnt_stat rpc_broadcast(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
5070Sstevel@tonic-gate		xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
5080Sstevel@tonic-gate		caddr_t resultsp, resultproc_t eachresult,
5090Sstevel@tonic-gate		const char *netclass);
5100Sstevel@tonic-gate
5110Sstevel@tonic-gate/* clnt_dg.c */
5120Sstevel@tonic-gateCLIENT *clnt_dg_create(int fd, struct netbuf *svcaddr, rpcprog_t program,
5130Sstevel@tonic-gate		rpcvers_t version, uint_t sendsz, uint_t recvsz);
5140Sstevel@tonic-gate
5150Sstevel@tonic-gate/* clnt_door.c */
5160Sstevel@tonic-gateCLIENT *clnt_door_create(rpcprog_t program, rpcvers_t version, uint_t sendsz);
5170Sstevel@tonic-gate
5180Sstevel@tonic-gate/* clnt_generic.c */
5190Sstevel@tonic-gateCLIENT *clnt_create_vers(const char *hostname, rpcprog_t prog,
5200Sstevel@tonic-gate		rpcvers_t *vers_out, rpcvers_t vers_low,
5210Sstevel@tonic-gate		rpcvers_t vers_high, const char *nettype);
5220Sstevel@tonic-gateCLIENT *clnt_create_vers_timed(const char *hostname, rpcprog_t prog,
5230Sstevel@tonic-gate		rpcvers_t *vers_out, rpcvers_t vers_low,
5240Sstevel@tonic-gate		rpcvers_t vers_high, const char *nettype,
5250Sstevel@tonic-gate		const struct timeval *tp);
5260Sstevel@tonic-gateCLIENT *clnt_create(const char *hostname, rpcprog_t prog, rpcvers_t vers,
5270Sstevel@tonic-gate		const char *nettype);
5280Sstevel@tonic-gateCLIENT *clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers,
5290Sstevel@tonic-gate		const char *netclass, const struct timeval *tp);
5300Sstevel@tonic-gateCLIENT *clnt_tp_create(const char *hostname, rpcprog_t prog, rpcvers_t vers,
5310Sstevel@tonic-gate		const struct netconfig *nconf);
5320Sstevel@tonic-gateCLIENT *clnt_tp_create_timed(const char *hostname, rpcprog_t prog,
5330Sstevel@tonic-gate		rpcvers_t vers, const struct netconfig *nconf,
5340Sstevel@tonic-gate		const struct timeval *tp);
5350Sstevel@tonic-gateCLIENT *clnt_tli_create(int fd, const struct netconfig *nconf,
5360Sstevel@tonic-gate		struct netbuf *svcaddr, rpcprog_t prog, rpcvers_t vers,
5370Sstevel@tonic-gate		uint_t sendsz, uint_t recvsz);
5380Sstevel@tonic-gate
5390Sstevel@tonic-gate/* clnt_perror.c */
5400Sstevel@tonic-gatechar *clnt_sperror(const CLIENT *cl, const char *s);
5410Sstevel@tonic-gatevoid clnt_perror(const CLIENT *cl, const char *s);
5420Sstevel@tonic-gatevoid clnt_perrno(enum clnt_stat num);
5430Sstevel@tonic-gatechar *clnt_spcreateerror(const char *s);
5440Sstevel@tonic-gatevoid clnt_pcreateerror(const char *s);
5450Sstevel@tonic-gateconst char *clnt_sperrno(const enum clnt_stat stat);
5460Sstevel@tonic-gate
5470Sstevel@tonic-gate/* clnt_raw.c */
5480Sstevel@tonic-gateCLIENT *clnt_raw_create(rpcprog_t prog, rpcvers_t vers);
5490Sstevel@tonic-gate
5500Sstevel@tonic-gate/* clnt_simple.c */
5510Sstevel@tonic-gateenum clnt_stat rpc_call(const char *host, rpcprog_t prognum, rpcvers_t versnum,
5520Sstevel@tonic-gate		rpcproc_t procnum, xdrproc_t inproc, const char *in,
5530Sstevel@tonic-gate		xdrproc_t outproc, char *out, const char *netclass);
5540Sstevel@tonic-gate
5550Sstevel@tonic-gate/* clnt_vc.c */
5560Sstevel@tonic-gateCLIENT *clnt_vc_create(int fd, struct netbuf *svcaddr, rpcprog_t prog,
5570Sstevel@tonic-gate		rpcvers_t vers, uint_t sendsz, uint_t recvsz);
5580Sstevel@tonic-gate
5590Sstevel@tonic-gate/* getdname.c */
5600Sstevel@tonic-gateint getdomainname(char *name, int namelen);
5610Sstevel@tonic-gateint setdomainname(char *domain, int len);
5620Sstevel@tonic-gate
5630Sstevel@tonic-gate/* gethostname.c */
5640Sstevel@tonic-gateint gethostname(char *hname, int hlen);
5650Sstevel@tonic-gate
5660Sstevel@tonic-gate/* inet_ntoa.c */
5670Sstevel@tonic-gatechar *inet_ntoa_r(struct in_addr in, char b[]);
5680Sstevel@tonic-gatechar *inet_ntoa(struct in_addr in);
5690Sstevel@tonic-gatein_addr_t inet_addr(const char *cp);
5700Sstevel@tonic-gatein_addr_t inet_netof(struct in_addr in);
5710Sstevel@tonic-gate
5720Sstevel@tonic-gate/* key_call.c */
5730Sstevel@tonic-gateint key_setsecret(const char *secretkey);
5740Sstevel@tonic-gateint key_secretkey_is_set(void);
575132Srobinsonint key_encryptsession_pk(const char *remotename, netobj *remotekey,
5760Sstevel@tonic-gate				des_block *deskey);
577132Srobinsonint key_decryptsession_pk(const char *remotename, netobj *remotekey,
5780Sstevel@tonic-gate				des_block *deskey);
5790Sstevel@tonic-gate
5800Sstevel@tonic-gateint key_encryptsession(const char *remotename, des_block *deskey);
5810Sstevel@tonic-gateint key_decryptsession(const char *remotename, des_block *deskey);
5820Sstevel@tonic-gateint key_gendes(des_block *key);
5830Sstevel@tonic-gateint key_setnet(struct key_netstarg *arg);
5840Sstevel@tonic-gateint key_get_conv(char *pkey, des_block *deskey);
5850Sstevel@tonic-gateint key_call(ulong_t proc, xdrproc_t xdr_arg, char *arg, xdrproc_t xdr_rslt,
5860Sstevel@tonic-gate				char *rslt);
5870Sstevel@tonic-gate
5880Sstevel@tonic-gate/* key_prot.c */
589132Srobinsonbool_t xdr_keystatus(XDR *xdrs, keystatus *objp);
590132Srobinsonbool_t xdr_keybuf(XDR *xdrs, keybuf objp);
591132Srobinsonbool_t xdr_netnamestr(XDR *xdrs, netnamestr *objp);
592132Srobinsonbool_t xdr_cryptkeyarg(XDR *xdrs, cryptkeyarg *objp);
593132Srobinsonbool_t xdr_cryptkeyarg2(XDR *xdrs, cryptkeyarg2 *objp);
594132Srobinsonbool_t xdr_cryptkeyres(XDR *xdrs, cryptkeyres *objp);
595132Srobinsonbool_t xdr_unixcred(XDR *xdrs, unixcred *objp);
596132Srobinsonbool_t xdr_getcredres(XDR *xdrs, getcredres *objp);
597132Srobinsonbool_t xdr_key_netstarg(XDR *xdrs, key_netstarg *objp);
598132Srobinsonbool_t xdr_key_netstres(XDR *xdrs, key_netstres *objp);
5990Sstevel@tonic-gate
6000Sstevel@tonic-gate/* mt_misc.c */
6010Sstevel@tonic-gate#ifdef rpc_createerr
6020Sstevel@tonic-gate#undef rpc_createerr
6030Sstevel@tonic-gate#endif
6040Sstevel@tonic-gatestruct rpc_createerr *__rpc_createerr(void);
6050Sstevel@tonic-gate
6060Sstevel@tonic-gate/* netname.c */
6070Sstevel@tonic-gateint getnetname(char *name);
6080Sstevel@tonic-gateint __getnetnamebyuid(char *name, uid_t uid);
6090Sstevel@tonic-gateint user2netname(char *netname, const uid_t uid, const char *domain);
6100Sstevel@tonic-gateint host2netname(char *netname, const char *host, const char *domain);
6110Sstevel@tonic-gate
6120Sstevel@tonic-gate/* netnamer.c */
6130Sstevel@tonic-gateint netname2user(const char *netname, uid_t *uidp, gid_t *gidp,
6140Sstevel@tonic-gate					int *gidlenp, gid_t *gidlist);
6150Sstevel@tonic-gateint netname2host(const char *netname, char *hostname, int hostlen);
6160Sstevel@tonic-gate
6170Sstevel@tonic-gate/* openchild.c */
6180Sstevel@tonic-gate
6190Sstevel@tonic-gate/* pmap_clnt.c */
6200Sstevel@tonic-gateint pmap_set(rpcprog_t program, rpcvers_t version, rpcprot_t protocol, ushort_t port);
6210Sstevel@tonic-gatebool_t pmap_unset(rpcprog_t program, rpcvers_t version);
6220Sstevel@tonic-gateushort_t pmap_getport(struct sockaddr_in *address, rpcprog_t program,
6230Sstevel@tonic-gate			rpcvers_t version, rpcprot_t protocol);
6240Sstevel@tonic-gatestruct pmaplist *pmap_getmaps(struct sockaddr_in *address);
6250Sstevel@tonic-gateenum clnt_stat pmap_rmtcall(struct sockaddr_in *addr, rpcprog_t prog,
6260Sstevel@tonic-gate			rpcvers_t vers, rpcproc_t proc, xdrproc_t xdrargs,
6270Sstevel@tonic-gate			caddr_t argsp, xdrproc_t xdrres, caddr_t resp,
6280Sstevel@tonic-gate			struct timeval tout, rpcport_t *port_ptr);
6290Sstevel@tonic-gate
6300Sstevel@tonic-gate/* pmap_prot.c */
6310Sstevel@tonic-gatebool_t xdr_pmap(XDR *xdrs, struct pmap *objp);
6320Sstevel@tonic-gatebool_t xdr_pmaplist_ptr(XDR *xdrs, pmaplist_ptr *rp);
6330Sstevel@tonic-gatebool_t xdr_pmaplist(XDR *xdrs, PMAPLIST **rp);
6340Sstevel@tonic-gatebool_t xdr_rmtcallargs(XDR *xdrs, struct p_rmtcallargs *cap);
6350Sstevel@tonic-gatebool_t xdr_rmtcallres(XDR *xdrs, struct p_rmtcallres *crp);
6360Sstevel@tonic-gate
6370Sstevel@tonic-gate/* rpc_callmsg.c */
6380Sstevel@tonic-gatebool_t xdr_callmsg(XDR *xdrs, struct rpc_msg *cmsg);
6390Sstevel@tonic-gate
6400Sstevel@tonic-gate/* rpc_comdata.c */
6410Sstevel@tonic-gate
6420Sstevel@tonic-gate/* rpc_generic.c */
6430Sstevel@tonic-gateint __rpc_dtbsize(void);
6440Sstevel@tonic-gateuint_t __rpc_get_t_size(t_scalar_t size, t_scalar_t bufsize);
6450Sstevel@tonic-gateuint_t __rpc_get_a_size(t_scalar_t size);
6460Sstevel@tonic-gatestruct netconfig *__rpc_getconfip(char *nettype);
6470Sstevel@tonic-gatevoid *__rpc_setconf(char *nettype);
6480Sstevel@tonic-gatestruct netconfig *__rpc_getconf(void *vhandle);
6490Sstevel@tonic-gatevoid __rpc_endconf(void *vhandle);
6500Sstevel@tonic-gatestruct netconfig *__rpcfd_to_nconf(int fd, int servtype);
6510Sstevel@tonic-gateint __rpc_matchserv(int servtype, unsigned int nc_semantics);
6520Sstevel@tonic-gate
6530Sstevel@tonic-gate/* rpc_prot.c */
6540Sstevel@tonic-gatebool_t xdr_opaque_auth(XDR *xdrs, struct opaque_auth *ap);
6550Sstevel@tonic-gatebool_t xdr_des_block(XDR *xdrs, des_block *blkp);
6560Sstevel@tonic-gatebool_t xdr_accepted_reply(XDR *xdrs, struct accepted_reply *ar);
6570Sstevel@tonic-gatebool_t xdr_rejected_reply(XDR *xdrs, struct rejected_reply *rr);
6580Sstevel@tonic-gatebool_t xdr_replymsg(XDR *xdrs, struct rpc_msg *rmsg);
6590Sstevel@tonic-gatebool_t xdr_callhdr(XDR *xdrs, struct rpc_msg *cmsg);
6600Sstevel@tonic-gatevoid __seterr_reply(struct rpc_msg *msg, struct rpc_err *error);
6610Sstevel@tonic-gate
6620Sstevel@tonic-gate/* rpc_sel2poll.c */
6630Sstevel@tonic-gateint __rpc_select_to_poll(int fdmax, fd_set *fdset, struct pollfd *p0);
6640Sstevel@tonic-gateint __rpc_timeval_to_msec(struct timeval *t);
6650Sstevel@tonic-gate
6660Sstevel@tonic-gate/* rpc_soc.c */
6670Sstevel@tonic-gateCLIENT *clntudp_bufcreate(struct sockaddr_in *raddr, rpcprog_t prog,
6680Sstevel@tonic-gate			rpcvers_t vers, struct timeval wait, int *sockp,
6690Sstevel@tonic-gate			uint_t sendsz, uint_t recvsz);
6700Sstevel@tonic-gateCLIENT *clntudp_create(struct sockaddr_in *raddr, rpcprog_t program,
6710Sstevel@tonic-gate			rpcvers_t version, struct timeval wait, int *sockp);
6720Sstevel@tonic-gateCLIENT *clnttcp_create(struct sockaddr_in *raddr, rpcprog_t prog,
6730Sstevel@tonic-gate			rpcvers_t vers, int *sockp, uint_t sendsz,
6740Sstevel@tonic-gate			uint_t recvsz);
6750Sstevel@tonic-gateCLIENT *clntraw_create(rpcprog_t prog, rpcvers_t vers);
6760Sstevel@tonic-gateSVCXPRT *svctcp_create(int fd, uint_t sendsize, uint_t recvsize);
6770Sstevel@tonic-gateSVCXPRT *svcudp_bufcreate(int fd, uint_t sendsize, uint_t recvsize);
6780Sstevel@tonic-gateSVCXPRT *svcfd_create(int fd, uint_t sendsize, uint_t recvsize);
6790Sstevel@tonic-gateSVCXPRT *svcudp_create(int fd);
6800Sstevel@tonic-gateSVCXPRT *svcraw_create(void);
6810Sstevel@tonic-gateint __rpc_bindresvport(int fd, struct sockaddr_in *sin, int *portp, int qlen);
6820Sstevel@tonic-gatevoid get_myaddress(struct sockaddr_in *addr);
6830Sstevel@tonic-gateushort_t getrpcport(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcprot_t proto);
6840Sstevel@tonic-gateint callrpc(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
6850Sstevel@tonic-gate		xdrproc_t inproc, char *in, xdrproc_t outproc, char *out);
6860Sstevel@tonic-gateint registerrpc(rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
6870Sstevel@tonic-gate		char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc);
6880Sstevel@tonic-gateenum clnt_stat clnt_broadcast(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
6890Sstevel@tonic-gate		xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
6900Sstevel@tonic-gate		caddr_t resultsp, resultproc_t eachresult);
6910Sstevel@tonic-gateAUTH *authdes_create(char *servername, uint_t window,
6920Sstevel@tonic-gate		struct sockaddr_in *syncaddr, des_block *ckey);
6930Sstevel@tonic-gate
6940Sstevel@tonic-gate/* rpc_td.c */
6950Sstevel@tonic-gate
6960Sstevel@tonic-gate/* rpcb_clnt.c */
6970Sstevel@tonic-gatebool_t __rpc_control(int request, void *info);
6980Sstevel@tonic-gatebool_t rpcb_set(rpcprog_t program, rpcvers_t version,
6990Sstevel@tonic-gate		const struct netconfig *nconf, const struct netbuf *address);
7000Sstevel@tonic-gatebool_t rpcb_unset(rpcprog_t program, rpcvers_t version,
7010Sstevel@tonic-gate		const struct netconfig *nconf);
7020Sstevel@tonic-gateint rpcb_getaddr(rpcprog_t program, rpcvers_t version,
7030Sstevel@tonic-gate		const struct netconfig *nconf, struct netbuf *address,
7040Sstevel@tonic-gate		const char *host);
7050Sstevel@tonic-gaterpcblist *rpcb_getmaps(const struct netconfig *nconf, const char *host);
7060Sstevel@tonic-gateenum clnt_stat rpcb_rmtcall(const struct netconfig *nconf, const char *host,
7070Sstevel@tonic-gate		rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
7080Sstevel@tonic-gate		xdrproc_t xdrargs, caddr_t argsp, xdrproc_t xdrres,
7090Sstevel@tonic-gate		caddr_t resp, struct timeval tout,
7100Sstevel@tonic-gate		struct netbuf *addr_ptr);
7110Sstevel@tonic-gatebool_t rpcb_gettime(const char *host, time_t *timep);
7120Sstevel@tonic-gatechar *rpcb_taddr2uaddr(struct netconfig *nconf, struct netbuf *taddr);
7130Sstevel@tonic-gatestruct netbuf *rpcb_uaddr2taddr(struct netconfig *nconf, char *uaddr);
7140Sstevel@tonic-gate
7150Sstevel@tonic-gate/* rpcb_prot.c */
7160Sstevel@tonic-gatebool_t xdr_rpcb(XDR *xdrs, RPCB *objp);
7170Sstevel@tonic-gatebool_t xdr_rpcblist_ptr(XDR *xdrs, rpcblist_ptr *rp);
7180Sstevel@tonic-gatebool_t xdr_rpcblist(XDR *xdrs, RPCBLIST **rp);
7190Sstevel@tonic-gatebool_t xdr_rpcb_entry(XDR *xdrs, rpcb_entry *objp);
7200Sstevel@tonic-gatebool_t xdr_rpcb_entry_list_ptr(XDR *xdrs, rpcb_entry_list_ptr *rp);
7210Sstevel@tonic-gatebool_t xdr_rpcb_rmtcallargs(XDR *xdrs, struct r_rpcb_rmtcallargs *objp);
7220Sstevel@tonic-gatebool_t xdr_rpcb_rmtcallres(XDR *xdrs, struct r_rpcb_rmtcallres *objp);
7230Sstevel@tonic-gatebool_t xdr_netbuf(XDR *xdrs, struct netbuf *objp);
7240Sstevel@tonic-gate
7250Sstevel@tonic-gate/* rpcb_st_xdr.c */
7260Sstevel@tonic-gatebool_t xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp);
7270Sstevel@tonic-gatebool_t xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp);
7280Sstevel@tonic-gate
7290Sstevel@tonic-gatebool_t xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp);
7300Sstevel@tonic-gatebool_t xdr_rpcbs_proc(XDR *xdrs, rpcbs_proc objp);
7310Sstevel@tonic-gatebool_t xdr_rpcbs_addrlist_ptr(XDR *xdrs, rpcbs_addrlist_ptr *objp);
7320Sstevel@tonic-gatebool_t xdr_rpcbs_rmtcalllist_ptr(XDR *xdrs, rpcbs_rmtcalllist_ptr *objp);
7330Sstevel@tonic-gatebool_t xdr_rpcb_stat(XDR *xdrs, rpcb_stat *objp);
7340Sstevel@tonic-gatebool_t xdr_rpcb_stat_byvers(XDR *xdrs, rpcb_stat_byvers objp);
7350Sstevel@tonic-gate
7360Sstevel@tonic-gate/* rpcdname.c */
7370Sstevel@tonic-gateint __rpc_get_default_domain(char **domain);
7380Sstevel@tonic-gate
7390Sstevel@tonic-gate/* rpcsec_gss_if.c */
7400Sstevel@tonic-gateAUTH *rpc_gss_seccreate(CLIENT *clnt, char *principal, char *mechanism,
7410Sstevel@tonic-gate		rpc_gss_service_t service_type, char *qop,
7420Sstevel@tonic-gate		rpc_gss_options_req_t *options_req,
7430Sstevel@tonic-gate		rpc_gss_options_ret_t *options_ret);
7440Sstevel@tonic-gatebool_t rpc_gss_set_defaults(AUTH *auth, rpc_gss_service_t service, char *qop);
7450Sstevel@tonic-gatebool_t rpc_gss_get_principal_name(rpc_gss_principal_t *principal, char
7460Sstevel@tonic-gate		*mechanism, char *user_name, char *node, char *secdomain);
7470Sstevel@tonic-gatechar **rpc_gss_get_mechanisms(void);
7480Sstevel@tonic-gatechar **rpc_gss_get_mech_info(char *mechanism, rpc_gss_service_t *service);
7490Sstevel@tonic-gatebool_t rpc_gss_get_versions(u_int *vers_hi, u_int *vers_lo);
7500Sstevel@tonic-gatebool_t rpc_gss_is_installed(char *mechanism);
7510Sstevel@tonic-gatebool_t rpc_gss_set_svc_name(char *principal, char *mechanism, uint_t req_time,
7520Sstevel@tonic-gate		uint_t program, uint_t version);
7530Sstevel@tonic-gatebool_t rpc_gss_set_callback(rpc_gss_callback_t *cb);
7540Sstevel@tonic-gatebool_t rpc_gss_getcred(struct svc_req *req, rpc_gss_rawcred_t **rcred,
7550Sstevel@tonic-gate		rpc_gss_ucred_t **ucred, void **cookie);
7560Sstevel@tonic-gatebool_t rpc_gss_mech_to_oid(char *mech, rpc_gss_OID *oid);
7570Sstevel@tonic-gatebool_t rpc_gss_qop_to_num(char *qop, char *mech, u_int *num);
7580Sstevel@tonic-gateint rpc_gss_max_data_length(AUTH *rpcgss_handle, int max_tp_unit_len);
7590Sstevel@tonic-gateint rpc_gss_svc_max_data_length(struct svc_req *req, int max_tp_unit_len);
7600Sstevel@tonic-gatevoid rpc_gss_get_error(rpc_gss_error_t *error);
7610Sstevel@tonic-gate
7620Sstevel@tonic-gate/* rtime_tli.c */
7630Sstevel@tonic-gateint rtime_tli(char *host, struct timeval *timep, struct timeval *timeout);
7640Sstevel@tonic-gate
7650Sstevel@tonic-gate/* svc.c */
7660Sstevel@tonic-gatevoid xprt_register(const SVCXPRT *xprt);
7670Sstevel@tonic-gatevoid xprt_unregister(const SVCXPRT *xprt);
7680Sstevel@tonic-gatebool_t svc_reg(const SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers,
7690Sstevel@tonic-gate		void (*dispatch)(), const struct netconfig *nconf);
7700Sstevel@tonic-gatevoid svc_unreg(rpcprog_t prog, rpcvers_t vers);
7710Sstevel@tonic-gatebool_t svc_register(SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers,
7720Sstevel@tonic-gate		void (*dispatch)(), int protocol);
7730Sstevel@tonic-gatevoid svc_unregister(rpcprog_t prog, rpcvers_t vers);
7740Sstevel@tonic-gatebool_t svc_sendreply(const SVCXPRT *xprt, xdrproc_t xdr_results,
7750Sstevel@tonic-gate		caddr_t xdr_location);
7760Sstevel@tonic-gatevoid svcerr_noproc(const SVCXPRT *xprt);
7770Sstevel@tonic-gatevoid svcerr_decode(const SVCXPRT *xprt);
7780Sstevel@tonic-gatevoid svcerr_systemerr(const SVCXPRT *xprt);
7790Sstevel@tonic-gatevoid svcerr_auth(const SVCXPRT *xprt, enum auth_stat why);
7800Sstevel@tonic-gatevoid svcerr_weakauth(const SVCXPRT *xprt);
7810Sstevel@tonic-gatevoid svcerr_noprog(const SVCXPRT *xprt);
7820Sstevel@tonic-gatevoid svcerr_progvers(const SVCXPRT *xprt, rpcvers_t low_vers,
7830Sstevel@tonic-gate		rpcvers_t high_vers);
7840Sstevel@tonic-gatevoid svc_getreq(int rdfds);
7850Sstevel@tonic-gatevoid svc_getreqset(fd_set *readfds);
7860Sstevel@tonic-gatevoid svc_getreq_poll(struct pollfd *pfdp, int pollretval);
7870Sstevel@tonic-gatevoid svc_getreq_common(int fd);
7880Sstevel@tonic-gateSVCXPRT *svc_xprt_alloc(void);
7890Sstevel@tonic-gatevoid svc_xprt_free(SVCXPRT *xprt);
7900Sstevel@tonic-gatebool_t svc_get_local_cred(SVCXPRT *xprt, svc_local_cred_t *lcred);
7910Sstevel@tonic-gateSVCAUTH *__svc_get_svcauth(SVCXPRT *);
7920Sstevel@tonic-gatevoid *__svc_set_proc_cleanup_cb(void *cb);
7930Sstevel@tonic-gate
7940Sstevel@tonic-gate/* svc_auth.c */
7950Sstevel@tonic-gateenum auth_stat __authenticate(struct svc_req *rqst, struct rpc_msg *msg);
7960Sstevel@tonic-gateint svc_auth_reg(int cred_flavor, enum auth_stat (*handler)());
7970Sstevel@tonic-gate
7980Sstevel@tonic-gate/* svc_auth_sys.c */
7990Sstevel@tonic-gate
8000Sstevel@tonic-gate/* svc_dg.c */
8010Sstevel@tonic-gateSVCXPRT *svc_dg_create(int fd, uint_t sendsize, uint_t recvsize);
8020Sstevel@tonic-gateint svc_dg_enablecache(SVCXPRT *xprt, uint_t size);
8030Sstevel@tonic-gate
8040Sstevel@tonic-gate/* svc_door.c */
8050Sstevel@tonic-gateSVCXPRT *svc_door_create(void (*dispatch)(), rpcprog_t prognum,
8060Sstevel@tonic-gate			rpcvers_t versnum, uint_t sendsize);
8070Sstevel@tonic-gate
8080Sstevel@tonic-gate/* svc_generic.c */
8090Sstevel@tonic-gateint svc_create(void (*dispatch)(), rpcprog_t prognum, rpcvers_t versnum,
8100Sstevel@tonic-gate			const char *nettype);
8110Sstevel@tonic-gateSVCXPRT *svc_tp_create(void (*dispatch)(), rpcprog_t prognum, rpcvers_t versnum,
8120Sstevel@tonic-gate			const struct netconfig *nconf);
8130Sstevel@tonic-gateSVCXPRT *svc_tli_create(int fd, const struct netconfig *nconf,
8140Sstevel@tonic-gate			const struct t_bind *bindaddr, uint_t sendsz,
8150Sstevel@tonic-gate			uint_t recvsz);
8160Sstevel@tonic-gate
8170Sstevel@tonic-gate/* svc_raw.c */
8180Sstevel@tonic-gateSVCXPRT *svc_raw_create(void);
8190Sstevel@tonic-gate
8200Sstevel@tonic-gate/* svc_run.c */
8210Sstevel@tonic-gatevoid svc_run(void);
8220Sstevel@tonic-gatevoid svc_exit(void);
8230Sstevel@tonic-gatevoid svc_done(SVCXPRT *xprt);
8240Sstevel@tonic-gatebool_t rpc_control(int op, void *info);
8250Sstevel@tonic-gate
8260Sstevel@tonic-gate/* svc_simple.c */
8270Sstevel@tonic-gateint rpc_reg(rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
8280Sstevel@tonic-gate		char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc,
8290Sstevel@tonic-gate		const char *nettype);
8300Sstevel@tonic-gate
8310Sstevel@tonic-gate/* svc_vc.c */
8320Sstevel@tonic-gateSVCXPRT *svc_vc_create(int fd, uint_t sendsize, uint_t recvsize);
8330Sstevel@tonic-gateSVCXPRT *svc_fd_create(int fd, uint_t sendsize, uint_t recvsize);
8340Sstevel@tonic-gatevoid __svc_nisplus_fdcleanup_hack(void);
8350Sstevel@tonic-gatevoid __svc_nisplus_enable_timestamps(void);
8360Sstevel@tonic-gatevoid __svc_nisplus_purge_since(long since);
8370Sstevel@tonic-gatebool_t __svc_vc_dupcache_init(SVCXPRT *xprt, void *condition, int basis);
8380Sstevel@tonic-gateint __svc_vc_dup(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz);
8390Sstevel@tonic-gateint __svc_vc_dupdone(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz,
8400Sstevel@tonic-gate				int status);
8410Sstevel@tonic-gate
8420Sstevel@tonic-gate/* svcauth_des.c */
8430Sstevel@tonic-gateint authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid,
8440Sstevel@tonic-gate				short *grouplen, gid_t *groups);
8450Sstevel@tonic-gateenum auth_stat __svcauth_des(struct svc_req *rqst, struct rpc_msg *msg);
8460Sstevel@tonic-gate
8470Sstevel@tonic-gate/* ti_opts.c */
8480Sstevel@tonic-gateint __rpc_negotiate_uid(int fd);
8490Sstevel@tonic-gateint __rpc_get_local_uid(SVCXPRT *trans, uid_t *uid_out);
8500Sstevel@tonic-gate
8510Sstevel@tonic-gate/* xdr.c */
8520Sstevel@tonic-gatevoid xdr_free(xdrproc_t proc, char *objp);
8530Sstevel@tonic-gatebool_t xdr_void(void);
8540Sstevel@tonic-gatebool_t xdr_int(XDR *xdrs, int *ip);
8550Sstevel@tonic-gatebool_t xdr_u_int(XDR *xdrs, uint_t *up);
8560Sstevel@tonic-gatebool_t xdr_long(XDR *xdrs, long *lp);
8570Sstevel@tonic-gatebool_t xdr_u_long(XDR *xdrs, ulong_t *ulp);
8580Sstevel@tonic-gatebool_t xdr_short(XDR *xdrs, short *sp);
8590Sstevel@tonic-gatebool_t xdr_u_short(XDR *xdrs, ushort_t *sp);
8600Sstevel@tonic-gatebool_t xdr_char(XDR *xdrs, char *cp);
8610Sstevel@tonic-gatebool_t xdr_u_char(XDR *xdrs, uchar_t *cp);
8620Sstevel@tonic-gatebool_t xdr_bool(XDR *xdrs, bool_t *bp);
8630Sstevel@tonic-gatebool_t xdr_enum(XDR *xdrs, enum_t *ep);
8640Sstevel@tonic-gatebool_t xdr_opaque(XDR *xdrs, caddr_t cp, uint_t cnt);
8650Sstevel@tonic-gatebool_t xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, uint_t maxsize);
8660Sstevel@tonic-gatebool_t xdr_netobj(XDR *xdrs, struct netobj *np);
8670Sstevel@tonic-gatebool_t xdr_union(XDR *xdrs, enum_t *dscmp, char *unp,
8680Sstevel@tonic-gate			const struct xdr_discrim *choices, xdrproc_t dfault);
8690Sstevel@tonic-gatebool_t xdr_string(XDR *xdrs, char **cpp, uint_t maxsize);
8700Sstevel@tonic-gatebool_t xdr_hyper(XDR *xdrs, longlong_t *hp);
8710Sstevel@tonic-gatebool_t xdr_u_hyper(XDR *xdrs, u_longlong_t *hp);
8720Sstevel@tonic-gatebool_t xdr_longlong_t(XDR *xdrs, longlong_t *hp);
8730Sstevel@tonic-gatebool_t xdr_u_longlong_t(XDR *xdrs, u_longlong_t *hp);
8740Sstevel@tonic-gatebool_t xdr_ulonglong_t(XDR *xdrs, u_longlong_t *hp);
8750Sstevel@tonic-gatebool_t xdr_wrapstring(XDR *xdrs, char **cpp);
8760Sstevel@tonic-gate
8770Sstevel@tonic-gate/* xdr_array.c */
8780Sstevel@tonic-gatebool_t xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize,
8790Sstevel@tonic-gate				uint_t elsize, xdrproc_t elproc);
8800Sstevel@tonic-gatebool_t xdr_vector(XDR *xdrs, char *basep, uint_t nelem, uint_t elemsize,
8810Sstevel@tonic-gate				xdrproc_t xdr_elem);
8820Sstevel@tonic-gate
8830Sstevel@tonic-gate/* xdr_float.c */
8840Sstevel@tonic-gatebool_t xdr_float(XDR *xdrs, float *fp);
8850Sstevel@tonic-gatebool_t xdr_double(XDR *xdrs, double *dp);
8860Sstevel@tonic-gatebool_t xdr_quadruple(XDR *xdrs, long double *fp);
8870Sstevel@tonic-gate
8880Sstevel@tonic-gate/* xdr_mem.c */
8890Sstevel@tonic-gatevoid xdrmem_create(XDR *xdrs, caddr_t addr, uint_t size, enum xdr_op op);
8900Sstevel@tonic-gate
8910Sstevel@tonic-gate/* xdr_rec.c */
8920Sstevel@tonic-gatevoid xdrrec_create(XDR *xdrs, uint_t sendsize, uint_t recvsize,
8930Sstevel@tonic-gate			caddr_t tcp_handle, int (*readit)(), int (*writeit)());
8940Sstevel@tonic-gate
8950Sstevel@tonic-gateuint_t xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l);
8960Sstevel@tonic-gatebool_t xdrrec_skiprecord(XDR *xdrs);
8970Sstevel@tonic-gatebool_t xdrrec_eof(XDR *xdrs);
8980Sstevel@tonic-gatebool_t xdrrec_endofrecord(XDR *xdrs, bool_t sendnow);
8990Sstevel@tonic-gate
9000Sstevel@tonic-gate/* xdr_refer.c */
9010Sstevel@tonic-gatebool_t xdr_reference(XDR *xdrs, caddr_t *pp, uint_t size, xdrproc_t proc);
9020Sstevel@tonic-gatebool_t xdr_pointer(XDR *xdrs, char **objpp, uint_t obj_size, xdrproc_t xdr_obj);
9030Sstevel@tonic-gate
9040Sstevel@tonic-gate/* xdr_sizeof.c */
9050Sstevel@tonic-gateunsigned int xdr_sizeof(xdrproc_t func, void *data);
9060Sstevel@tonic-gate
9070Sstevel@tonic-gate/* xdr_stdio.c */
9080Sstevel@tonic-gatevoid xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op);
9090Sstevel@tonic-gate
9100Sstevel@tonic-gate/* svid_funcs.c */
9110Sstevel@tonic-gate#undef	auth_destroy
9120Sstevel@tonic-gate#undef	clnt_call
9130Sstevel@tonic-gate#undef	clnt_control
9140Sstevel@tonic-gate#undef	clnt_destroy
9150Sstevel@tonic-gate#undef	clnt_freeres
9160Sstevel@tonic-gate#undef	clnt_geterr
9170Sstevel@tonic-gate#undef	svc_destroy
9180Sstevel@tonic-gate#undef	svc_freeargs
9190Sstevel@tonic-gate#undef	svc_getargs
9200Sstevel@tonic-gate#undef	svc_getrpccaller
9210Sstevel@tonic-gate#undef	xdr_destroy
9220Sstevel@tonic-gate#undef	xdr_getpos
9230Sstevel@tonic-gate#undef	xdr_inline
9240Sstevel@tonic-gate#undef	xdr_setpos
9250Sstevel@tonic-gatevoid auth_destroy(AUTH *auth);
9260Sstevel@tonic-gateenum clnt_stat clnt_call(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs,
9270Sstevel@tonic-gate			caddr_t argsp, xdrproc_t xres, caddr_t resp,
9280Sstevel@tonic-gate			struct timeval timeout);
9290Sstevel@tonic-gatebool_t clnt_control(CLIENT *cl, uint_t rq, void *in);
9300Sstevel@tonic-gatevoid clnt_destroy(CLIENT *cl);
9310Sstevel@tonic-gatebool_t clnt_freeres(CLIENT *cl, xdrproc_t xres, caddr_t resp);
9320Sstevel@tonic-gatevoid clnt_geterr(CLIENT *cl, struct rpc_err *errp);
9330Sstevel@tonic-gatebool_t svc_control(SVCXPRT *xprt, const uint_t rq, void *in);
9340Sstevel@tonic-gatebool_t svc_freeargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp);
9350Sstevel@tonic-gatebool_t svc_getargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp);
9360Sstevel@tonic-gatestruct netbuf *svc_getrpccaller(SVCXPRT *xprt);
9370Sstevel@tonic-gatelong *xdr_inline(XDR *xdrs, int len);
9380Sstevel@tonic-gatevoid xdr_destroy(XDR *xdrs);
9390Sstevel@tonic-gateuint_t xdr_getpos(XDR *xdrs);
9400Sstevel@tonic-gatebool_t xdr_setpos(XDR *xdrs, uint_t pos);
9410Sstevel@tonic-gate
9420Sstevel@tonic-gate/*
9430Sstevel@tonic-gate * usr/src/lib/libnsl/saf routines
9440Sstevel@tonic-gate */
9450Sstevel@tonic-gate
9460Sstevel@tonic-gate/* checkver.c */
9470Sstevel@tonic-gateint check_version(int ver, char *fname);
9480Sstevel@tonic-gate
9490Sstevel@tonic-gate/* doconfig.c */
9500Sstevel@tonic-gateint doconfig(int fd, char *script, long rflag);
9510Sstevel@tonic-gate
9520Sstevel@tonic-gate/*
9530Sstevel@tonic-gate * usr/src/lib/libnsl/yp routines
9540Sstevel@tonic-gate */
9550Sstevel@tonic-gate
9560Sstevel@tonic-gate/* dbm.c */
9570Sstevel@tonic-gateint dbminit(char *file);
9580Sstevel@tonic-gateint dbmclose(void);
9590Sstevel@tonic-gatedatum fetch(datum key);
9600Sstevel@tonic-gateint delete(datum key);
9610Sstevel@tonic-gateint store(datum key, datum dat);
9620Sstevel@tonic-gatedatum firstkey(void);
9630Sstevel@tonic-gatedatum nextkey(datum key);
9640Sstevel@tonic-gatedatum firsthash(long hash);
9650Sstevel@tonic-gatedatum makdatum(char *buf, int n);
9660Sstevel@tonic-gatelong hashinc(long hash);
9670Sstevel@tonic-gatelong calchash(datum item);
9680Sstevel@tonic-gate
9690Sstevel@tonic-gate/* yp_all.c */
9700Sstevel@tonic-gateint yp_all(char *domain, char *map, struct ypall_callback *callback);
9710Sstevel@tonic-gateint __yp_all_rsvdport(char *domain, char *map, struct ypall_callback *callback);
9720Sstevel@tonic-gate
9730Sstevel@tonic-gate/* yp_b_clnt.c */
9740Sstevel@tonic-gateenum ypbind_resptype {
9750Sstevel@tonic-gate	YPBIND_SUCC_VAL = 1,
9760Sstevel@tonic-gate	YPBIND_FAIL_VAL = 2
9770Sstevel@tonic-gate};
9780Sstevel@tonic-gatetypedef enum ypbind_resptype ypbind_resptype;
9790Sstevel@tonic-gatestruct ypbind_resp {
9800Sstevel@tonic-gate	ypbind_resptype ypbind_status;
9810Sstevel@tonic-gate	union {
9820Sstevel@tonic-gate		uint_t ypbind_error;
9830Sstevel@tonic-gate		struct ypbind_binding *ypbind_bindinfo;
9840Sstevel@tonic-gate	} ypbind_resp_u;
9850Sstevel@tonic-gate};
9860Sstevel@tonic-gatetypedef struct ypbind_resp ypbind_resp;
9870Sstevel@tonic-gatestruct ypbind_domain {
9880Sstevel@tonic-gate	char *ypbind_domainname;
9890Sstevel@tonic-gate	rpcvers_t ypbind_vers;
9900Sstevel@tonic-gate};
9910Sstevel@tonic-gatetypedef struct ypbind_domain ypbind_domain;
9920Sstevel@tonic-gatestruct ypbind_setdom {
9930Sstevel@tonic-gate	char *ypsetdom_domain;
9940Sstevel@tonic-gate	struct ypbind_binding *ypsetdom_bindinfo;
9950Sstevel@tonic-gate};
9960Sstevel@tonic-gatetypedef struct ypbind_setdom ypbind_setdom;
9970Sstevel@tonic-gateypbind_resp *ypbindproc_domain_3(ypbind_domain *argp, CLIENT *clnt);
9980Sstevel@tonic-gate
9990Sstevel@tonic-gate/* yp_b_xdr.c */
10000Sstevel@tonic-gatebool_t xdr_ypbind_domain(XDR *xdrs, ypbind_domain *objp);
10010Sstevel@tonic-gatebool_t xdr_ypbind_resp(XDR *xdrs, ypbind_resp *objp);
10020Sstevel@tonic-gatebool_t xdr_ypbind_setdom(XDR *xdrs, ypbind_setdom *objp);
10030Sstevel@tonic-gatebool_t xdr_ypbind_resptype(XDR *xdrs, ypbind_resptype *objp);
10040Sstevel@tonic-gate
10050Sstevel@tonic-gate/* yp_bind.c */
10060Sstevel@tonic-gatestruct dom_binding {
10070Sstevel@tonic-gate	struct dom_binding *dom_pnext;
10080Sstevel@tonic-gate	char *dom_domain;
10090Sstevel@tonic-gate	struct ypbind_binding *dom_binding;
10100Sstevel@tonic-gate	CLIENT *dom_client;
10110Sstevel@tonic-gate	int cache_bad;
10120Sstevel@tonic-gate	int fd;
10130Sstevel@tonic-gate	dev_t rdev;
10140Sstevel@tonic-gate	int ref_count;
10150Sstevel@tonic-gate	int need_free;
10160Sstevel@tonic-gate	mutex_t server_name_lock;
10170Sstevel@tonic-gate};
10180Sstevel@tonic-gateint __yp_dobind(char *domain, struct dom_binding **binding);
10190Sstevel@tonic-gateint __yp_rel_binding(struct dom_binding *binding);
10200Sstevel@tonic-gatevoid yp_unbind(char *domain);
10210Sstevel@tonic-gateint __yp_add_binding(char *domain, char *addr);
10220Sstevel@tonic-gateint yp_bind(char *domain);
10230Sstevel@tonic-gateint yp_get_default_domain(char **domain);
10240Sstevel@tonic-gateint usingypmap(char **ddn, char *map);
10250Sstevel@tonic-gateCLIENT *__clnt_create_loopback(rpcprog_t prog, rpcvers_t vers, int err);
10260Sstevel@tonic-gate
10270Sstevel@tonic-gate/* yp_enum.c */
10280Sstevel@tonic-gateint yp_first(char *domain, char *map, char **key, int *keylen,
10290Sstevel@tonic-gate					char **val, int  *vallen);
10300Sstevel@tonic-gateint yp_next(char *domain, char *map, char *inkey, int inkeylen,
10310Sstevel@tonic-gate		char **outkey, int  *outkeylen, char **val, int *vallen);
10320Sstevel@tonic-gate
10330Sstevel@tonic-gate/* yp_master.c */
10340Sstevel@tonic-gateint yp_master(char *domain, char *map, char **master);
10350Sstevel@tonic-gateint __yp_master_rsvdport(char *domain, char *map, char **master);
10360Sstevel@tonic-gate
10370Sstevel@tonic-gate/* yp_match.c */
10380Sstevel@tonic-gateint yp_match(char *domain, char *map, char *key, int keylen,
10390Sstevel@tonic-gate						char **val, int  *vallen);
10400Sstevel@tonic-gateint yp_match_rsvdport(char *domain, char *map, char *key, int keylen,
10410Sstevel@tonic-gate						char **val, int  *vallen);
10420Sstevel@tonic-gatevoid __empty_yp_cache(void);
10430Sstevel@tonic-gate
10440Sstevel@tonic-gate/* yp_order.c */
10450Sstevel@tonic-gateint yp_order(char *domain, char *map, unsigned long *order);
10460Sstevel@tonic-gate
10470Sstevel@tonic-gate/* yp_rsvd.c */
10480Sstevel@tonic-gateCLIENT *__yp_clnt_create_rsvdport(const char *hostname,
10490Sstevel@tonic-gate			rpcprog_t prog, rpcvers_t vers,
10500Sstevel@tonic-gate			const char *nettype,
10510Sstevel@tonic-gate			const uint_t sendsz, const uint_t recvsz);
10520Sstevel@tonic-gate
10530Sstevel@tonic-gate/* yp_update.c */
10540Sstevel@tonic-gateint yp_update(char *domain, char *map, unsigned op,
10550Sstevel@tonic-gate			char *key, int keylen, char *data, int datalen);
10560Sstevel@tonic-gate
10570Sstevel@tonic-gate/* yp_xdr.c */
10580Sstevel@tonic-gatebool xdr_datum(XDR * xdrs, datum *pdatum);
10590Sstevel@tonic-gatebool xdr_ypdomain_wrap_string(XDR *xdrs, char **ppstring);
10600Sstevel@tonic-gatebool xdr_ypmap_wrap_string(XDR *xdrs, char **ppstring);
10610Sstevel@tonic-gatebool xdr_ypreq_key(XDR *xdrs, struct ypreq_key *ps);
10620Sstevel@tonic-gatebool xdr_ypreq_nokey(XDR *xdrs, struct ypreq_nokey *ps);
10630Sstevel@tonic-gatebool xdr_ypresp_val(XDR *xdrs, struct ypresp_val *ps);
10640Sstevel@tonic-gatebool xdr_ypresp_key_val(XDR *xdrs, struct ypresp_key_val *ps);
10650Sstevel@tonic-gatebool xdr_ypowner_wrap_string(XDR *xdrs, char **ppstring);
10660Sstevel@tonic-gatebool xdr_ypmap_parms(XDR *xdrs, struct ypmap_parms *ps);
10670Sstevel@tonic-gatebool xdr_ypresp_master(XDR *xdrs, struct ypresp_master *ps);
10680Sstevel@tonic-gatebool xdr_ypresp_order(XDR * xdrs, struct ypresp_order *ps);
10690Sstevel@tonic-gatebool xdr_ypresp_maplist(XDR *xdrs, struct ypresp_maplist *ps);
10700Sstevel@tonic-gatebool xdr_yppushresp_xfr(XDR *xdrs, struct yppushresp_xfr *ps);
10710Sstevel@tonic-gatebool xdr_ypreq_newxfr(XDR *xdrs, struct ypreq_newxfr *ps);
10720Sstevel@tonic-gatebool xdr_ypreq_xfr(XDR *xdrs, struct ypreq_xfr *ps);
10730Sstevel@tonic-gatebool xdr_ypall(XDR *xdrs, struct ypall_callback *callback);
10740Sstevel@tonic-gate
10750Sstevel@tonic-gate/* yperr_string.c */
10760Sstevel@tonic-gatechar *yperr_string(int code);
10770Sstevel@tonic-gate
10780Sstevel@tonic-gate/* yppasswd_xdr.c */
10790Sstevel@tonic-gatebool_t xdr_yppasswd(XDR *xdrsp, struct yppasswd *pp);
10800Sstevel@tonic-gate
10810Sstevel@tonic-gate/* ypprot_err.c */
10820Sstevel@tonic-gateint ypprot_err(int yp_protocol_error);
10830Sstevel@tonic-gate
10840Sstevel@tonic-gate/* ypupd.c */
10850Sstevel@tonic-gatebool_t xdr_yp_buf(XDR *xdrs, yp_buf *objp);
10860Sstevel@tonic-gatebool_t xdr_ypupdate_args(XDR *xdrs, ypupdate_args *objp);
10870Sstevel@tonic-gatebool_t xdr_ypdelete_args(XDR *xdrs, ypdelete_args *objp);
10880Sstevel@tonic-gate
10890Sstevel@tonic-gate/* nis_sec_mechs.c */
10900Sstevel@tonic-gatechar *__nis_keyalg2authtype(keylen_t keylen, algtype_t algtype,
10910Sstevel@tonic-gate	char *authtype, size_t authtype_len);
10922830Sdjl
10932830Sdjl/* usr/src/lib/libnsl/nss/parse.c */
10942830Sdjlchar *_strtok_escape(char *string, char *sepset, char **lasts);
1095