include/rdma/uverbs_std_types.h
Source file repositories/reference/linux-study-clean/include/rdma/uverbs_std_types.h
File Facts
- System
- Linux kernel
- Corpus path
include/rdma/uverbs_std_types.h- Extension
.h- Size
- 5365 bytes
- Lines
- 179
- 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.
- 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
rdma/uverbs_types.hrdma/uverbs_ioctl.hrdma/ib_user_ioctl_verbs.h
Detected Declarations
struct ib_uflow_resourcesstruct ib_uflow_objectstruct uverbs_api_objectfunction Copyrightfunction uobj_put_destroyfunction uobj_put_readfunction uobj_put_writefunction uobj_alloc_abortfunction uobj_finalize_uobj_createfunction __uobj_allocfunction uverbs_flow_action_fill_actionfunction ib_set_flowfunction uobj_get_object_id
Annotated Snippet
struct ib_uflow_resources {
size_t max;
size_t num;
size_t collection_num;
size_t counters_num;
struct ib_counters **counters;
struct ib_flow_action **collection;
};
struct ib_uflow_object {
struct ib_uobject uobject;
struct ib_uflow_resources *resources;
};
struct ib_uflow_resources *flow_resources_alloc(size_t num_specs);
void flow_resources_add(struct ib_uflow_resources *uflow_res,
enum ib_flow_spec_type type,
void *ibobj);
void ib_uverbs_flow_resources_free(struct ib_uflow_resources *uflow_res);
static inline void ib_set_flow(struct ib_uobject *uobj, struct ib_flow *ibflow,
struct ib_qp *qp, struct ib_device *device,
struct ib_uflow_resources *uflow_res)
{
struct ib_uflow_object *uflow;
uobj->object = ibflow;
ibflow->uobject = uobj;
if (qp) {
atomic_inc(&qp->usecnt);
ibflow->qp = qp;
}
ibflow->device = device;
uflow = container_of(uobj, typeof(*uflow), uobject);
uflow->resources = uflow_res;
}
struct uverbs_api_object {
const struct uverbs_obj_type *type_attrs;
const struct uverbs_obj_type_class *type_class;
u8 disabled:1;
u32 id;
};
static inline u32 uobj_get_object_id(struct ib_uobject *uobj)
{
return uobj->uapi_object->id;
}
#endif
Annotation
- Immediate include surface: `rdma/uverbs_types.h`, `rdma/uverbs_ioctl.h`, `rdma/ib_user_ioctl_verbs.h`.
- Detected declarations: `struct ib_uflow_resources`, `struct ib_uflow_object`, `struct uverbs_api_object`, `function Copyright`, `function uobj_put_destroy`, `function uobj_put_read`, `function uobj_put_write`, `function uobj_alloc_abort`, `function uobj_finalize_uobj_create`, `function __uobj_alloc`.
- 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.
- 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.