1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 
  26 #ifndef _RDC_CLNT_H
  27 #define _RDC_CLNT_H
  28 
  29 #ifdef  __cplusplus
  30 extern "C" {
  31 #endif
  32 
  33 extern kmutex_t rdc_clnt_lock;
  34 
  35 struct chtab {
  36         uint_t ch_timesused;
  37         bool_t ch_inuse;
  38         ulong_t ch_prog;
  39         rpcvers_t ch_vers;
  40         dev_t  ch_dev;
  41         char   *ch_protofmly;
  42         CLIENT *ch_client;
  43         struct chtab *ch_next;  /* chain of different prog/vers/dev/proto */
  44         struct chtab *ch_list;  /* chain of similar clients */
  45 };
  46 
  47 #define MAXCLIENTS      64
  48 
  49 extern int rdc_clnt_call(rdc_srv_t *, rpcproc_t, rpcvers_t, xdrproc_t,
  50                         caddr_t, xdrproc_t, caddr_t, struct timeval *);
  51 extern int rdc_clnt_call_any(rdc_srv_t *, rdc_if_t *, rpcproc_t,
  52                         xdrproc_t, caddr_t, xdrproc_t, caddr_t,
  53                         struct timeval *);
  54 extern int rdc_clnt_call_walk(rdc_k_info_t *, rpcproc_t, xdrproc_t, caddr_t,
  55                         xdrproc_t, caddr_t, struct timeval *);
  56 
  57 extern int rdc_rpc_tmout;
  58 
  59 extern int rdc_aio_coalesce(rdc_aio_t *, rdc_aio_t *);
  60 
  61 
  62 #ifdef  __cplusplus
  63 }
  64 #endif
  65 
  66 #endif  /* _RDC_CLNT_H */