Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rpcgen(1) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cpp(1)



RPCGEN(1)                                               RPCGEN(1)


NAME
       rpcgen - an RPC protocol compiler

SYNOPSIS
       rpcgen infile
       rpcgen -c|-h|-l|-m [ -o outfile ] [ infile ]
       rpcgen -s transport [ -o outfile ] [ infile ]

DESCRIPTION
       rpcgen is a tool that generates C code to implement an RPC
       protocol.  The input to rpcgen is a language similar to  C
       known  as  RPC  Language (Remote Procedure Call Language).
       Information about the syntax of RPC Language is  available
       in the `rpcgen' Programming Guide.

       rpcgen  is normally used as in the first synopsis where it
       takes an input file and generates four  output  files.  If
       the  infile  is named proto.x, then rpcgen will generate a
       header file  in  proto.h,  XDR  routines  in  protoxdr.c,
       server-side stubs in protosvc.c, and client-side stubs in
       protoclnt.c.

       The other synopses shown above are used when one does  not
       want to generate all the output files, but only a particu-
       lar one.  Their usage is described in  the  USAGE  section
       below.

       The  C-preprocessor,  cpp(1),  is  run  on all input files
       before they are actually interpreted by rpcgen, so all the
       cpp directives are legal within an rpcgen input file.  For
       each type of output file, rpcgen  defines  a  special  cpp
       symbol for use by the rpcgen programmer:

       RPC_HDR     defined when compiling into header files
       RPC_XDR     defined when compiling into XDR routines
       RPC_SVC     defined when compiling into server-side stubs
       RPC_CLNT    defined when compiling into client-side stubs

       In  addition,  rpcgen  does  a little preprocessing of its
       own.  Any line beginning with `%' is passed directly  into
       the output file, uninterpreted by rpcgen.

       You  can  customize  some  of your XDR routines by leaving
       those data types undefined.  For every data type  that  is
       undefined,  rpcgen will assume that there exists a routine
       with the name xdr prepended to the name of the  undefined
       type.

OPTIONS
       -c     Compile into XDR routines.

       -h     Compile into C data-definitions (a header file)

       -l     Compile into client-side stubs.



                         18 January 1988                        1




RPCGEN(1)                                               RPCGEN(1)


       -m     Compile into server-side stubs, but do not generate
              a "main" routine.  This option is useful for  doing
              callback-routines  and for people who need to write
              their own "main" routine to do initialization.

       -o outfile
              Specify the name of the output file.   If  none  is
              specified,  standard output is used (-c, -h, -l and
              -s modes only).

       -s transport
              Compile into server-side stubs, using the the given
              transport.   The  supported  transports are udp and
              tcp.  This option may be invoked more than once  so
              as  to compile a server that serves multiple trans-
              ports.

SEE ALSO
       cpp(1)

       `rpcgen' Programming Guide.

BUGS
       Nesting is not supported.  As  a  work-around,  structures
       can  be  declared at top-level, and their name used inside
       other structures in order to achieve the same effect.

       Name clashes can occur  when  using  program  definitions,
       since  the apparent scoping does not really apply. Most of
       these can be avoided by giving unique names for  programs,
       versions, procedures and types.


























                         18 January 1988                        2


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