iommufd_access_create(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– iommufd_access_create(9) β€” it's giving "kernel API manual" ✨

okay so bestie. welcome to the Kernel API Manual page for iommufd_access_create(9) β€” yes that's the whole page name, yes the (9) is the section, no we are not skipping it πŸ’…. sit down, grab a strawberry πŸ“, this one's actually not that long and it's lowkey iconic.


✨ NAME ✨

iommufd_access_create β€” create an iommufd_access. that's it. that's the name. it creates the thing. slay πŸŽ€


🌸 SYNOPSIS 🌸

struct iommufd_access * iommufd_access_create (struct iommufd_ctx *ictx
, const struct iommufd_access_ops *ops , void *data , u32 *id );

literally exactly that, character for character, no cap 🫢. one function, four args, returns a struct iommufd_access *.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • ictx β€” the iommufd file descriptor. your entry point, your main character, the thing that makes this whole call make sense πŸ”₯
  • ops β€” the driver's ops to associate with the access. this is the driver's personality, ok? it gets attached to the access ✨
  • data β€” opaque data to pass into ops functions. it's opaque bestie, we don't peek, we just hand it over πŸ™ˆ
  • id β€” output ID number to return to userspace for this access. it's an output, so you're getting something back β€” u32 *, so a pointer, so the function writes into it πŸ’œ

πŸ‘‘ DESCRIPTION πŸ‘‘

so what even is an iommufd_access? okay so:

An iommufd_access lets a driver read/write to the IOAS without using DMA. no DMA. none. zero. the way that this access just sidesteps DMA entirely?? obsessed 😭

The underlying CPU memory can still be reached, and you do that with the iommufd_access_pin_pages or iommufd_access_rw functions β€” those are your two lanes for getting at that CPU memory 🧚

And here's the important bit, ngl, don't skip it: the provided ops are required to use iommufd_access_pin_pages. like, required required. no ops, no pinning. that's the vibe check and it does not negotiate πŸ’€


πŸ’€ quick reminder: ops is not optional if you want iommufd_access_pin_pages to work. keep every word of that in your heart.

🌈 SEE ALSO 🌈

Kernel file ./drivers/iommu/iommufd/device.c, plus your whole little friend group of related functions β€” go read them, they're all linked together, iykyk:


and that's the page!! πŸŽ€ source path is ./drivers/iommu/iommufd, and this gorgeous little manual page is dated October 2026 β€” so mark your calendars bestie, see you then β­πŸ’– bye!! πŸ¦‹

πŸ“¦ where this page comes from