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 May 26, 2001 at 04:36:08 PM 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 */