drivers/infiniband/hw/efa/efa_io_defs.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/efa/efa_io_defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/hw/efa/efa_io_defs.h- Extension
.h- Size
- 10220 bytes
- Lines
- 392
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct efa_io_tx_meta_descstruct efa_io_tx_buf_descstruct efa_io_remote_mem_addrstruct efa_io_rdma_reqstruct efa_io_fast_mr_reg_reqstruct efa_io_fast_mr_inv_reqstruct efa_io_tx_wqestruct efa_io_rx_descstruct efa_io_cdesc_commonstruct efa_io_tx_cdescstruct efa_io_rx_cdescstruct efa_io_rx_cdesc_rdma_writestruct efa_io_rx_cdesc_exenum efa_io_queue_typeenum efa_io_send_op_typeenum efa_io_comp_statusenum efa_io_frwr_pbl_mode
Annotated Snippet
struct efa_io_tx_meta_desc {
/* Verbs-generated Request ID */
u16 req_id;
/*
* control flags
* 3:0 : op_type - enum efa_io_send_op_type
* 4 : has_imm - immediate_data field carries valid
* data.
* 5 : inline_msg - inline mode - inline message data
* follows this descriptor (no buffer descriptors).
* Note that it is different from immediate data
* 6 : meta_extension - Extended metadata. MBZ
* 7 : meta_desc - Indicates metadata descriptor.
* Must be set.
*/
u8 ctrl1;
/*
* control flags
* 0 : phase
* 1 : reserved25 - MBZ
* 2 : first - Indicates first descriptor in
* transaction. Must be set.
* 3 : last - Indicates last descriptor in
* transaction. Must be set.
* 4 : comp_req - Indicates whether completion should
* be posted, after packet is transmitted. Valid only
* for the first descriptor
* 7:5 : reserved29 - MBZ
*/
u8 ctrl2;
u16 dest_qp_num;
/*
* If inline_msg bit is set, length of inline message in bytes,
* otherwise length of SGL (number of buffers).
*/
u16 length;
/*
* immediate data: if has_imm is set, then this field is included within
* Tx message and reported in remote Rx completion.
*/
u32 immediate_data;
u16 ah;
u16 reserved;
/* Queue key */
u32 qkey;
u8 reserved2[12];
};
/*
* Tx queue buffer descriptor, for any transport type. Preceded by metadata
* descriptor.
*/
struct efa_io_tx_buf_desc {
/* length in bytes */
u32 length;
/*
* 23:0 : lkey - local memory translation key
* 31:24 : reserved - MBZ
*/
u32 lkey;
/* Buffer address bits[31:0] */
u32 buf_addr_lo;
/* Buffer address bits[63:32] */
u32 buf_addr_hi;
};
struct efa_io_remote_mem_addr {
/* length in bytes */
u32 length;
/* remote memory translation key */
u32 rkey;
/* Buffer address bits[31:0] */
u32 buf_addr_lo;
/* Buffer address bits[63:32] */
u32 buf_addr_hi;
Annotation
- Detected declarations: `struct efa_io_tx_meta_desc`, `struct efa_io_tx_buf_desc`, `struct efa_io_remote_mem_addr`, `struct efa_io_rdma_req`, `struct efa_io_fast_mr_reg_req`, `struct efa_io_fast_mr_inv_req`, `struct efa_io_tx_wqe`, `struct efa_io_rx_desc`, `struct efa_io_cdesc_common`, `struct efa_io_tx_cdesc`.
- Atlas domain: Driver Families / drivers/infiniband.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.