STRUCT VDUSE_DEV_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ 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 the index field is available ⭐
  • s β€” the device status πŸ’…
  • iova β€” the IOVA range for updating 🌸
  • iova_v2 β€” the IOVA range for updating if API_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.h
  • struct 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