⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ib_verbs.h

📁 h内核
💻 H
📖 第 1 页 / 共 3 页
字号:
	IB_RNR_TIMER_000_04 =  4,	IB_RNR_TIMER_000_06 =  5,	IB_RNR_TIMER_000_08 =  6,	IB_RNR_TIMER_000_12 =  7,	IB_RNR_TIMER_000_16 =  8,	IB_RNR_TIMER_000_24 =  9,	IB_RNR_TIMER_000_32 = 10,	IB_RNR_TIMER_000_48 = 11,	IB_RNR_TIMER_000_64 = 12,	IB_RNR_TIMER_000_96 = 13,	IB_RNR_TIMER_001_28 = 14,	IB_RNR_TIMER_001_92 = 15,	IB_RNR_TIMER_002_56 = 16,	IB_RNR_TIMER_003_84 = 17,	IB_RNR_TIMER_005_12 = 18,	IB_RNR_TIMER_007_68 = 19,	IB_RNR_TIMER_010_24 = 20,	IB_RNR_TIMER_015_36 = 21,	IB_RNR_TIMER_020_48 = 22,	IB_RNR_TIMER_030_72 = 23,	IB_RNR_TIMER_040_96 = 24,	IB_RNR_TIMER_061_44 = 25,	IB_RNR_TIMER_081_92 = 26,	IB_RNR_TIMER_122_88 = 27,	IB_RNR_TIMER_163_84 = 28,	IB_RNR_TIMER_245_76 = 29,	IB_RNR_TIMER_327_68 = 30,	IB_RNR_TIMER_491_52 = 31};enum ib_qp_attr_mask {	IB_QP_STATE			= 1,	IB_QP_CUR_STATE			= (1<<1),	IB_QP_EN_SQD_ASYNC_NOTIFY	= (1<<2),	IB_QP_ACCESS_FLAGS		= (1<<3),	IB_QP_PKEY_INDEX		= (1<<4),	IB_QP_PORT			= (1<<5),	IB_QP_QKEY			= (1<<6),	IB_QP_AV			= (1<<7),	IB_QP_PATH_MTU			= (1<<8),	IB_QP_TIMEOUT			= (1<<9),	IB_QP_RETRY_CNT			= (1<<10),	IB_QP_RNR_RETRY			= (1<<11),	IB_QP_RQ_PSN			= (1<<12),	IB_QP_MAX_QP_RD_ATOMIC		= (1<<13),	IB_QP_ALT_PATH			= (1<<14),	IB_QP_MIN_RNR_TIMER		= (1<<15),	IB_QP_SQ_PSN			= (1<<16),	IB_QP_MAX_DEST_RD_ATOMIC	= (1<<17),	IB_QP_PATH_MIG_STATE		= (1<<18),	IB_QP_CAP			= (1<<19),	IB_QP_DEST_QPN			= (1<<20)};enum ib_qp_state {	IB_QPS_RESET,	IB_QPS_INIT,	IB_QPS_RTR,	IB_QPS_RTS,	IB_QPS_SQD,	IB_QPS_SQE,	IB_QPS_ERR};enum ib_mig_state {	IB_MIG_MIGRATED,	IB_MIG_REARM,	IB_MIG_ARMED};struct ib_qp_attr {	enum ib_qp_state	qp_state;	enum ib_qp_state	cur_qp_state;	enum ib_mtu		path_mtu;	enum ib_mig_state	path_mig_state;	u32			qkey;	u32			rq_psn;	u32			sq_psn;	u32			dest_qp_num;	int			qp_access_flags;	struct ib_qp_cap	cap;	struct ib_ah_attr	ah_attr;	struct ib_ah_attr	alt_ah_attr;	u16			pkey_index;	u16			alt_pkey_index;	u8			en_sqd_async_notify;	u8			sq_draining;	u8			max_rd_atomic;	u8			max_dest_rd_atomic;	u8			min_rnr_timer;	u8			port_num;	u8			timeout;	u8			retry_cnt;	u8			rnr_retry;	u8			alt_port_num;	u8			alt_timeout;};enum ib_wr_opcode {	IB_WR_RDMA_WRITE,	IB_WR_RDMA_WRITE_WITH_IMM,	IB_WR_SEND,	IB_WR_SEND_WITH_IMM,	IB_WR_RDMA_READ,	IB_WR_ATOMIC_CMP_AND_SWP,	IB_WR_ATOMIC_FETCH_AND_ADD};enum ib_send_flags {	IB_SEND_FENCE		= 1,	IB_SEND_SIGNALED	= (1<<1),	IB_SEND_SOLICITED	= (1<<2),	IB_SEND_INLINE		= (1<<3)};enum ib_recv_flags {	IB_RECV_SIGNALED	= 1};struct ib_sge {	u64	addr;	u32	length;	u32	lkey;};struct ib_send_wr {	struct ib_send_wr      *next;	u64			wr_id;	struct ib_sge	       *sg_list;	int			num_sge;	enum ib_wr_opcode	opcode;	int			send_flags;	u32			imm_data;	union {		struct {			u64	remote_addr;			u32	rkey;		} rdma;		struct {			u64	remote_addr;			u64	compare_add;			u64	swap;			u32	rkey;		} atomic;		struct {			struct ib_ah *ah;			struct ib_mad_hdr *mad_hdr;			u32	remote_qpn;			u32	remote_qkey;			int	timeout_ms; /* valid for MADs only */			u16	pkey_index; /* valid for GSI only */			u8	port_num;   /* valid for DR SMPs on switch only */		} ud;	} wr;};struct ib_recv_wr {	struct ib_recv_wr      *next;	u64			wr_id;	struct ib_sge	       *sg_list;	int			num_sge;	int			recv_flags;};enum ib_access_flags {	IB_ACCESS_LOCAL_WRITE	= 1,	IB_ACCESS_REMOTE_WRITE	= (1<<1),	IB_ACCESS_REMOTE_READ	= (1<<2),	IB_ACCESS_REMOTE_ATOMIC	= (1<<3),	IB_ACCESS_MW_BIND	= (1<<4)};struct ib_phys_buf {	u64      addr;	u64      size;};struct ib_mr_attr {	struct ib_pd	*pd;	u64		device_virt_addr;	u64		size;	int		mr_access_flags;	u32		lkey;	u32		rkey;};enum ib_mr_rereg_flags {	IB_MR_REREG_TRANS	= 1,	IB_MR_REREG_PD		= (1<<1),	IB_MR_REREG_ACCESS	= (1<<2)};struct ib_mw_bind {	struct ib_mr   *mr;	u64		wr_id;	u64		addr;	u32		length;	int		send_flags;	int		mw_access_flags;};struct ib_fmr_attr {	int	max_pages;	int	max_maps;	u8	page_size;};struct ib_pd {	struct ib_device *device;	atomic_t          usecnt; /* count all resources */};struct ib_ah {	struct ib_device	*device;	struct ib_pd		*pd;};typedef void (*ib_comp_handler)(struct ib_cq *cq, void *cq_context);struct ib_cq {	struct ib_device *device;	ib_comp_handler   comp_handler;	void             (*event_handler)(struct ib_event *, void *);	void *            cq_context;	int               cqe;	atomic_t          usecnt; /* count number of work queues */};struct ib_srq {	struct ib_device	*device;	struct ib_pd		*pd;	void			*srq_context;	atomic_t		usecnt;};struct ib_qp {	struct ib_device       *device;	struct ib_pd	       *pd;	struct ib_cq	       *send_cq;	struct ib_cq	       *recv_cq;	struct ib_srq	       *srq;	void                  (*event_handler)(struct ib_event *, void *);	void		       *qp_context;	u32			qp_num;	enum ib_qp_type		qp_type;};struct ib_mr {	struct ib_device *device;	struct ib_pd     *pd;	u32		  lkey;	u32		  rkey;	atomic_t          usecnt; /* count number of MWs */};struct ib_mw {	struct ib_device	*device;	struct ib_pd		*pd;	u32			rkey;};struct ib_fmr {	struct ib_device	*device;	struct ib_pd		*pd;	struct list_head	list;	u32			lkey;	u32			rkey;};struct ib_mad;struct ib_grh;enum ib_process_mad_flags {	IB_MAD_IGNORE_MKEY	= 1,	IB_MAD_IGNORE_BKEY	= 2,	IB_MAD_IGNORE_ALL	= IB_MAD_IGNORE_MKEY | IB_MAD_IGNORE_BKEY};enum ib_mad_result {	IB_MAD_RESULT_FAILURE  = 0,      /* (!SUCCESS is the important flag) */	IB_MAD_RESULT_SUCCESS  = 1 << 0, /* MAD was successfully processed   */	IB_MAD_RESULT_REPLY    = 1 << 1, /* Reply packet needs to be sent    */	IB_MAD_RESULT_CONSUMED = 1 << 2  /* Packet consumed: stop processing */};#define IB_DEVICE_NAME_MAX 64struct ib_cache {	rwlock_t                lock;	struct ib_event_handler event_handler;	struct ib_pkey_cache  **pkey_cache;	struct ib_gid_cache   **gid_cache;};struct ib_device {	struct device                *dma_device;	char                          name[IB_DEVICE_NAME_MAX];	struct list_head              event_handler_list;	spinlock_t                    event_handler_lock;	struct list_head              core_list;	struct list_head              client_data_list;	spinlock_t                    client_data_lock;	struct ib_cache               cache;	u32                           flags;	int		           (*query_device)(struct ib_device *device,						   struct ib_device_attr *device_attr);	int		           (*query_port)(struct ib_device *device,						 u8 port_num,						 struct ib_port_attr *port_attr);	int		           (*query_gid)(struct ib_device *device,						u8 port_num, int index,						union ib_gid *gid);	int		           (*query_pkey)(struct ib_device *device,						 u8 port_num, u16 index, u16 *pkey);	int		           (*modify_device)(struct ib_device *device,						    int device_modify_mask,						    struct ib_device_modify *device_modify);	int		           (*modify_port)(struct ib_device *device,						  u8 port_num, int port_modify_mask,						  struct ib_port_modify *port_modify);	struct ib_pd *             (*alloc_pd)(struct ib_device *device);	int                        (*dealloc_pd)(struct ib_pd *pd);	struct ib_ah *             (*create_ah)(struct ib_pd *pd,						struct ib_ah_attr *ah_attr);	int                        (*modify_ah)(struct ib_ah *ah,						struct ib_ah_attr *ah_attr);	int                        (*query_ah)(struct ib_ah *ah,					       struct ib_ah_attr *ah_attr);	int                        (*destroy_ah)(struct ib_ah *ah);	struct ib_qp *             (*create_qp)(struct ib_pd *pd,						struct ib_qp_init_attr *qp_init_attr);	int                        (*modify_qp)(struct ib_qp *qp,						struct ib_qp_attr *qp_attr,						int qp_attr_mask);	int                        (*query_qp)(struct ib_qp *qp,					       struct ib_qp_attr *qp_attr,					       int qp_attr_mask,					       struct ib_qp_init_attr *qp_init_attr);	int                        (*destroy_qp)(struct ib_qp *qp);	int                        (*post_send)(struct ib_qp *qp,						struct ib_send_wr *send_wr,						struct ib_send_wr **bad_send_wr);	int                        (*post_recv)(struct ib_qp *qp,						struct ib_recv_wr *recv_wr,						struct ib_recv_wr **bad_recv_wr);	struct ib_cq *             (*create_cq)(struct ib_device *device,						int cqe);	int                        (*destroy_cq)(struct ib_cq *cq);	int                        (*resize_cq)(struct ib_cq *cq, int *cqe);	int                        (*poll_cq)(struct ib_cq *cq, int num_entries,					      struct ib_wc *wc);	int                        (*peek_cq)(struct ib_cq *cq, int wc_cnt);	int                        (*req_notify_cq)(struct ib_cq *cq,						    enum ib_cq_notify cq_notify);	int                        (*req_ncomp_notif)(struct ib_cq *cq,						      int wc_cnt);	struct ib_mr *             (*get_dma_mr)(struct ib_pd *pd,						 int mr_access_flags);	struct ib_mr *             (*reg_phys_mr)(struct ib_pd *pd,						  struct ib_phys_buf *phys_buf_array,						  int num_phys_buf,						  int mr_access_flags,						  u64 *iova_start);	int                        (*query_mr)(struct ib_mr *mr,					       struct ib_mr_attr *mr_attr);	int                        (*dereg_mr)(struct ib_mr *mr);	int                        (*rereg_phys_mr)(struct ib_mr *mr,						    int mr_rereg_mask,						    struct ib_pd *pd,						    struct ib_phys_buf *phys_buf_array,						    int num_phys_buf,						    int mr_access_flags,						    u64 *iova_start);	struct ib_mw *             (*alloc_mw)(struct ib_pd *pd);	int                        (*bind_mw)(struct ib_qp *qp,					      struct ib_mw *mw,					      struct ib_mw_bind *mw_bind);	int                        (*dealloc_mw)(struct ib_mw *mw);	struct ib_fmr *	           (*alloc_fmr)(struct ib_pd *pd,						int mr_access_flags,						struct ib_fmr_attr *fmr_attr);	int		           (*map_phys_fmr)(struct ib_fmr *fmr,						   u64 *page_list, int list_len,						   u64 iova);	int		           (*unmap_fmr)(struct list_head *fmr_list);	int		           (*dealloc_fmr)(struct ib_fmr *fmr);	int                        (*attach_mcast)(struct ib_qp *qp,						   union ib_gid *gid,						   u16 lid);	int                        (*detach_mcast)(struct ib_qp *qp,						   union ib_gid *gid,						   u16 lid);	int                        (*process_mad)(struct ib_device *device,						  int process_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);	struct class_device          class_dev;	struct kobject               ports_parent;	struct list_head             port_list;	enum {		IB_DEV_UNINITIALIZED,		IB_DEV_REGISTERED,		IB_DEV_UNREGISTERED	}                            reg_state;	u8                           node_type;	u8                           phys_port_cnt;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -