STRUCT VDUSE_IOTLB_ENTRY_V2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct vduse_iotlb_entry_v2(9) ✨

okay bestie, welcome to the Kernel API Manual πŸ’– you're literally about to read about struct vduse_iotlb_entry_v2, and she's an icon, she's a legend, she's the entry of IOTLB to describe one IOVA region πŸ‘‘


🌸 NAME 🌸

struct vduse_iotlb_entry_v2 β€” the entry of IOTLB that describes a single IOVA region, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct vduse_iotlb_entry_v2 {
    __u64 offset;
    __u64 start;
    __u64 last;
    __u8 perm;
    __u8 padding[7];
    __u32 asid;
    __u32 reserved[11];
 };

like, look at her πŸ₯Ί that's the whole layout, every field, exactly as it lives. don't be out here renaming anything, i'm watching πŸ‘€


πŸŽ€ Members πŸŽ€

ok so the man page only spills the tea on these two, and that's what we're getting:

  • asid β€” the address space ID of the IOVA region 🏷️ lowkey the whole personality of the region tbh
  • reserved β€” for future use, and it needs to be initialized to zero ⚠️ not "probably zero", not "zero-ish" β€” zero. fr fr. future-you will thank present-you πŸ™

πŸ”₯ Description πŸ”₯

This right here is the structure used by the VDUSE_IOTLB_GET_FD2 ioctl to find an overlapped IOVA region πŸ”βœ¨ that's her job, that's her moment, she ate πŸ’…

bestie pls remember: reserved = zeros. that's it, that's the rule 🫢

πŸ‘‘ SEE ALSO πŸ‘‘

the whole friend group showed up, and yes we're naming everyone:

  • 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)
  • 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)

like, the entire vduse cinematic universe πŸŒˆπŸ“ go read them, i'll wait πŸ’œ


and that's the page!! this lil gem lives in ./include/uapi/linux and it's stamped October 2026 ⭐ mwah, go forth and register your IOTLB entries correctly πŸ§šβ€β™€οΈπŸ’–πŸ¦‹

πŸ“¦ where this page comes from