Home | History | Annotate | Download | only in sunrpc
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _LINUX_SUNRPC_CLNT_H
     13 #define _LINUX_SUNRPC_CLNT_H
     14 
     15 #include <linux/sunrpc/msg_prot.h>
     16 #include <linux/sunrpc/sched.h>
     17 #include <linux/sunrpc/xprt.h>
     18 #include <linux/sunrpc/auth.h>
     19 #include <linux/sunrpc/stats.h>
     20 #include <linux/sunrpc/xdr.h>
     21 #include <linux/sunrpc/timer.h>
     22 #include <asm/signal.h>
     23 
     24 struct rpc_portmap {
     25  __u32 pm_prog;
     26  __u32 pm_vers;
     27  __u32 pm_prot;
     28  __u16 pm_port;
     29  unsigned char pm_binding : 1;
     30  struct rpc_wait_queue pm_bindwait;
     31 };
     32 
     33 struct rpc_inode;
     34 
     35 struct rpc_clnt {
     36  atomic_t cl_count;
     37  atomic_t cl_users;
     38  struct rpc_xprt * cl_xprt;
     39  struct rpc_procinfo * cl_procinfo;
     40  u32 cl_maxproc;
     41 
     42  char * cl_server;
     43  char * cl_protname;
     44  struct rpc_auth * cl_auth;
     45  struct rpc_stat * cl_stats;
     46  struct rpc_iostats * cl_metrics;
     47 
     48  unsigned int cl_softrtry : 1,
     49  cl_intr : 1,
     50  cl_autobind : 1,
     51  cl_oneshot : 1,
     52  cl_dead : 1;
     53 
     54  struct rpc_rtt * cl_rtt;
     55  struct rpc_portmap * cl_pmap;
     56 
     57  int cl_nodelen;
     58  char cl_nodename[UNX_MAXNODENAME];
     59  char cl_pathname[30];
     60  struct vfsmount * cl_vfsmnt;
     61  struct dentry * cl_dentry;
     62  struct rpc_clnt * cl_parent;
     63  struct rpc_rtt cl_rtt_default;
     64  struct rpc_portmap cl_pmap_default;
     65  char cl_inline_name[32];
     66 };
     67 #define cl_timeout cl_xprt->timeout
     68 #define cl_prog cl_pmap->pm_prog
     69 #define cl_vers cl_pmap->pm_vers
     70 #define cl_port cl_pmap->pm_port
     71 #define cl_prot cl_pmap->pm_prot
     72 
     73 #define RPC_MAXVERSION 4
     74 struct rpc_program {
     75  char * name;
     76  u32 number;
     77  unsigned int nrvers;
     78  struct rpc_version ** version;
     79  struct rpc_stat * stats;
     80  char * pipe_dir_name;
     81 };
     82 
     83 struct rpc_version {
     84  u32 number;
     85  unsigned int nrprocs;
     86  struct rpc_procinfo * procs;
     87 };
     88 
     89 struct rpc_procinfo {
     90  u32 p_proc;
     91  kxdrproc_t p_encode;
     92  kxdrproc_t p_decode;
     93  unsigned int p_bufsiz;
     94  unsigned int p_count;
     95  unsigned int p_timer;
     96  u32 p_statidx;
     97  char * p_name;
     98 };
     99 
    100 #define RPC_CONGESTED(clnt) (RPCXPRT_CONGESTED((clnt)->cl_xprt))
    101 #define RPC_PEERADDR(clnt) (&(clnt)->cl_xprt->addr)
    102 
    103 #endif
    104