include/linux/qed/qed_rdma_if.h
Source file repositories/reference/linux-study-clean/include/linux/qed/qed_rdma_if.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/qed/qed_rdma_if.h- Extension
.h- Size
- 18359 bytes
- Lines
- 693
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/delay.hlinux/list.hlinux/slab.hlinux/qed/qed_if.hlinux/qed/qed_ll2_if.hlinux/qed/rdma_common.h
Detected Declarations
struct qed_rdma_eventsstruct qed_rdma_devicestruct qed_rdma_portstruct qed_rdma_cnq_paramsstruct qed_roce_dcqcn_paramsstruct qed_rdma_start_in_paramsstruct qed_rdma_add_user_out_paramsstruct qed_rdma_register_tid_in_paramsstruct qed_rdma_create_cq_in_paramsstruct qed_rdma_create_srq_in_paramsstruct qed_rdma_destroy_cq_in_paramsstruct qed_rdma_destroy_cq_out_paramsstruct qed_rdma_create_qp_in_paramsstruct qed_rdma_create_qp_out_paramsstruct qed_rdma_modify_qp_in_paramsstruct qed_rdma_query_qp_out_paramsstruct qed_rdma_create_srq_out_paramsstruct qed_rdma_destroy_srq_in_paramsstruct qed_rdma_modify_srq_in_paramsstruct qed_rdma_stats_out_paramsstruct qed_rdma_counters_out_paramsstruct qed_iwarp_cm_infostruct qed_iwarp_cm_event_paramsstruct qed_iwarp_connect_instruct qed_iwarp_connect_outstruct qed_iwarp_listen_instruct qed_iwarp_listen_outstruct qed_iwarp_accept_instruct qed_iwarp_reject_instruct qed_iwarp_send_rtr_instruct qed_roce_ll2_headerstruct qed_roce_ll2_bufferstruct qed_roce_ll2_packetstruct qed_dev_rdma_infostruct qed_rdma_opsenum qed_roce_qp_stateenum qed_rdma_qp_typeenum qed_rdma_tid_typeenum qed_port_stateenum qed_roce_capabilityenum qed_rdma_cq_modeenum roce_modeenum qed_iwarp_event_typeenum qed_tcp_ip_versionenum qed_rdma_type
Annotated Snippet
struct qed_rdma_events {
void *context;
void (*affiliated_event)(void *context, u8 fw_event_code,
void *fw_handle);
void (*unaffiliated_event)(void *context, u8 event_code);
};
struct qed_rdma_device {
u32 vendor_id;
u32 vendor_part_id;
u32 hw_ver;
u64 fw_ver;
u64 node_guid;
u64 sys_image_guid;
u8 max_cnq;
u8 max_sge;
u8 max_srq_sge;
u16 max_inline;
u32 max_wqe;
u32 max_srq_wqe;
u8 max_qp_resp_rd_atomic_resc;
u8 max_qp_req_rd_atomic_resc;
u64 max_dev_resp_rd_atomic_resc;
u32 max_cq;
u32 max_qp;
u32 max_srq;
u32 max_mr;
u64 max_mr_size;
u32 max_cqe;
u32 max_mw;
u32 max_mr_mw_fmr_pbl;
u64 max_mr_mw_fmr_size;
u32 max_pd;
u32 max_ah;
u8 max_pkey;
u16 max_srq_wr;
u8 max_stats_queues;
u32 dev_caps;
/* Abilty to support RNR-NAK generation */
#define QED_RDMA_DEV_CAP_RNR_NAK_MASK 0x1
#define QED_RDMA_DEV_CAP_RNR_NAK_SHIFT 0
/* Abilty to support shutdown port */
#define QED_RDMA_DEV_CAP_SHUTDOWN_PORT_MASK 0x1
#define QED_RDMA_DEV_CAP_SHUTDOWN_PORT_SHIFT 1
/* Abilty to support port active event */
#define QED_RDMA_DEV_CAP_PORT_ACTIVE_EVENT_MASK 0x1
#define QED_RDMA_DEV_CAP_PORT_ACTIVE_EVENT_SHIFT 2
/* Abilty to support port change event */
#define QED_RDMA_DEV_CAP_PORT_CHANGE_EVENT_MASK 0x1
#define QED_RDMA_DEV_CAP_PORT_CHANGE_EVENT_SHIFT 3
/* Abilty to support system image GUID */
#define QED_RDMA_DEV_CAP_SYS_IMAGE_MASK 0x1
#define QED_RDMA_DEV_CAP_SYS_IMAGE_SHIFT 4
/* Abilty to support bad P_Key counter support */
#define QED_RDMA_DEV_CAP_BAD_PKEY_CNT_MASK 0x1
#define QED_RDMA_DEV_CAP_BAD_PKEY_CNT_SHIFT 5
/* Abilty to support atomic operations */
#define QED_RDMA_DEV_CAP_ATOMIC_OP_MASK 0x1
#define QED_RDMA_DEV_CAP_ATOMIC_OP_SHIFT 6
#define QED_RDMA_DEV_CAP_RESIZE_CQ_MASK 0x1
#define QED_RDMA_DEV_CAP_RESIZE_CQ_SHIFT 7
/* Abilty to support modifying the maximum number of
* outstanding work requests per QP
*/
#define QED_RDMA_DEV_CAP_RESIZE_MAX_WR_MASK 0x1
#define QED_RDMA_DEV_CAP_RESIZE_MAX_WR_SHIFT 8
/* Abilty to support automatic path migration */
#define QED_RDMA_DEV_CAP_AUTO_PATH_MIG_MASK 0x1
#define QED_RDMA_DEV_CAP_AUTO_PATH_MIG_SHIFT 9
/* Abilty to support the base memory management extensions */
#define QED_RDMA_DEV_CAP_BASE_MEMORY_EXT_MASK 0x1
#define QED_RDMA_DEV_CAP_BASE_MEMORY_EXT_SHIFT 10
#define QED_RDMA_DEV_CAP_BASE_QUEUE_EXT_MASK 0x1
#define QED_RDMA_DEV_CAP_BASE_QUEUE_EXT_SHIFT 11
/* Abilty to support multipile page sizes per memory region */
#define QED_RDMA_DEV_CAP_MULTI_PAGE_PER_MR_EXT_MASK 0x1
#define QED_RDMA_DEV_CAP_MULTI_PAGE_PER_MR_EXT_SHIFT 12
/* Abilty to support block list physical buffer list */
#define QED_RDMA_DEV_CAP_BLOCK_MODE_MASK 0x1
#define QED_RDMA_DEV_CAP_BLOCK_MODE_SHIFT 13
/* Abilty to support zero based virtual addresses */
#define QED_RDMA_DEV_CAP_ZBVA_MASK 0x1
#define QED_RDMA_DEV_CAP_ZBVA_SHIFT 14
/* Abilty to support local invalidate fencing */
#define QED_RDMA_DEV_CAP_LOCAL_INV_FENCE_MASK 0x1
#define QED_RDMA_DEV_CAP_LOCAL_INV_FENCE_SHIFT 15
Annotation
- Immediate include surface: `linux/types.h`, `linux/delay.h`, `linux/list.h`, `linux/slab.h`, `linux/qed/qed_if.h`, `linux/qed/qed_ll2_if.h`, `linux/qed/rdma_common.h`.
- Detected declarations: `struct qed_rdma_events`, `struct qed_rdma_device`, `struct qed_rdma_port`, `struct qed_rdma_cnq_params`, `struct qed_roce_dcqcn_params`, `struct qed_rdma_start_in_params`, `struct qed_rdma_add_user_out_params`, `struct qed_rdma_register_tid_in_params`, `struct qed_rdma_create_cq_in_params`, `struct qed_rdma_create_srq_in_params`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.