Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
qib_verbs.h File Reference
#include <linux/types.h>
#include <linux/spinlock.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/kref.h>
#include <linux/workqueue.h>
#include <linux/completion.h>
#include <rdma/ib_pack.h>
#include <rdma/ib_user_verbs.h>

Go to the source code of this file.

Data Structures

struct  ib_reth
 
struct  ib_atomic_eth
 
struct  qib_other_headers
 
struct  qib_ib_header
 
struct  qib_pio_header
 
struct  qib_mcast_qp
 
struct  qib_mcast
 
struct  qib_pd
 
struct  qib_ah
 
struct  qib_mmap_info
 
struct  qib_cq_wc
 
struct  qib_cq
 
struct  qib_seg
 
struct  qib_segarray
 
struct  qib_mregion
 
struct  qib_sge
 
struct  qib_mr
 
struct  qib_swqe
 
struct  qib_rwqe
 
struct  qib_rwq
 
struct  qib_rq
 
struct  qib_srq
 
struct  qib_sge_state
 
struct  qib_ack_entry
 
struct  qib_qp
 
struct  qpn_map
 
struct  qib_qpn_table
 
struct  qib_lkey_table
 
struct  qib_opcode_stats
 
struct  qib_ibport
 
struct  qib_ibdev
 
struct  qib_verbs_counters
 

Macros

#define QIB_MAX_RDMA_ATOMIC   16
 
#define QIB_GUIDS_PER_PORT   5
 
#define QPN_MAX   (1 << 24)
 
#define QPNMAP_ENTRIES   (QPN_MAX / PAGE_SIZE / BITS_PER_BYTE)
 
#define QIB_UVERBS_ABI_VERSION   2
 
#define IB_CQ_NONE   (IB_CQ_NEXT_COMP + 1)
 
#define IB_SEQ_NAK   (3 << 29)
 
#define IB_RNR_NAK   0x20
 
#define IB_NAK_PSN_ERROR   0x60
 
#define IB_NAK_INVALID_REQUEST   0x61
 
#define IB_NAK_REMOTE_ACCESS_ERROR   0x62
 
#define IB_NAK_REMOTE_OPERATIONAL_ERROR   0x63
 
#define IB_NAK_INVALID_RD_REQUEST   0x64
 
#define QIB_POST_SEND_OK   0x01
 
#define QIB_POST_RECV_OK   0x02
 
#define QIB_PROCESS_RECV_OK   0x04
 
#define QIB_PROCESS_SEND_OK   0x08
 
#define QIB_PROCESS_NEXT_SEND_OK   0x10
 
#define QIB_FLUSH_SEND   0x20
 
#define QIB_FLUSH_RECV   0x40
 
#define QIB_PROCESS_OR_FLUSH_SEND   (QIB_PROCESS_SEND_OK | QIB_FLUSH_SEND)
 
#define IB_PMA_SAMPLE_STATUS_DONE   0x00
 
#define IB_PMA_SAMPLE_STATUS_STARTED   0x01
 
#define IB_PMA_SAMPLE_STATUS_RUNNING   0x02
 
#define IB_PMA_PORT_XMIT_DATA   cpu_to_be16(0x0001)
 
#define IB_PMA_PORT_RCV_DATA   cpu_to_be16(0x0002)
 
#define IB_PMA_PORT_XMIT_PKTS   cpu_to_be16(0x0003)
 
#define IB_PMA_PORT_RCV_PKTS   cpu_to_be16(0x0004)
 
#define IB_PMA_PORT_XMIT_WAIT   cpu_to_be16(0x0005)
 
#define QIB_VENDOR_IPG   cpu_to_be16(0xFFA0)
 
#define IB_BTH_REQ_ACK   (1 << 31)
 
#define IB_BTH_SOLICITED   (1 << 23)
 
#define IB_BTH_MIG_REQ   (1 << 22)
 
#define IB_PORT_OTHER_LOCAL_CHANGES_SUP   (1 << 26)
 
#define IB_GRH_VERSION   6
 
#define IB_GRH_VERSION_MASK   0xF
 
#define IB_GRH_VERSION_SHIFT   28
 
#define IB_GRH_TCLASS_MASK   0xFF
 
#define IB_GRH_TCLASS_SHIFT   20
 
#define IB_GRH_FLOW_MASK   0xFFFFF
 
#define IB_GRH_FLOW_SHIFT   0
 
#define IB_GRH_NEXT_HDR   0x1B
 
#define IB_DEFAULT_GID_PREFIX   cpu_to_be64(0xfe80000000000000ULL)
 
#define IB_VL_VL0   1
 
#define IB_VL_VL0_1   2
 
#define IB_VL_VL0_3   3
 
#define IB_VL_VL0_7   4
 
#define IB_VL_VL0_14   5
 
#define QIB_SEGSZ   (PAGE_SIZE / sizeof(struct qib_seg))
 
#define QIB_R_WRID_VALID   0
 
#define QIB_R_REWIND_SGE   1
 
#define QIB_R_REUSE_SGE   0x01
 
#define QIB_R_RDMAR_SEQ   0x02
 
#define QIB_R_RSP_NAK   0x04
 
#define QIB_R_RSP_SEND   0x08
 
#define QIB_R_COMM_EST   0x10
 
#define QIB_S_SIGNAL_REQ_WR   0x0001
 
#define QIB_S_BUSY   0x0002
 
#define QIB_S_TIMER   0x0004
 
#define QIB_S_RESP_PENDING   0x0008
 
#define QIB_S_ACK_PENDING   0x0010
 
#define QIB_S_WAIT_FENCE   0x0020
 
#define QIB_S_WAIT_RDMAR   0x0040
 
#define QIB_S_WAIT_RNR   0x0080
 
#define QIB_S_WAIT_SSN_CREDIT   0x0100
 
#define QIB_S_WAIT_DMA   0x0200
 
#define QIB_S_WAIT_PIO   0x0400
 
#define QIB_S_WAIT_TX   0x0800
 
#define QIB_S_WAIT_DMA_DESC   0x1000
 
#define QIB_S_WAIT_KMEM   0x2000
 
#define QIB_S_WAIT_PSN   0x4000
 
#define QIB_S_WAIT_ACK   0x8000
 
#define QIB_S_SEND_ONE   0x10000
 
#define QIB_S_UNLIMITED_CREDIT   0x20000
 
#define QIB_S_ANY_WAIT_IO
 
#define QIB_S_ANY_WAIT_SEND
 
#define QIB_S_ANY_WAIT   (QIB_S_ANY_WAIT_IO | QIB_S_ANY_WAIT_SEND)
 
#define QIB_PSN_CREDIT   16
 
#define IB_PHYSPORTSTATE_SLEEP   1
 
#define IB_PHYSPORTSTATE_POLL   2
 
#define IB_PHYSPORTSTATE_DISABLED   3
 
#define IB_PHYSPORTSTATE_CFG_TRAIN   4
 
#define IB_PHYSPORTSTATE_LINKUP   5
 
#define IB_PHYSPORTSTATE_LINK_ERR_RECOVER   6
 
#define IB_PHYSPORTSTATE_CFG_DEBOUNCE   8
 
#define IB_PHYSPORTSTATE_CFG_IDLE   0xB
 
#define IB_PHYSPORTSTATE_RECOVERY_RETRAIN   0xC
 
#define IB_PHYSPORTSTATE_RECOVERY_WAITRMT   0xE
 
#define IB_PHYSPORTSTATE_RECOVERY_IDLE   0xF
 
#define IB_PHYSPORTSTATE_CFG_ENH   0x10
 
#define IB_PHYSPORTSTATE_CFG_WAIT_ENH   0x13
 

Functions

struct ib_reth __attribute__ ((packed))
 
void qib_schedule_send (struct qib_qp *qp)
 
void qib_bad_pqkey (struct qib_ibport *ibp, __be16 trap_num, u32 key, u32 sl, u32 qp1, u32 qp2, __be16 lid1, __be16 lid2)
 
void qib_cap_mask_chg (struct qib_ibport *ibp)
 
void qib_sys_guid_chg (struct qib_ibport *ibp)
 
void qib_node_desc_chg (struct qib_ibport *ibp)
 
int qib_process_mad (struct ib_device *ibdev, int mad_flags, u8 port_num, struct ib_wc *in_wc, struct ib_grh *in_grh, struct ib_mad *in_mad, struct ib_mad *out_mad)
 
int qib_create_agents (struct qib_ibdev *dev)
 
void qib_free_agents (struct qib_ibdev *dev)
 
struct qib_mcastqib_mcast_find (struct qib_ibport *ibp, union ib_gid *mgid)
 
int qib_snapshot_counters (struct qib_pportdata *ppd, u64 *swords, u64 *rwords, u64 *spkts, u64 *rpkts, u64 *xmit_wait)
 
int qib_get_counters (struct qib_pportdata *ppd, struct qib_verbs_counters *cntrs)
 
int qib_multicast_attach (struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
 
int qib_multicast_detach (struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
 
int qib_mcast_tree_empty (struct qib_ibport *ibp)
 
__be32 qib_compute_aeth (struct qib_qp *qp)
 
struct qib_qpqib_lookup_qpn (struct qib_ibport *ibp, u32 qpn)
 
struct ib_qpqib_create_qp (struct ib_pd *ibpd, struct ib_qp_init_attr *init_attr, struct ib_udata *udata)
 
int qib_destroy_qp (struct ib_qp *ibqp)
 
int qib_error_qp (struct qib_qp *qp, enum ib_wc_status err)
 
int qib_modify_qp (struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask, struct ib_udata *udata)
 
int qib_query_qp (struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask, struct ib_qp_init_attr *init_attr)
 
unsigned qib_free_all_qps (struct qib_devdata *dd)
 
void qib_init_qpn_table (struct qib_devdata *dd, struct qib_qpn_table *qpt)
 
void qib_free_qpn_table (struct qib_qpn_table *qpt)
 
void qib_get_credit (struct qib_qp *qp, u32 aeth)
 
unsigned qib_pkt_delay (u32 plen, u8 snd_mult, u8 rcv_mult)
 
void qib_verbs_sdma_desc_avail (struct qib_pportdata *ppd, unsigned avail)
 
void qib_put_txreq (struct qib_verbs_txreq *tx)
 
int qib_verbs_send (struct qib_qp *qp, struct qib_ib_header *hdr, u32 hdrwords, struct qib_sge_state *ss, u32 len)
 
void qib_copy_sge (struct qib_sge_state *ss, void *data, u32 length, int release)
 
void qib_skip_sge (struct qib_sge_state *ss, u32 length, int release)
 
void qib_uc_rcv (struct qib_ibport *ibp, struct qib_ib_header *hdr, int has_grh, void *data, u32 tlen, struct qib_qp *qp)
 
void qib_rc_rcv (struct qib_ctxtdata *rcd, struct qib_ib_header *hdr, int has_grh, void *data, u32 tlen, struct qib_qp *qp)
 
int qib_check_ah (struct ib_device *ibdev, struct ib_ah_attr *ah_attr)
 
struct ib_ahqib_create_qp0_ah (struct qib_ibport *ibp, u16 dlid)
 
void qib_rc_rnr_retry (unsigned long arg)
 
void qib_rc_send_complete (struct qib_qp *qp, struct qib_ib_header *hdr)
 
void qib_rc_error (struct qib_qp *qp, enum ib_wc_status err)
 
int qib_post_ud_send (struct qib_qp *qp, struct ib_send_wr *wr)
 
void qib_ud_rcv (struct qib_ibport *ibp, struct qib_ib_header *hdr, int has_grh, void *data, u32 tlen, struct qib_qp *qp)
 
int qib_alloc_lkey (struct qib_mregion *mr, int dma_region)
 
void qib_free_lkey (struct qib_mregion *mr)
 
int qib_lkey_ok (struct qib_lkey_table *rkt, struct qib_pd *pd, struct qib_sge *isge, struct ib_sge *sge, int acc)
 
int qib_rkey_ok (struct qib_qp *qp, struct qib_sge *sge, u32 len, u64 vaddr, u32 rkey, int acc)
 
int qib_post_srq_receive (struct ib_srq *ibsrq, struct ib_recv_wr *wr, struct ib_recv_wr **bad_wr)
 
struct ib_srqqib_create_srq (struct ib_pd *ibpd, struct ib_srq_init_attr *srq_init_attr, struct ib_udata *udata)
 
int qib_modify_srq (struct ib_srq *ibsrq, struct ib_srq_attr *attr, enum ib_srq_attr_mask attr_mask, struct ib_udata *udata)
 
int qib_query_srq (struct ib_srq *ibsrq, struct ib_srq_attr *attr)
 
int qib_destroy_srq (struct ib_srq *ibsrq)
 
void qib_cq_enter (struct qib_cq *cq, struct ib_wc *entry, int sig)
 
int qib_poll_cq (struct ib_cq *ibcq, int num_entries, struct ib_wc *entry)
 
struct ib_cqqib_create_cq (struct ib_device *ibdev, int entries, int comp_vector, struct ib_ucontext *context, struct ib_udata *udata)
 
int qib_destroy_cq (struct ib_cq *ibcq)
 
int qib_req_notify_cq (struct ib_cq *ibcq, enum ib_cq_notify_flags notify_flags)
 
int qib_resize_cq (struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
 
struct ib_mrqib_get_dma_mr (struct ib_pd *pd, int acc)
 
struct ib_mrqib_reg_phys_mr (struct ib_pd *pd, struct ib_phys_buf *buffer_list, int num_phys_buf, int acc, u64 *iova_start)
 
struct ib_mrqib_reg_user_mr (struct ib_pd *pd, u64 start, u64 length, u64 virt_addr, int mr_access_flags, struct ib_udata *udata)
 
int qib_dereg_mr (struct ib_mr *ibmr)
 
struct ib_mrqib_alloc_fast_reg_mr (struct ib_pd *pd, int max_page_list_len)
 
struct ib_fast_reg_page_listqib_alloc_fast_reg_page_list (struct ib_device *ibdev, int page_list_len)
 
void qib_free_fast_reg_page_list (struct ib_fast_reg_page_list *pl)
 
int qib_fast_reg_mr (struct qib_qp *qp, struct ib_send_wr *wr)
 
struct ib_fmrqib_alloc_fmr (struct ib_pd *pd, int mr_access_flags, struct ib_fmr_attr *fmr_attr)
 
int qib_map_phys_fmr (struct ib_fmr *ibfmr, u64 *page_list, int list_len, u64 iova)
 
int qib_unmap_fmr (struct list_head *fmr_list)
 
int qib_dealloc_fmr (struct ib_fmr *ibfmr)
 
void mr_rcu_callback (struct rcu_head *list)
 
void qib_release_mmap_info (struct kref *ref)
 
struct qib_mmap_infoqib_create_mmap_info (struct qib_ibdev *dev, u32 size, struct ib_ucontext *context, void *obj)
 
void qib_update_mmap_info (struct qib_ibdev *dev, struct qib_mmap_info *ip, u32 size, void *obj)
 
int qib_mmap (struct ib_ucontext *context, struct vm_area_struct *vma)
 
int qib_get_rwqe (struct qib_qp *qp, int wr_id_only)
 
void qib_migrate_qp (struct qib_qp *qp)
 
int qib_ruc_check_hdr (struct qib_ibport *ibp, struct qib_ib_header *hdr, int has_grh, struct qib_qp *qp, u32 bth0)
 
u32 qib_make_grh (struct qib_ibport *ibp, struct ib_grh *hdr, struct ib_global_route *grh, u32 hwords, u32 nwords)
 
void qib_make_ruc_header (struct qib_qp *qp, struct qib_other_headers *ohdr, u32 bth0, u32 bth2)
 
void qib_do_send (struct work_struct *work)
 
void qib_send_complete (struct qib_qp *qp, struct qib_swqe *wqe, enum ib_wc_status status)
 
void qib_send_rc_ack (struct qib_qp *qp)
 
int qib_make_rc_req (struct qib_qp *qp)
 
int qib_make_uc_req (struct qib_qp *qp)
 
int qib_make_ud_req (struct qib_qp *qp)
 
int qib_register_ib_device (struct qib_devdata *)
 
void qib_unregister_ib_device (struct qib_devdata *)
 
void qib_ib_rcv (struct qib_ctxtdata *, void *, void *, u32)
 
void qib_ib_piobufavail (struct qib_devdata *)
 
unsigned qib_get_npkeys (struct qib_devdata *)
 
unsigned qib_get_pkey (struct qib_ibport *, unsigned)
 

Variables

__be64 vaddr
 
__be32 rkey
 
__be32 length
 
__be64 swap_data
 
__be64 compare_data
 
__be32 bth [3]
 
union {
   struct {
      __be32   deth [2]
 
      __be32   imm_data
 
   }   ud
 
   struct {
      struct ib_reth   reth
 
      __be32   imm_data
 
   }   rc
 
   struct {
      __be32   aeth
 
      __be32   atomic_ack_eth [2]
 
   }   at
 
   __be32   imm_data
 
   __be32   aeth
 
   struct ib_atomic_eth   atomic_eth
 
u
 
__be16 lrh [4]
 
__le32 pbc [2]
 
struct qib_ib_header hdr
 
struct qib_mcast_qp __attribute__
 
struct workqueue_structqib_cq_wq
 
enum ib_wc_opcode ib_qib_wc_opcode []
 
const int ib_qib_state_ops []
 
__be64 ib_qib_sys_image_guid
 
unsigned int ib_qib_lkey_table_size
 
unsigned int ib_qib_max_cqes
 
unsigned int ib_qib_max_cqs
 
unsigned int ib_qib_max_qp_wrs
 
unsigned int ib_qib_max_qps
 
unsigned int ib_qib_max_sges
 
unsigned int ib_qib_max_mcast_grps
 
unsigned int ib_qib_max_mcast_qp_attached
 
unsigned int ib_qib_max_srqs
 
unsigned int ib_qib_max_srq_sges
 
unsigned int ib_qib_max_srq_wrs
 
const u32 ib_qib_rnr_table []
 
struct ib_dma_mapping_ops qib_dma_mapping_ops
 

Macro Definition Documentation

#define IB_BTH_MIG_REQ   (1 << 22)

Definition at line 108 of file qib_verbs.h.

#define IB_BTH_REQ_ACK   (1 << 31)

Definition at line 106 of file qib_verbs.h.

#define IB_BTH_SOLICITED   (1 << 23)

Definition at line 107 of file qib_verbs.h.

#define IB_CQ_NONE   (IB_CQ_NEXT_COMP + 1)

Definition at line 69 of file qib_verbs.h.

#define IB_DEFAULT_GID_PREFIX   cpu_to_be64(0xfe80000000000000ULL)

Definition at line 122 of file qib_verbs.h.

#define IB_GRH_FLOW_MASK   0xFFFFF

Definition at line 118 of file qib_verbs.h.

#define IB_GRH_FLOW_SHIFT   0

Definition at line 119 of file qib_verbs.h.

#define IB_GRH_NEXT_HDR   0x1B

Definition at line 120 of file qib_verbs.h.

#define IB_GRH_TCLASS_MASK   0xFF

Definition at line 116 of file qib_verbs.h.

#define IB_GRH_TCLASS_SHIFT   20

Definition at line 117 of file qib_verbs.h.

#define IB_GRH_VERSION   6

Definition at line 113 of file qib_verbs.h.

#define IB_GRH_VERSION_MASK   0xF

Definition at line 114 of file qib_verbs.h.

#define IB_GRH_VERSION_SHIFT   28

Definition at line 115 of file qib_verbs.h.

#define IB_NAK_INVALID_RD_REQUEST   0x64

Definition at line 79 of file qib_verbs.h.

#define IB_NAK_INVALID_REQUEST   0x61

Definition at line 76 of file qib_verbs.h.

#define IB_NAK_PSN_ERROR   0x60

Definition at line 75 of file qib_verbs.h.

#define IB_NAK_REMOTE_ACCESS_ERROR   0x62

Definition at line 77 of file qib_verbs.h.

#define IB_NAK_REMOTE_OPERATIONAL_ERROR   0x63

Definition at line 78 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_CFG_DEBOUNCE   8

Definition at line 1104 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_CFG_ENH   0x10

Definition at line 1109 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_CFG_IDLE   0xB

Definition at line 1105 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_CFG_TRAIN   4

Definition at line 1101 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_CFG_WAIT_ENH   0x13

Definition at line 1110 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_DISABLED   3

Definition at line 1100 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_LINK_ERR_RECOVER   6

Definition at line 1103 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_LINKUP   5

Definition at line 1102 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_POLL   2

Definition at line 1099 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_RECOVERY_IDLE   0xF

Definition at line 1108 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_RECOVERY_RETRAIN   0xC

Definition at line 1106 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_RECOVERY_WAITRMT   0xE

Definition at line 1107 of file qib_verbs.h.

#define IB_PHYSPORTSTATE_SLEEP   1

Definition at line 1098 of file qib_verbs.h.

#define IB_PMA_PORT_RCV_DATA   cpu_to_be16(0x0002)

Definition at line 99 of file qib_verbs.h.

#define IB_PMA_PORT_RCV_PKTS   cpu_to_be16(0x0004)

Definition at line 101 of file qib_verbs.h.

#define IB_PMA_PORT_XMIT_DATA   cpu_to_be16(0x0001)

Definition at line 98 of file qib_verbs.h.

#define IB_PMA_PORT_XMIT_PKTS   cpu_to_be16(0x0003)

Definition at line 100 of file qib_verbs.h.

#define IB_PMA_PORT_XMIT_WAIT   cpu_to_be16(0x0005)

Definition at line 102 of file qib_verbs.h.

#define IB_PMA_SAMPLE_STATUS_DONE   0x00

Definition at line 93 of file qib_verbs.h.

#define IB_PMA_SAMPLE_STATUS_RUNNING   0x02

Definition at line 95 of file qib_verbs.h.

#define IB_PMA_SAMPLE_STATUS_STARTED   0x01

Definition at line 94 of file qib_verbs.h.

#define IB_PORT_OTHER_LOCAL_CHANGES_SUP   (1 << 26)

Definition at line 111 of file qib_verbs.h.

#define IB_RNR_NAK   0x20

Definition at line 74 of file qib_verbs.h.

#define IB_SEQ_NAK   (3 << 29)

Definition at line 71 of file qib_verbs.h.

#define IB_VL_VL0   1

Definition at line 125 of file qib_verbs.h.

#define IB_VL_VL0_1   2

Definition at line 126 of file qib_verbs.h.

#define IB_VL_VL0_14   5

Definition at line 129 of file qib_verbs.h.

#define IB_VL_VL0_3   3

Definition at line 127 of file qib_verbs.h.

#define IB_VL_VL0_7   4

Definition at line 128 of file qib_verbs.h.

#define QIB_FLUSH_RECV   0x40

Definition at line 88 of file qib_verbs.h.

#define QIB_FLUSH_SEND   0x20

Definition at line 87 of file qib_verbs.h.

#define QIB_GUIDS_PER_PORT   5

Definition at line 54 of file qib_verbs.h.

#define QIB_MAX_RDMA_ATOMIC   16

Definition at line 53 of file qib_verbs.h.

#define QIB_POST_RECV_OK   0x02

Definition at line 83 of file qib_verbs.h.

#define QIB_POST_SEND_OK   0x01

Definition at line 82 of file qib_verbs.h.

#define QIB_PROCESS_NEXT_SEND_OK   0x10

Definition at line 86 of file qib_verbs.h.

#define QIB_PROCESS_OR_FLUSH_SEND   (QIB_PROCESS_SEND_OK | QIB_FLUSH_SEND)

Definition at line 89 of file qib_verbs.h.

#define QIB_PROCESS_RECV_OK   0x04

Definition at line 84 of file qib_verbs.h.

#define QIB_PROCESS_SEND_OK   0x08

Definition at line 85 of file qib_verbs.h.

#define QIB_PSN_CREDIT   16

Definition at line 601 of file qib_verbs.h.

#define QIB_R_COMM_EST   0x10

Definition at line 542 of file qib_verbs.h.

#define QIB_R_RDMAR_SEQ   0x02

Definition at line 539 of file qib_verbs.h.

#define QIB_R_REUSE_SGE   0x01

Definition at line 538 of file qib_verbs.h.

#define QIB_R_REWIND_SGE   1

Definition at line 533 of file qib_verbs.h.

#define QIB_R_RSP_NAK   0x04

Definition at line 540 of file qib_verbs.h.

#define QIB_R_RSP_SEND   0x08

Definition at line 541 of file qib_verbs.h.

#define QIB_R_WRID_VALID   0

Definition at line 532 of file qib_verbs.h.

#define QIB_S_ACK_PENDING   0x0010

Definition at line 571 of file qib_verbs.h.

#define QIB_S_ANY_WAIT   (QIB_S_ANY_WAIT_IO | QIB_S_ANY_WAIT_SEND)

Definition at line 599 of file qib_verbs.h.

#define QIB_S_ANY_WAIT_IO
Value:
QIB_S_WAIT_DMA_DESC | QIB_S_WAIT_KMEM)

Definition at line 589 of file qib_verbs.h.

#define QIB_S_ANY_WAIT_SEND
Value:

Definition at line 595 of file qib_verbs.h.

#define QIB_S_BUSY   0x0002

Definition at line 568 of file qib_verbs.h.

#define QIB_S_RESP_PENDING   0x0008

Definition at line 570 of file qib_verbs.h.

#define QIB_S_SEND_ONE   0x10000

Definition at line 583 of file qib_verbs.h.

#define QIB_S_SIGNAL_REQ_WR   0x0001

Definition at line 567 of file qib_verbs.h.

#define QIB_S_TIMER   0x0004

Definition at line 569 of file qib_verbs.h.

#define QIB_S_UNLIMITED_CREDIT   0x20000

Definition at line 584 of file qib_verbs.h.

#define QIB_S_WAIT_ACK   0x8000

Definition at line 582 of file qib_verbs.h.

#define QIB_S_WAIT_DMA   0x0200

Definition at line 576 of file qib_verbs.h.

#define QIB_S_WAIT_DMA_DESC   0x1000

Definition at line 579 of file qib_verbs.h.

#define QIB_S_WAIT_FENCE   0x0020

Definition at line 572 of file qib_verbs.h.

#define QIB_S_WAIT_KMEM   0x2000

Definition at line 580 of file qib_verbs.h.

#define QIB_S_WAIT_PIO   0x0400

Definition at line 577 of file qib_verbs.h.

#define QIB_S_WAIT_PSN   0x4000

Definition at line 581 of file qib_verbs.h.

#define QIB_S_WAIT_RDMAR   0x0040

Definition at line 573 of file qib_verbs.h.

#define QIB_S_WAIT_RNR   0x0080

Definition at line 574 of file qib_verbs.h.

#define QIB_S_WAIT_SSN_CREDIT   0x0100

Definition at line 575 of file qib_verbs.h.

#define QIB_S_WAIT_TX   0x0800

Definition at line 578 of file qib_verbs.h.

#define QIB_SEGSZ   (PAGE_SIZE / sizeof(struct qib_seg))

Definition at line 289 of file qib_verbs.h.

#define QIB_UVERBS_ABI_VERSION   2

Definition at line 63 of file qib_verbs.h.

#define QIB_VENDOR_IPG   cpu_to_be16(0xFFA0)

Definition at line 104 of file qib_verbs.h.

#define QPN_MAX   (1 << 24)

Definition at line 56 of file qib_verbs.h.

#define QPNMAP_ENTRIES   (QPN_MAX / PAGE_SIZE / BITS_PER_BYTE)

Definition at line 57 of file qib_verbs.h.

Function Documentation

struct ib_reth __attribute__ ( (packed)  )
read

Definition at line 171 of file esd_usb2.c.

void mr_rcu_callback ( struct rcu_head list)

Definition at line 531 of file qib_mr.c.

struct ib_mr* qib_alloc_fast_reg_mr ( struct ib_pd pd,
int  max_page_list_len 
)
read

Definition at line 334 of file qib_mr.c.

struct ib_fast_reg_page_list* qib_alloc_fast_reg_page_list ( struct ib_device ibdev,
int  page_list_len 
)
read

Definition at line 346 of file qib_mr.c.

struct ib_fmr* qib_alloc_fmr ( struct ib_pd pd,
int  mr_access_flags,
struct ib_fmr_attr fmr_attr 
)
read

qib_alloc_fmr - allocate a fast memory region : the protection domain for this memory region : access flags for this memory region : fast memory region attributes

Returns the memory region on success, otherwise returns an errno.

Definition at line 383 of file qib_mr.c.

int qib_alloc_lkey ( struct qib_mregion mr,
int  dma_region 
)

qib_alloc_lkey - allocate an lkey : memory region that this lkey protects : 0->normal key, 1->restricted DMA key

Returns 0 if successful, otherwise returns -errno.

Increments mr reference count as required.

Sets the lkey field mr for non-dma regions.

Definition at line 49 of file qib_keys.c.

void qib_bad_pqkey ( struct qib_ibport ibp,
__be16  trap_num,
u32  key,
u32  sl,
u32  qp1,
u32  qp2,
__be16  lid1,
__be16  lid2 
)

Definition at line 137 of file qib_mad.c.

void qib_cap_mask_chg ( struct qib_ibport ibp)

Definition at line 207 of file qib_mad.c.

int qib_check_ah ( struct ib_device ibdev,
struct ib_ah_attr ah_attr 
)

Definition at line 1785 of file qib_verbs.c.

__be32 qib_compute_aeth ( struct qib_qp qp)

qib_compute_aeth - compute the AETH (syndrome + MSN) : the queue pair to compute the AETH for

Returns the AETH.

Definition at line 910 of file qib_qp.c.

void qib_copy_sge ( struct qib_sge_state ss,
void data,
u32  length,
int  release 
)

qib_copy_sge - copy data to SGE memory : the SGE state : the data to copy : the length of the data

Definition at line 168 of file qib_verbs.c.

void qib_cq_enter ( struct qib_cq cq,
struct ib_wc entry,
int  solicited 
)

qib_cq_enter - add a new entry to the completion queue : completion queue : work completion entry to add : true if is a solicitated entry

This may be called with qp->s_lock held.

Definition at line 48 of file qib_cq.c.

int qib_create_agents ( struct qib_ibdev dev)

Definition at line 2439 of file qib_mad.c.

struct ib_cq* qib_create_cq ( struct ib_device ibdev,
int  entries,
int  comp_vector,
struct ib_ucontext context,
struct ib_udata udata 
)
read

qib_create_cq - create a completion queue : the device this completion queue is attached to : the minimum size of the completion queue : unused by the QLogic_IB driver : user data for libibverbs.so

Returns a pointer to the completion queue or negative errno values for failure.

Called by ib_create_cq() in the generic verbs code.

Definition at line 207 of file qib_cq.c.

struct qib_mmap_info* qib_create_mmap_info ( struct qib_ibdev dev,
u32  size,
struct ib_ucontext context,
void obj 
)
read

Definition at line 131 of file qib_mmap.c.

struct ib_qp* qib_create_qp ( struct ib_pd ibpd,
struct ib_qp_init_attr init_attr,
struct ib_udata udata 
)
read

qib_create_qp - create a queue pair for a device : the protection domain who's device we create the queue pair for : the attributes of the queue pair : user data for libibverbs.so

Returns the queue pair on success, otherwise returns an errno.

Called by the ib_create_qp() core verbs function.

Definition at line 974 of file qib_qp.c.

struct ib_ah* qib_create_qp0_ah ( struct qib_ibport ibp,
u16  dlid 
)
read

Definition at line 1857 of file qib_verbs.c.

struct ib_srq* qib_create_srq ( struct ib_pd ibpd,
struct ib_srq_init_attr srq_init_attr,
struct ib_udata udata 
)
read

qib_create_srq - create a shared receive queue : the protection domain of the SRQ to create : the attributes of the SRQ : data from libibverbs when creating a user SRQ

Definition at line 101 of file qib_srq.c.

int qib_dealloc_fmr ( struct ib_fmr ibfmr)

qib_dealloc_fmr - deallocate a fast memory region : the fast memory region to deallocate

Returns 0 on success.

Definition at line 510 of file qib_mr.c.

int qib_dereg_mr ( struct ib_mr ibmr)

qib_dereg_mr - unregister and free a memory region : the memory region to free

Returns 0 on success.

Note that this is called to free MRs created by qib_get_dma_mr() or qib_reg_user_mr().

Definition at line 304 of file qib_mr.c.

int qib_destroy_cq ( struct ib_cq ibcq)

qib_destroy_cq - destroy a completion queue : the completion queue to destroy.

Returns 0 for success.

Called by ib_destroy_cq() in the generic verbs code.

Definition at line 321 of file qib_cq.c.

int qib_destroy_qp ( struct ib_qp ibqp)

qib_destroy_qp - destroy a queue pair : the queue pair to destroy

Returns 0 on success.

Note that this can be called while the QP is actively sending or receiving!

Definition at line 1188 of file qib_qp.c.

int qib_destroy_srq ( struct ib_srq ibsrq)

qib_destroy_srq - destroy a shared receive queue : the SRQ to destroy

Definition at line 365 of file qib_srq.c.

void qib_do_send ( struct work_struct work)

qib_do_send - perform a send on a QP : contains a pointer to the QP

Process entries in the send work queue until credit or queue is exhausted. Only allow one CPU to send a packet per QP (tasklet). Otherwise, two threads could send packets out of order.

Definition at line 716 of file qib_ruc.c.

int qib_error_qp ( struct qib_qp qp,
enum ib_wc_status  err 
)

qib_error_qp - put a QP into the error state : the QP to put into the error state : the receive completion error to signal if a RWQE is active

Flushes both send and receive work queues. Returns true if last WQE event should be generated. The QP r_lock and s_lock should be held and interrupts disabled. If we are already in error state, just return.

Definition at line 473 of file qib_qp.c.

int qib_fast_reg_mr ( struct qib_qp qp,
struct ib_send_wr wr 
)

Definition at line 337 of file qib_keys.c.

void qib_free_agents ( struct qib_ibdev dev)

Definition at line 2484 of file qib_mad.c.

unsigned qib_free_all_qps ( struct qib_devdata dd)

qib_free_all_qps - check for QPs still in use : the QP table to empty

There should not be any QPs still in use. Free memory for table.

Definition at line 293 of file qib_qp.c.

void qib_free_fast_reg_page_list ( struct ib_fast_reg_page_list pl)

Definition at line 369 of file qib_mr.c.

void qib_free_lkey ( struct qib_mregion mr)

qib_free_lkey - free an lkey : mr to free from tables

Definition at line 113 of file qib_keys.c.

void qib_free_qpn_table ( struct qib_qpn_table qpt)

qib_free_qpn_table - free the QP number table for a device : the QPN table

Definition at line 1248 of file qib_qp.c.

int qib_get_counters ( struct qib_pportdata ppd,
struct qib_verbs_counters cntrs 
)

qib_get_counters - get various chip counters : the qlogic_ib device : counters are placed here

Return the counters needed by recv_pma_get_portcounters().

Definition at line 1435 of file qib_verbs.c.

void qib_get_credit ( struct qib_qp qp,
u32  aeth 
)

qib_get_credit - flush the send work queue of a QP : the qp who's send work queue to flush : the Acknowledge Extended Transport Header

The QP s_lock should be held.

Definition at line 1264 of file qib_qp.c.

struct ib_mr* qib_get_dma_mr ( struct ib_pd pd,
int  acc 
)
read

qib_get_dma_mr - get a DMA memory region : protection domain for this memory region : access flags

Returns the memory region on success, otherwise returns an errno. Note that all DMA addresses should be created via the struct ib_dma_mapping_ops functions (see qib_dma.c).

Definition at line 96 of file qib_mr.c.

unsigned qib_get_npkeys ( struct qib_devdata dd)

qib_get_npkeys - return the size of the PKEY table for context 0 : the qlogic_ib device

Definition at line 1923 of file qib_verbs.c.

unsigned qib_get_pkey ( struct qib_ibport ,
unsigned   
)

Definition at line 1932 of file qib_verbs.c.

int qib_get_rwqe ( struct qib_qp qp,
int  wr_id_only 
)

qib_get_rwqe - copy the next RWQE into the QP's RWQE : the QP : update qp->r_wr_id only, not qp->r_sge

Return -1 if there is a local error, 0 if no RWQE is available, otherwise return 1.

Can be called from interrupt level.

Definition at line 138 of file qib_ruc.c.

void qib_ib_piobufavail ( struct qib_devdata dd)

qib_ib_piobufavail - callback when a PIO buffer is available : the device pointer

This is called from qib_intr() at interrupt level when a PIO buffer is available after qib_verbs_send() returned an error that no buffers were available. Disable the interrupt if there are no more QPs waiting.

Definition at line 1503 of file qib_verbs.c.

void qib_ib_rcv ( struct qib_ctxtdata rcd,
void rhdr,
void data,
u32  tlen 
)

qib_ib_rcv - process an incoming packet : the context pointer : the header of the packet : the packet payload : the packet length

This is called from qib_kreceive() to process an incoming packet at interrupt level. Tlen is the length of the header + data + CRC in bytes.

Definition at line 608 of file qib_verbs.c.

void qib_init_qpn_table ( struct qib_devdata dd,
struct qib_qpn_table qpt 
)

qib_init_qpn_table - initialize the QP number table for a device : the QPN table

Definition at line 1236 of file qib_qp.c.

int qib_lkey_ok ( struct qib_lkey_table rkt,
struct qib_pd pd,
struct qib_sge isge,
struct ib_sge sge,
int  acc 
)

qib_lkey_ok - check IB SGE for validity and initialize : table containing lkey to check SGE against : protection domain : outgoing internal SGE : SGE to check : access flags

Return 1 if valid and successful, otherwise returns 0.

increments the reference count upon success

Check the IB SGE for validity and initialize our internal version of it.

Definition at line 151 of file qib_keys.c.

struct qib_qp* qib_lookup_qpn ( struct qib_ibport ibp,
u32  qpn 
)
read

qib_lookup_qpn - return the QP with the given QPN : the QP table : the QP number to look up

The caller is responsible for decrementing the QP reference count when done.

Definition at line 337 of file qib_qp.c.

u32 qib_make_grh ( struct qib_ibport ibp,
struct ib_grh hdr,
struct ib_global_route grh,
u32  hwords,
u32  nwords 
)

qib_make_grh - construct a GRH header : a pointer to the IB port : a pointer to the GRH header being constructed : the global route address to send to : the number of 32 bit words of header being sent : the number of 32 bit words of data being sent

Return the size of the header in 32 bit words.

Definition at line 653 of file qib_ruc.c.

int qib_make_rc_req ( struct qib_qp qp)

qib_make_rc_req - construct a request packet (SEND, RDMA r/w, ATOMIC) : a pointer to the QP

Return 1 if constructed; otherwise, return 0.

Definition at line 231 of file qib_rc.c.

void qib_make_ruc_header ( struct qib_qp qp,
struct qib_other_headers ohdr,
u32  bth0,
u32  bth2 
)

Definition at line 674 of file qib_ruc.c.

int qib_make_uc_req ( struct qib_qp qp)

qib_make_uc_req - construct a request packet (SEND, RDMA write) : a pointer to the QP

Return 1 if constructed; otherwise, return 0.

Definition at line 46 of file qib_uc.c.

int qib_make_ud_req ( struct qib_qp qp)

qib_make_ud_req - construct a UD request packet : the QP

Return 1 if constructed; otherwise, return 0.

Definition at line 228 of file qib_ud.c.

int qib_map_phys_fmr ( struct ib_fmr ibfmr,
u64 page_list,
int  list_len,
u64  iova 
)

qib_map_phys_fmr - set up a fast memory region : the fast memory region to set up : the list of pages to associate with the fast memory region : the number of pages to associate with the fast memory region : the virtual address of the start of the fast memory region

This may be called from interrupt context.

Definition at line 440 of file qib_mr.c.

struct qib_mcast* qib_mcast_find ( struct qib_ibport ibp,
union ib_gid mgid 
)
read

qib_mcast_find - search the global table for the given multicast GID : the IB port structure : the multicast GID to search for

Returns NULL if not found.

The caller is responsible for decrementing the reference count if found.

Definition at line 111 of file qib_verbs_mcast.c.

int qib_mcast_tree_empty ( struct qib_ibport ibp)

Definition at line 365 of file qib_verbs_mcast.c.

void qib_migrate_qp ( struct qib_qp qp)

Definition at line 229 of file qib_ruc.c.

int qib_mmap ( struct ib_ucontext context,
struct vm_area_struct vma 
)

qib_mmap - create a new mmap region : the IB user context of the process making the mmap() call : the VMA to be initialized Return zero if the mmap is OK. Otherwise, return an errno.

Definition at line 89 of file qib_mmap.c.

int qib_modify_qp ( struct ib_qp ibqp,
struct ib_qp_attr attr,
int  attr_mask,
struct ib_udata udata 
)

qib_modify_qp - modify the attributes of a queue pair : the queue pair who's attributes we're modifying : the new attributes : the mask of attributes to modify : user data for libibverbs.so

Returns 0 on success, otherwise returns an errno.

Definition at line 568 of file qib_qp.c.

int qib_modify_srq ( struct ib_srq ibsrq,
struct ib_srq_attr attr,
enum ib_srq_attr_mask  attr_mask,
struct ib_udata udata 
)

qib_modify_srq - modify a shared receive queue : the SRQ to modify : the new attributes of the SRQ : indicates which attributes to modify : user data for libibverbs.so

Definition at line 211 of file qib_srq.c.

int qib_multicast_attach ( struct ib_qp ibqp,
union ib_gid gid,
u16  lid 
)

Definition at line 225 of file qib_verbs_mcast.c.

int qib_multicast_detach ( struct ib_qp ibqp,
union ib_gid gid,
u16  lid 
)

Definition at line 283 of file qib_verbs_mcast.c.

void qib_node_desc_chg ( struct qib_ibport ibp)

Definition at line 247 of file qib_mad.c.

unsigned qib_pkt_delay ( u32  plen,
u8  snd_mult,
u8  rcv_mult 
)
int qib_poll_cq ( struct ib_cq ibcq,
int  num_entries,
struct ib_wc entry 
)

qib_poll_cq - poll for work completion entries : the completion queue to poll : the maximum number of entries to return : pointer to array where work completions are placed

Returns the number of completion entries polled.

This may be called from interrupt context. Also called by ib_poll_cq() in the generic verbs code.

Definition at line 128 of file qib_cq.c.

int qib_post_srq_receive ( struct ib_srq ibsrq,
struct ib_recv_wr wr,
struct ib_recv_wr **  bad_wr 
)

qib_post_srq_receive - post a receive on a shared receive queue : the SRQ to post the receive on : the list of work requests to post : A pointer to the first WR to cause a problem is put here

This may be called from interrupt context.

Definition at line 48 of file qib_srq.c.

int qib_post_ud_send ( struct qib_qp qp,
struct ib_send_wr wr 
)
int qib_process_mad ( struct ib_device ibdev,
int  mad_flags,
u8  port,
struct ib_wc in_wc,
struct ib_grh in_grh,
struct ib_mad in_mad,
struct ib_mad out_mad 
)

qib_process_mad - process an incoming MAD packet : the infiniband device this packet came in on : MAD flags : the port number this packet came in on : the work completion entry for this packet : the global route header for this packet : the incoming MAD : any outgoing MAD reply

Returns IB_MAD_RESULT_SUCCESS if this is a MAD that we are not interested in processing.

Note that the verbs framework has already done the MAD sanity checks, and hop count/pointer updating for IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE MADs.

This is called by the ib_mad module.

Definition at line 2374 of file qib_mad.c.

void qib_put_txreq ( struct qib_verbs_txreq tx)

Definition at line 978 of file qib_verbs.c.

int qib_query_qp ( struct ib_qp ibqp,
struct ib_qp_attr attr,
int  attr_mask,
struct ib_qp_init_attr init_attr 
)

Definition at line 854 of file qib_qp.c.

int qib_query_srq ( struct ib_srq ibsrq,
struct ib_srq_attr attr 
)

Definition at line 351 of file qib_srq.c.

void qib_rc_error ( struct qib_qp qp,
enum ib_wc_status  err 
)

Definition at line 1819 of file qib_rc.c.

void qib_rc_rcv ( struct qib_ctxtdata rcd,
struct qib_ib_header hdr,
int  has_grh,
void data,
u32  tlen,
struct qib_qp qp 
)

qib_rc_rcv - process an incoming RC packet : the context pointer : the header of this packet : true if the header has a GRH : the packet data : the packet length : the QP for this packet

This is called from qib_qp_rcv() to process an incoming RC packet for the given QP. Called at interrupt level.

Definition at line 1862 of file qib_rc.c.

void qib_rc_rnr_retry ( unsigned long  arg)

Definition at line 926 of file qib_rc.c.

void qib_rc_send_complete ( struct qib_qp qp,
struct qib_ib_header hdr 
)

Definition at line 969 of file qib_rc.c.

struct ib_mr* qib_reg_phys_mr ( struct ib_pd pd,
struct ib_phys_buf buffer_list,
int  num_phys_buf,
int  acc,
u64 iova_start 
)
read

qib_reg_phys_mr - register a physical memory region : protection domain for this memory region : pointer to the list of physical buffers to register : the number of physical buffers to register : the starting address passed over IB which maps to this MR

Returns the memory region on success, otherwise returns an errno.

Definition at line 182 of file qib_mr.c.

struct ib_mr* qib_reg_user_mr ( struct ib_pd pd,
u64  start,
u64  length,
u64  virt_addr,
int  mr_access_flags,
struct ib_udata udata 
)
read

qib_reg_user_mr - register a userspace memory region : protection domain for this memory region : starting userspace address : length of region to register : access flags for this memory region : unused by the QLogic_IB driver

Returns the memory region on success, otherwise returns an errno.

Definition at line 229 of file qib_mr.c.

int qib_register_ib_device ( struct qib_devdata dd)

qib_register_ib_device - register our device with the infiniband core : the device data structure Return the allocated qib_ibdev pointer or NULL on error.

Definition at line 2045 of file qib_verbs.c.

void qib_release_mmap_info ( struct kref ref)

qib_release_mmap_info - free mmap info structure a pointer to the kref within struct qib_mmap_info

Definition at line 46 of file qib_mmap.c.

int qib_req_notify_cq ( struct ib_cq ibcq,
enum ib_cq_notify_flags  notify_flags 
)

qib_req_notify_cq - change the notification type for a completion queue : the completion queue : the type of notification to request

Returns 0 for success.

This may be called from interrupt context. Also called by ib_req_notify_cq() in the generic verbs code.

Definition at line 349 of file qib_cq.c.

int qib_resize_cq ( struct ib_cq ibcq,
int  cqe,
struct ib_udata udata 
)

qib_resize_cq - change the size of the CQ : the completion queue

Returns 0 for success.

Definition at line 378 of file qib_cq.c.

int qib_rkey_ok ( struct qib_qp qp,
struct qib_sge sge,
u32  len,
u64  vaddr,
u32  rkey,
int  acc 
)

qib_rkey_ok - check the IB virtual address, length, and RKEY : qp for validation : SGE state : length of data : virtual address to place data : rkey to check : access flags

Return 1 if successful, otherwise 0.

increments the reference count upon success

Definition at line 248 of file qib_keys.c.

int qib_ruc_check_hdr ( struct qib_ibport ibp,
struct qib_ib_header hdr,
int  has_grh,
struct qib_qp qp,
u32  bth0 
)

Definition at line 267 of file qib_ruc.c.

void qib_schedule_send ( struct qib_qp qp)

Definition at line 2324 of file qib_verbs.c.

void qib_send_complete ( struct qib_qp qp,
struct qib_swqe wqe,
enum ib_wc_status  status 
)

Definition at line 769 of file qib_ruc.c.

void qib_send_rc_ack ( struct qib_qp qp)

qib_send_rc_ack - Construct an ACK packet and send it : a pointer to the QP

This is called from qib_rc_rcv() and qib_kreceive(). Note that RDMA reads and atomics are handled in the send side QP state and tasklet.

Definition at line 648 of file qib_rc.c.

void qib_skip_sge ( struct qib_sge_state ss,
u32  length,
int  release 
)

qib_skip_sge - skip over SGE memory - XXX almost dup of prev func : the SGE state : the number of bytes to skip

Definition at line 210 of file qib_verbs.c.

int qib_snapshot_counters ( struct qib_pportdata ppd,
u64 swords,
u64 rwords,
u64 spkts,
u64 rpkts,
u64 xmit_wait 
)

Definition at line 1404 of file qib_verbs.c.

void qib_sys_guid_chg ( struct qib_ibport ibp)

Definition at line 227 of file qib_mad.c.

void qib_uc_rcv ( struct qib_ibport ibp,
struct qib_ib_header hdr,
int  has_grh,
void data,
u32  tlen,
struct qib_qp qp 
)

qib_uc_rcv - handle an incoming UC packet : the port the packet came in on : the header of the packet : true if the packet has a GRH : the packet data : the length of the packet : the QP for this packet.

This is called from qib_qp_rcv() to process an incoming UC packet for the given QP. Called at interrupt level.

Definition at line 242 of file qib_uc.c.

void qib_ud_rcv ( struct qib_ibport ibp,
struct qib_ib_header hdr,
int  has_grh,
void data,
u32  tlen,
struct qib_qp qp 
)

qib_ud_rcv - receive an incoming UD packet : the port the packet came in on : the packet header : true if the packet has a GRH : the packet data : the packet length : the QP the packet came on

This is called from qib_qp_rcv() to process an incoming UD packet for the given QP. Called at interrupt level.

Definition at line 421 of file qib_ud.c.

int qib_unmap_fmr ( struct list_head fmr_list)

qib_unmap_fmr - unmap fast memory regions : the list of fast memory regions to unmap

Returns 0 on success.

Definition at line 487 of file qib_mr.c.

void qib_unregister_ib_device ( struct qib_devdata )

Definition at line 2271 of file qib_verbs.c.

void qib_update_mmap_info ( struct qib_ibdev dev,
struct qib_mmap_info ip,
u32  size,
void obj 
)

Definition at line 160 of file qib_mmap.c.

void qib_verbs_sdma_desc_avail ( struct qib_pportdata ppd,
unsigned  avail 
)

Definition at line 1032 of file qib_verbs.c.

int qib_verbs_send ( struct qib_qp qp,
struct qib_ib_header hdr,
u32  hdrwords,
struct qib_sge_state ss,
u32  len 
)

qib_verbs_send - send a packet : the QP to send on : the packet header : the number of 32-bit words in the header : the SGE to send : the length of the packet in bytes

Return zero if packet is sent or queued OK. Return non-zero and clear qp->s_flags QIB_S_BUSY otherwise.

Definition at line 1374 of file qib_verbs.c.

Variable Documentation

__be32 aeth

Definition at line 192 of file qib_verbs.h.

struct { ... } at
__be32 atomic_ack_eth[2]

Definition at line 193 of file qib_verbs.h.

struct ib_atomic_eth atomic_eth

Definition at line 197 of file qib_verbs.h.

__be32 bth[3]

Definition at line 181 of file qib_verbs.h.

__be64 compare_data

Definition at line 163 of file qib_verbs.h.

__be32 deth[2]

Definition at line 184 of file qib_verbs.h.

Definition at line 201 of file qib_verbs.h.

Definition at line 204 of file qib_verbs.h.

unsigned int ib_qib_lkey_table_size

Definition at line 51 of file qib_verbs.c.

unsigned int ib_qib_max_cqes

Definition at line 66 of file qib_verbs.c.

unsigned int ib_qib_max_cqs

Definition at line 71 of file qib_verbs.c.

unsigned int ib_qib_max_mcast_grps

Definition at line 87 of file qib_verbs.c.

unsigned int ib_qib_max_mcast_qp_attached

Definition at line 92 of file qib_verbs.c.

unsigned int ib_qib_max_qp_wrs

Definition at line 75 of file qib_verbs.c.

unsigned int ib_qib_max_qps

Definition at line 79 of file qib_verbs.c.

unsigned int ib_qib_max_sges

Definition at line 83 of file qib_verbs.c.

unsigned int ib_qib_max_srq_sges

Definition at line 102 of file qib_verbs.c.

unsigned int ib_qib_max_srq_wrs

Definition at line 106 of file qib_verbs.c.

unsigned int ib_qib_max_srqs

Definition at line 98 of file qib_verbs.c.

const u32 ib_qib_rnr_table[]

Definition at line 42 of file qib_ruc.c.

const int ib_qib_state_ops[]

Definition at line 119 of file qib_verbs.c.

__be64 ib_qib_sys_image_guid

Definition at line 160 of file qib_verbs.c.

enum ib_wc_opcode ib_qib_wc_opcode[]

Definition at line 147 of file qib_verbs.c.

__be32 imm_data

Definition at line 185 of file qib_verbs.h.

struct { ... } l
__be32 length

Definition at line 155 of file qib_verbs.h.

__be16 lrh[4]

Definition at line 198 of file qib_verbs.h.

Definition at line 202 of file qib_verbs.h.

__le32 pbc[2]

Definition at line 203 of file qib_verbs.h.

Definition at line 92 of file qib_init.c.

struct ib_dma_mapping_ops qib_dma_mapping_ops

Definition at line 168 of file qib_dma.c.

struct { ... } rc

Definition at line 188 of file qib_verbs.h.

__be32 rkey

Definition at line 154 of file qib_verbs.h.

__be64 swap_data

Definition at line 162 of file qib_verbs.h.

union { ... } u
struct { ... } ud
__be32 vaddr[2]

Definition at line 153 of file qib_verbs.h.