STRUCT VDUSE_IOVA_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ struct vduse_iova_info(9) πŸ’œ

okay bestie, so this is a page straight out of the Kernel API Manual β€” struct vduse_iova_info(9), no cap. it's a lil struct that tells you about one IOVA region and honestly? it's giving "small but mighty" energy. ✨


🌸 NAME 🌸

struct vduse_iova_info β€” information of one IOVA region πŸŽ€

like, literally. it's the info packet for a single IOVA region. that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct vduse_iova_info {
    __u64 start;
    __u64 last;
  #define VDUSE_IOVA_CAP_UMEM (1 << 0);
    __u64 capability;
    __u32 asid;
    __u32 reserved[5];
 };

copy it exactly, bestie, don't be out here retyping it from memory 😭


🌈 Members 🌈

  • start β€” the start of the IOVA region. where it all begins 🫢
  • last β€” the last of the IOVA region. the end of the era πŸ’…
  • capability β€” the capability of the IOVA region. what it can do, iykyk ⭐
  • asid β€” the Address space ID of the IOVA region, only if the device API version is >= 1. so like… check your version first, or you're gonna have a bad time πŸ™ˆ
  • reserved β€” reserved for future use, and it needs to be initialized to zero. not "probably zero", not "zero-ish" β€” zero, fr fr. the kernel is watching πŸ‘€

✨ Description ✨

so this is the structure used by the VDUSE_IOTLB_GET_INFO ioctl to get information of one IOVA region. that's it, that's the whole job β€” one ioctl, one region's worth of info, and it ate. πŸ’–

quick vibe check: reserved still has to be zeroed out. future-you (and the kernel) will thank you 🧚

πŸŽ€ SEE ALSO πŸŽ€

the kernel file ./include/uapi/linux/vduse.h and honestly the whole friend group:

  • 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_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 the whole page, bestie 🫢 it lives in ./include/uapi/linux, and this edition is dated October 2026. slay, go read your ioctls, ily, bye πŸ’œπŸ¦‹

πŸ“¦ where this page comes from