9330 stack overflow when creating a deeply nested dataset
[unleashed.git] / usr / src / man / man3nsl / rpc.3nsl
blobb6b75deb376b69a5d7f01ca6e0a1adfac6fbb807
1 '\" te
2 .\" Copyright 2014 Nexenta Systems, Inc.  All Rights Reserved.
3 .\" Copyright (c) 2000, Sun Microsystems, Inc.  All Rights Reserved
4 .\" Copyright 1989 AT&T
5 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
6 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
7 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
8 .TH RPC 3NSL "Nov 24, 2014"
9 .SH NAME
10 rpc \- library routines for remote procedure calls
11 .SH SYNOPSIS
12 .LP
13 .nf
14 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lnsl\fR [ \fIlibrary\fR ... ]
15 #include <rpc/rpc.h>
16 #include <netconfig.h>
17 .fi
19 .SH DESCRIPTION
20 .LP
21 These routines allow C language programs to make procedure calls on other
22 machines across a network. First, the client sends a request to the server. On
23 receipt of the request, the server calls a dispatch routine to perform the
24 requested service, and then sends back a reply.
25 .sp
26 .LP
27 All \fBRPC\fR routines require the header \fB<rpc/rpc.h>\fR\&. Routines that
28 take a \fBnetconfig\fR structure also require that \fB<netconfig.h>\fR be
29 included. Applications using  \fBRPC\fR and  \fBXDR\fR routines should be
30 linked with the \fBlibnsl\fR library.
31 .SS "Multithread Considerations"
32 .LP
33 In the case of multithreaded applications, the \fB-mt\fR option must be
34 specified on the command line at compilation time to enable a thread-specific
35 version of \fBrpc_createerr()\fR. See \fBrpc_clnt_create\fR(3NSL) and
36 \fBthreads\fR(5).
37 .sp
38 .LP
39 When used in multithreaded applications, client-side routines are MT-Safe.
40 \fBCLIENT\fR handles can be shared between threads; however, in this
41 implementation, requests by different threads are serialized (that is, the
42 first request will receive its results before the second request is sent). See
43 \fBrpc_clnt_create\fR(3NSL).
44 .sp
45 .LP
46 When used in multithreaded applications, server-side routines are usually
47 Unsafe. In this implementation the service transport handle, \fBSVCXPRT\fR
48 contains a single data area for decoding arguments and encoding results.  See
49 \fBrpc_svc_create\fR(3NSL). Therefore, this structure cannot be freely shared
50 between threads that call functions that do this.  Routines that are affected
51 by this restriction are marked as unsafe for MT applications. See
52 \fBrpc_svc_calls\fR(3NSL).
53 .SS "Nettype"
54 .LP
55 Some of the high-level \fBRPC\fR interface routines take a \fInettype\fR string
56 as one of the parameters (for example, \fBclnt_create()\fR, \fBsvc_create()\fR,
57 \fBrpc_reg()\fR, \fBrpc_call()\fR). This string defines a class of transports
58 which can be used for a particular application.
59 .sp
60 .LP
61 \fInettype\fR can be one of the following:
62 .sp
63 .ne 2
64 .na
65 \fB\fBnetpath\fR\fR
66 .ad
67 .RS 14n
68 Choose from the transports which have been indicated by their token names in
69 the \fBNETPATH\fR environment variable. If \fBNETPATH\fR is unset or
70 \fINULL\fR, it defaults to \fBvisible\fR. \fBnetpath\fR is the default
71 \fInettype\fR.
72 .RE
74 .sp
75 .ne 2
76 .na
77 \fB\fBvisible\fR\fR
78 .ad
79 .RS 14n
80 Choose the transports which have the visible flag (\fBv\fR) set in the
81 \fB/etc/netconfig\fR file.
82 .RE
84 .sp
85 .ne 2
86 .na
87 \fB\fBcircuit_v\fR\fR
88 .ad
89 .RS 14n
90 This is same as \fBvisible\fR except that it chooses only the connection
91 oriented transports (semantics \fBtpi_cots\fR or \fBtpi_cots_ord\fR) from the
92 entries in the \fB/etc/netconfig\fR file.
93 .RE
95 .sp
96 .ne 2
97 .na
98 \fB\fBdatagram_v\fR\fR
99 .ad
100 .RS 14n
101 This is same as \fBvisible\fR except that it chooses only the connectionless
102 datagram transports (semantics \fBtpi_clts\fR) from the entries in the
103 \fB/etc/netconfig\fR file.
107 .ne 2
109 \fB\fBcircuit_n\fR\fR
111 .RS 14n
112 This is same as \fBnetpath\fR except that it chooses only the connection
113 oriented datagram transports (semantics \fBtpi_cots\fR or \fBtpi_cots_ord\fR).
117 .ne 2
119 \fB\fBdatagram_n\fR\fR
121 .RS 14n
122 This is same as \fBnetpath\fR except that it chooses only the connectionless
123 datagram transports (semantics \fBtpi_clts\fR).
127 .ne 2
129 \fB\fBudp\fR\fR
131 .RS 14n
132 This refers to Internet \fBUDP.\fR
136 .ne 2
138 \fB\fBtcp\fR\fR
140 .RS 14n
141 This refers to Internet \fBTCP.\fR
146 If  \fInettype\fR is  \fINULL\fR, it defaults to \fBnetpath\fR. The transports
147 are tried in left to right order in the \fBNETPATH\fR variable or in top to
148 down order in the \fB/etc/netconfig\fR file.
149 .SS "Derived Types"
151 In a 64-bit environment, the derived types are defined as follows:
156 l l l
157 l l l .
158 \fBtypedef\fR   \fBuint32_t\fR  \fBrpcprog_t;\fR
159 \fBtypedef\fR   \fBuint32_t\fR  \fBrpcvers_t;\fR
160 \fBtypedef\fR   \fBuint32_t\fR  \fBrpcproc_t;\fR
161 \fBtypedef\fR   \fBuint32_t\fR  \fBrpcprot_t;\fR
162 \fBtypedef\fR   \fBuint32_t\fR  \fBrpcport_t;\fR
163 \fBtypedef\fR   \fBint32_t\fR   \fBrpc_inline_t;\fR
168 In a 32-bit environment, the derived types are defined as follows:
173 l l l
174 l l l .
175 \fBtypedef\fR   \fBunsigned long\fR     \fBrpcprog_t;\fR
176 \fBtypedef\fR   \fBunsigned long\fR     \fBrpcvers_t;\fR
177 \fBtypedef\fR   \fBunsigned long\fR     \fBrpcproc_t;\fR
178 \fBtypedef\fR   \fBunsigned long\fR     \fBrpcprot_t;\fR
179 \fBtypedef\fR   \fBunsigned long\fR     \fBrpcport_t;\fR
180 \fBtypedef\fR   \fBlong\fR      \fBrpc_inline_t;\fR
183 .SS "Data Structures"
185 Some of the data structures used by the \fBRPC\fR package are shown below.
186 .SS "The \fBAUTH\fR Structure"
187 .in +2
189 union  des_block  {
190         struct  {
191         u_int32  high;
192         u_int32  low;
193         }  key;
194 char  c[8];
196 typedef  union  des_block  des_block;
197 extern  bool_t  xdr_des_block(\|);
199  *  Authentication  info.  Opaque  to  client.
201 struct  opaque_auth  {
202         enum_t oa_flavor;       /* flavor of auth */
203         caddr_t oa_base;        /* address of more auth stuff */
204         uint_t oa_length;       /* not to exceed MAX_AUTH_BYTES */
207  * Auth handle, interface to client side  authenticators.
209  typedef  struct  {
210         struct opaque_auth ah_cred;
211         struct opaque_auth ah_verf;
212         union  des_block ah_key;
213         struct  auth_ops  {
214                 void(*ah_nextverf)(\|);
215                 int(*ah_marshal)(\|);     /* nextverf & serialize */
216                 int(*ah_validate)(\|);    /* validate verifier */
217                 int(*ah_refresh)(\|);     /* refresh credentials */
218                 void(*ah_destroy)(\|);    /* destroy this structure */
219         }  *ah_ops;
220         caddr_t  ah_private;
221 }  AUTH;
223 .in -2
225 .SS "The \fBCLIENT\fR Structure"
226 .in +2
229  *  Client  rpc  handle.
230  *  Created  by  individual  implementations.
231  *  Client is responsible for initializing auth.
232  */
233         typedef  struct  {
234         AUTH    *cl_auth;       /* authenticator */
235         struct clnt_ops {
236               enum clnt_stat (*cl_call)(\|);   /* call remote procedure */
237               void (*cl_abort)(\|);            /* abort a call */
238               void (*cl_geterr)(\|);           /* get specific error code */
239               bool_t (*cl_freeres)(\|);        /* frees results */
240               void (*cl_destroy)(\|);          /* destroy this structure */
241               bool_t (*cl_control)(\|);        /* the ioctl(\|) of rpc */
242               int (*cl_settimers)(\|);         /* set rpc level timers */
243              } *cl_ops;
244              caddr_t    cl_private;                  /* private stuff */
245              char       *cl_netid;                   /* network identifier */
246              char       *cl_tp;                      /* device name */
247 }  CLIENT;
249 .in -2
251 .SS "The \fBSVCXPRT\fR Structure"
252 .in +2
254 enum  xprt_stat  {
255 XPRT_DIED,
256 XPRT_MOREREQS,
257 XPRT_IDLE
260  *  Server  side  transport  handle
261  */
262 typedef  struct  {
263         int     xp_fd;                  /* file descriptor for the
264         ushort_t xp_port;               /* obsolete */
265         struct xp_ops {
266            bool_t (*xp_recv)(\|); /* receive incoming requests */
267            enum xprt_stat (*xp_stat)(\|); /* get transport status */
268            bool_t (*xp_getargs)(\|);      /* get arguments */
269            bool_t (*xp_reply)(\|);        /* send reply */
270            bool_t (*xp_freeargs)(\|);     /* free mem allocated
271                                                    for args */
272            void (*xp_destroy)(\|);        /* destroy this struct */
273         } *xp_ops;
274         int xp_addrlen;                 /* length of remote addr.
275                                            Obsolete */
276         char *xp_tp;                    /* transport provider device
277                                            name */
278         char *xp_netid;                 /* network identifier */
279         struct netbuf xp_ltaddr;        /* local transport address */
280         struct netbuf xp_rtaddr;        /* remote transport address */
281         char xp_raddr[16];              /* remote address. Obsolete */
282         struct opaque_auth xp_verf;     /* raw response verifier */
283         caddr_t xp_p1;                  /* private: for use
284                                            by svc ops */
285         caddr_t xp_p2;                  /* private: for use
286                                            by svc ops */
287         caddr_t xp_p3;                  /* private: for use
288                                            by svc lib */
289         int xp_type                     /* transport type */
290 }  SVCXPRT;
292 .in -2
294 .SS "The \fBsvc_reg\fR Structure"
295 .in +2
297 struct  svc_req  {
298    rpcprog_t rq_prog;          /* service program number */
299    rpcvers_t rq_vers;          /* service protocol version */
300    rpcproc_t rq_proc;          /* the desired procedure */
301    struct opaque_auth rq_cred; /* raw creds from the wire */
302    caddr_t rq_clntcred;        /* read only cooked cred */
303    SVCXPRT *rq_xprt;           /* associated transport */
307 .in -2
309 .SS "The \fBXDR\fR Structure"
310 .in +2
313  * XDR operations.
314  * XDR_ENCODE causes the type to be encoded into the stream.
315  * XDR_DECODE causes the type to be extracted from the stream.
316  * XDR_FREE can be used to release the space allocated by an XDR_DECODE
317  * request.
318  */
319 enum xdr_op {
320     XDR_ENCODE=0,
321     XDR_DECODE=1,
322     XDR_FREE=2
325  * This is the number of bytes per unit of external data.
326  */
327 #define BYTES_PER_XDR_UNIT      (4)
328 #define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) /
329                    BYTES_PER_XDR_UNIT) \e * BYTES_PER_XDR_UNIT)
331  * A xdrproc_t exists for each data type which is to be encoded or
332  * decoded.  The second argument to the xdrproc_t is a pointer to
333  * an opaque pointer.  The opaque pointer generally points to a
334  * structure of the data type to be decoded.  If this points to 0,
335  * then the type routines should allocate dynamic storage of the
336  * appropriate size and return it.
337  * bool_t  (*xdrproc_t)(XDR *, caddr_t *);
338  */
339 typedef  bool_t (*xdrproc_t)(\|);
341  * The XDR handle.
342  * Contains operation which is being applied to the stream,
343  * an operations vector for the particular implementation
344  */
345 typedef struct {
347 enum xdr_op x_op;    /* operation; fast additional param */
348 struct  xdr_ops  {
350 bool_t       (*x_getlong)(\|);      /* get long from underlying stream */
351 bool_t       (*x_putlong)(\|);      /* put long to underlying stream */
352 bool_t       (*x_getbytes)(\|);     /* get bytes from underlying stream */
353 bool_t       (*x_putbytes)(\|);     /* put bytes to underlying stream */
354 uint_t       (*x_getpostn)(\|);     /* returns bytes off from beginning */
355 bool_t       (*x_setpostn)(\|);     /* reposition the stream */
356 rpc_inline_t *(*x_inline)(\|);      /* buf quick ptr to buffered data */
357 void         (*x_destroy)(\|);      /* free privates of this xdr_stream */
358 bool_t       (*x_control)(\|);      /* changed/retrieve client object info*/
359 bool_t       (*x_getint32)(\|);     /* get int from underlying stream */
360 bool_t       (*x_putint32)(\|);     /* put int to underlying stream */
362 } *x_ops;
364 caddr_t      x_public;             /* users' data */
365 caddr_t      x_priv                /* pointer to private data */
366 caddr_t      x_base;               /* private used for position info */
367 int          x_handy;              /* extra private word */
368 XDR;
370 .in -2
372 .SS "Index to Routines"
374 The following table lists  \fBRPC\fR routines and the manual reference pages on
375 which they are described:
377 .ne 2
379 \fB\fBRPC Routine\fR\fR
381 .RS 27n
382 \fBManual Reference Page\fR
386 .ne 2
388 \fB\fBauth_destroy\fR\fR
390 .RS 27n
391 \fBrpc_clnt_auth\fR(3NSL)
395 .ne 2
397 \fB\fBauthdes_create\fR\fR
399 .RS 27n
400 \fBrpc_soc\fR(3NSL)
404 .ne 2
406 \fB\fBauthdes_getucred\fR\fR
408 .RS 27n
409 \fBsecure_rpc\fR(3NSL)
413 .ne 2
415 \fB\fBauthdes_seccreate\fR\fR
417 .RS 27n
418 \fBsecure_rpc\fR(3NSL)
422 .ne 2
424 \fB\fBauthnone_create\fR\fR
426 .RS 27n
427 \fBrpc_clnt_auth\fR(3NSL)
431 .ne 2
433 \fB\fBauthsys_create\fR\fR
435 .RS 27n
436 \fBrpc_clnt_auth\fR(3NSL)
440 .ne 2
442 \fB\fBauthsys_create_default\fR\fR
444 .RS 27n
445 \fBrpc_clnt_auth\fR(3NSL)
449 .ne 2
451 \fB\fBauthunix_create\fR\fR
453 .RS 27n
454 \fBrpc_soc\fR(3NSL)
458 .ne 2
460 \fB\fBauthunix_create_default\fR\fR
462 .RS 27n
463 \fBrpc_soc\fR(3NSL)
467 .ne 2
469 \fB\fBcallrpc\fR\fR
471 .RS 27n
472 \fBrpc_soc\fR(3NSL)
476 .ne 2
478 \fB\fBclnt_broadcast\fR\fR
480 .RS 27n
481 \fBrpc_soc\fR(3NSL)
485 .ne 2
487 \fB\fBclnt_call\fR\fR
489 .RS 27n
490 \fBrpc_clnt_calls\fR(3NSL)
494 .ne 2
496 \fB\fBclnt_control\fR\fR
498 .RS 27n
499 \fBrpc_clnt_create\fR(3NSL)
503 .ne 2
505 \fB\fBclnt_create\fR\fR
507 .RS 27n
508 \fBrpc_clnt_create\fR(3NSL)
512 .ne 2
514 \fB\fBclnt_destroy\fR\fR
516 .RS 27n
517 \fBrpc_clnt_create\fR(3NSL)
521 .ne 2
523 \fB\fBclnt_dg_create\fR\fR
525 .RS 27n
526 \fBrpc_clnt_create\fR(3NSL)
530 .ne 2
532 \fB\fBclnt_freeres\fR\fR
534 .RS 27n
535 \fBrpc_clnt_calls\fR(3NSL)
539 .ne 2
541 \fB\fBclnt_geterr\fR\fR
543 .RS 27n
544 \fBrpc_clnt_calls\fR(3NSL)
548 .ne 2
550 \fB\fBclnt_pcreateerror\fR\fR
552 .RS 27n
553 \fBrpc_clnt_create\fR(3NSL)
557 .ne 2
559 \fB\fBclnt_perrno\fR\fR
561 .RS 27n
562 \fBrpc_clnt_calls\fR(3NSL)
566 .ne 2
568 \fB\fBclnt_perror\fR\fR
570 .RS 27n
571 \fBrpc_clnt_calls\fR(3NSL)
575 .ne 2
577 \fB\fBclnt_raw_create\fR\fR
579 .RS 27n
580 \fBrpc_clnt_create\fR(3NSL)
584 .ne 2
586 \fB\fBclnt_spcreateerror\fR\fR
588 .RS 27n
589 \fBrpc_clnt_create\fR(3NSL)
593 .ne 2
595 \fB\fBclnt_sperrno\fR\fR
597 .RS 27n
598 \fBrpc_clnt_calls\fR(3NSL)
602 .ne 2
604 \fB\fBclnt_sperror\fR\fR
606 .RS 27n
607 \fBrpc_clnt_calls\fR(3NSL)
611 .ne 2
613 \fB\fBclnt_tli_create\fR\fR
615 .RS 27n
616 \fBrpc_clnt_create\fR(3NSL)
620 .ne 2
622 \fB\fBclnt_tp_create\fR\fR
624 .RS 27n
625 \fBrpc_clnt_create\fR(3NSL)
629 .ne 2
631 \fB\fBclnt_vc_create\fR\fR
633 .RS 27n
634 \fBrpc_clnt_create\fR(3NSL)
638 .ne 2
640 \fB\fBclntraw_create\fR\fR
642 .RS 27n
643 \fBrpc_soc\fR(3NSL)
647 .ne 2
649 \fB\fBclnttcp_create\fR\fR
651 .RS 27n
652 \fBrpc_soc\fR(3NSL)
656 .ne 2
658 \fB\fBclntudp_bufcreate\fR\fR
660 .RS 27n
661 \fBrpc_soc\fR(3NSL)
665 .ne 2
667 \fB\fBclntudp_create\fR\fR
669 .RS 27n
670 \fBrpc_soc\fR(3NSL)
674 .ne 2
676 \fB\fBget_myaddress\fR\fR
678 .RS 27n
679 \fBrpc_soc\fR(3NSL)
683 .ne 2
685 \fB\fBgetnetname\fR\fR
687 .RS 27n
688 \fBsecure_rpc\fR(3NSL)
692 .ne 2
694 \fB\fBhost2netname\fR\fR
696 .RS 27n
697 \fBsecure_rpc\fR(3NSL)
701 .ne 2
703 \fB\fBkey_decryptsession\fR\fR
705 .RS 27n
706 \fBsecure_rpc\fR(3NSL)
710 .ne 2
712 \fB\fBkey_encryptsession\fR\fR
714 .RS 27n
715 \fBsecure_rpc\fR(3NSL)
719 .ne 2
721 \fB\fBkey_gendes\fR\fR
723 .RS 27n
724 \fBsecure_rpc\fR(3NSL)
728 .ne 2
730 \fB\fBkey_setsecret\fR\fR
732 .RS 27n
733 \fBsecure_rpc\fR(3NSL)
737 .ne 2
739 \fB\fBnetname2host\fR\fR
741 .RS 27n
742 \fBsecure_rpc\fR(3NSL)
746 .ne 2
748 \fB\fBnetname2user\fR\fR
750 .RS 27n
751 \fBsecure_rpc\fR(3NSL)
755 .ne 2
757 \fB\fBpmap_getmaps\fR\fR
759 .RS 27n
760 \fBrpc_soc\fR(3NSL)
764 .ne 2
766 \fB\fBpmap_getport\fR\fR
768 .RS 27n
769 \fBrpc_soc\fR(3NSL)
773 .ne 2
775 \fB\fBpmap_rmtcall\fR\fR
777 .RS 27n
778 \fBrpc_soc\fR(3NSL)
782 .ne 2
784 \fB\fBpmap_set\fR\fR
786 .RS 27n
787 \fBrpc_soc\fR(3NSL)
791 .ne 2
793 \fB\fBpmap_unset\fR\fR
795 .RS 27n
796 \fBrpc_soc\fR(3NSL)
800 .ne 2
802 \fB\fBregisterrpc\fR\fR
804 .RS 27n
805 \fBrpc_soc\fR(3NSL)
809 .ne 2
811 \fB\fBrpc_broadcast\fR\fR
813 .RS 27n
814 \fBrpc_clnt_calls\fR(3NSL)
818 .ne 2
820 \fB\fBrpc_broadcast_exp\fR\fR
822 .RS 27n
823 \fBrpc_clnt_calls\fR(3NSL)
827 .ne 2
829 \fB\fBrpc_call\fR\fR
831 .RS 27n
832 \fBrpc_clnt_calls\fR(3NSL)
836 .ne 2
838 \fB\fBrpc_reg\fR\fR
840 .RS 27n
841 \fBrpc_svc_reg\fR(3NSL)
845 .ne 2
847 \fB\fBsvc_create\fR\fR
849 .RS 27n
850 \fBrpc_svc_create\fR(3NSL)
854 .ne 2
856 \fB\fBsvc_destroy\fR\fR
858 .RS 27n
859 \fBrpc_svc_create\fR(3NSL)
863 .ne 2
865 \fB\fBsvc_dg_create\fR\fR
867 .RS 27n
868 \fBrpc_svc_create\fR(3NSL)
872 .ne 2
874 \fB\fBsvc_dg_enablecache\fR\fR
876 .RS 27n
877 \fBrpc_svc_calls\fR(3NSL)
881 .ne 2
883 \fB\fBsvc_fd_create\fR\fR
885 .RS 27n
886 \fBrpc_svc_create\fR(3NSL)
890 .ne 2
892 \fB\fBsvc_fds\fR\fR
894 .RS 27n
895 \fBrpc_soc\fR(3NSL)
899 .ne 2
901 \fB\fBsvc_freeargs\fR\fR
903 .RS 27n
904 \fBrpc_svc_calls\fR(3NSL)
908 .ne 2
910 \fB\fBsvc_getargs\fR\fR
912 .RS 27n
913 \fBrpc_svc_calls\fR(3NSL)
917 .ne 2
919 \fB\fBsvc_getcaller\fR\fR
921 .RS 27n
922 \fBrpc_soc\fR(3NSL)
926 .ne 2
928 \fB\fBsvc_getreq\fR\fR
930 .RS 27n
931 \fBrpc_soc\fR(3NSL)
935 .ne 2
937 \fB\fBsvc_getreqset\fR\fR
939 .RS 27n
940 \fBrpc_svc_calls\fR(3NSL)
944 .ne 2
946 \fB\fBsvc_getrpccaller\fR\fR
948 .RS 27n
949 \fBrpc_svc_calls\fR(3NSL)
953 .ne 2
955 \fB\fBsvc_raw_create\fR\fR
957 .RS 27n
958 \fBrpc_svc_create\fR(3NSL)
962 .ne 2
964 \fB\fBsvc_reg\fR\fR
966 .RS 27n
967 \fBrpc_svc_reg\fR(3NSL)
971 .ne 2
973 \fB\fBsvc_register\fR\fR
975 .RS 27n
976 \fBrpc_soc\fR(3NSL)
980 .ne 2
982 \fB\fBsvc_run\fR\fR
984 .RS 27n
985 \fBrpc_svc_calls\fR(3NSL)
989 .ne 2
991 \fB\fBsvc_sendreply\fR\fR
993 .RS 27n
994 \fBrpc_svc_calls\fR(3NSL)
998 .ne 2
1000 \fB\fBsvc_tli_create\fR\fR
1002 .RS 27n
1003 \fBrpc_svc_create\fR(3NSL)
1007 .ne 2
1009 \fB\fBsvc_tp_create\fR\fR
1011 .RS 27n
1012 \fBrpc_svc_create\fR(3NSL)
1016 .ne 2
1018 \fB\fBsvc_unreg\fR\fR
1020 .RS 27n
1021 \fBrpc_svc_reg\fR(3NSL)
1025 .ne 2
1027 \fB\fBsvc_unregister\fR\fR
1029 .RS 27n
1030 \fBrpc_soc\fR(3NSL)
1034 .ne 2
1036 \fB\fBsvc_vc_create\fR\fR
1038 .RS 27n
1039 \fBrpc_svc_create\fR(3NSL)
1043 .ne 2
1045 \fB\fBsvcerr_auth\fR\fR
1047 .RS 27n
1048 \fBrpc_svc_err\fR(3NSL)
1052 .ne 2
1054 \fB\fBsvcerr_decode\fR\fR
1056 .RS 27n
1057 \fBrpc_svc_err\fR(3NSL)
1061 .ne 2
1063 \fB\fBsvcerr_noproc\fR\fR
1065 .RS 27n
1066 \fBrpc_svc_err\fR(3NSL)
1070 .ne 2
1072 \fB\fBsvcerr_noprog\fR\fR
1074 .RS 27n
1075 \fBrpc_svc_err\fR(3NSL)
1079 .ne 2
1081 \fB\fBsvcerr_progvers\fR\fR
1083 .RS 27n
1084 \fBrpc_svc_err\fR(3NSL)
1088 .ne 2
1090 \fB\fBsvcerr_systemerr\fR\fR
1092 .RS 27n
1093 \fBrpc_svc_err\fR(3NSL)
1097 .ne 2
1099 \fB\fBsvcerr_weakauth\fR\fR
1101 .RS 27n
1102 \fBrpc_svc_err\fR(3NSL)
1106 .ne 2
1108 \fB\fBsvcfd_create\fR\fR
1110 .RS 27n
1111 \fBrpc_soc\fR(3NSL)
1115 .ne 2
1117 \fB\fBsvcraw_create\fR\fR
1119 .RS 27n
1120 \fBrpc_soc\fR(3NSL)
1124 .ne 2
1126 \fB\fBsvctcp_create\fR\fR
1128 .RS 27n
1129 \fBrpc_soc\fR(3NSL)
1133 .ne 2
1135 \fB\fBsvcudp_bufcreate\fR\fR
1137 .RS 27n
1138 \fBrpc_soc\fR(3NSL)
1142 .ne 2
1144 \fB\fBsvcudp_create\fR\fR
1146 .RS 27n
1147 \fBrpc_soc\fR(3NSL)
1151 .ne 2
1153 \fB\fBuser2netname\fR\fR
1155 .RS 27n
1156 \fBsecure_rpc\fR(3NSL)
1160 .ne 2
1162 \fB\fBxdr_accepted_reply\fR\fR
1164 .RS 27n
1165 \fBrpc_xdr\fR(3NSL)
1169 .ne 2
1171 \fB\fBxdr_authsys_parms\fR\fR
1173 .RS 27n
1174 \fBrpc_xdr\fR(3NSL)
1178 .ne 2
1180 \fB\fBxdr_authunix_parms\fR\fR
1182 .RS 27n
1183 \fBrpc_soc\fR(3NSL)
1187 .ne 2
1189 \fB\fBxdr_callhdr\fR\fR
1191 .RS 27n
1192 \fBrpc_xdr\fR(3NSL)
1196 .ne 2
1198 \fB\fBxdr_callmsg\fR\fR
1200 .RS 27n
1201 \fBrpc_xdr\fR(3NSL)
1205 .ne 2
1207 \fB\fBxdr_opaque_auth\fR\fR
1209 .RS 27n
1210 \fBrpc_xdr\fR(3NSL)
1214 .ne 2
1216 \fB\fBxdr_rejected_reply\fR\fR
1218 .RS 27n
1219 \fBrpc_xdr\fR(3NSL)
1223 .ne 2
1225 \fB\fBxdr_replymsg\fR\fR
1227 .RS 27n
1228 \fBrpc_xdr\fR(3NSL)
1232 .ne 2
1234 \fB\fBxprt_register\fR\fR
1236 .RS 27n
1237 \fBrpc_svc_reg\fR(3NSL)
1241 .ne 2
1243 \fB\fBxprt_unregister\fR\fR
1245 .RS 27n
1246 \fBrpc_svc_reg\fR(3NSL)
1249 .SH FILES
1251 \fB/etc/netconfig\fR
1252 .SH ATTRIBUTES
1254 See \fBattributes\fR(5) for descriptions of the following attributes:
1259 box;
1260 c | c
1261 l | l .
1262 ATTRIBUTE TYPE  ATTRIBUTE VALUE
1264 MT-Level        MT-Safe with exceptions
1267 .SH SEE ALSO
1269 \fBgetnetconfig\fR(3NSL), \fBgetnetpath\fR(3NSL), \fBrpc_clnt_auth\fR(3NSL),
1270 \fBrpc_clnt_calls\fR(3NSL), \fBrpc_clnt_create\fR(3NSL),
1271 \fBrpc_svc_calls\fR(3NSL), \fBrpc_svc_create\fR(3NSL), \fBrpc_svc_err\fR(3NSL),
1272 \fBrpc_svc_reg\fR(3NSL), \fBrpc_xdr\fR(3NSL), \fBrpcbind\fR(3NSL),
1273 \fBsecure_rpc\fR(3NSL), \fBthreads\fR(5), \fBxdr\fR(3NSL), \fBnetconfig\fR(4),
1274 \fBrpc\fR(4), \fBattributes\fR(5), \fBenviron\fR(5)