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.
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- 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 irdma_srq_ukstruct irdma_srq_uk_init_infostruct irdma_qp_ukstruct irdma_cq_ukstruct irdma_qp_uk_init_infostruct irdma_cq_uk_init_infostruct irdma_ringstruct irdma_cqestruct irdma_extended_cqestruct irdma_post_sendstruct irdma_post_rq_infostruct irdma_rdma_writestruct irdma_rdma_readstruct irdma_bind_windowstruct irdma_atomic_fetch_addstruct irdma_atomic_compare_swapstruct irdma_inv_local_stagstruct irdma_post_sq_infostruct irdma_cq_poll_infostruct qp_err_codestruct irdma_wqe_uk_opsstruct irdma_srq_ukstruct irdma_srq_uk_init_infostruct irdma_sq_uk_wr_trk_infostruct irdma_qp_quantastruct irdma_qp_ukstruct irdma_cq_ukstruct irdma_qp_uk_init_infostruct irdma_cq_uk_init_infoenum irdma_device_caps_constenum irdma_addressing_typeenum irdma_flush_opcodeenum irdma_qp_event_typeenum irdma_cmpl_statusenum irdma_cmpl_notifyenum irdma_qp_capsfunction irdma_ae_to_qp_err_code
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
- Detected declarations: `struct irdma_srq_uk`, `struct irdma_srq_uk_init_info`, `struct irdma_qp_uk`, `struct irdma_cq_uk`, `struct irdma_qp_uk_init_info`, `struct irdma_cq_uk_init_info`, `struct irdma_ring`, `struct irdma_cqe`, `struct irdma_extended_cqe`, `struct irdma_post_send`.
- Atlas domain: Driver Families / drivers/infiniband.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.