STRUCT VDUSE_IOTLB_ENTRY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct vduse_iotlb_entry(9) β€” like, the Kernel API Manual, bestie ✨

okay so we're in the kernel API manual and today's main character is struct vduse_iotlb_entry(9). she's not huge, she's not loud, but she is doing her job and honestly? iconic.


πŸŽ€ NAME πŸŽ€

struct vduse_iotlb_entry β€” an entry of IOTLB that describes exactly one IOVA region [start, last]. one region. one entry. no cap, that's her whole thing πŸ’–


✨ SYNOPSIS ✨

struct vduse_iotlb_entry {
    __u64 offset;
    __u64 start;
    __u64 last;
  #define VDUSE_ACCESS_RO 0x1;
  #define VDUSE_ACCESS_WO 0x2;
  #define VDUSE_ACCESS_RW 0x3;
    __u8 perm;
 };

look at her. four fields and three #defines just vibing in the middle of the struct. we stan 🫢


🌸 Members 🌸

  • offset β€” the mmap offset on the returned file descriptor. basically "where do I find this thing", and the answer is right here, king πŸ”₯
  • start β€” the start of the IOVA region. the beginning, the opening act, the main character's entrance πŸ’…
  • last β€” the last of the IOVA region. she closes it out. periodt. ✨
  • perm β€” the access permission of the IOVA region. your whole "can I read this? can I write this? am I allowed?" vibe check, answered in advance πŸ¦‹

🧚 Description 🧚

so this structure is the one used by the VDUSE_IOTLB_GET_FD ioctl to find an overlapped IOVA region. that's it, that's the tea β˜• β€” it's the little container that carries the answer back to you when you go looking for a region that overlaps. lowkey humble, highkey essential πŸ’œ


⭐ SEE ALSO ⭐

kernel file ./include/uapi/linux/vduse.h (iykyk), and also the whole friend group:

  • struct vduse_dev_config(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_request(9)
  • struct vduse_dev_response(9)

go read them all, they're literally all right there. the whole squad. 🌈


ngl, this one's short and sweet. read the whole thing, don't skim, and you'll be fine πŸ“

and that's a wrap, bestie!! shoutout to ./include/uapi/linux for being the source, and to October 2026 for the date stamp β€” mwah πŸ’‹ see you in the next manpage, muah muah πŸ’–πŸŽ€πŸ¦‹βœ¨

πŸ“¦ where this page comes from