8354 sync regcomp(3C) with upstream (fix make catalog)
[unleashed/tickless.git] / usr / src / lib / libnsl / common / llib-lnsl
blob46f74824eb08457cd41c6169db5c719c681e8cf3
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  */
23  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  *
26  * Copyright 2016 Nexenta Systems, Inc.
27  */
30 /* LINTLIBRARY */
31 /* PROTOLIB1 */
33 #include <sys/types.h>
34 #include <thread.h>
35 #include <synch.h>
36 #include <fcntl.h>
37 #include <sys/des.h>
38 #include <des/softdes.h>
39 #include <des/desdata.h>
40 #include <rpc/rpc.h>
41 #include <rpc/key_prot.h>
42 #include <rpc/des_crypt.h>
43 #include <rpc/pmap_prot.h>
44 #include <sys/ioctl.h>
45 #include <netdir.h>
46 #include <nss_netdir.h>
47 #include <nss_dbdefs.h>
48 #include <sac.h>
49 #include <netconfig.h>
50 #include <ndbm.h>
51 #include <rpcsvc/yp_prot.h>
52 #include <rpcsvc/ypclnt.h>
53 #include <rpcsvc/yppasswd.h>
54 #include <rpcsvc/ypupd.h>
55 #include <rpcsvc/nis.h>
56 #include <rpcsvc/nislib.h>
57 #include <sys/stream.h>
58 #include <sys/stropts.h>
59 #include <sys/tihdr.h>
60 #include <sys/timod.h>
61 #include <tiuser.h>
65  * Declare t_errno, even though this file is compiled '_REENTRANT'.  This
66  * way t_errno is defined in the lint library, which is used for programs
67  * compiled with _REENTRANT and those compiled without it.
68  */
69 #ifdef t_errno
70 #undef t_errno
71 #endif
72 extern int t_errno;
75  * usr/src/lib/libnsl/common routines
76  */
78 /* common.c */
81  * usr/src/lib/libnsl/des routines
82  */
84 /* des_crypt.c */
85 int cbc_crypt(char *key, char *buf, size_t len, uint_t mode, char *ivec);
86 int ecb_crypt(char *key, char *buf, size_t len, uint_t mode);
88 /* des_soft.c */
89 void des_setparity(char *p);
90 int __des_crypt(char *buf, unsigned len, struct desparams *desp);
92 /* intl_crypt.c */
94 /* intl_soft.c */
95 int _des_crypt(char *buf, unsigned len, struct desparams *desp);
98  * usr/src/lib/libnsl/dial routines
99  */
101 /* callers.c */
103 /* conn.c */
105 /* dial.c */
106 void undial(int fd);
108 /* getargs.c */
110 /* interface.c */
112 /* line.c */
114 /* stoa.c */
116 /* strecpy.c */
118 /* strsave.c */
120 /* sysfiles.c */
122 /* ulockf.c */
124 /* uucpdefs.c */
127  * usr/src/lib/libnsl/key routines
128  */
130 /* gen_dhkeys.c */
131 void __gen_dhkeys(char *public, char *secret, char *pass);
133 /* publickey.c */
134 int getpublickey(const char *netname, char *pkey);
135 int __getpublickey_cached(char *netname, char *pkey, int *from_cache);
136 void __getpublickey_flush(const char *netname);
137 int getsecretkey(const char *netname, char *skey, const char *passwd);
139 /* xcrypt.c */
140 int xencrypt(char *secret, char *passwd);
141 int xdecrypt(char *secret, char *passwd);
142 int passwd2des(char *pw, char *key);
145  * usr/src/lib/libnsl/netdir routines
146  */
148 /* netdir.c */
149 int *__nderror(void);
150 int netdir_getbyname(struct netconfig *tp, struct nd_hostserv *serv,
151                                 struct nd_addrlist **addrs);
152 int netdir_getbyaddr(struct netconfig *tp, struct nd_hostservlist **serv,
153                                 struct netbuf *addr);
154 int __netdir_getbyaddr_nosrv(struct netconfig *tp,
155                                 struct nd_hostservlist **serv,
156                                 struct netbuf *addr);
157 int netdir_options(struct netconfig *tp, int option, int fd, char *par);
158 struct netbuf *uaddr2taddr(struct netconfig *tp, char *addr);
159 char *taddr2uaddr(struct netconfig *tp, struct netbuf *addr);
160 void netdir_free(void *ptr, int type);
161 char *netdir_sperror(void);
162 void netdir_perror(char *s);
165  * usr/src/lib/libnsl/netselect routines
166  */
168 /* netselect.c */
169 void *setnetconfig(void);
170 int endnetconfig(void *vdata);
171 struct netconfig *getnetconfig(void *vdata);
172 struct netconfig *getnetconfigent(const char *netid);
173 void freenetconfigent(struct netconfig *netp);
174 void *setnetpath(void);
175 int endnetpath(void *vdata);
176 struct netconfig *getnetpath(void *vdata);
177 char *nc_sperror(void);
178 void nc_perror(const char *string);
181  * usr/src/lib/libnsl/nis/gen routines
182  */
184 /* nis_subr.c */
185 name_pos nis_dir_cmp(nis_name n1, nis_name n2);
186 nis_name nis_local_group(void);
187 nis_name nis_domain_of(char *s);
188 nis_name nis_leaf_of_r(const nis_name  s, char *buf, size_t bufsize);
189 nis_name nis_leaf_of(char *s);
190 nis_name nis_name_of(char *s);
191 nis_name nis_local_directory(void);
192 nis_name nis_local_host(void);
193 void nis_destroy_object(nis_object *obj);
194 nis_object *nis_clone_object(nis_object *obj, nis_object *dest);
195 nis_object *nis_read_obj(char *f);
196 int nis_write_obj(char *f, nis_object *o);
197 void *nis_get_static_storage(struct nis_sdata *bs, u_int el, u_int nel);
199  * char *nis_old_data(char *s);
200  * char *nis_data(char *s);
201  */
203 /* nis_xdr.c */
204 bool_t xdr_nis_attr(XDR *xdrs, nis_attr *objp);
205 bool_t xdr_nis_name(XDR *xdrs, nis_name *objp);
206 bool_t xdr_endpoint(XDR *xdrs, endpoint *objp);
207 bool_t xdr_nis_server(XDR *xdrs, nis_server *objp);
208 bool_t xdr_directory_obj(XDR *xdrs, directory_obj *objp);
209 bool_t xdr_entry_obj(XDR *xdrs, entry_obj *objp);
210 bool_t xdr_table_obj(XDR *xdrs, table_obj *objp);
211 bool_t xdr_objdata(XDR *xdrs, objdata *objp);
212 bool_t xdr_nis_oid(XDR *xdrs, nis_oid *objp);
213 bool_t xdr_nis_object(XDR *xdrs, nis_object *objp);
214 bool_t xdr_nis_object(XDR *xdrs, nis_object *objp);
215 bool_t xdr_log_entry_t(XDR *xdrs, log_entry_t *objp);
216 bool_t xdr_log_entry(XDR *xdrs, log_entry *objp);
217 bool_t xdr_nis_tag(XDR *xdrs, nis_tag *objp);
218 bool_t xdr_nis_bound_endpoint(XDR *xdrs, nis_bound_endpoint *objp);
219 bool_t xdr_nis_bound_directory(XDR *xdrs, nis_bound_directory *objp);
220 bool_t xdr_nis_active_endpoint(XDR *xdrs, nis_active_endpoint *objp);
222 /* thr_misc.c */
225  * usr/src/lib/libnsl/nsl routines
226  */
228 /* _conn_util.c */
230 /* _data2.c */
232 /* _errlst.c */
233 int *__t_errno(void);
235 /* _utility.c */
237 /* t_accept.c */
238 int t_accept(int, int, struct t_call *);
240 /* t_alloc.c */
241 char *t_alloc(int, int, int);
243 /* t_bind.c */
244 int t_bind(int, struct t_bind *, struct t_bind *);
246 /* t_close.c */
247 int t_close(int);
249 /* t_connect.c */
250 int t_connect(int, struct t_call *, struct t_call *);
252 /* t_error.c */
253 void t_error(const char *);
255 /* t_free.c */
256 int t_free(char *, int);
258 /* t_getinfo.c */
259 int t_getinfo(int, struct t_info *);
261 /* t_getname.c */
262 int t_getname(int, struct netbuf *, int);
264 /* t_getstate.c */
265 int t_getstate(int);
267 /* t_listen.c */
268 int t_listen(int, struct t_call *);
270 /* t_look.c */
271 int t_look(int);
273 /* t_open.c */
274 int t_open(const char *, int, struct t_info *);
276 /* t_optmgmt.c */
277 int t_optmgmt(int, struct t_optmgmt *, struct t_optmgmt *);
279 /* t_rcv.c */
280 int t_rcv(int, char *, unsigned, int *);
282 /* t_rcvconnect.c */
283 int t_rcvconnect(int, struct t_call *);
285 /* t_rcvdis.c */
286 int t_rcvdis(int, struct t_discon *);
288 /* t_rcvrel.c */
289 int t_rcvrel(int);
291 /* t_rcvudata.c */
292 int t_rcvudata(int, struct t_unitdata *, int *);
294 /* t_rcvuderr.c */
295 int t_rcvuderr(int, struct t_uderr *);
297 /* t_snd.c */
298 int t_snd(int, char *, unsigned, int);
300 /* t_snddis */
301 int t_snddis(int, struct t_call *);
303 /* t_sndrel.c */
304 int t_sndrel(int);
306 /* t_sndudata.c */
307 int t_sndudata(int, struct t_unitdata *);
309 /* t_strerror.c */
310 char *t_strerror(int);
312 /* t_sync.c */
313 int t_sync(int);
315 /* t_unbind.c */
316 int t_unbind(int);
319  * struct t_iovec is defined in <xti.h>. But <xti.h> cannot be included
320  * because inclusion of <xti.h> and <tiuser.h> are mututally exclusive
321  * and <tiuser.h> is exposed by the inclusion of <rpc/rpc.h>. Needs to
322  * be seen how to build llib-lnsl.ln from multiple source files to avoid
323  * this problem.
324  */
325 struct t_iovec {
326         void    *iov_base;
327         size_t  iov_len;
330 /* t_sndv.c */
331 int t_sndv(int, const struct t_iovec *,  unsigned int, int);
333 /* t_sndvudata.c */
334 int t_sndvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int);
336 /* t_sndreldata.c */
337 int t_sndreldata(int, struct t_discon *);
339 /* t_rcvv.c */
340 int t_rcvv(int, struct t_iovec *, unsigned int, int *);
342 /* t_rcvvudata.c */
343 int t_rcvvudata(int, struct t_unitdata *, struct t_iovec *,
344         unsigned int, int *);
346 /* t_rcvreldata.c */
347 extern int t_rcvreldata(int, struct t_discon *);
349 /* t_sysconf.c */
350 int t_sysconf(int);
352 /* xti_wrappers.c */
353 int _xti_accept(int, int, struct t_call *);
354 int _xti_xns5_accept(int, int, struct t_call *);
355 char *_xti_alloc(int, int, int);
356 int _xti_bind(int, struct t_bind *, struct t_bind *);
357 int _xti_close(int);
358 int _xti_connect(int, struct t_call *, struct t_call *);
359 int _xti_error(char *);
360 int _xti_free(char *, int);
361 int _xti_getinfo(int, struct t_info *);
362 int _xti_getprotaddr(int, struct t_bind *, struct t_bind *);
363 int _xti_getstate(int);
364 int _xti_listen(int, struct t_call *);
365 int _xti_look(int);
366 int _xti_open(char *, int, struct t_info *);
367 int _xti_optmgmt(int, struct t_optmgmt *, struct t_optmgmt *);
368 int _xti_rcv(int, char *, unsigned int, int *);
369 int _xti_rcvconnect(int, struct t_call *);
370 int _xti_rcvdis(int, struct t_discon *);
371 int _xti_rcvrel(int);
372 int _xti_rcvreldata(int, struct t_discon *);
373 int _xti_rcvudata(int, struct t_unitdata *, int *);
374 int _xti_rcvuderr(int, struct t_uderr *);
375 int _xti_rcvv(int, struct t_iovec *, unsigned int, int *);
376 int _xti_rcvvudata(int, struct t_unitdata *, struct t_iovec *,
377     unsigned int, int *);
378 int _xti_snd(int, char *, unsigned int, int);
379 int _xti_xns5_snd(int, char *, unsigned int, int);
380 int _xti_snddis(int, struct t_call *);
381 int _xti_sndrel(int);
382 int _xti_sndreldata(int, struct t_discon *);
383 int _xti_sndudata(int, struct t_unitdata *);
384 int _xti_sndv(int, const struct t_iovec *, unsigned int, int);
385 int _xti_sndvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int);
386 char *_xti_strerror(int);
387 int _xti_sync(int);
388 int _xti_sysconf(int);
389 int _xti_unbind(int);
392  * usr/src/lib/libnsl/nss routines
393  */
395 /* gethostby_door.c */
397 /* gethostbyname_r.c */
398 struct hostent *_uncached_gethostbyname_r(const char *nam,
399                                 struct hostent *result,
400                                 char *buffer, int buflen, int *h_errnop);
401 struct hostent *_uncached_gethostbyaddr_r(const char *addr, int length,
402                                 int type, struct hostent *result,
403                                 char *buffer, int buflen, int *h_errnop);
404 struct hostent *gethostbyname_r(const char *nam, struct hostent *result,
405                                 char *buffer, int buflen, int *h_errnop);
406 struct hostent *gethostbyaddr_r(const char *addr, int length, int type,
407                                 struct hostent *result,
408                                 char *buffer, int buflen, int *h_errnop);
410 /* gethostent.c */
411 struct hostent *gethostbyname(const char *nam);
412 struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
413 struct hostent *gethostent(void);
415 /* gethostent_r.c */
416 int sethostent(int stay);
417 int endhostent(void);
418 struct hostent *gethostent_r(struct hostent *result, char *buffer, int buflen,
419                                 int *h_errnop);
421 /* getipnodeby.c */
422 void freehostent(struct hostent *hent);
423 struct hostent *getipnodebyaddr(const void *src, size_t len, int type,
424                                 int *error_num);
425 struct hostent *getipnodebyname(const char *name, int af, int flags,
426                                 int *error_num);
428 /* getrpcent.c */
429 struct rpcent *getrpcbyname(const char *nam);
430 struct rpcent *getrpcbynumber(const int num);
431 struct rpcent *getrpcent(void);
433 /* getrpcent_r.c */
434 struct rpcent *getrpcbyname_r(const char *name, struct rpcent *result,
435                                 char *buffer, int buflen);
436 struct rpcent *getrpcbynumber_r(const int number, struct rpcent *result,
437                                 char *buffer, int buflen);
438 void setrpcent(const int stay);
439 void endrpcent(void);
440 struct rpcent *getrpcent_r(struct rpcent *result, char *buffer, int buflen);
442 /* inet_matchaddr.c */
443 int inet_matchaddr(const void *, const char *);
445 /* inet_ntop.c */
446 const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
448 /* inet_pton.c */
449 int inet_pton(int af, const char *src, void *dst);
451 /* netdir_inet.c */
452 int _get_hostserv_inetnetdir_byname(struct netconfig *nconf,
453                                 struct nss_netdirbyname_in *args,
454                                 union nss_netdirbyname_out *res);
455 int _get_hostserv_inetnetdir_byaddr(struct netconfig *nconf,
456                                 struct nss_netdirbyaddr_in *args,
457                                 union nss_netdirbyaddr_out *res);
458 int __nss2herrno(nss_status_t nsstat);
459 nss_status_t _herrno2nss(int h_errno);
460 struct hostent *_switch_gethostbyname_r(const char *name,
461                                 struct hostent *result,
462                                 char *buffer, int buflen, int *h_errnop);
463 struct hostent *_switch_gethostbyaddr_r(const char *addr, int len, int type,
464                                 struct hostent *result,
465                                 char *buffer, int buflen, int *h_errnop);
466 int str2servent(const char *instr, int lenstr, void *ent,
467                                 char *buffer, int buflen);
468 void *__inet_get_local_interfaces(void);
469 void __inet_free_local_interfaces(void *p);
470 int __inet_address_is_local(void *p, struct in_addr addr);
471 int __inet_uaddr_is_local(void *p, struct netconfig *nc, char *uaddr);
472 int __inet_address_count(void *p);
473 ulong_t __inet_get_addr(void *p, int n);
474 char *__inet_get_uaddr(void *p, struct netconfig *nc, int n);
475 char *__inet_get_networka(void *p, int n);
477 /* netdir_inet_sundry.c */
480  * usr/src/lib/libnsl/rpc routines
481  */
483 /* auth_des.c */
484 AUTH *authdes_seccreate(const char *servername, uint_t win,
485                         const char *timehost, const des_block *ckey);
487 /* auth_none.c */
488 AUTH *authnone_create(void);
490 /* auth_sys.c */
491 AUTH *authsys_create(const char *machname, uid_t uid, gid_t gid, int len,
492                         const gid_t *aup_gids);
493 AUTH *authsys_create_default(void);
495 /* auth_time.c */
497 /* authdes_prot.c */
498 bool_t xdr_authdes_cred(XDR *xdrs, struct authdes_cred *cred);
499 bool_t xdr_authdes_verf(XDR *xdrs, struct authdes_verf *verf);
501 /* authsys_prot.c */
502 bool_t xdr_authsys_parms(XDR *xdrs, struct authsys_parms *p);
503 bool_t xdr_uid_t(XDR *xdrs, uid_t *ip);
504 bool_t xdr_gid_t(XDR *xdrs, gid_t *ip);
506 /* clnt_bcast.c */
507 enum clnt_stat rpc_broadcast_exp(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
508                 xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
509                 caddr_t resultsp, resultproc_t eachresult, int inittime,
510                 int waittime, const char *netclass);
511 enum clnt_stat rpc_broadcast(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
512                 xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
513                 caddr_t resultsp, resultproc_t eachresult,
514                 const char *netclass);
516 /* clnt_dg.c */
517 CLIENT *clnt_dg_create(int fd, struct netbuf *svcaddr, rpcprog_t program,
518                 rpcvers_t version, uint_t sendsz, uint_t recvsz);
520 /* clnt_door.c */
521 CLIENT *clnt_door_create(rpcprog_t program, rpcvers_t version, uint_t sendsz);
523 /* clnt_generic.c */
524 CLIENT *clnt_create_vers(const char *hostname, rpcprog_t prog,
525                 rpcvers_t *vers_out, rpcvers_t vers_low,
526                 rpcvers_t vers_high, const char *nettype);
527 CLIENT *clnt_create_vers_timed(const char *hostname, rpcprog_t prog,
528                 rpcvers_t *vers_out, rpcvers_t vers_low,
529                 rpcvers_t vers_high, const char *nettype,
530                 const struct timeval *tp);
531 CLIENT *clnt_create(const char *hostname, rpcprog_t prog, rpcvers_t vers,
532                 const char *nettype);
533 CLIENT *clnt_create_timed(const char *hostname, rpcprog_t prog, rpcvers_t vers,
534                 const char *netclass, const struct timeval *tp);
535 CLIENT *clnt_tp_create(const char *hostname, rpcprog_t prog, rpcvers_t vers,
536                 const struct netconfig *nconf);
537 CLIENT *clnt_tp_create_timed(const char *hostname, rpcprog_t prog,
538                 rpcvers_t vers, const struct netconfig *nconf,
539                 const struct timeval *tp);
540 CLIENT *clnt_tli_create(int fd, const struct netconfig *nconf,
541                 struct netbuf *svcaddr, rpcprog_t prog, rpcvers_t vers,
542                 uint_t sendsz, uint_t recvsz);
544 /* clnt_perror.c */
545 char *clnt_sperror(const CLIENT *cl, const char *s);
546 void clnt_perror(const CLIENT *cl, const char *s);
547 void clnt_perrno(enum clnt_stat num);
548 char *clnt_spcreateerror(const char *s);
549 void clnt_pcreateerror(const char *s);
550 const char *clnt_sperrno(const enum clnt_stat stat);
552 /* clnt_raw.c */
553 CLIENT *clnt_raw_create(rpcprog_t prog, rpcvers_t vers);
555 /* clnt_simple.c */
556 enum clnt_stat rpc_call(const char *host, rpcprog_t prognum, rpcvers_t versnum,
557                 rpcproc_t procnum, xdrproc_t inproc, const char *in,
558                 xdrproc_t outproc, char *out, const char *netclass);
560 /* clnt_vc.c */
561 CLIENT *clnt_vc_create(int fd, struct netbuf *svcaddr, rpcprog_t prog,
562                 rpcvers_t vers, uint_t sendsz, uint_t recvsz);
564 /* getdname.c */
565 int getdomainname(char *name, int namelen);
566 int setdomainname(char *domain, int len);
568 /* gethostname.c */
569 int gethostname(char *hname, int hlen);
571 /* inet_ntoa.c */
572 char *inet_ntoa_r(struct in_addr in, char b[]);
573 char *inet_ntoa(struct in_addr in);
574 in_addr_t inet_addr(const char *cp);
575 in_addr_t inet_netof(struct in_addr in);
577 /* key_call.c */
578 int key_setsecret(const char *secretkey);
579 int key_secretkey_is_set(void);
580 int key_encryptsession_pk(const char *remotename, netobj *remotekey,
581                                 des_block *deskey);
582 int key_decryptsession_pk(const char *remotename, netobj *remotekey,
583                                 des_block *deskey);
585 int key_encryptsession(const char *remotename, des_block *deskey);
586 int key_decryptsession(const char *remotename, des_block *deskey);
587 int key_gendes(des_block *key);
588 int key_setnet(struct key_netstarg *arg);
589 int key_get_conv(char *pkey, des_block *deskey);
590 int key_call(ulong_t proc, xdrproc_t xdr_arg, char *arg, xdrproc_t xdr_rslt,
591                                 char *rslt);
593 /* key_prot.c */
594 bool_t xdr_keystatus(XDR *xdrs, keystatus *objp);
595 bool_t xdr_keybuf(XDR *xdrs, keybuf objp);
596 bool_t xdr_netnamestr(XDR *xdrs, netnamestr *objp);
597 bool_t xdr_cryptkeyarg(XDR *xdrs, cryptkeyarg *objp);
598 bool_t xdr_cryptkeyarg2(XDR *xdrs, cryptkeyarg2 *objp);
599 bool_t xdr_cryptkeyres(XDR *xdrs, cryptkeyres *objp);
600 bool_t xdr_unixcred(XDR *xdrs, unixcred *objp);
601 bool_t xdr_getcredres(XDR *xdrs, getcredres *objp);
602 bool_t xdr_key_netstarg(XDR *xdrs, key_netstarg *objp);
603 bool_t xdr_key_netstres(XDR *xdrs, key_netstres *objp);
605 /* mt_misc.c */
606 #ifdef rpc_createerr
607 #undef rpc_createerr
608 #endif
609 struct rpc_createerr *__rpc_createerr(void);
611 /* netname.c */
612 int getnetname(char *name);
613 int __getnetnamebyuid(char *name, uid_t uid);
614 int user2netname(char *netname, const uid_t uid, const char *domain);
615 int host2netname(char *netname, const char *host, const char *domain);
617 /* netnamer.c */
618 int netname2user(const char *netname, uid_t *uidp, gid_t *gidp,
619                                         int *gidlenp, gid_t *gidlist);
620 int netname2host(const char *netname, char *hostname, int hostlen);
622 /* openchild.c */
624 /* pmap_clnt.c */
625 int pmap_set(rpcprog_t program, rpcvers_t version, rpcprot_t protocol, ushort_t port);
626 bool_t pmap_unset(rpcprog_t program, rpcvers_t version);
627 ushort_t pmap_getport(struct sockaddr_in *address, rpcprog_t program,
628                         rpcvers_t version, rpcprot_t protocol);
629 struct pmaplist *pmap_getmaps(struct sockaddr_in *address);
630 enum clnt_stat pmap_rmtcall(struct sockaddr_in *addr, rpcprog_t prog,
631                         rpcvers_t vers, rpcproc_t proc, xdrproc_t xdrargs,
632                         caddr_t argsp, xdrproc_t xdrres, caddr_t resp,
633                         struct timeval tout, rpcport_t *port_ptr);
635 /* pmap_prot.c */
636 bool_t xdr_pmap(XDR *xdrs, struct pmap *objp);
637 bool_t xdr_pmaplist_ptr(XDR *xdrs, pmaplist_ptr *rp);
638 bool_t xdr_pmaplist(XDR *xdrs, PMAPLIST **rp);
639 bool_t xdr_rmtcallargs(XDR *xdrs, struct p_rmtcallargs *cap);
640 bool_t xdr_rmtcallres(XDR *xdrs, struct p_rmtcallres *crp);
642 /* rpc_callmsg.c */
643 bool_t xdr_callmsg(XDR *xdrs, struct rpc_msg *cmsg);
645 /* rpc_comdata.c */
647 /* rpc_generic.c */
648 int __rpc_dtbsize(void);
649 uint_t __rpc_get_t_size(t_scalar_t size, t_scalar_t bufsize);
650 uint_t __rpc_get_a_size(t_scalar_t size);
651 struct netconfig *__rpc_getconfip(char *nettype);
652 void *__rpc_setconf(char *nettype);
653 struct netconfig *__rpc_getconf(void *vhandle);
654 void __rpc_endconf(void *vhandle);
655 struct netconfig *__rpcfd_to_nconf(int fd, int servtype);
656 int __rpc_matchserv(int servtype, unsigned int nc_semantics);
658 /* rpc_prot.c */
659 bool_t xdr_opaque_auth(XDR *xdrs, struct opaque_auth *ap);
660 bool_t xdr_des_block(XDR *xdrs, des_block *blkp);
661 bool_t xdr_accepted_reply(XDR *xdrs, struct accepted_reply *ar);
662 bool_t xdr_rejected_reply(XDR *xdrs, struct rejected_reply *rr);
663 bool_t xdr_replymsg(XDR *xdrs, struct rpc_msg *rmsg);
664 bool_t xdr_callhdr(XDR *xdrs, struct rpc_msg *cmsg);
665 void __seterr_reply(struct rpc_msg *msg, struct rpc_err *error);
667 /* rpc_sel2poll.c */
668 int __rpc_select_to_poll(int fdmax, fd_set *fdset, struct pollfd *p0);
669 int __rpc_timeval_to_msec(struct timeval *t);
671 /* rpc_soc.c */
672 CLIENT *clntudp_bufcreate(struct sockaddr_in *raddr, rpcprog_t prog,
673                         rpcvers_t vers, struct timeval wait, int *sockp,
674                         uint_t sendsz, uint_t recvsz);
675 CLIENT *clntudp_create(struct sockaddr_in *raddr, rpcprog_t program,
676                         rpcvers_t version, struct timeval wait, int *sockp);
677 CLIENT *clnttcp_create(struct sockaddr_in *raddr, rpcprog_t prog,
678                         rpcvers_t vers, int *sockp, uint_t sendsz,
679                         uint_t recvsz);
680 CLIENT *clntraw_create(rpcprog_t prog, rpcvers_t vers);
681 SVCXPRT *svctcp_create(int fd, uint_t sendsize, uint_t recvsize);
682 SVCXPRT *svcudp_bufcreate(int fd, uint_t sendsize, uint_t recvsize);
683 SVCXPRT *svcfd_create(int fd, uint_t sendsize, uint_t recvsize);
684 SVCXPRT *svcudp_create(int fd);
685 SVCXPRT *svcraw_create(void);
686 int __rpc_bindresvport(int fd, struct sockaddr_in *sin, int *portp, int qlen);
687 void get_myaddress(struct sockaddr_in *addr);
688 ushort_t getrpcport(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcprot_t proto);
689 int callrpc(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
690                 xdrproc_t inproc, char *in, xdrproc_t outproc, char *out);
691 int registerrpc(rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
692                 char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc);
693 enum clnt_stat clnt_broadcast(rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
694                 xdrproc_t xargs, caddr_t argsp, xdrproc_t xresults,
695                 caddr_t resultsp, resultproc_t eachresult);
696 AUTH *authdes_create(char *servername, uint_t window,
697                 struct sockaddr_in *syncaddr, des_block *ckey);
699 /* rpc_td.c */
701 /* rpcb_clnt.c */
702 bool_t __rpc_control(int request, void *info);
703 bool_t rpcb_set(rpcprog_t program, rpcvers_t version,
704                 const struct netconfig *nconf, const struct netbuf *address);
705 bool_t rpcb_unset(rpcprog_t program, rpcvers_t version,
706                 const struct netconfig *nconf);
707 int rpcb_getaddr(rpcprog_t program, rpcvers_t version,
708                 const struct netconfig *nconf, struct netbuf *address,
709                 const char *host);
710 rpcblist *rpcb_getmaps(const struct netconfig *nconf, const char *host);
711 enum clnt_stat rpcb_rmtcall(const struct netconfig *nconf, const char *host,
712                 rpcprog_t prog, rpcvers_t vers, rpcproc_t proc,
713                 xdrproc_t xdrargs, caddr_t argsp, xdrproc_t xdrres,
714                 caddr_t resp, struct timeval tout,
715                 struct netbuf *addr_ptr);
716 bool_t rpcb_gettime(const char *host, time_t *timep);
717 char *rpcb_taddr2uaddr(struct netconfig *nconf, struct netbuf *taddr);
718 struct netbuf *rpcb_uaddr2taddr(struct netconfig *nconf, char *uaddr);
720 /* rpcb_prot.c */
721 bool_t xdr_rpcb(XDR *xdrs, RPCB *objp);
722 bool_t xdr_rpcblist_ptr(XDR *xdrs, rpcblist_ptr *rp);
723 bool_t xdr_rpcblist(XDR *xdrs, RPCBLIST **rp);
724 bool_t xdr_rpcb_entry(XDR *xdrs, rpcb_entry *objp);
725 bool_t xdr_rpcb_entry_list_ptr(XDR *xdrs, rpcb_entry_list_ptr *rp);
726 bool_t xdr_rpcb_rmtcallargs(XDR *xdrs, struct r_rpcb_rmtcallargs *objp);
727 bool_t xdr_rpcb_rmtcallres(XDR *xdrs, struct r_rpcb_rmtcallres *objp);
728 bool_t xdr_netbuf(XDR *xdrs, struct netbuf *objp);
730 /* rpcb_st_xdr.c */
731 bool_t xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp);
732 bool_t xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp);
734 bool_t xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp);
735 bool_t xdr_rpcbs_proc(XDR *xdrs, rpcbs_proc objp);
736 bool_t xdr_rpcbs_addrlist_ptr(XDR *xdrs, rpcbs_addrlist_ptr *objp);
737 bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *xdrs, rpcbs_rmtcalllist_ptr *objp);
738 bool_t xdr_rpcb_stat(XDR *xdrs, rpcb_stat *objp);
739 bool_t xdr_rpcb_stat_byvers(XDR *xdrs, rpcb_stat_byvers objp);
741 /* rpcdname.c */
742 int __rpc_get_default_domain(char **domain);
744 /* rpcsec_gss_if.c */
745 AUTH *rpc_gss_seccreate(CLIENT *clnt, char *principal, char *mechanism,
746                 rpc_gss_service_t service_type, char *qop,
747                 rpc_gss_options_req_t *options_req,
748                 rpc_gss_options_ret_t *options_ret);
749 bool_t rpc_gss_set_defaults(AUTH *auth, rpc_gss_service_t service, char *qop);
750 bool_t rpc_gss_get_principal_name(rpc_gss_principal_t *principal, char
751                 *mechanism, char *user_name, char *node, char *secdomain);
752 char **rpc_gss_get_mechanisms(void);
753 char **rpc_gss_get_mech_info(char *mechanism, rpc_gss_service_t *service);
754 bool_t rpc_gss_get_versions(u_int *vers_hi, u_int *vers_lo);
755 bool_t rpc_gss_is_installed(char *mechanism);
756 bool_t rpc_gss_set_svc_name(char *principal, char *mechanism, uint_t req_time,
757                 uint_t program, uint_t version);
758 bool_t rpc_gss_set_callback(rpc_gss_callback_t *cb);
759 bool_t rpc_gss_getcred(struct svc_req *req, rpc_gss_rawcred_t **rcred,
760                 rpc_gss_ucred_t **ucred, void **cookie);
761 bool_t rpc_gss_mech_to_oid(char *mech, rpc_gss_OID *oid);
762 bool_t rpc_gss_qop_to_num(char *qop, char *mech, u_int *num);
763 int rpc_gss_max_data_length(AUTH *rpcgss_handle, int max_tp_unit_len);
764 int rpc_gss_svc_max_data_length(struct svc_req *req, int max_tp_unit_len);
765 void rpc_gss_get_error(rpc_gss_error_t *error);
767 /* rtime_tli.c */
768 int rtime_tli(char *host, struct timeval *timep, struct timeval *timeout);
770 /* svc.c */
771 void xprt_register(const SVCXPRT *xprt);
772 void xprt_unregister(const SVCXPRT *xprt);
773 bool_t svc_reg(const SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers,
774                 void (*dispatch)(), const struct netconfig *nconf);
775 void svc_unreg(rpcprog_t prog, rpcvers_t vers);
776 bool_t svc_register(SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers,
777                 void (*dispatch)(), int protocol);
778 void svc_unregister(rpcprog_t prog, rpcvers_t vers);
779 bool_t svc_sendreply(const SVCXPRT *xprt, xdrproc_t xdr_results,
780                 caddr_t xdr_location);
781 void svcerr_noproc(const SVCXPRT *xprt);
782 void svcerr_decode(const SVCXPRT *xprt);
783 void svcerr_systemerr(const SVCXPRT *xprt);
784 void svcerr_auth(const SVCXPRT *xprt, enum auth_stat why);
785 void svcerr_weakauth(const SVCXPRT *xprt);
786 void svcerr_noprog(const SVCXPRT *xprt);
787 void svcerr_progvers(const SVCXPRT *xprt, rpcvers_t low_vers,
788                 rpcvers_t high_vers);
789 void svc_getreq(int rdfds);
790 void svc_getreqset(fd_set *readfds);
791 void svc_getreq_poll(struct pollfd *pfdp, int pollretval);
792 void svc_getreq_common(int fd);
793 SVCXPRT *svc_xprt_alloc(void);
794 void svc_xprt_free(SVCXPRT *xprt);
795 bool_t svc_get_local_cred(SVCXPRT *xprt, svc_local_cred_t *lcred);
796 SVCAUTH *__svc_get_svcauth(SVCXPRT *);
797 void *__svc_set_proc_cleanup_cb(void *cb);
799 /* svc_auth.c */
800 enum auth_stat __authenticate(struct svc_req *rqst, struct rpc_msg *msg);
801 int svc_auth_reg(int cred_flavor, enum auth_stat (*handler)());
803 /* svc_auth_sys.c */
805 /* svc_dg.c */
806 SVCXPRT *svc_dg_create(int fd, uint_t sendsize, uint_t recvsize);
807 int svc_dg_enablecache(SVCXPRT *xprt, uint_t size);
809 /* svc_door.c */
810 SVCXPRT *svc_door_create(void (*dispatch)(), rpcprog_t prognum,
811                         rpcvers_t versnum, uint_t sendsize);
813 /* svc_generic.c */
814 int svc_create(void (*dispatch)(), rpcprog_t prognum, rpcvers_t versnum,
815                         const char *nettype);
816 SVCXPRT *svc_tp_create(void (*dispatch)(), rpcprog_t prognum, rpcvers_t versnum,
817                         const struct netconfig *nconf);
818 SVCXPRT *svc_tli_create(int fd, const struct netconfig *nconf,
819                         const struct t_bind *bindaddr, uint_t sendsz,
820                         uint_t recvsz);
822 /* svc_raw.c */
823 SVCXPRT *svc_raw_create(void);
825 /* svc_run.c */
826 void svc_run(void);
827 void svc_exit(void);
828 void svc_done(SVCXPRT *xprt);
829 bool_t rpc_control(int op, void *info);
831 /* svc_simple.c */
832 int rpc_reg(rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum,
833                 char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc,
834                 const char *nettype);
836 /* svc_vc.c */
837 SVCXPRT *svc_vc_create(int fd, uint_t sendsize, uint_t recvsize);
838 SVCXPRT *svc_fd_create(int fd, uint_t sendsize, uint_t recvsize);
839 bool_t __svc_vc_dupcache_init(SVCXPRT *xprt, void *condition, int basis);
840 int __svc_vc_dup(struct svc_req *req, caddr_t *resp_buf, uint_t *resp_bufsz);
841 int __svc_vc_dupdone(struct svc_req *req, caddr_t resp_buf, uint_t resp_bufsz,
842                                 int status);
844 /* svcauth_des.c */
845 int authdes_getucred(const struct authdes_cred *adc, uid_t *uid, gid_t *gid,
846                                 short *grouplen, gid_t *groups);
847 enum auth_stat __svcauth_des(struct svc_req *rqst, struct rpc_msg *msg);
849 /* ti_opts.c */
850 int __rpc_negotiate_uid(int fd);
851 int __rpc_get_local_uid(SVCXPRT *trans, uid_t *uid_out);
853 /* xdr.c */
854 void xdr_free(xdrproc_t proc, char *objp);
855 bool_t xdr_void(void);
856 bool_t xdr_int(XDR *xdrs, int *ip);
857 bool_t xdr_u_int(XDR *xdrs, uint_t *up);
858 bool_t xdr_long(XDR *xdrs, long *lp);
859 bool_t xdr_u_long(XDR *xdrs, ulong_t *ulp);
860 bool_t xdr_short(XDR *xdrs, short *sp);
861 bool_t xdr_u_short(XDR *xdrs, ushort_t *sp);
862 bool_t xdr_char(XDR *xdrs, char *cp);
863 bool_t xdr_u_char(XDR *xdrs, uchar_t *cp);
864 bool_t xdr_bool(XDR *xdrs, bool_t *bp);
865 bool_t xdr_enum(XDR *xdrs, enum_t *ep);
866 bool_t xdr_opaque(XDR *xdrs, caddr_t cp, uint_t cnt);
867 bool_t xdr_bytes(XDR *xdrs, char **cpp, uint_t *sizep, uint_t maxsize);
868 bool_t xdr_netobj(XDR *xdrs, struct netobj *np);
869 bool_t xdr_union(XDR *xdrs, enum_t *dscmp, char *unp,
870                         const struct xdr_discrim *choices, xdrproc_t dfault);
871 bool_t xdr_string(XDR *xdrs, char **cpp, uint_t maxsize);
872 bool_t xdr_hyper(XDR *xdrs, longlong_t *hp);
873 bool_t xdr_u_hyper(XDR *xdrs, u_longlong_t *hp);
874 bool_t xdr_longlong_t(XDR *xdrs, longlong_t *hp);
875 bool_t xdr_u_longlong_t(XDR *xdrs, u_longlong_t *hp);
876 bool_t xdr_ulonglong_t(XDR *xdrs, u_longlong_t *hp);
877 bool_t xdr_wrapstring(XDR *xdrs, char **cpp);
879 /* xdr_array.c */
880 bool_t xdr_array(XDR *xdrs, caddr_t *addrp, uint_t *sizep, uint_t maxsize,
881                                 uint_t elsize, xdrproc_t elproc);
882 bool_t xdr_vector(XDR *xdrs, char *basep, uint_t nelem, uint_t elemsize,
883                                 xdrproc_t xdr_elem);
885 /* xdr_float.c */
886 bool_t xdr_float(XDR *xdrs, float *fp);
887 bool_t xdr_double(XDR *xdrs, double *dp);
888 bool_t xdr_quadruple(XDR *xdrs, long double *fp);
890 /* xdr_mem.c */
891 void xdrmem_create(XDR *xdrs, caddr_t addr, uint_t size, enum xdr_op op);
893 /* xdr_rec.c */
894 void xdrrec_create(XDR *xdrs, uint_t sendsize, uint_t recvsize,
895                         caddr_t tcp_handle, int (*readit)(), int (*writeit)());
897 uint_t xdrrec_readbytes(XDR *xdrs, caddr_t addr, uint_t l);
898 bool_t xdrrec_skiprecord(XDR *xdrs);
899 bool_t xdrrec_eof(XDR *xdrs);
900 bool_t xdrrec_endofrecord(XDR *xdrs, bool_t sendnow);
902 /* xdr_refer.c */
903 bool_t xdr_reference(XDR *xdrs, caddr_t *pp, uint_t size, xdrproc_t proc);
904 bool_t xdr_pointer(XDR *xdrs, char **objpp, uint_t obj_size, xdrproc_t xdr_obj);
906 /* xdr_sizeof.c */
907 unsigned int xdr_sizeof(xdrproc_t func, void *data);
909 /* xdr_stdio.c */
910 void xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op);
912 /* svid_funcs.c */
913 #undef  auth_destroy
914 #undef  clnt_call
915 #undef  clnt_control
916 #undef  clnt_destroy
917 #undef  clnt_freeres
918 #undef  clnt_geterr
919 #undef  svc_destroy
920 #undef  svc_freeargs
921 #undef  svc_getargs
922 #undef  svc_getrpccaller
923 #undef  xdr_destroy
924 #undef  xdr_getpos
925 #undef  xdr_inline
926 #undef  xdr_setpos
927 void auth_destroy(AUTH *auth);
928 enum clnt_stat clnt_call(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs,
929                         caddr_t argsp, xdrproc_t xres, caddr_t resp,
930                         struct timeval timeout);
931 bool_t clnt_control(CLIENT *cl, uint_t rq, void *in);
932 void clnt_destroy(CLIENT *cl);
933 bool_t clnt_freeres(CLIENT *cl, xdrproc_t xres, caddr_t resp);
934 void clnt_geterr(CLIENT *cl, struct rpc_err *errp);
935 bool_t svc_control(SVCXPRT *xprt, const uint_t rq, void *in);
936 bool_t svc_freeargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp);
937 bool_t svc_getargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp);
938 struct netbuf *svc_getrpccaller(SVCXPRT *xprt);
939 long *xdr_inline(XDR *xdrs, int len);
940 void xdr_destroy(XDR *xdrs);
941 uint_t xdr_getpos(XDR *xdrs);
942 bool_t xdr_setpos(XDR *xdrs, uint_t pos);
945  * usr/src/lib/libnsl/saf routines
946  */
948 /* checkver.c */
949 int check_version(int ver, char *fname);
951 /* doconfig.c */
952 int doconfig(int fd, char *script, long rflag);
955  * usr/src/lib/libnsl/yp routines
956  */
958 /* dbm.c */
959 int dbminit(char *file);
960 int dbmclose(void);
961 datum fetch(datum key);
962 int delete(datum key);
963 int store(datum key, datum dat);
964 datum firstkey(void);
965 datum nextkey(datum key);
966 datum firsthash(long hash);
967 datum makdatum(char *buf, int n);
968 long hashinc(long hash);
969 long calchash(datum item);
971 /* yp_all.c */
972 int yp_all(char *domain, char *map, struct ypall_callback *callback);
973 int __yp_all_rsvdport(char *domain, char *map, struct ypall_callback *callback);
975 /* yp_b_clnt.c */
976 enum ypbind_resptype {
977         YPBIND_SUCC_VAL = 1,
978         YPBIND_FAIL_VAL = 2
980 typedef enum ypbind_resptype ypbind_resptype;
981 struct ypbind_resp {
982         ypbind_resptype ypbind_status;
983         union {
984                 uint_t ypbind_error;
985                 struct ypbind_binding *ypbind_bindinfo;
986         } ypbind_resp_u;
988 typedef struct ypbind_resp ypbind_resp;
989 struct ypbind_domain {
990         char *ypbind_domainname;
991         rpcvers_t ypbind_vers;
993 typedef struct ypbind_domain ypbind_domain;
994 struct ypbind_setdom {
995         char *ypsetdom_domain;
996         struct ypbind_binding *ypsetdom_bindinfo;
998 typedef struct ypbind_setdom ypbind_setdom;
999 ypbind_resp *ypbindproc_domain_3(ypbind_domain *argp, CLIENT *clnt);
1001 /* yp_b_xdr.c */
1002 bool_t xdr_ypbind_domain(XDR *xdrs, ypbind_domain *objp);
1003 bool_t xdr_ypbind_resp(XDR *xdrs, ypbind_resp *objp);
1004 bool_t xdr_ypbind_setdom(XDR *xdrs, ypbind_setdom *objp);
1005 bool_t xdr_ypbind_resptype(XDR *xdrs, ypbind_resptype *objp);
1007 /* yp_bind.c */
1008 struct dom_binding {
1009         struct dom_binding *dom_pnext;
1010         char *dom_domain;
1011         struct ypbind_binding *dom_binding;
1012         CLIENT *dom_client;
1013         int cache_bad;
1014         int fd;
1015         dev_t rdev;
1016         int ref_count;
1017         int need_free;
1018         mutex_t server_name_lock;
1020 int __yp_dobind(char *domain, struct dom_binding **binding);
1021 int __yp_rel_binding(struct dom_binding *binding);
1022 void yp_unbind(char *domain);
1023 int __yp_add_binding(char *domain, char *addr);
1024 int yp_bind(char *domain);
1025 int yp_get_default_domain(char **domain);
1026 int usingypmap(char **ddn, char *map);
1027 CLIENT *__clnt_create_loopback(rpcprog_t prog, rpcvers_t vers, int err);
1029 /* yp_enum.c */
1030 int yp_first(char *domain, char *map, char **key, int *keylen,
1031                                         char **val, int  *vallen);
1032 int yp_next(char *domain, char *map, char *inkey, int inkeylen,
1033                 char **outkey, int  *outkeylen, char **val, int *vallen);
1035 /* yp_master.c */
1036 int yp_master(char *domain, char *map, char **master);
1037 int __yp_master_rsvdport(char *domain, char *map, char **master);
1039 /* yp_match.c */
1040 int yp_match(char *domain, char *map, char *key, int keylen,
1041                                                 char **val, int  *vallen);
1042 int yp_match_rsvdport(char *domain, char *map, char *key, int keylen,
1043                                                 char **val, int  *vallen);
1044 void __empty_yp_cache(void);
1046 /* yp_order.c */
1047 int yp_order(char *domain, char *map, unsigned long *order);
1049 /* yp_rsvd.c */
1050 CLIENT *__yp_clnt_create_rsvdport(const char *hostname,
1051                         rpcprog_t prog, rpcvers_t vers,
1052                         const char *nettype,
1053                         const uint_t sendsz, const uint_t recvsz);
1055 /* yp_update.c */
1056 int yp_update(char *domain, char *map, unsigned op,
1057                         char *key, int keylen, char *data, int datalen);
1059 /* yp_xdr.c */
1060 bool xdr_datum(XDR * xdrs, datum *pdatum);
1061 bool xdr_ypdomain_wrap_string(XDR *xdrs, char **ppstring);
1062 bool xdr_ypmap_wrap_string(XDR *xdrs, char **ppstring);
1063 bool xdr_ypreq_key(XDR *xdrs, struct ypreq_key *ps);
1064 bool xdr_ypreq_nokey(XDR *xdrs, struct ypreq_nokey *ps);
1065 bool xdr_ypresp_val(XDR *xdrs, struct ypresp_val *ps);
1066 bool xdr_ypresp_key_val(XDR *xdrs, struct ypresp_key_val *ps);
1067 bool xdr_ypowner_wrap_string(XDR *xdrs, char **ppstring);
1068 bool xdr_ypmap_parms(XDR *xdrs, struct ypmap_parms *ps);
1069 bool xdr_ypresp_master(XDR *xdrs, struct ypresp_master *ps);
1070 bool xdr_ypresp_order(XDR * xdrs, struct ypresp_order *ps);
1071 bool xdr_ypresp_maplist(XDR *xdrs, struct ypresp_maplist *ps);
1072 bool xdr_yppushresp_xfr(XDR *xdrs, struct yppushresp_xfr *ps);
1073 bool xdr_ypreq_newxfr(XDR *xdrs, struct ypreq_newxfr *ps);
1074 bool xdr_ypreq_xfr(XDR *xdrs, struct ypreq_xfr *ps);
1075 bool xdr_ypall(XDR *xdrs, struct ypall_callback *callback);
1077 /* yperr_string.c */
1078 char *yperr_string(int code);
1080 /* yppasswd_xdr.c */
1081 bool_t xdr_yppasswd(XDR *xdrsp, struct yppasswd *pp);
1083 /* ypprot_err.c */
1084 int ypprot_err(int yp_protocol_error);
1086 /* ypupd.c */
1087 bool_t xdr_yp_buf(XDR *xdrs, yp_buf *objp);
1088 bool_t xdr_ypupdate_args(XDR *xdrs, ypupdate_args *objp);
1089 bool_t xdr_ypdelete_args(XDR *xdrs, ypdelete_args *objp);
1091 /* nis_sec_mechs.c */
1092 char *__nis_keyalg2authtype(keylen_t keylen, algtype_t algtype,
1093         char *authtype, size_t authtype_len);
1095 /* usr/src/lib/libnsl/nss/parse.c */
1096 char *_strtok_escape(char *string, char *sepset, char **lasts);