drivers/infiniband/sw/rxe/rxe_verbs.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/sw/rxe/rxe_verbs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/sw/rxe/rxe_verbs.h- Extension
.h- Size
- 10204 bytes
- Lines
- 528
- 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
linux/interrupt.hlinux/workqueue.hrxe_pool.hrxe_task.hrxe_hw_counters.h
Detected Declarations
struct rxe_ucontextstruct rxe_pdstruct rxe_ahstruct rxe_cqestruct rxe_cqstruct rxe_sqstruct rxe_rqstruct rxe_srqstruct rxe_req_infostruct rxe_comp_infostruct resp_resstruct rxe_resp_infostruct rxe_qpstruct rxe_mr_pagestruct rxe_mrstruct rxe_mwstruct rxe_mcgstruct rxe_mcastruct rxe_portstruct rxe_devenum wqe_stateenum resp_statesenum rdatm_res_stateenum rxe_mr_stateenum rxe_mr_copy_direnum rxe_mr_lookup_typeenum rxe_reregenum rxe_mw_statefunction Copyrightfunction psn_comparefunction rkey_is_mwfunction mr_page_sizefunction rxe_counter_incfunction rxe_counter_add
Annotated Snippet
struct rxe_ucontext {
struct ib_ucontext ibuc;
struct rxe_pool_elem elem;
};
struct rxe_pd {
struct ib_pd ibpd;
struct rxe_pool_elem elem;
};
struct rxe_ah {
struct ib_ah ibah;
struct rxe_pool_elem elem;
struct rxe_av av;
bool is_user;
int ah_num;
};
struct rxe_cqe {
union {
struct ib_wc ibwc;
struct ib_uverbs_wc uibwc;
};
};
struct rxe_cq {
struct ib_cq ibcq;
struct rxe_pool_elem elem;
struct rxe_queue *queue;
spinlock_t cq_lock;
u8 notify;
bool is_user;
atomic_t num_wq;
};
enum wqe_state {
wqe_state_posted,
wqe_state_processing,
wqe_state_pending,
wqe_state_done,
wqe_state_error,
};
struct rxe_sq {
int max_wr;
int max_sge;
int max_inline;
spinlock_t sq_lock; /* guard queue */
struct rxe_queue *queue;
};
struct rxe_rq {
int max_wr;
int max_sge;
spinlock_t producer_lock; /* guard queue producer */
spinlock_t consumer_lock; /* guard queue consumer */
struct rxe_queue *queue;
};
struct rxe_srq {
struct ib_srq ibsrq;
struct rxe_pool_elem elem;
struct rxe_pd *pd;
struct rxe_rq rq;
u32 srq_num;
int limit;
int error;
};
struct rxe_req_info {
int wqe_index;
u32 psn;
int opcode;
atomic_t rd_atomic;
int wait_fence;
int need_rd_atomic;
int wait_psn;
int need_retry;
int wait_for_rnr_timer;
int noack_pkts;
int again;
};
struct rxe_comp_info {
u32 psn;
int opcode;
int timeout;
int timeout_retry;
int started_retry;
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/workqueue.h`, `rxe_pool.h`, `rxe_task.h`, `rxe_hw_counters.h`.
- Detected declarations: `struct rxe_ucontext`, `struct rxe_pd`, `struct rxe_ah`, `struct rxe_cqe`, `struct rxe_cq`, `struct rxe_sq`, `struct rxe_rq`, `struct rxe_srq`, `struct rxe_req_info`, `struct rxe_comp_info`.
- 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.