drivers/infiniband/hw/irdma/user.h

Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/irdma/user.h

File Facts

System
Linux kernel
Corpus path
drivers/infiniband/hw/irdma/user.h
Extension
.h
Size
21006 bytes
Lines
676
Domain
Driver Families
Bucket
drivers/infiniband
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct irdma_ring {
	u32 head;
	u32 tail;
	u32 size;
};

struct irdma_cqe {
	__le64 buf[IRDMA_CQE_SIZE];
};

struct irdma_extended_cqe {
	__le64 buf[IRDMA_EXTENDED_CQE_SIZE];
};

struct irdma_post_send {
	struct ib_sge *sg_list;
	u32 num_sges;
	u32 qkey;
	u32 dest_qp;
	u32 ah_id;
};

struct irdma_post_rq_info {
	u64 wr_id;
	struct ib_sge *sg_list;
	u32 num_sges;
};

struct irdma_rdma_write {
	struct ib_sge *lo_sg_list;
	u32 num_lo_sges;
	struct ib_sge rem_addr;
};

struct irdma_rdma_read {
	struct ib_sge *lo_sg_list;
	u32 num_lo_sges;
	struct ib_sge rem_addr;
};

struct irdma_bind_window {
	irdma_stag mr_stag;
	u64 bind_len;
	void *va;
	enum irdma_addressing_type addressing_type;
	bool ena_reads:1;
	bool ena_writes:1;
	irdma_stag mw_stag;
	bool mem_window_type_1:1;
	bool remote_atomics_en:1;
};

struct irdma_atomic_fetch_add {
	u64 tagged_offset;
	u64 remote_tagged_offset;
	u64 fetch_add_data_bytes;
	u32 stag;
	u32 remote_stag;
};

struct irdma_atomic_compare_swap {
	u64 tagged_offset;
	u64 remote_tagged_offset;
	u64 swap_data_bytes;
	u64 compare_data_bytes;
	u32 stag;
	u32 remote_stag;
};

struct irdma_inv_local_stag {
	irdma_stag target_stag;
};

struct irdma_post_sq_info {
	u64 wr_id;
	u8 op_type;
	u8 l4len;
	bool signaled:1;
	bool read_fence:1;
	bool local_fence:1;
	bool inline_data:1;
	bool imm_data_valid:1;
	bool report_rtt:1;
	bool udp_hdr:1;
	bool defer_flag:1;
	bool remote_atomic_en:1;
	u32 imm_data;
	u32 stag_to_inv;
	union {
		struct irdma_post_send send;

Annotation

Implementation Notes