drivers/infiniband/hw/efa/efa_com_cmd.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/efa/efa_com_cmd.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/hw/efa/efa_com_cmd.h- Extension
.h- Size
- 8495 bytes
- Lines
- 355
- 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
efa_com.h
Detected Declarations
struct efa_com_create_qp_paramsstruct efa_com_create_qp_resultstruct efa_com_modify_qp_paramsstruct efa_com_query_qp_paramsstruct efa_com_query_qp_resultstruct efa_com_destroy_qp_paramsstruct efa_com_create_cq_paramsstruct efa_com_create_cq_resultstruct efa_com_destroy_cq_paramsstruct efa_com_create_ah_paramsstruct efa_com_create_ah_resultstruct efa_com_destroy_ah_paramsstruct efa_com_get_device_attr_resultstruct efa_com_get_hw_hints_resultstruct efa_com_mem_addrstruct efa_com_ctrl_buff_infostruct efa_com_reg_mr_paramsstruct efa_com_mr_interconnect_infostruct efa_com_reg_mr_resultstruct efa_com_dereg_mr_paramsstruct efa_com_alloc_pd_resultstruct efa_com_dealloc_pd_paramsstruct efa_com_alloc_uar_resultstruct efa_com_dealloc_uar_paramsstruct efa_com_get_stats_paramsstruct efa_com_basic_statsstruct efa_com_messages_statsstruct efa_com_rdma_read_statsstruct efa_com_rdma_write_statsstruct efa_com_network_stats
Annotated Snippet
struct efa_com_create_qp_params {
u64 rq_base_addr;
u32 send_cq_idx;
u32 recv_cq_idx;
/*
* Send descriptor ring size in bytes,
* sufficient for user-provided number of WQEs and SGL size
*/
u32 sq_ring_size_in_bytes;
/* Max number of WQEs that will be posted on send queue */
u32 sq_depth;
/* Recv descriptor ring size in bytes */
u32 rq_ring_size_in_bytes;
u32 rq_depth;
u16 pd;
u16 uarn;
u8 qp_type;
u8 sl;
u8 unsolicited_write_recv : 1;
};
struct efa_com_create_qp_result {
u32 qp_handle;
u32 qp_num;
u32 sq_db_offset;
u32 rq_db_offset;
u32 llq_descriptors_offset;
u16 send_sub_cq_idx;
u16 recv_sub_cq_idx;
};
struct efa_com_modify_qp_params {
u32 modify_mask;
u32 qp_handle;
u32 qp_state;
u32 cur_qp_state;
u32 qkey;
u32 sq_psn;
u8 sq_drained_async_notify;
u8 rnr_retry;
};
struct efa_com_query_qp_params {
u32 qp_handle;
};
struct efa_com_query_qp_result {
u32 qp_state;
u32 qkey;
u32 sq_draining;
u32 sq_psn;
u8 rnr_retry;
};
struct efa_com_destroy_qp_params {
u32 qp_handle;
};
struct efa_com_create_cq_params {
/* cq physical base address in OS memory */
dma_addr_t dma_addr;
/* completion queue depth in # of entries */
u16 sub_cq_depth;
u16 num_sub_cqs;
u16 uarn;
u16 eqn;
u8 entry_size_in_bytes;
u8 interrupt_mode_enabled : 1;
u8 set_src_addr : 1;
};
struct efa_com_create_cq_result {
/* cq identifier */
u16 cq_idx;
/* actual cq depth in # of entries */
u16 actual_depth;
u32 db_off;
bool db_valid;
};
struct efa_com_destroy_cq_params {
u16 cq_idx;
};
struct efa_com_create_ah_params {
u16 pdn;
/* Destination address in network byte order */
u8 dest_addr[EFA_GID_SIZE];
};
Annotation
- Immediate include surface: `efa_com.h`.
- Detected declarations: `struct efa_com_create_qp_params`, `struct efa_com_create_qp_result`, `struct efa_com_modify_qp_params`, `struct efa_com_query_qp_params`, `struct efa_com_query_qp_result`, `struct efa_com_destroy_qp_params`, `struct efa_com_create_cq_params`, `struct efa_com_create_cq_result`, `struct efa_com_destroy_cq_params`, `struct efa_com_create_ah_params`.
- 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.