Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rpc_svc_reg(3) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

poll(2)

rpc(3N)





   rpc_svc_reg(3N)                                             rpc_svc_reg(3N)


   NAME
         rpcsvcreg:   svcfreeargs, svcgetargs, svcgetreqset,
         svcgetrpccaller, svcrun, svcsendreply - library routines for RPC
         servers

   DESCRIPTION
         These routines are part of the RPC library which allows C language
         programs to make procedure calls on other machines across the
         network.

         These routines are associated with the server side of the RPC
         mechanism.  Some of them are called by the server side dispatch
         function, while others [such as svcrun] are called when the server
         is initiated.

      Routines
         #include <rpc/rpc.h>

         int
         svcfreeargs(const SVCXPRT *xprt, const xdrproct inproc, char *in);

               A function macro that frees any data allocated by the RPC/XDR
               system when it decoded the arguments to a service procedure
               using svcgetargs.  This routine returns 1 if the results were
               successfully freed, and 0 otherwise.

         int
         svcgetargs(const SVCXPRT *xprt, const xdrproct inproc, caddrt *in);

               A function macro that decodes the arguments of an RPC request
               associated with the RPC service transport handle xprt.  The
               parameter in is the address where the arguments will be placed;
               inproc is the XDR routine used to decode the arguments.  This
               routine returns 1 if decoding succeeds, and 0 otherwise.

         void
         svcgetreqset(fdset *rdfds);

               This routine is only of interest if a service implementor does
               not call svcrun, but instead implements custom asynchronous
               event processing.  It is called when poll has determined that
               an RPC request has arrived on some RPC file descriptors; rdfds
               is the resultant read file descriptor bit mask.  The routine
               returns when all file descriptors associated with the value of
               rdfds have been serviced

         struct netbuf *
         svcgetrpccaller(const SVCXPRT *xprt);





   8/91                                                                 Page 1









   rpc_svc_reg(3N)                                             rpc_svc_reg(3N)


               The approved way of getting the network address of the caller
               of a procedure associated with the RPC service transport handle
               xprt.

         void
         svcrun(void);

               This routine never returns.  It waits for RPC requests to
               arrive, and calls the appropriate service procedure using
               svcgetreqset when one arrives.  This procedure is usually
               waiting for a poll library call to return.

         int
         svcsendreply(const SVCXPRT *xprt, const xdrproct outproc,
               const caddrt *out);

               Called by an RPC service's dispatch routine to send the results
               of a remote procedure call.  The parameter xprt is the
               request's associated transport handle; outproc is the XDR
               routine which is used to encode the results; and out is the
               address of the results.  This routine returns 1 if it succeeds,
               0 otherwise.

   SEE ALSO
         poll(2), rpc(3N), rpcsvccalls(3N), rpcsvccreate(3N),
         rpcsvcerr(3N).



























   Page 2                                                                 8/91





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026