include/uapi/rdma/ib_user_verbs.h
Source file repositories/reference/linux-study-clean/include/uapi/rdma/ib_user_verbs.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/rdma/ib_user_verbs.h- Extension
.h- Size
- 29578 bytes
- Lines
- 1383
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- 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/types.h
Detected Declarations
struct ib_uverbs_async_event_descstruct ib_uverbs_comp_event_descstruct ib_uverbs_cq_moderation_capsstruct ib_uverbs_cmd_hdrstruct ib_uverbs_ex_cmd_hdrstruct ib_uverbs_get_contextstruct ib_uverbs_get_context_respstruct ib_uverbs_query_devicestruct ib_uverbs_query_device_respstruct ib_uverbs_ex_query_devicestruct ib_uverbs_odp_capsstruct ib_uverbs_rss_capsstruct ib_uverbs_tm_capsstruct ib_uverbs_ex_query_device_respstruct ib_uverbs_query_portstruct ib_uverbs_query_port_respstruct ib_uverbs_alloc_pdstruct ib_uverbs_alloc_pd_respstruct ib_uverbs_dealloc_pdstruct ib_uverbs_open_xrcdstruct ib_uverbs_open_xrcd_respstruct ib_uverbs_close_xrcdstruct ib_uverbs_reg_mrstruct ib_uverbs_reg_mr_respstruct ib_uverbs_rereg_mrstruct ib_uverbs_rereg_mr_respstruct ib_uverbs_dereg_mrstruct ib_uverbs_alloc_mwstruct ib_uverbs_alloc_mw_respstruct ib_uverbs_dealloc_mwstruct ib_uverbs_create_comp_channelstruct ib_uverbs_create_comp_channel_respstruct ib_uverbs_create_cqstruct ib_uverbs_ex_create_cqstruct ib_uverbs_create_cq_respstruct ib_uverbs_ex_create_cq_respstruct ib_uverbs_resize_cqstruct ib_uverbs_resize_cq_respstruct ib_uverbs_poll_cqstruct ib_uverbs_wcstruct ib_uverbs_poll_cq_respstruct ib_uverbs_req_notify_cqstruct ib_uverbs_destroy_cqstruct ib_uverbs_destroy_cq_respstruct ib_uverbs_global_routestruct ib_uverbs_ah_attrstruct ib_uverbs_qp_attrstruct ib_uverbs_create_qp
Annotated Snippet
struct ib_uverbs_async_event_desc {
__aligned_u64 element;
__u32 event_type; /* enum ib_event_type */
__u32 reserved;
};
struct ib_uverbs_comp_event_desc {
__aligned_u64 cq_handle;
};
struct ib_uverbs_cq_moderation_caps {
__u16 max_cq_moderation_count;
__u16 max_cq_moderation_period;
__u32 reserved;
};
/*
* All commands from userspace should start with a __u32 command field
* followed by __u16 in_words and out_words fields (which give the
* length of the command block and response buffer if any in 32-bit
* words). The kernel driver will read these fields first and read
* the rest of the command struct based on these value.
*/
#define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80000000u
struct ib_uverbs_cmd_hdr {
__u32 command;
__u16 in_words;
__u16 out_words;
};
struct ib_uverbs_ex_cmd_hdr {
__aligned_u64 response;
__u16 provider_in_words;
__u16 provider_out_words;
__u32 cmd_hdr_reserved;
};
struct ib_uverbs_get_context {
__aligned_u64 response;
__aligned_u64 driver_data[];
};
struct ib_uverbs_get_context_resp {
__u32 async_fd;
__u32 num_comp_vectors;
__aligned_u64 driver_data[];
};
struct ib_uverbs_query_device {
__aligned_u64 response;
__aligned_u64 driver_data[];
};
struct ib_uverbs_query_device_resp {
__aligned_u64 fw_ver;
__be64 node_guid;
__be64 sys_image_guid;
__aligned_u64 max_mr_size;
__aligned_u64 page_size_cap;
__u32 vendor_id;
__u32 vendor_part_id;
__u32 hw_ver;
__u32 max_qp;
__u32 max_qp_wr;
__u32 device_cap_flags;
__u32 max_sge;
__u32 max_sge_rd;
__u32 max_cq;
__u32 max_cqe;
__u32 max_mr;
__u32 max_pd;
__u32 max_qp_rd_atom;
__u32 max_ee_rd_atom;
__u32 max_res_rd_atom;
__u32 max_qp_init_rd_atom;
__u32 max_ee_init_rd_atom;
__u32 atomic_cap;
__u32 max_ee;
__u32 max_rdd;
__u32 max_mw;
__u32 max_raw_ipv6_qp;
__u32 max_raw_ethy_qp;
__u32 max_mcast_grp;
__u32 max_mcast_qp_attach;
__u32 max_total_mcast_qp_attach;
__u32 max_ah;
__u32 max_fmr;
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct ib_uverbs_async_event_desc`, `struct ib_uverbs_comp_event_desc`, `struct ib_uverbs_cq_moderation_caps`, `struct ib_uverbs_cmd_hdr`, `struct ib_uverbs_ex_cmd_hdr`, `struct ib_uverbs_get_context`, `struct ib_uverbs_get_context_resp`, `struct ib_uverbs_query_device`, `struct ib_uverbs_query_device_resp`, `struct ib_uverbs_ex_query_device`.
- Atlas domain: Repository Root And Misc / include.
- 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.