xref: /dflybsd-src/lib/libc/rpc/rpc.3 (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino.\" @(#)rpc.3n 1.31 93/08/31 SMI; from SVr4
286d7f5d3SJohn Marino.\" Copyright 1989 AT&T
386d7f5d3SJohn Marino.\" $NetBSD: rpc.3,v 1.10 2000/06/02 23:11:12 fvdl Exp $
486d7f5d3SJohn Marino.\" $FreeBSD: src/lib/libc/rpc/rpc.3,v 1.23 2004/07/03 22:30:09 ru Exp $
586d7f5d3SJohn Marino.\" $DragonFly: src/lib/libc/rpc/rpc.3,v 1.8 2008/05/01 22:06:06 swildner Exp $
686d7f5d3SJohn Marino.\"
786d7f5d3SJohn Marino.Dd February 23, 2009
886d7f5d3SJohn Marino.Dt RPC 3
986d7f5d3SJohn Marino.Os
1086d7f5d3SJohn Marino.Sh NAME
1186d7f5d3SJohn Marino.Nm rpc
1286d7f5d3SJohn Marino.Nd library routines for remote procedure calls
1386d7f5d3SJohn Marino.Sh LIBRARY
1486d7f5d3SJohn Marino.Lb libc
1586d7f5d3SJohn Marino.Sh SYNOPSIS
1686d7f5d3SJohn Marino.In rpc/rpc.h
1786d7f5d3SJohn Marino.In netconfig.h
1886d7f5d3SJohn Marino.Sh DESCRIPTION
1986d7f5d3SJohn MarinoThese
2086d7f5d3SJohn Marinoroutines allow C language programs to make procedure
2186d7f5d3SJohn Marinocalls on other machines across a network.
2286d7f5d3SJohn MarinoFirst, the client sends a request to the server.
2386d7f5d3SJohn MarinoOn receipt of the request, the server calls a dispatch routine
2486d7f5d3SJohn Marinoto perform the requested service, and then sends back a reply.
2586d7f5d3SJohn Marino.Pp
2686d7f5d3SJohn MarinoAll
2786d7f5d3SJohn MarinoRPC routines require the header
2886d7f5d3SJohn Marino.In rpc/rpc.h .
2986d7f5d3SJohn MarinoRoutines that take a
3086d7f5d3SJohn Marino.Vt "struct netconfig"
3186d7f5d3SJohn Marinoalso require that
3286d7f5d3SJohn Marino.In netconfig.h
3386d7f5d3SJohn Marinobe included.
3486d7f5d3SJohn Marino.Sh Nettype
3586d7f5d3SJohn MarinoSome of the high-level
3686d7f5d3SJohn MarinoRPC interface routines take a
3786d7f5d3SJohn Marino.Fa nettype
3886d7f5d3SJohn Marinostring as one of the arguments
3986d7f5d3SJohn Marino(for example,
4086d7f5d3SJohn Marino.Fn clnt_create ,
4186d7f5d3SJohn Marino.Fn svc_create ,
4286d7f5d3SJohn Marino.Fn rpc_reg ,
4386d7f5d3SJohn Marino.Fn rpc_call ) .
4486d7f5d3SJohn MarinoThis string defines a class of transports which can be used
4586d7f5d3SJohn Marinofor a particular application.
4686d7f5d3SJohn Marino.Pp
4786d7f5d3SJohn MarinoThe
4886d7f5d3SJohn Marino.Fa nettype
4986d7f5d3SJohn Marinoargument
5086d7f5d3SJohn Marinocan be one of the following:
5186d7f5d3SJohn Marino.Bl -tag -width datagram_v
5286d7f5d3SJohn Marino.It netpath
5386d7f5d3SJohn MarinoChoose from the transports which have been
5486d7f5d3SJohn Marinoindicated by their token names in the
5586d7f5d3SJohn Marino.Ev NETPATH
5686d7f5d3SJohn Marinoenvironment variable.
5786d7f5d3SJohn Marino.Ev NETPATH
5886d7f5d3SJohn Marinois unset or
5986d7f5d3SJohn Marino.Dv NULL ,
6086d7f5d3SJohn Marinoit defaults to
6186d7f5d3SJohn Marino.Qq visible .
6286d7f5d3SJohn Marino.Qq netpath
6386d7f5d3SJohn Marinois the default
6486d7f5d3SJohn Marino.Fa nettype .
6586d7f5d3SJohn Marino.It visible
6686d7f5d3SJohn MarinoChoose the transports which have the visible flag (v)
6786d7f5d3SJohn Marinoset in the
6886d7f5d3SJohn Marino.Pa /etc/netconfig
6986d7f5d3SJohn Marinofile.
7086d7f5d3SJohn Marino.It circuit_v
7186d7f5d3SJohn MarinoThis is same as
7286d7f5d3SJohn Marino.Qq visible
7386d7f5d3SJohn Marinoexcept that it chooses only the connection oriented transports
7486d7f5d3SJohn Marino(semantics
7586d7f5d3SJohn Marino.Qq tpi_cots
7686d7f5d3SJohn Marinoor
7786d7f5d3SJohn Marino.Qq tpi_cots_ord )
7886d7f5d3SJohn Marinofrom the entries in the
7986d7f5d3SJohn Marino.Pa /etc/netconfig
8086d7f5d3SJohn Marinofile.
8186d7f5d3SJohn Marino.It datagram_v
8286d7f5d3SJohn MarinoThis is same as
8386d7f5d3SJohn Marino.Qq visible
8486d7f5d3SJohn Marinoexcept that it chooses only the connectionless datagram transports
8586d7f5d3SJohn Marino(semantics
8686d7f5d3SJohn Marino.Qq tpi_clts )
8786d7f5d3SJohn Marinofrom the entries in the
8886d7f5d3SJohn Marino.Pa /etc/netconfig
8986d7f5d3SJohn Marinofile.
9086d7f5d3SJohn Marino.It circuit_n
9186d7f5d3SJohn MarinoThis is same as
9286d7f5d3SJohn Marino.Qq netpath
9386d7f5d3SJohn Marinoexcept that it chooses only the connection oriented datagram transports
9486d7f5d3SJohn Marino(semantics
9586d7f5d3SJohn Marino.Qq tpi_cots
9686d7f5d3SJohn Marinoor
9786d7f5d3SJohn Marino.Qq tpi_cots_ord ) .
9886d7f5d3SJohn Marino.It datagram_n
9986d7f5d3SJohn MarinoThis is same as
10086d7f5d3SJohn Marino.Qq netpath
10186d7f5d3SJohn Marinoexcept that it chooses only the connectionless datagram transports
10286d7f5d3SJohn Marino(semantics
10386d7f5d3SJohn Marino.Qq tpi_clts ) .
10486d7f5d3SJohn Marino.It udp
10586d7f5d3SJohn MarinoThis refers to Internet UDP, both version 4 and 6.
10686d7f5d3SJohn Marino.It tcp
10786d7f5d3SJohn MarinoThis refers to Internet TCP, both version 4 and 6.
10886d7f5d3SJohn Marino.El
10986d7f5d3SJohn Marino.Pp
11086d7f5d3SJohn MarinoIf
11186d7f5d3SJohn Marino.Fa nettype
11286d7f5d3SJohn Marinois
11386d7f5d3SJohn Marino.Dv NULL ,
11486d7f5d3SJohn Marinoit defaults to
11586d7f5d3SJohn Marino.Qq netpath .
11686d7f5d3SJohn MarinoThe transports are tried in left to right order in the
11786d7f5d3SJohn Marino.Ev NETPATH
11886d7f5d3SJohn Marinovariable or in top to down order in the
11986d7f5d3SJohn Marino.Pa /etc/netconfig
12086d7f5d3SJohn Marinofile.
12186d7f5d3SJohn Marino.Sh Derived Types
12286d7f5d3SJohn MarinoThe derived types used in the RPC interfaces are defined as follows:
12386d7f5d3SJohn Marino.Bd -literal
12486d7f5d3SJohn Marino	typedef u_int32_t rpcprog_t;
12586d7f5d3SJohn Marino	typedef u_int32_t rpcvers_t;
12686d7f5d3SJohn Marino	typedef u_int32_t rpcproc_t;
12786d7f5d3SJohn Marino	typedef u_int32_t rpcprot_t;
12886d7f5d3SJohn Marino	typedef u_int32_t rpcport_t;
12986d7f5d3SJohn Marino	typedef   int32_t rpc_inline_t;
13086d7f5d3SJohn Marino.Ed
13186d7f5d3SJohn Marino.Sh "Data Structures"
13286d7f5d3SJohn MarinoSome of the data structures used by the
13386d7f5d3SJohn MarinoRPC package are shown below.
13486d7f5d3SJohn Marino.Sh "The AUTH Structure"
13586d7f5d3SJohn Marino.Bd -literal
13686d7f5d3SJohn Marino/*
13786d7f5d3SJohn Marino * Authentication info. Opaque to client.
13886d7f5d3SJohn Marino */
13986d7f5d3SJohn Marinostruct opaque_auth {
14086d7f5d3SJohn Marino    enum_t    oa_flavor;    /* flavor of auth */
14186d7f5d3SJohn Marino    caddr_t    oa_base;    /* address of more auth stuff */
14286d7f5d3SJohn Marino    u_int    oa_length;    /* not to exceed MAX_AUTH_BYTES */
14386d7f5d3SJohn Marino};
14486d7f5d3SJohn Marino
14586d7f5d3SJohn Marino/*
14686d7f5d3SJohn Marino * Auth handle, interface to client side authenticators.
14786d7f5d3SJohn Marino */
14886d7f5d3SJohn Marinotypedef struct {
14986d7f5d3SJohn Marino    struct    opaque_auth    ah_cred;
15086d7f5d3SJohn Marino    struct    opaque_auth    ah_verf;
15186d7f5d3SJohn Marino    struct auth_ops {
15286d7f5d3SJohn Marino        void    (*ah_nextverf)(\|);
15386d7f5d3SJohn Marino        int    (*ah_marshal)(\|);    /* nextverf & serialize */
15486d7f5d3SJohn Marino        int    (*ah_validate)(\|);    /* validate verifier */
15586d7f5d3SJohn Marino        int    (*ah_refresh)(\|);    /* refresh credentials */
15686d7f5d3SJohn Marino        void    (*ah_destroy)(\|);    /* destroy this structure */
15786d7f5d3SJohn Marino    } *ah_ops;
15886d7f5d3SJohn Marino    caddr_t ah_private;
15986d7f5d3SJohn Marino} AUTH;
16086d7f5d3SJohn Marino.Ed
16186d7f5d3SJohn Marino.Sh "The CLIENT Structure"
16286d7f5d3SJohn Marino.Bd -literal
16386d7f5d3SJohn Marino/*
16486d7f5d3SJohn Marino * Client rpc handle.
16586d7f5d3SJohn Marino * Created by individual implementations.
16686d7f5d3SJohn Marino * Client is responsible for initializing auth.
16786d7f5d3SJohn Marino */
16886d7f5d3SJohn Marino
16986d7f5d3SJohn Marinotypedef struct {
17086d7f5d3SJohn Marino    AUTH    *cl_auth;    /* authenticator */
17186d7f5d3SJohn Marino    struct clnt_ops {
17286d7f5d3SJohn Marino        enum clnt_stat    (*cl_call)();    /* call remote procedure */
17386d7f5d3SJohn Marino        void    (*cl_abort)();        /* abort a call */
17486d7f5d3SJohn Marino        void    (*cl_geterr)();        /* get specific error code */
17586d7f5d3SJohn Marino        bool_t    (*cl_freeres)();    /* frees results */
17686d7f5d3SJohn Marino        void    (*cl_destroy)();    /* destroy this structure */
17786d7f5d3SJohn Marino        bool_t    (*cl_control)();    /* the ioctl() of rpc */
17886d7f5d3SJohn Marino    } *cl_ops;
17986d7f5d3SJohn Marino    caddr_t    cl_private;    /* private stuff */
18086d7f5d3SJohn Marino    char    *cl_netid;    /* network identifier */
18186d7f5d3SJohn Marino    char    *cl_tp;        /* device name */
18286d7f5d3SJohn Marino} CLIENT;
18386d7f5d3SJohn Marino.Ed
18486d7f5d3SJohn Marino.Sh "The SVCXPRT structure"
18586d7f5d3SJohn Marino.Bd -literal
18686d7f5d3SJohn Marinoenum xprt_stat {
18786d7f5d3SJohn Marino    XPRT_DIED,
18886d7f5d3SJohn Marino    XPRT_MOREREQS,
18986d7f5d3SJohn Marino    XPRT_IDLE
19086d7f5d3SJohn Marino};
19186d7f5d3SJohn Marino
19286d7f5d3SJohn Marino/*
19386d7f5d3SJohn Marino * Server side transport handle
19486d7f5d3SJohn Marino */
19586d7f5d3SJohn Marinotypedef struct {
19686d7f5d3SJohn Marino    int    xp_fd;    /* file descriptor for the server handle */
19786d7f5d3SJohn Marino    u_short    xp_port;    /* obsolete */
19886d7f5d3SJohn Marino    const struct xp_ops {
19986d7f5d3SJohn Marino        bool_t    (*xp_recv)();    /* receive incoming requests */
20086d7f5d3SJohn Marino        enum xprt_stat    (*xp_stat)();    /* get transport status */
20186d7f5d3SJohn Marino        bool_t    (*xp_getargs)();    /* get arguments */
20286d7f5d3SJohn Marino        bool_t    (*xp_reply)();      /* send reply */
20386d7f5d3SJohn Marino        bool_t    (*xp_freeargs)(); /* free mem allocated for args */
20486d7f5d3SJohn Marino        void    (*xp_destroy)();    /* destroy this struct */
20586d7f5d3SJohn Marino    } *xp_ops;
20686d7f5d3SJohn Marino    int    xp_addrlen;    /* length of remote addr.  Obsolete */
20786d7f5d3SJohn Marino    struct sockaddr_in    xp_raddr; /* Obsolete */
20886d7f5d3SJohn Marino    const struct xp_ops2 {
20986d7f5d3SJohn Marino        bool_t    (*xp_control)();    /* catch-all function */
21086d7f5d3SJohn Marino    } *xp_ops2;
21186d7f5d3SJohn Marino    char    *xp_tp;    /* transport provider device name */
21286d7f5d3SJohn Marino    char    *xp_netid;    /* network identifier */
21386d7f5d3SJohn Marino    struct netbuf    xp_ltaddr;    /* local transport address */
21486d7f5d3SJohn Marino    struct netbuf    xp_rtaddr;    /* remote transport address */
21586d7f5d3SJohn Marino    struct opaque_auth    xp_verf;    /* raw response verifier */
21686d7f5d3SJohn Marino    caddr_t    xp_p1;    /* private: for use by svc ops */
21786d7f5d3SJohn Marino    caddr_t    xp_p2;    /* private: for use by svc ops */
21886d7f5d3SJohn Marino    caddr_t    xp_p3;    /* private: for use by svc lib */
21986d7f5d3SJohn Marino    int    xp_type    /* transport type */
22086d7f5d3SJohn Marino} SVCXPRT;
22186d7f5d3SJohn Marino.Ed
22286d7f5d3SJohn Marino.Sh "The svc_reg structure"
22386d7f5d3SJohn Marino.Bd -literal
22486d7f5d3SJohn Marinostruct svc_req {
22586d7f5d3SJohn Marino    rpcprog_t    rq_prog;    /* service program number */
22686d7f5d3SJohn Marino    rpcvers_t    rq_vers;    /* service protocol version */
22786d7f5d3SJohn Marino    rpcproc_t    rq_proc;    /* the desired procedure */
22886d7f5d3SJohn Marino    struct opaque_auth    rq_cred;    /* raw creds from the wire */
22986d7f5d3SJohn Marino    caddr_t    rq_clntcred;    /* read only cooked cred */
23086d7f5d3SJohn Marino    SVCXPRT    *rq_xprt;    /* associated transport */
23186d7f5d3SJohn Marino};
23286d7f5d3SJohn Marino.Ed
23386d7f5d3SJohn Marino.Sh "The XDR structure"
23486d7f5d3SJohn Marino.Bd -literal
23586d7f5d3SJohn Marino/*
23686d7f5d3SJohn Marino * XDR operations.
23786d7f5d3SJohn Marino * XDR_ENCODE causes the type to be encoded into the stream.
23886d7f5d3SJohn Marino * XDR_DECODE causes the type to be extracted from the stream.
23986d7f5d3SJohn Marino * XDR_FREE can be used to release the space allocated by an XDR_DECODE
24086d7f5d3SJohn Marino * request.
24186d7f5d3SJohn Marino */
24286d7f5d3SJohn Marinoenum xdr_op {
24386d7f5d3SJohn Marino    XDR_ENCODE=0,
24486d7f5d3SJohn Marino    XDR_DECODE=1,
24586d7f5d3SJohn Marino    XDR_FREE=2
24686d7f5d3SJohn Marino};
24786d7f5d3SJohn Marino/*
24886d7f5d3SJohn Marino * This is the number of bytes per unit of external data.
24986d7f5d3SJohn Marino */
25086d7f5d3SJohn Marino#define BYTES_PER_XDR_UNIT    (4)
25186d7f5d3SJohn Marino#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) /
25286d7f5d3SJohn Marino                   BYTES_PER_XDR_UNIT) \e * BYTES_PER_XDR_UNIT)
25386d7f5d3SJohn Marino
25486d7f5d3SJohn Marino/*
25586d7f5d3SJohn Marino * A xdrproc_t exists for each data type which is to be encoded or
25686d7f5d3SJohn Marino * decoded.  The second argument to the xdrproc_t is a pointer to
25786d7f5d3SJohn Marino * an opaque pointer.  The opaque pointer generally points to a
25886d7f5d3SJohn Marino * structure of the data type to be decoded.  If this points to 0,
25986d7f5d3SJohn Marino * then the type routines should allocate dynamic storage of the
26086d7f5d3SJohn Marino * appropriate size and return it.
26186d7f5d3SJohn Marino * bool_t  (*xdrproc_t)(XDR *, caddr_t *);
26286d7f5d3SJohn Marino */
26386d7f5d3SJohn Marinotypedef  bool_t (*xdrproc_t)();
26486d7f5d3SJohn Marino
26586d7f5d3SJohn Marino/*
26686d7f5d3SJohn Marino * The XDR handle.
26786d7f5d3SJohn Marino * Contains operation which is being applied to the stream,
26886d7f5d3SJohn Marino * an operations vector for the particular implementation
26986d7f5d3SJohn Marino */
27086d7f5d3SJohn Marinotypedef struct {
27186d7f5d3SJohn Marino    enum xdr_op    x_op;    /* operation; fast additional param */
27286d7f5d3SJohn Marino    struct xdr_ops {
27386d7f5d3SJohn Marino        bool_t    (*x_getlong)();    /* get a long from underlying stream */
27486d7f5d3SJohn Marino        bool_t    (*x_putlong)();    /* put a long to underlying stream */
27586d7f5d3SJohn Marino        bool_t    (*x_getbytes)(); /* get bytes from underlying stream */
27686d7f5d3SJohn Marino        bool_t    (*x_putbytes)(); /* put bytes to underlying stream */
27786d7f5d3SJohn Marino        u_int    (*x_getpostn)(); /* returns bytes off from beginning */
27886d7f5d3SJohn Marino        bool_t    (*x_setpostn)(); /* lets you reposition the stream */
27986d7f5d3SJohn Marino        long *    (*x_inline)();    /* buf quick ptr to buffered data */
28086d7f5d3SJohn Marino        void    (*x_destroy)();    /* free privates of this xdr_stream */
28186d7f5d3SJohn Marino    } *x_ops;
28286d7f5d3SJohn Marino    char *    x_public;    /* users' data */
28386d7f5d3SJohn Marino    void *    x_private;    /* pointer to private data */
28486d7f5d3SJohn Marino    char *    x_base;    /* private used for position info */
28586d7f5d3SJohn Marino    u_int    x_handy;    /* extra private word */
28686d7f5d3SJohn Marino} XDR;
28786d7f5d3SJohn Marino
28886d7f5d3SJohn Marino/*
28986d7f5d3SJohn Marino * The netbuf structure. This structure is defined in <xti.h> on SysV
29086d7f5d3SJohn Marino * systems, but NetBSD / FreeBSD do not use XTI.
29186d7f5d3SJohn Marino *
29286d7f5d3SJohn Marino * Usually, buf will point to a struct sockaddr, and len and maxlen
29386d7f5d3SJohn Marino * will contain the length and maximum length of that socket address,
29486d7f5d3SJohn Marino * respectively.
29586d7f5d3SJohn Marino */
29686d7f5d3SJohn Marinostruct netbuf {
29786d7f5d3SJohn Marino	unsigned int maxlen;
29886d7f5d3SJohn Marino	unsigned int len;
29986d7f5d3SJohn Marino	void *buf;
30086d7f5d3SJohn Marino};
30186d7f5d3SJohn Marino
30286d7f5d3SJohn Marino/*
30386d7f5d3SJohn Marino * The format of the address and options arguments of the XTI t_bind call.
30486d7f5d3SJohn Marino * Only provided for compatibility, it should not be used other than
30586d7f5d3SJohn Marino * as an argument to svc_tli_create().
30686d7f5d3SJohn Marino */
30786d7f5d3SJohn Marino
30886d7f5d3SJohn Marinostruct t_bind {
30986d7f5d3SJohn Marino	struct netbuf   addr;
31086d7f5d3SJohn Marino	unsigned int    qlen;
31186d7f5d3SJohn Marino};
31286d7f5d3SJohn Marino.Ed
31386d7f5d3SJohn Marino.Sh "Index to Routines"
31486d7f5d3SJohn MarinoThe following table lists RPC routines and the manual reference
31586d7f5d3SJohn Marinopages on which they are described:
31686d7f5d3SJohn Marino.Pp
31786d7f5d3SJohn Marino.Bl -tag -width "authunix_create_default()" -compact
31886d7f5d3SJohn Marino.It Em "RPC Routine"
31986d7f5d3SJohn Marino.Em "Manual Reference Page"
32086d7f5d3SJohn Marino.Pp
32186d7f5d3SJohn Marino.It Fn auth_destroy
32286d7f5d3SJohn Marino.Xr rpc_clnt_auth 3
32386d7f5d3SJohn Marino.It Fn authdes_create
32486d7f5d3SJohn Marino.Xr rpc_soc 3
32586d7f5d3SJohn Marino.It Fn authnone_create
32686d7f5d3SJohn Marino.Xr rpc_clnt_auth 3
32786d7f5d3SJohn Marino.It Fn authsys_create
32886d7f5d3SJohn Marino.Xr rpc_clnt_auth 3
32986d7f5d3SJohn Marino.It Fn authsys_create_default
33086d7f5d3SJohn Marino.Xr rpc_clnt_auth 3
33186d7f5d3SJohn Marino.It Fn authunix_create
33286d7f5d3SJohn Marino.Xr rpc_soc 3
33386d7f5d3SJohn Marino.It Fn authunix_create_default
33486d7f5d3SJohn Marino.Xr rpc_soc 3
33586d7f5d3SJohn Marino.It Fn callrpc
33686d7f5d3SJohn Marino.Xr rpc_soc 3
33786d7f5d3SJohn Marino.It Fn clnt_broadcast
33886d7f5d3SJohn Marino.Xr rpc_soc 3
33986d7f5d3SJohn Marino.It Fn clnt_call
34086d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
34186d7f5d3SJohn Marino.It Fn clnt_control
34286d7f5d3SJohn Marino.Xr rpc_clnt_create 3
34386d7f5d3SJohn Marino.It Fn clnt_create
34486d7f5d3SJohn Marino.Xr rpc_clnt_create 3
34586d7f5d3SJohn Marino.It Fn clnt_create_timed
34686d7f5d3SJohn Marino.Xr rpc_clnt_create 3
34786d7f5d3SJohn Marino.It Fn clnt_create_vers
34886d7f5d3SJohn Marino.Xr rpc_clnt_create 3
34986d7f5d3SJohn Marino.It Fn clnt_create_vers_timed
35086d7f5d3SJohn Marino.Xr rpc_clnt_create 3
35186d7f5d3SJohn Marino.It Fn clnt_destroy
35286d7f5d3SJohn Marino.Xr rpc_clnt_create 3
35386d7f5d3SJohn Marino.It Fn clnt_dg_create
35486d7f5d3SJohn Marino.Xr rpc_clnt_create 3
35586d7f5d3SJohn Marino.It Fn clnt_freeres
35686d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
35786d7f5d3SJohn Marino.It Fn clnt_geterr
35886d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
35986d7f5d3SJohn Marino.It Fn clnt_pcreateerror
36086d7f5d3SJohn Marino.Xr rpc_clnt_create 3
36186d7f5d3SJohn Marino.It Fn clnt_perrno
36286d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
36386d7f5d3SJohn Marino.It Fn clnt_perror
36486d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
36586d7f5d3SJohn Marino.It Fn clnt_raw_create
36686d7f5d3SJohn Marino.Xr rpc_clnt_create 3
36786d7f5d3SJohn Marino.It Fn clnt_spcreateerror
36886d7f5d3SJohn Marino.Xr rpc_clnt_create 3
36986d7f5d3SJohn Marino.It Fn clnt_sperrno
37086d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
37186d7f5d3SJohn Marino.It Fn clnt_sperror
37286d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
37386d7f5d3SJohn Marino.It Fn clnt_tli_create
37486d7f5d3SJohn Marino.Xr rpc_clnt_create 3
37586d7f5d3SJohn Marino.It Fn clnt_tp_create
37686d7f5d3SJohn Marino.Xr rpc_clnt_create 3
37786d7f5d3SJohn Marino.It Fn clnt_tp_create_timed
37886d7f5d3SJohn Marino.Xr rpc_clnt_create 3
37986d7f5d3SJohn Marino.It Fn clnt_vc_create
38086d7f5d3SJohn Marino.Xr rpc_clnt_create 3
38186d7f5d3SJohn Marino.It Fn clntraw_create
38286d7f5d3SJohn Marino.Xr rpc_soc 3
38386d7f5d3SJohn Marino.It Fn clnttcp_create
38486d7f5d3SJohn Marino.Xr rpc_soc 3
38586d7f5d3SJohn Marino.It Fn clntudp_bufcreate
38686d7f5d3SJohn Marino.Xr rpc_soc 3
38786d7f5d3SJohn Marino.It Fn clntudp_create
38886d7f5d3SJohn Marino.Xr rpc_soc 3
38986d7f5d3SJohn Marino.It Fn get_myaddress
39086d7f5d3SJohn Marino.Xr rpc_soc 3
39186d7f5d3SJohn Marino.It Fn pmap_getmaps
39286d7f5d3SJohn Marino.Xr rpc_soc 3
39386d7f5d3SJohn Marino.It Fn pmap_getport
39486d7f5d3SJohn Marino.Xr rpc_soc 3
39586d7f5d3SJohn Marino.It Fn pmap_rmtcall
39686d7f5d3SJohn Marino.Xr rpc_soc 3
39786d7f5d3SJohn Marino.It Fn pmap_set
39886d7f5d3SJohn Marino.Xr rpc_soc 3
39986d7f5d3SJohn Marino.It Fn pmap_unset
40086d7f5d3SJohn Marino.Xr rpc_soc 3
40186d7f5d3SJohn Marino.It Fn registerrpc
40286d7f5d3SJohn Marino.Xr rpc_soc 3
40386d7f5d3SJohn Marino.It Fn rpc_broadcast
40486d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
40586d7f5d3SJohn Marino.It Fn rpc_broadcast_exp
40686d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
40786d7f5d3SJohn Marino.It Fn rpc_call
40886d7f5d3SJohn Marino.Xr rpc_clnt_calls 3
40986d7f5d3SJohn Marino.It Fn rpc_reg
41086d7f5d3SJohn Marino.Xr rpc_svc_calls 3
41186d7f5d3SJohn Marino.It Fn svc_create
41286d7f5d3SJohn Marino.Xr rpc_svc_create 3
41386d7f5d3SJohn Marino.It Fn svc_destroy
41486d7f5d3SJohn Marino.Xr rpc_svc_create 3
41586d7f5d3SJohn Marino.It Fn svc_dg_create
41686d7f5d3SJohn Marino.Xr rpc_svc_create 3
41786d7f5d3SJohn Marino.It Fn svc_dg_enablecache
41886d7f5d3SJohn Marino.Xr rpc_svc_calls 3
41986d7f5d3SJohn Marino.It Fn svc_fd_create
42086d7f5d3SJohn Marino.Xr rpc_svc_create 3
42186d7f5d3SJohn Marino.It Fn svc_freeargs
42286d7f5d3SJohn Marino.Xr rpc_svc_reg 3
42386d7f5d3SJohn Marino.It Fn svc_getargs
42486d7f5d3SJohn Marino.Xr rpc_svc_reg 3
42586d7f5d3SJohn Marino.It Fn svc_getcaller
42686d7f5d3SJohn Marino.Xr rpc_soc 3
42786d7f5d3SJohn Marino.It Fn svc_getreq
42886d7f5d3SJohn Marino.Xr rpc_soc 3
42986d7f5d3SJohn Marino.It Fn svc_getreqset
43086d7f5d3SJohn Marino.Xr rpc_svc_calls 3
43186d7f5d3SJohn Marino.It Fn svc_getrpccaller
43286d7f5d3SJohn Marino.Xr rpc_svc_calls 3
43386d7f5d3SJohn Marino.\".It Fn svc_kerb_reg
43486d7f5d3SJohn Marino.\".Xr kerberos_rpc 3
43586d7f5d3SJohn Marino.It Fn svc_raw_create
43686d7f5d3SJohn Marino.Xr rpc_svc_create 3
43786d7f5d3SJohn Marino.It Fn svc_reg
43886d7f5d3SJohn Marino.Xr rpc_svc_calls 3
43986d7f5d3SJohn Marino.It Fn svc_register
44086d7f5d3SJohn Marino.Xr rpc_soc 3
44186d7f5d3SJohn Marino.It Fn svc_run
44286d7f5d3SJohn Marino.Xr rpc_svc_reg 3
44386d7f5d3SJohn Marino.It Fn svc_sendreply
44486d7f5d3SJohn Marino.Xr rpc_svc_reg 3
44586d7f5d3SJohn Marino.It Fn svc_tli_create
44686d7f5d3SJohn Marino.Xr rpc_svc_create 3
44786d7f5d3SJohn Marino.It Fn svc_tp_create
44886d7f5d3SJohn Marino.Xr rpc_svc_create 3
44986d7f5d3SJohn Marino.It Fn svc_unreg
45086d7f5d3SJohn Marino.Xr rpc_svc_calls 3
45186d7f5d3SJohn Marino.It Fn svc_unregister
45286d7f5d3SJohn Marino.Xr rpc_soc 3
45386d7f5d3SJohn Marino.It Fn svc_vc_create
45486d7f5d3SJohn Marino.Xr rpc_svc_create 3
45586d7f5d3SJohn Marino.It Fn svcerr_auth
45686d7f5d3SJohn Marino.Xr rpc_svc_err 3
45786d7f5d3SJohn Marino.It Fn svcerr_decode
45886d7f5d3SJohn Marino.Xr rpc_svc_err 3
45986d7f5d3SJohn Marino.It Fn svcerr_noproc
46086d7f5d3SJohn Marino.Xr rpc_svc_err 3
46186d7f5d3SJohn Marino.It Fn svcerr_noprog
46286d7f5d3SJohn Marino.Xr rpc_svc_err 3
46386d7f5d3SJohn Marino.It Fn svcerr_progvers
46486d7f5d3SJohn Marino.Xr rpc_svc_err 3
46586d7f5d3SJohn Marino.It Fn svcerr_systemerr
46686d7f5d3SJohn Marino.Xr rpc_svc_err 3
46786d7f5d3SJohn Marino.It Fn svcerr_weakauth
46886d7f5d3SJohn Marino.Xr rpc_svc_err 3
46986d7f5d3SJohn Marino.It Fn svcfd_create
47086d7f5d3SJohn Marino.Xr rpc_soc 3
47186d7f5d3SJohn Marino.It Fn svcraw_create
47286d7f5d3SJohn Marino.Xr rpc_soc 3
47386d7f5d3SJohn Marino.It Fn svctcp_create
47486d7f5d3SJohn Marino.Xr rpc_soc 3
47586d7f5d3SJohn Marino.It Fn svcudp_bufcreate
47686d7f5d3SJohn Marino.Xr rpc_soc 3
47786d7f5d3SJohn Marino.It Fn svcudp_create
47886d7f5d3SJohn Marino.Xr rpc_soc 3
47986d7f5d3SJohn Marino.It Fn xdr_accepted_reply
48086d7f5d3SJohn Marino.Xr rpc_xdr 3
48186d7f5d3SJohn Marino.It Fn xdr_authsys_parms
48286d7f5d3SJohn Marino.Xr rpc_xdr 3
48386d7f5d3SJohn Marino.It Fn xdr_authunix_parms
48486d7f5d3SJohn Marino.Xr rpc_soc 3
48586d7f5d3SJohn Marino.It Fn xdr_callhdr
48686d7f5d3SJohn Marino.Xr rpc_xdr 3
48786d7f5d3SJohn Marino.It Fn xdr_callmsg
48886d7f5d3SJohn Marino.Xr rpc_xdr 3
48986d7f5d3SJohn Marino.It Fn xdr_opaque_auth
49086d7f5d3SJohn Marino.Xr rpc_xdr 3
49186d7f5d3SJohn Marino.It Fn xdr_rejected_reply
49286d7f5d3SJohn Marino.Xr rpc_xdr 3
49386d7f5d3SJohn Marino.It Fn xdr_replymsg
49486d7f5d3SJohn Marino.Xr rpc_xdr 3
49586d7f5d3SJohn Marino.It Fn xprt_register
49686d7f5d3SJohn Marino.Xr rpc_svc_calls 3
49786d7f5d3SJohn Marino.It Fn xprt_unregister
49886d7f5d3SJohn Marino.Xr rpc_svc_calls 3
49986d7f5d3SJohn Marino.El
50086d7f5d3SJohn Marino.Sh FILES
50186d7f5d3SJohn Marino.Bl -tag -width /etc/netconfig
50286d7f5d3SJohn Marino.It Pa /etc/netconfig
50386d7f5d3SJohn Marino.El
50486d7f5d3SJohn Marino.Sh SEE ALSO
50586d7f5d3SJohn Marino.Xr getnetconfig 3 ,
50686d7f5d3SJohn Marino.Xr getnetpath 3 ,
50786d7f5d3SJohn Marino.Xr rpcbind 3 ,
50886d7f5d3SJohn Marino.Xr rpc_clnt_auth 3 ,
50986d7f5d3SJohn Marino.Xr rpc_clnt_calls 3 ,
51086d7f5d3SJohn Marino.Xr rpc_clnt_create 3 ,
51186d7f5d3SJohn Marino.Xr rpc_svc_calls 3 ,
51286d7f5d3SJohn Marino.Xr rpc_svc_create 3 ,
51386d7f5d3SJohn Marino.Xr rpc_svc_err 3 ,
51486d7f5d3SJohn Marino.Xr rpc_svc_reg 3 ,
51586d7f5d3SJohn Marino.Xr rpc_xdr 3 ,
51686d7f5d3SJohn Marino.Xr xdr 3 ,
51786d7f5d3SJohn Marino.Xr netconfig 5
518