STRUCT VDUSE_DEV_REQUEST(9)
π struct vduse_dev_request(9) β the control request glow-up β¨
okay bestie, welcome to the Kernel API Manual page for struct vduse_dev_request(9) β yes it's a control request, and yes it's lowkey iconic. buckle up π
πΈ NAME πΈ
struct vduse_dev_request β the control request struct, fr fr π
β¨ SYNOPSIS β¨
struct vduse_dev_request {
__u32 type;
__u32 request_id;
__u32 reserved[4];
union {
struct vduse_vq_state vq_state;
struct vduse_dev_status s;
struct vduse_iova_range iova;
struct vduse_iova_range_v2 iova_v2;
struct vduse_vq_group_asid vq_group_asid;
struct vduse_vq_ready vq_ready;
__u32 padding[32];
};
};
like, look at that union bestie, it's giving choose your own adventure π¦ nothing was copy-pasted here, every field is exactly where it belongs β¨
π«Ά Members π«Ά
typeβ the request type, iykyk π«request_idβ the request id, so you know which one's which πreservedβ reserved for future use, aka it's literally just vibing and waiting its turn π{unnamed_union}β an anonymous union, no name, no cap, main character energy πvq_stateβ the virtqueue state, but heads up: only theindexfield is available βsβ the device status πiovaβ the IOVA range for updating πΈiova_v2β the IOVA range for updating ifAPI_VERSION >= 1π₯ (read that conditional carefully bestie, it's load-bearing)vq_group_asidβ the ASID of a virtqueue group π¦vq_readyβ the virtqueue ready request βpaddingβ padding, that's it, that's the whole job π
π Description π
this structure is the one used by read(2) on /dev/vduse/$NAME. periodt. that's the whole description, don't @ me π§
ngl, $NAME is a placeholder there β copy the path exactly, don't swap in something cute π
π SEE ALSO π
Kernel file ./include/uapi/linux/vduse.hstruct vduse_dev_config(9)struct vduse_iotlb_entry(9)struct vduse_config_data(9)struct vduse_vq_config(9)struct vduse_vq_state_split(9)struct vduse_vq_state_packed(9)struct vduse_vq_group_asid(9)struct vduse_vq_info(9)struct vduse_vq_eventfd(9)struct vduse_iova_umem(9)struct vduse_iova_info(9)struct vduse_iotlb_entry_v2(9)enum vduse_req_type(9)struct vduse_vq_state(9)struct vduse_dev_status(9)struct vduse_iova_range(9)struct vduse_iova_range_v2(9)struct vduse_vq_ready(9)struct vduse_dev_response(9)
and that's the whole page bestie!! π this gem lives over in ./include/uapi/linux and it's dated October 2026 β go read the source, slay, and hydrate π
π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms