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