xref: /minix3/lib/libc/rpc/rpc.3 (revision f14fb602092e015ff630df58e17c2a9cd57d29b3)
12fe8fb19SBen Gras.\" @(#)rpc.3n 1.31 93/08/31 SMI; from SVr4
22fe8fb19SBen Gras.\" Copyright 1989 AT&T
3*f14fb602SLionel Sambuc.\"	$NetBSD: rpc.3,v 1.24 2012/05/13 15:47:38 wiz Exp $
42fe8fb19SBen Gras.Dd May 7, 1993
52fe8fb19SBen Gras.Dt RPC 3
62fe8fb19SBen Gras.Os
72fe8fb19SBen Gras.Sh NAME
82fe8fb19SBen Gras.Nm rpc
92fe8fb19SBen Gras.Nd library routines for remote procedure calls
102fe8fb19SBen Gras.Sh LIBRARY
112fe8fb19SBen Gras.Lb libc
122fe8fb19SBen Gras.Sh SYNOPSIS
132fe8fb19SBen Gras.In rpc/rpc.h
142fe8fb19SBen Gras.In netconfig.h
152fe8fb19SBen Gras.Sh DESCRIPTION
162fe8fb19SBen GrasThese
172fe8fb19SBen Grasroutines allow C language programs to make procedure
182fe8fb19SBen Grascalls on other machines across a network.
192fe8fb19SBen GrasFirst, the client sends a request to the server.
202fe8fb19SBen GrasOn receipt of the request, the server calls a dispatch routine
212fe8fb19SBen Grasto perform the requested service, and then sends back a reply.
222fe8fb19SBen Gras.Pp
232fe8fb19SBen GrasAll
242fe8fb19SBen GrasRPC routines require the header
252fe8fb19SBen Gras.In rpc/rpc.h .
262fe8fb19SBen GrasRoutines that take a
272fe8fb19SBen Gras.Fa netconfig
282fe8fb19SBen Grasstructure also require that
292fe8fb19SBen Gras.In netconfig.h
302fe8fb19SBen Grasbe included.
312fe8fb19SBen Gras.Ss Nettype
322fe8fb19SBen GrasSome of the high-level
332fe8fb19SBen GrasRPC interface routines take a
342fe8fb19SBen Gras.Fa nettype
352fe8fb19SBen Grasstring as one of the parameters
362fe8fb19SBen Gras(for example,
372fe8fb19SBen Gras.Fn clnt_create ,
382fe8fb19SBen Gras.Fn svc_create ,
392fe8fb19SBen Gras.Fn rpc_reg ,
402fe8fb19SBen Gras.Fn rpc_call .
412fe8fb19SBen GrasThis string defines a class of transports which can be used
422fe8fb19SBen Grasfor a particular application.
432fe8fb19SBen Gras.Pp
442fe8fb19SBen Gras.Fa nettype
452fe8fb19SBen Grascan be one of the following:
462fe8fb19SBen Gras.Bl -tag -width datagram_v
472fe8fb19SBen Gras.It netpath
482fe8fb19SBen GrasChoose from the transports which have been
492fe8fb19SBen Grasindicated by their token names in the
502fe8fb19SBen Gras.Ev NETPATH
512fe8fb19SBen Grasenvironment variable.
522fe8fb19SBen GrasIf
532fe8fb19SBen Gras.Ev NETPATH
542fe8fb19SBen Grasis unset or
552fe8fb19SBen Gras.Dv NULL
562fe8fb19SBen Gras, it defaults to
572fe8fb19SBen Gras.Fa visible .
582fe8fb19SBen Gras.Fa netpath
592fe8fb19SBen Grasis the default
602fe8fb19SBen Gras.Fa nettype .
612fe8fb19SBen Gras.It visible
622fe8fb19SBen GrasChoose the transports which have the visible flag (v)
632fe8fb19SBen Grasset in the
642fe8fb19SBen Gras.Pa /etc/netconfig
652fe8fb19SBen Grasfile.
662fe8fb19SBen Gras.It circuit_v
672fe8fb19SBen GrasThis is same as
682fe8fb19SBen Gras.Fa visible
692fe8fb19SBen Grasexcept that it chooses only the connection oriented transports
702fe8fb19SBen Gras(semantics
712fe8fb19SBen Gras.Fa tpi_cots
722fe8fb19SBen Grasor
732fe8fb19SBen Gras.Fa tpi_cots_ord )
742fe8fb19SBen Grasfrom the entries in the
752fe8fb19SBen Gras.Pa /etc/netconfig
762fe8fb19SBen Grasfile.
772fe8fb19SBen Gras.It datagram_v
782fe8fb19SBen GrasThis is same as
792fe8fb19SBen Gras.Fa visible
802fe8fb19SBen Grasexcept that it chooses only the connectionless datagram transports
812fe8fb19SBen Gras(semantics
822fe8fb19SBen Gras.Fa tpi_clts )
832fe8fb19SBen Grasfrom the entries in the
842fe8fb19SBen Gras.Pa /etc/netconfig
852fe8fb19SBen Grasfile.
862fe8fb19SBen Gras.It circuit_n
872fe8fb19SBen GrasThis is same as
882fe8fb19SBen Gras.Fa netpath
892fe8fb19SBen Grasexcept that it chooses only the connection oriented datagram transports
902fe8fb19SBen Gras(semantics
912fe8fb19SBen Gras.Fa tpi_cots
922fe8fb19SBen Grasor
932fe8fb19SBen Gras.Fa tpi_cots_ord ) .
942fe8fb19SBen Gras.It datagram_n
952fe8fb19SBen GrasThis is same as
962fe8fb19SBen Gras.Fa netpath
972fe8fb19SBen Grasexcept that it chooses only the connectionless datagram transports
982fe8fb19SBen Gras(semantics
992fe8fb19SBen Gras.Fa tpi_clts ) .
1002fe8fb19SBen Gras.It udp
1012fe8fb19SBen GrasThis refers to Internet UDP, both version 4 and 6.
1022fe8fb19SBen Gras.It tcp
1032fe8fb19SBen GrasThis refers to Internet TCP, both version 4 and 6.
1042fe8fb19SBen Gras.El
1052fe8fb19SBen Gras.Pp
1062fe8fb19SBen GrasIf
1072fe8fb19SBen Gras.Fa nettype
1082fe8fb19SBen Grasis
1092fe8fb19SBen Gras.Dv NULL ,
1102fe8fb19SBen Grasit defaults to
1112fe8fb19SBen Gras.Fa netpath .
1122fe8fb19SBen GrasThe transports are tried in left to right order in the
1132fe8fb19SBen Gras.Ev NETPATH
1142fe8fb19SBen Grasvariable or in top to down order in the
1152fe8fb19SBen Gras.Pa /etc/netconfig
1162fe8fb19SBen Grasfile.
1172fe8fb19SBen Gras.Ss Derived Types
1182fe8fb19SBen GrasThe derived types used in the RPC interfaces are defined as follows:
1192fe8fb19SBen Gras.Bd -literal
1202fe8fb19SBen Gras	typedef uint32_t rpcprog_t;
1212fe8fb19SBen Gras	typedef uint32_t rpcvers_t;
1222fe8fb19SBen Gras	typedef uint32_t rpcproc_t;
1232fe8fb19SBen Gras	typedef uint32_t rpcprot_t;
1242fe8fb19SBen Gras	typedef uint32_t rpcport_t;
1252fe8fb19SBen Gras	typedef   int32_t rpc_inline_t;
1262fe8fb19SBen Gras.Ed
1272fe8fb19SBen Gras.Ss Data Structures
1282fe8fb19SBen GrasSome of the data structures used by the
1292fe8fb19SBen GrasRPC package are shown below.
1302fe8fb19SBen Gras.Ss The AUTH Structure
1312fe8fb19SBen Gras.Bd -literal
1322fe8fb19SBen Gras/*
1332fe8fb19SBen Gras * Authentication info. Opaque to client.
1342fe8fb19SBen Gras */
1352fe8fb19SBen Grasstruct opaque_auth {
1362fe8fb19SBen Gras    enum_t    oa_flavor;    /* flavor of auth */
1372fe8fb19SBen Gras    caddr_t    oa_base;    /* address of more auth stuff */
1382fe8fb19SBen Gras    u_int    oa_length;    /* not to exceed MAX_AUTH_BYTES */
1392fe8fb19SBen Gras};
1402fe8fb19SBen Gras
1412fe8fb19SBen Gras/*
1422fe8fb19SBen Gras * Auth handle, interface to client side authenticators.
1432fe8fb19SBen Gras */
1442fe8fb19SBen Grastypedef struct {
1452fe8fb19SBen Gras    struct    opaque_auth    ah_cred;
1462fe8fb19SBen Gras    struct    opaque_auth    ah_verf;
1472fe8fb19SBen Gras    struct auth_ops {
1482fe8fb19SBen Gras        void    (*ah_nextverf)(\|);
1492fe8fb19SBen Gras        int    (*ah_marshal)(\|);    /* nextverf \*[Am] serialize */
1502fe8fb19SBen Gras        int    (*ah_validate)(\|);    /* validate verifier */
1512fe8fb19SBen Gras        int    (*ah_refresh)(\|);    /* refresh credentials */
1522fe8fb19SBen Gras        void    (*ah_destroy)(\|);    /* destroy this structure */
1532fe8fb19SBen Gras    } *ah_ops;
1542fe8fb19SBen Gras    caddr_t ah_private;
1552fe8fb19SBen Gras} AUTH;
1562fe8fb19SBen Gras.Ed
1572fe8fb19SBen Gras.Ss The CLIENT Structure
1582fe8fb19SBen Gras.Bd -literal
1592fe8fb19SBen Gras/*
1602fe8fb19SBen Gras * Client rpc handle.
1612fe8fb19SBen Gras * Created by individual implementations.
1622fe8fb19SBen Gras * Client is responsible for initializing auth.
1632fe8fb19SBen Gras */
1642fe8fb19SBen Gras
1652fe8fb19SBen Grastypedef struct {
1662fe8fb19SBen Gras    AUTH    *cl_auth;    /* authenticator */
1672fe8fb19SBen Gras    struct clnt_ops {
1682fe8fb19SBen Gras        enum clnt_stat    (*cl_call)();    /* call remote procedure */
1692fe8fb19SBen Gras        void    (*cl_abort)();        /* abort a call */
1702fe8fb19SBen Gras        void    (*cl_geterr)();        /* get specific error code */
1712fe8fb19SBen Gras        bool_t    (*cl_freeres)();    /* frees results */
1722fe8fb19SBen Gras        void    (*cl_destroy)();    /* destroy this structure */
1732fe8fb19SBen Gras        bool_t    (*cl_control)();    /* the ioctl() of rpc */
1742fe8fb19SBen Gras    } *cl_ops;
1752fe8fb19SBen Gras    caddr_t    cl_private;    /* private stuff */
1762fe8fb19SBen Gras    char    *cl_netid;    /* network identifier */
1772fe8fb19SBen Gras    char    *cl_tp;        /* device name */
1782fe8fb19SBen Gras} CLIENT;
1792fe8fb19SBen Gras.Ed
1802fe8fb19SBen Gras.Ss The SVCXPRT structure
1812fe8fb19SBen Gras.Bd -literal
1822fe8fb19SBen Grasenum xprt_stat {
1832fe8fb19SBen Gras    XPRT_DIED,
1842fe8fb19SBen Gras    XPRT_MOREREQS,
1852fe8fb19SBen Gras    XPRT_IDLE
1862fe8fb19SBen Gras};
1872fe8fb19SBen Gras
1882fe8fb19SBen Gras/*
1892fe8fb19SBen Gras * Server side transport handle
1902fe8fb19SBen Gras */
1912fe8fb19SBen Grastypedef struct {
1922fe8fb19SBen Gras    int    xp_fd;    /* file descriptor for the server handle */
1932fe8fb19SBen Gras    u_short    xp_port;    /* obsolete */
1942fe8fb19SBen Gras    const struct xp_ops {
1952fe8fb19SBen Gras        bool_t    (*xp_recv)();    /* receive incoming requests */
1962fe8fb19SBen Gras        enum xprt_stat    (*xp_stat)();    /* get transport status */
1972fe8fb19SBen Gras        bool_t    (*xp_getargs)();    /* get arguments */
1982fe8fb19SBen Gras        bool_t    (*xp_reply)();      /* send reply */
1992fe8fb19SBen Gras        bool_t    (*xp_freeargs)(); /* free mem allocated for args */
2002fe8fb19SBen Gras        void    (*xp_destroy)();    /* destroy this struct */
2012fe8fb19SBen Gras    } *xp_ops;
2022fe8fb19SBen Gras    int    xp_addrlen;    /* length of remote addr.  Obsolete */
2032fe8fb19SBen Gras    struct sockaddr_in    xp_raddr; /* Obsolete */
2042fe8fb19SBen Gras    const struct xp_ops2 {
2052fe8fb19SBen Gras        bool_t    (*xp_control)();    /* catch-all function */
2062fe8fb19SBen Gras    } *xp_ops2;
2072fe8fb19SBen Gras    char    *xp_tp;    /* transport provider device name */
2082fe8fb19SBen Gras    char    *xp_netid;    /* network identifier */
2092fe8fb19SBen Gras    struct netbuf    xp_ltaddr;    /* local transport address */
2102fe8fb19SBen Gras    struct netbuf    xp_rtaddr;    /* remote transport address */
2112fe8fb19SBen Gras    struct opaque_auth    xp_verf;    /* raw response verifier */
2122fe8fb19SBen Gras    caddr_t    xp_p1;    /* private: for use by svc ops */
2132fe8fb19SBen Gras    caddr_t    xp_p2;    /* private: for use by svc ops */
2142fe8fb19SBen Gras    caddr_t    xp_p3;    /* private: for use by svc lib */
2152fe8fb19SBen Gras    int    xp_type    /* transport type */
2162fe8fb19SBen Gras} SVCXPRT;
2172fe8fb19SBen Gras.Ed
2182fe8fb19SBen Gras.Ss The svc_req structure
2192fe8fb19SBen Gras.Bd -literal
2202fe8fb19SBen Grasstruct svc_req {
2212fe8fb19SBen Gras    rpcprog_t    rq_prog;    /* service program number */
2222fe8fb19SBen Gras    rpcvers_t    rq_vers;    /* service protocol version */
2232fe8fb19SBen Gras    rpcproc_t    rq_proc;    /* the desired procedure */
2242fe8fb19SBen Gras    struct opaque_auth    rq_cred;    /* raw creds from the wire */
2252fe8fb19SBen Gras    caddr_t    rq_clntcred;    /* read only cooked cred */
2262fe8fb19SBen Gras    SVCXPRT    *rq_xprt;    /* associated transport */
2272fe8fb19SBen Gras};
2282fe8fb19SBen Gras.Ed
2292fe8fb19SBen Gras.Ss The XDR structure
2302fe8fb19SBen Gras.Bd -literal
2312fe8fb19SBen Gras/*
2322fe8fb19SBen Gras * XDR operations.
2332fe8fb19SBen Gras * XDR_ENCODE causes the type to be encoded into the stream.
2342fe8fb19SBen Gras * XDR_DECODE causes the type to be extracted from the stream.
2352fe8fb19SBen Gras * XDR_FREE can be used to release the space allocated by an XDR_DECODE
2362fe8fb19SBen Gras * request.
2372fe8fb19SBen Gras */
2382fe8fb19SBen Grasenum xdr_op {
2392fe8fb19SBen Gras    XDR_ENCODE=0,
2402fe8fb19SBen Gras    XDR_DECODE=1,
2412fe8fb19SBen Gras    XDR_FREE=2
2422fe8fb19SBen Gras};
2432fe8fb19SBen Gras/*
2442fe8fb19SBen Gras * This is the number of bytes per unit of external data.
2452fe8fb19SBen Gras */
2462fe8fb19SBen Gras#define BYTES_PER_XDR_UNIT    (4)
2472fe8fb19SBen Gras#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) /
2482fe8fb19SBen Gras                   BYTES_PER_XDR_UNIT) \e * BYTES_PER_XDR_UNIT)
2492fe8fb19SBen Gras
2502fe8fb19SBen Gras/*
2512fe8fb19SBen Gras * A xdrproc_t exists for each data type which is to be encoded or
2522fe8fb19SBen Gras * decoded.  The second argument to the xdrproc_t is a pointer to
2532fe8fb19SBen Gras * an opaque pointer.  The opaque pointer generally points to a
2542fe8fb19SBen Gras * structure of the data type to be decoded.  If this points to 0,
2552fe8fb19SBen Gras * then the type routines should allocate dynamic storage of the
2562fe8fb19SBen Gras * appropriate size and return it.
2572fe8fb19SBen Gras */
258*f14fb602SLionel Sambuctypedef  bool_t (*xdrproc_t)(XDR *, const void *);
2592fe8fb19SBen Gras
2602fe8fb19SBen Gras/*
2612fe8fb19SBen Gras * The XDR handle.
2622fe8fb19SBen Gras * Contains operation which is being applied to the stream,
2632fe8fb19SBen Gras * an operations vector for the particular implementation
2642fe8fb19SBen Gras */
2652fe8fb19SBen Grastypedef struct {
2662fe8fb19SBen Gras    enum xdr_op    x_op;    /* operation; fast additional param */
2672fe8fb19SBen Gras    struct xdr_ops {
2682fe8fb19SBen Gras        bool_t    (*x_getlong)();    /* get a long from underlying stream */
2692fe8fb19SBen Gras        bool_t    (*x_putlong)();    /* put a long to underlying stream */
2702fe8fb19SBen Gras        bool_t    (*x_getbytes)(); /* get bytes from underlying stream */
2712fe8fb19SBen Gras        bool_t    (*x_putbytes)(); /* put bytes to underlying stream */
2722fe8fb19SBen Gras        u_int    (*x_getpostn)(); /* returns bytes off from beginning */
2732fe8fb19SBen Gras        bool_t    (*x_setpostn)(); /* lets you reposition the stream */
2742fe8fb19SBen Gras        long *    (*x_inline)();    /* buf quick ptr to buffered data */
2752fe8fb19SBen Gras        void    (*x_destroy)();    /* free privates of this xdr_stream */
2762fe8fb19SBen Gras    } *x_ops;
2772fe8fb19SBen Gras    caddr_t    x_public;    /* users' data */
2782fe8fb19SBen Gras    caddr_t    x_private;    /* pointer to private data */
2792fe8fb19SBen Gras    caddr_t    x_base;    /* private used for position info */
2802fe8fb19SBen Gras    int    x_handy;    /* extra private word */
2812fe8fb19SBen Gras} XDR;
2822fe8fb19SBen Gras
2832fe8fb19SBen Gras/*
2842fe8fb19SBen Gras * The netbuf structure. This structure is defined in \*[Lt]xti.h\*[Gt] on SysV
2852fe8fb19SBen Gras * systems, but NetBSD does not use XTI.
2862fe8fb19SBen Gras *
2872fe8fb19SBen Gras * Usually, buf will point to a struct sockaddr, and len and maxlen
2882fe8fb19SBen Gras * will contain the length and maximum length of that socket address,
2892fe8fb19SBen Gras * respectively.
2902fe8fb19SBen Gras */
2912fe8fb19SBen Grasstruct netbuf {
2922fe8fb19SBen Gras	unsigned int maxlen;
2932fe8fb19SBen Gras	unsigned int len;
2942fe8fb19SBen Gras	void *buf;
2952fe8fb19SBen Gras};
2962fe8fb19SBen Gras
2972fe8fb19SBen Gras/*
2982fe8fb19SBen Gras * The format of the address and options arguments of the XTI t_bind call.
2992fe8fb19SBen Gras * Only provided for compatibility, it should not be used other than
3002fe8fb19SBen Gras * as an argument to svc_tli_create().
3012fe8fb19SBen Gras */
3022fe8fb19SBen Gras
3032fe8fb19SBen Grasstruct t_bind {
3042fe8fb19SBen Gras	struct netbuf   addr;
3052fe8fb19SBen Gras	unsigned int    qlen;
3062fe8fb19SBen Gras};
3072fe8fb19SBen Gras.Ed
3082fe8fb19SBen Gras.Ss Index to Routines
3092fe8fb19SBen GrasThe following table lists RPC routines and the manual reference
3102fe8fb19SBen Graspages on which they are described:
3112fe8fb19SBen Gras.Bl -column "authunix_create_default()" "rpc_clnt_create(3)"
3122fe8fb19SBen Gras.It Em "RPC Routine" Ta Em "Manual Reference Page"
3132fe8fb19SBen Gras.Pp
314*f14fb602SLionel Sambuc.It Fn auth_destroy Ta Xr rpc_clnt_auth 3
315*f14fb602SLionel Sambuc.It Fn authdes_create Ta Xr rpc_soc 3
316*f14fb602SLionel Sambuc.It Fn authnone_create Ta Xr rpc_clnt_auth 3
317*f14fb602SLionel Sambuc.It Fn authsys_create Ta Xr rpc_clnt_auth 3
318*f14fb602SLionel Sambuc.It Fn authsys_create_default Ta Xr rpc_clnt_auth 3
319*f14fb602SLionel Sambuc.It Fn authunix_create Ta Xr rpc_soc 3
320*f14fb602SLionel Sambuc.It Fn authunix_create_default Ta Xr rpc_soc 3
321*f14fb602SLionel Sambuc.It Fn callrpc Ta Xr rpc_soc 3
322*f14fb602SLionel Sambuc.It Fn clnt_broadcast Ta Xr rpc_soc 3
323*f14fb602SLionel Sambuc.It Fn clnt_call Ta Xr rpc_clnt_calls 3
324*f14fb602SLionel Sambuc.It Fn clnt_control Ta Xr rpc_clnt_create 3
325*f14fb602SLionel Sambuc.It Fn clnt_create Ta Xr rpc_clnt_create 3
326*f14fb602SLionel Sambuc.It Fn clnt_destroy Ta Xr rpc_clnt_create 3
327*f14fb602SLionel Sambuc.It Fn clnt_dg_create Ta Xr rpc_clnt_create 3
328*f14fb602SLionel Sambuc.It Fn clnt_freeres Ta Xr rpc_clnt_calls 3
329*f14fb602SLionel Sambuc.It Fn clnt_geterr Ta Xr rpc_clnt_calls 3
330*f14fb602SLionel Sambuc.It Fn clnt_pcreateerror Ta Xr rpc_clnt_create 3
331*f14fb602SLionel Sambuc.It Fn clnt_perrno Ta Xr rpc_clnt_calls 3
332*f14fb602SLionel Sambuc.It Fn clnt_perror Ta Xr rpc_clnt_calls 3
333*f14fb602SLionel Sambuc.It Fn clnt_raw_create Ta Xr rpc_clnt_create 3
334*f14fb602SLionel Sambuc.It Fn clnt_spcreateerror Ta Xr rpc_clnt_create 3
335*f14fb602SLionel Sambuc.It Fn clnt_sperrno Ta Xr rpc_clnt_calls 3
336*f14fb602SLionel Sambuc.It Fn clnt_sperror Ta Xr rpc_clnt_calls 3
337*f14fb602SLionel Sambuc.It Fn clnt_tli_create Ta Xr rpc_clnt_create 3
338*f14fb602SLionel Sambuc.It Fn clnt_tp_create Ta Xr rpc_clnt_create 3
339*f14fb602SLionel Sambuc.It Fn clnt_udpcreate Ta Xr rpc_soc 3
340*f14fb602SLionel Sambuc.It Fn clnt_vc_create Ta Xr rpc_clnt_create 3
341*f14fb602SLionel Sambuc.It Fn clntraw_create Ta Xr rpc_soc 3
342*f14fb602SLionel Sambuc.It Fn clnttcp_create Ta Xr rpc_soc 3
343*f14fb602SLionel Sambuc.It Fn clntudp_bufcreate Ta Xr rpc_soc 3
344*f14fb602SLionel Sambuc.It Fn get_myaddress Ta Xr rpc_soc 3
345*f14fb602SLionel Sambuc.It Fn pmap_getmaps Ta Xr rpc_soc 3
346*f14fb602SLionel Sambuc.It Fn pmap_getport Ta Xr rpc_soc 3
347*f14fb602SLionel Sambuc.It Fn pmap_rmtcall Ta Xr rpc_soc 3
348*f14fb602SLionel Sambuc.It Fn pmap_set Ta Xr rpc_soc 3
349*f14fb602SLionel Sambuc.It Fn pmap_unset Ta Xr rpc_soc 3
350*f14fb602SLionel Sambuc.It Fn registerrpc Ta Xr rpc_soc 3
351*f14fb602SLionel Sambuc.It Fn rpc_broadcast Ta Xr rpc_clnt_calls 3
352*f14fb602SLionel Sambuc.It Fn rpc_broadcast_exp Ta Xr rpc_clnt_calls 3
353*f14fb602SLionel Sambuc.It Fn rpc_call Ta Xr rpc_clnt_calls 3
354*f14fb602SLionel Sambuc.It Fn rpc_reg Ta Xr rpc_svc_calls 3
355*f14fb602SLionel Sambuc.It Fn svc_create Ta Xr rpc_svc_create 3
356*f14fb602SLionel Sambuc.It Fn svc_destroy Ta Xr rpc_svc_create 3
357*f14fb602SLionel Sambuc.It Fn svc_dg_create Ta Xr rpc_svc_create 3
358*f14fb602SLionel Sambuc.It Fn svc_dg_enablecache Ta Xr rpc_svc_calls 3
359*f14fb602SLionel Sambuc.It Fn svc_fd_create Ta Xr rpc_svc_create 3
360*f14fb602SLionel Sambuc.It Fn svc_fds Ta Xr rpc_soc 3
361*f14fb602SLionel Sambuc.It Fn svc_freeargs Ta Xr rpc_svc_reg 3
362*f14fb602SLionel Sambuc.It Fn svc_getargs Ta Xr rpc_svc_reg 3
363*f14fb602SLionel Sambuc.It Fn svc_getcaller Ta Xr rpc_soc 3
364*f14fb602SLionel Sambuc.It Fn svc_getreq Ta Xr rpc_soc 3
365*f14fb602SLionel Sambuc.It Fn svc_getreqset Ta Xr rpc_svc_calls 3
366*f14fb602SLionel Sambuc.It Fn svc_getrpccaller Ta Xr rpc_svc_calls 3
367*f14fb602SLionel Sambuc.It Fn svc_kerb_reg Ta Xr kerberos_rpc 3
368*f14fb602SLionel Sambuc.It Fn svc_raw_create Ta Xr rpc_svc_create 3
369*f14fb602SLionel Sambuc.It Fn svc_reg Ta Xr rpc_svc_calls 3
370*f14fb602SLionel Sambuc.It Fn svc_register Ta Xr rpc_soc 3
371*f14fb602SLionel Sambuc.It Fn svc_run Ta Xr rpc_svc_reg 3
372*f14fb602SLionel Sambuc.It Fn svc_sendreply Ta Xr rpc_svc_reg 3
373*f14fb602SLionel Sambuc.It Fn svc_tli_create Ta Xr rpc_svc_create 3
374*f14fb602SLionel Sambuc.It Fn svc_tp_create Ta Xr rpc_svc_create 3
375*f14fb602SLionel Sambuc.It Fn svc_unreg Ta Xr rpc_svc_calls 3
376*f14fb602SLionel Sambuc.It Fn svc_unregister Ta  Xr rpc_soc 3
377*f14fb602SLionel Sambuc.It Fn svc_vc_create Ta Xr rpc_svc_create 3
378*f14fb602SLionel Sambuc.It Fn svcerr_auth Ta Xr rpc_svc_err 3
379*f14fb602SLionel Sambuc.It Fn svcerr_decode Ta Xr rpc_svc_err 3
380*f14fb602SLionel Sambuc.It Fn svcerr_noproc Ta Xr rpc_svc_err 3
381*f14fb602SLionel Sambuc.It Fn svcerr_noprog Ta Xr rpc_svc_err 3
382*f14fb602SLionel Sambuc.It Fn svcerr_progvers Ta Xr rpc_svc_err 3
383*f14fb602SLionel Sambuc.It Fn svcerr_systemerr Ta Xr rpc_svc_err 3
384*f14fb602SLionel Sambuc.It Fn svcerr_weakauth Ta Xr rpc_svc_err 3
385*f14fb602SLionel Sambuc.It Fn svcfd_create Ta Xr rpc_soc 3
386*f14fb602SLionel Sambuc.It Fn svcraw_create Ta Xr rpc_soc 3
387*f14fb602SLionel Sambuc.It Fn svctcp_create Ta Xr rpc_soc 3
388*f14fb602SLionel Sambuc.It Fn svcudp_bufcreate Ta Xr rpc_soc 3
389*f14fb602SLionel Sambuc.It Fn svcudp_create Ta Xr rpc_soc 3
390*f14fb602SLionel Sambuc.It Fn xdr_accepted_reply Ta Xr rpc_xdr 3
391*f14fb602SLionel Sambuc.It Fn xdr_authsys_parms Ta Xr rpc_xdr 3
392*f14fb602SLionel Sambuc.It Fn xdr_authunix_parms Ta Xr rpc_soc 3
393*f14fb602SLionel Sambuc.It Fn xdr_callhdr Ta Xr rpc_xdr 3
394*f14fb602SLionel Sambuc.It Fn xdr_callmsg Ta Xr rpc_xdr 3
395*f14fb602SLionel Sambuc.It Fn xdr_opaque_auth Ta Xr rpc_xdr 3
396*f14fb602SLionel Sambuc.It Fn xdr_rejected_reply Ta Xr rpc_xdr 3
397*f14fb602SLionel Sambuc.It Fn xdr_replymsg Ta Xr rpc_xdr 3
398*f14fb602SLionel Sambuc.It Fn xprt_register Ta Xr rpc_svc_calls 3
399*f14fb602SLionel Sambuc.It Fn xprt_unregister Ta Xr rpc_svc_calls 3
4002fe8fb19SBen Gras.El
4012fe8fb19SBen Gras.Sh FILES
4022fe8fb19SBen Gras.Pa /etc/netconfig
4032fe8fb19SBen Gras.Sh SEE ALSO
4042fe8fb19SBen Gras.Xr getnetconfig 3 ,
4052fe8fb19SBen Gras.Xr getnetpath 3 ,
4062fe8fb19SBen Gras.Xr rpc_clnt_auth 3 ,
4072fe8fb19SBen Gras.Xr rpc_clnt_calls 3 ,
4082fe8fb19SBen Gras.Xr rpc_clnt_create 3 ,
4092fe8fb19SBen Gras.Xr rpc_svc_calls 3 ,
4102fe8fb19SBen Gras.Xr rpc_svc_create 3 ,
4112fe8fb19SBen Gras.Xr rpc_svc_err 3 ,
4122fe8fb19SBen Gras.Xr rpc_svc_reg 3 ,
4132fe8fb19SBen Gras.Xr rpc_xdr 3 ,
4142fe8fb19SBen Gras.Xr rpcbind 3 ,
4152fe8fb19SBen Gras.Xr xdr 3 ,
4162fe8fb19SBen Gras.Xr netconfig 5
417