STRUCT VDUSE_VQ_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct vduse_vq_info(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” yes that's the manual name, no I will not be shortening it, it's giving official. today's main character is struct vduse_vq_info, and honestly? she's just a lil info card for a virtqueue. lowkey iconic. πŸŽ€


✨ NAME ✨

struct vduse_vq_info β€” literally just "information of a virtqueue". that's it. that's the vibe check. πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole glow-up, character for character, don't touch:

struct vduse_vq_info {
    __u32 index;
    __u32 num;
    __u64 desc_addr;
    __u64 driver_addr;
    __u64 device_addr;
    union {
      struct vduse_vq_state_split split;
      struct vduse_vq_state_packed packed;
    };
    __u8 ready;
 };

she's structured. she's unioned. she's ready (literally, there's a field). πŸ”₯


🫢 Members 🫢

okay so let's meet the cast, one by one, no skips:

  • index β€” the virtqueue index. her little name tag ✨
  • num β€” the size of virtqueue. how much room she's got, basically πŸ’…
  • desc_addr β€” address of desc area πŸ“
  • driver_addr β€” address of driver area πŸ“
  • device_addr β€” address of device area πŸ“
  • {unnamed_union} β€” it's anonymous. no name. mysterious. main character energy tbh πŸ™ˆ
  • split β€” split virtqueue state 🧚
  • packed β€” packed virtqueue state 🧚
  • ready β€” ready status of virtqueue. she's ready, she's been ready, periodt πŸ‘‘
ngl bestie, the three *_addr fields are just three addresses and there is no extra lore in this page about them. don't come for me, I only report what the manpage says. πŸ’€

πŸ’– Description πŸ’–

so like, what IS she? she's the structure used by the VDUSE_VQ_GET_INFO ioctl to get virtqueue's information. that's the whole gig. get info, slay, leave. 🌈


⭐ SEE ALSO ⭐

the whole friend group 🫢 β€” and heads up, the kernel file lives at ./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_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_request(9)
  • struct vduse_dev_response(9)

and that's a wrap, bestie πŸŽ€ this page came from ./include/uapi/linux, dated October 2026, and she answers to the name struct vduse_vq_info(9). go get that virtqueue info, you absolute icon πŸ’œβœ¨

πŸ“¦ where this page comes from