Cdiff ib.h
*** /webrev/webrev/usr/src/uts/common/rpc/ib.h- Mon Aug 14 13:12:10 2006
--- ib.h        Thu Aug 10 14:05:27 2006

*** 22,31 **** --- 22,43 ---- /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ + /* Copyright (c) 2006, The Ohio State University. All rights reserved. + * + * Portions of this source code is developed by the team members of + * The Ohio State University's Network-Based Computing Laboratory (NBCL), + * headed by Professor Dhabaleswar K. (DK) Panda. + * + * Acknowledgements to contributions from developors: + * Ranjit Noronha: noronha@cse.ohio-state.edu + * Lei Chai : chail@cse.ohio-state.edu + * Weikuan Yu : yuw@cse.ohio-state.edu + * + */ #ifndef _IB_H #define _IB_H #pragma ident "@(#)ib.h 1.8 05/06/08 SMI"
*** 39,48 **** --- 51,63 ---- #include <sys/conf.h> #include <sys/stat.h> #include <rpc/rpc.h> #include <rpc/rpc_rdma.h> #include <sys/ib/ibtl/ibti.h> + #ifdef SERVER_REG_CACHE + #include <sys/avl.h> + #endif #ifdef __cplusplus extern "C" { #endif
*** 120,130 **** --- 135,150 ---- } bufpool_t; typedef struct { bufpool_t *bpool; ibt_mr_hdl_t *mr_hdl; + #ifdef IB_FMR_SUP + ibt_ma_hdl_t *ma_hdl; + ibt_pmr_desc_t *pmr_desc; + #endif ibt_mr_desc_t *mr_desc; /* vaddr, lkey, rkey */ + } rib_bufpool_t; /* * ATS relsted defines and structures. */
*** 277,301 **** --- 297,344 ---- rib_bufpool_t *recv_pool; /* recv buf pool */ rib_bufpool_t *send_pool; /* send buf pool */ void *iblock; /* interrupt cookie */ + + #ifdef IB_FMR_SUP + ibt_fmr_pool_hdl_t fmr_pool; + #endif /* IB_FMR_SUP */ + + #ifdef SERVER_REG_CACHE + kmem_cache_t *server_side_cache; /* long reply pool */ + avl_tree_t avl_tree; + kmutex_t avl_lock; + krwlock_t avl_rw_lock; + volatile bool_t avl_init; + #endif + }; /* * Structure on wait state of a post send */ struct send_wid { + #if defined (CLNT_INTERRUPT_COAL) + struct send_wid *forw; + struct send_wid *back; + #endif uint32_t xid; int cv_sig; kmutex_t sendwait_lock; kcondvar_t wait_cv; uint_t status; rib_qp_t *qp; int nsbufs; /* # of send buffers posted */ uint64_t sbufaddr[DSEG_MAX]; /* posted send buffers */ + caddr_t c; + caddr_t c1; + int l1; + caddr_t c2; + int l2; + int wl,rl; }; /* * Structure on reply descriptor for recv queue. * Different from the above posting of a descriptor.
*** 360,369 **** --- 403,413 ---- kmutex_t cb_lock; kcondvar_t cb_conn_cv; caddr_t q; /* upstream queue */ + struct send_wid wd; }; #define ctoqp(conn) ((rib_qp_t *)((conn)->c_private)) #define qptoc(rqp) ((CONN *)&((rqp)->rdmaconn))