Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
iwch_provider.h File Reference
#include <linux/list.h>
#include <linux/spinlock.h>
#include <rdma/ib_verbs.h>
#include <asm/types.h>
#include "t3cdev.h"
#include "iwch.h"
#include "cxio_wr.h"
#include "cxio_hal.h"

Go to the source code of this file.

Data Structures

struct  iwch_pd
 
struct  tpt_attributes
 
struct  iwch_mr
 
struct  iwch_mw
 
struct  iwch_cq
 
struct  iwch_mpa_attributes
 
struct  iwch_qp_attributes
 
struct  iwch_qp
 
struct  iwch_ucontext
 
struct  iwch_mm_entry
 

Macros

#define IWCH_NODE_DESC   "cxgb3 Chelsio Communications"
 

Typedefs

typedef struct iwch_mw iwch_mw_handle
 

Enumerations

enum  IWCH_QP_FLAGS { QP_QUIESCED = 0x01 }
 
enum  iwch_qp_attr_mask {
  IWCH_QP_ATTR_NEXT_STATE = 1 << 0, IWCH_QP_ATTR_ENABLE_RDMA_READ = 1 << 7, IWCH_QP_ATTR_ENABLE_RDMA_WRITE = 1 << 8, IWCH_QP_ATTR_ENABLE_RDMA_BIND = 1 << 9,
  IWCH_QP_ATTR_MAX_ORD = 1 << 11, IWCH_QP_ATTR_MAX_IRD = 1 << 12, IWCH_QP_ATTR_LLP_STREAM_HANDLE = 1 << 22, IWCH_QP_ATTR_STREAM_MSG_BUFFER = 1 << 23,
  IWCH_QP_ATTR_MPA_ATTR = 1 << 24, IWCH_QP_ATTR_QP_CONTEXT_ACTIVATE = 1 << 25, IWCH_QP_ATTR_VALID_MODIFY
}
 
enum  iwch_qp_state {
  IWCH_QP_STATE_IDLE, IWCH_QP_STATE_RTS, IWCH_QP_STATE_ERROR, IWCH_QP_STATE_TERMINATE,
  IWCH_QP_STATE_CLOSING, IWCH_QP_STATE_TOT
}
 
enum  iwch_mmid_state { IWCH_STAG_STATE_VALID, IWCH_STAG_STATE_INVALID }
 
enum  iwch_qp_query_flags {
  IWCH_QP_QUERY_CONTEXT_NONE = 0x0, IWCH_QP_QUERY_CONTEXT_GET = 0x1, IWCH_QP_QUERY_CONTEXT_SUSPEND = 0x2, IWCH_QP_QUERY_CONTEXT_QUIESCE = 0x4,
  IWCH_QP_QUERY_CONTEXT_REMOVE = 0x8, IWCH_QP_QUERY_TEST_USERWRITE = 0x32
}
 

Functions

void iwch_qp_add_ref (struct ib_qp *qp)
 
void iwch_qp_rem_ref (struct ib_qp *qp)
 
int iwch_modify_qp (struct iwch_dev *rhp, struct iwch_qp *qhp, enum iwch_qp_attr_mask mask, struct iwch_qp_attributes *attrs, int internal)
 
u16 iwch_rqes_posted (struct iwch_qp *qhp)
 
int iwch_post_send (struct ib_qp *ibqp, struct ib_send_wr *wr, struct ib_send_wr **bad_wr)
 
int iwch_post_receive (struct ib_qp *ibqp, struct ib_recv_wr *wr, struct ib_recv_wr **bad_wr)
 
int iwch_bind_mw (struct ib_qp *qp, struct ib_mw *mw, struct ib_mw_bind *mw_bind)
 
int iwch_poll_cq (struct ib_cq *ibcq, int num_entries, struct ib_wc *wc)
 
int iwch_post_terminate (struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg)
 
int iwch_post_zb_read (struct iwch_ep *ep)
 
int iwch_register_device (struct iwch_dev *dev)
 
void iwch_unregister_device (struct iwch_dev *dev)
 
void stop_read_rep_timer (struct iwch_qp *qhp)
 
int iwch_register_mem (struct iwch_dev *rhp, struct iwch_pd *php, struct iwch_mr *mhp, int shift)
 
int iwch_reregister_mem (struct iwch_dev *rhp, struct iwch_pd *php, struct iwch_mr *mhp, int shift, int npages)
 
int iwch_alloc_pbl (struct iwch_mr *mhp, int npages)
 
void iwch_free_pbl (struct iwch_mr *mhp)
 
int iwch_write_pbl (struct iwch_mr *mhp, __be64 *pages, int npages, int offset)
 
int build_phys_page_list (struct ib_phys_buf *buffer_list, int num_phys_buf, u64 *iova_start, u64 *total_size, int *npages, int *shift, __be64 **page_list)
 

Macro Definition Documentation

#define IWCH_NODE_DESC   "cxgb3 Chelsio Communications"

Definition at line 358 of file iwch_provider.h.

Typedef Documentation

Definition at line 82 of file iwch_provider.h.

Enumeration Type Documentation

Enumerator:
IWCH_STAG_STATE_VALID 
IWCH_STAG_STATE_INVALID 

Definition at line 307 of file iwch_provider.h.

Enumerator:
IWCH_QP_ATTR_NEXT_STATE 
IWCH_QP_ATTR_ENABLE_RDMA_READ 
IWCH_QP_ATTR_ENABLE_RDMA_WRITE 
IWCH_QP_ATTR_ENABLE_RDMA_BIND 
IWCH_QP_ATTR_MAX_ORD 
IWCH_QP_ATTR_MAX_IRD 
IWCH_QP_ATTR_LLP_STREAM_HANDLE 
IWCH_QP_ATTR_STREAM_MSG_BUFFER 
IWCH_QP_ATTR_MPA_ATTR 
IWCH_QP_ATTR_QP_CONTEXT_ACTIVATE 
IWCH_QP_ATTR_VALID_MODIFY 

Definition at line 237 of file iwch_provider.h.

Enumerator:
QP_QUIESCED 

Definition at line 117 of file iwch_provider.h.

Enumerator:
IWCH_QP_QUERY_CONTEXT_NONE 
IWCH_QP_QUERY_CONTEXT_GET 
IWCH_QP_QUERY_CONTEXT_SUSPEND 
IWCH_QP_QUERY_CONTEXT_QUIESCE 
IWCH_QP_QUERY_CONTEXT_REMOVE 
IWCH_QP_QUERY_TEST_USERWRITE 

Definition at line 312 of file iwch_provider.h.

Enumerator:
IWCH_QP_STATE_IDLE 
IWCH_QP_STATE_RTS 
IWCH_QP_STATE_ERROR 
IWCH_QP_STATE_TERMINATE 
IWCH_QP_STATE_CLOSING 
IWCH_QP_STATE_TOT 

Definition at line 264 of file iwch_provider.h.

Function Documentation

int build_phys_page_list ( struct ib_phys_buf buffer_list,
int  num_phys_buf,
u64 iova_start,
u64 total_size,
int npages,
int shift,
__be64 **  page_list 
)

Definition at line 134 of file iwch_mem.c.

int iwch_alloc_pbl ( struct iwch_mr mhp,
int  npages 
)

Definition at line 109 of file iwch_mem.c.

int iwch_bind_mw ( struct ib_qp qp,
struct ib_mw mw,
struct ib_mw_bind mw_bind 
)

Definition at line 528 of file iwch_qp.c.

void iwch_free_pbl ( struct iwch_mr mhp)

Definition at line 122 of file iwch_mem.c.

int iwch_modify_qp ( struct iwch_dev rhp,
struct iwch_qp qhp,
enum iwch_qp_attr_mask  mask,
struct iwch_qp_attributes attrs,
int  internal 
)

Definition at line 945 of file iwch_qp.c.

int iwch_poll_cq ( struct ib_cq ibcq,
int  num_entries,
struct ib_wc wc 
)

Definition at line 195 of file iwch_cq.c.

int iwch_post_receive ( struct ib_qp ibqp,
struct ib_recv_wr wr,
struct ib_recv_wr **  bad_wr 
)

Definition at line 465 of file iwch_qp.c.

int iwch_post_send ( struct ib_qp ibqp,
struct ib_send_wr wr,
struct ib_send_wr **  bad_wr 
)

Definition at line 350 of file iwch_qp.c.

int iwch_post_terminate ( struct iwch_qp qhp,
struct respQ_msg_t rsp_msg 
)

Definition at line 773 of file iwch_qp.c.

int iwch_post_zb_read ( struct iwch_ep ep)

Definition at line 741 of file iwch_qp.c.

void iwch_qp_add_ref ( struct ib_qp qp)

Definition at line 1086 of file iwch_provider.c.

void iwch_qp_rem_ref ( struct ib_qp qp)

Definition at line 1092 of file iwch_provider.c.

int iwch_register_device ( struct iwch_dev dev)

Definition at line 1347 of file iwch_provider.c.

int iwch_register_mem ( struct iwch_dev rhp,
struct iwch_pd php,
struct iwch_mr mhp,
int  shift 
)

Definition at line 55 of file iwch_mem.c.

int iwch_reregister_mem ( struct iwch_dev rhp,
struct iwch_pd php,
struct iwch_mr mhp,
int  shift,
int  npages 
)

Definition at line 78 of file iwch_mem.c.

u16 iwch_rqes_posted ( struct iwch_qp qhp)

Definition at line 881 of file iwch_qp.c.

void iwch_unregister_device ( struct iwch_dev dev)

Definition at line 1457 of file iwch_provider.c.

int iwch_write_pbl ( struct iwch_mr mhp,
__be64 pages,
int  npages,
int  offset 
)

Definition at line 128 of file iwch_mem.c.

void stop_read_rep_timer ( struct iwch_qp qhp)