AutoXDR - NFSv4 Example Client header

Main
AutoGen
Pages

Home
Announce
FAQ
docs
XML Defs
testimonials
downloads

Automated
Options

AutoOpts
Comparison
Man example
Redistribute
Licensing
local use
using getopt

GCC's
Fixincludes

fixincludes

Automated
FSM

description
example
usagefsm

Addons
addon

Project GNU
Home Page

Automated
XDR

xdr project
  definitions
  XDR

  client
  clt. head
  server
  srv. head

  enums

  debug
  test code

i

This file declares the generated client side procedures that are not generated by rpcgen. These will be the carrier procedures' initialization and send procedures, along with all the queueing procedures associated with them. It also declares the enumeration translation routines.

The following example is from NFSv4 with all but one queued call removed:

/*
 *  DO NOT EDIT THIS FILE   (nfsv4-clhdr.h)
 *  
 *  It has been AutoGen-ed  Saturday August 12, 2006 at 11:32:10 AM PDT
 *  From the definitions    nfsv4.def
 *  and the template file   autoxdr.tpl
 *
 *  This file has been generated by the AutoXDR AutoGen template suite.
 *
 *  These files are compatible with:
 *  RFC1831 - Remote Procedure Call Protocol Specification Version 2
 *  RFC1832 - External Data Representation Standard
 *  and are intended to be used as a layer on top of the ONC IDL
 *  in conjunction with RPCGEN.
 *
 */
#ifndef AUTOXDR_NFS_CLIENT_HEADER
#define AUTOXDR_NFS_CLIENT_HEADER

#include "nfsv4.h"

typedef void*  t_nfs_cookie;

/*
 *  The init_nfs4_compound procedure allocates
 *  and initializes memory for a compound RPC operation.  You must pass in
 *  the address of a word of memory where it can stash a cookie.  It need
 *  not be initialized to anything.  Its contents are not examined.
 *  This argument is followed by any others specified for the procedure.
 *  The last argument is a void* cookie that will be passed through to
 *  the completion routines specified in the argument lists to the
 *  operation procedures.
 */
extern int init_nfs4_compound(  t_nfs_cookie* p_nfs4_compound_cookie,
                                utf8string*      tag_in /* in */,
                                void*            user_cookie );

/*
 *  The send_nfs4_compound procedure will send the compound command.
 *  Upon return, it will call out each of the handler proceduress
 *  (if any) specified in the do_xxx operation procedures calls below.
 *  These call out procedures will be called with the arguments
 *  specified in the procedure typedef above.  The address of the
 *  cookie memory is not passed in, but its contents *will* be invalid
 *  upon return.
 */
extern int send_nfs4_compound(  t_nfs_cookie, CLIENT* );
/*
 *  The following procedure typedefs define the prototype of callback
 *  routine that processes the results of each queued RPC request.
 *  These procedures are responsible for ensuring that any values in the
 *  input arguments that need to be deallocated are, in fact, deallocated.
 */
typedef void (t_nfs4_access4_done)(
                                void*            user_cookie,
                                nfs4_compound_res*  p_res,
                                nfs4_status      final_status,
                                uint32_t         requested /* in */,
                                ACCESS4res*      access_res /* out */ );
typedef t_nfs4_access4_done* tp_nfs4_access4_done;

extern int do_nfs4_access4(     t_nfs_cookie  nfs_cookie,
                                tp_nfs4_access4_done pComplProc,
                                uint32_t         requested /* in */ );

/*
 *  In case you want to convert an op number into a name:
 */
extern const char* name_nfs4_compound_ops( nfs4_compound_ops );
/*
 *  The following routines are provided for converting enumerations
 *  into descriptive strings or enumeration names, and from an enumeration
 *  name into an enumeration value.
 */
extern const char* info_nfs4_status( nfs4_status );
extern const char* name_nfs4_status( nfs4_status );
extern nfs4_status nfs4_status_enum( const char* );
#endif /* AUTOXDR_NFS_CLIENT_HEADER */

top  Viewable With Any Browser  Valid XHTML 1.0!


AutoGen, AutoOpts, columns, getdefs, AutoFSM, AutoXDR and these web pages copyright (c) 1999-2002 Bruce Korb, all rights reserved.

AutoXDR copyright (c) 2000-2001 Bruce Korb, all rights reserved.
Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

This article, Copyright © 2000-2002 by Bruce Korb

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Last modified: Sun Oct 1 12:59:24 PDT 2006