STRUCT IOMMU_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct iommu_device β€” the IOMMU core's whole entire representation of one IOMMU hardware instance ✨ (this is from the Kernel API Manual, bestie, section 9, we love a documentation era)


🌸 SYNOPSIS 🌸

okay so here's the struct, literally exactly as it is, do not come for me about the indentation:

struct iommu_device {
    struct list_head list;
    const struct iommu_ops *ops;
    struct fwnode_handle *fwnode;
    struct device *dev;
    struct iommu_group *singleton_group;
    u32 max_pasids;
    bool ready;
 };

πŸŽ€ Members πŸŽ€

  • list β€” the iommu-core uses this to keep a list of registered iommus, like a little roster, a group chat of iommus if you will 🫢
  • ops β€” the iommu-ops for talking to this iommu. this is the "how do i actually communicate with you" field πŸ’…
  • dev β€” a struct device for sysfs handling. yes bestie, sysfs has needs πŸ¦‹
  • singleton_group β€” used internally for drivers that have only one group. one group, one girl, main character energy πŸ‘‘
  • max_pasids β€” number of supported PASIDs. that's the number, that's the whole field, no notes πŸ”₯
  • ready β€” set once iommu_device_register has completed successfully. so like, it's not ready until it's ready, periodt ⭐
real talk: fwnode is in the struct up there πŸ‘† but this page doesn't give it its own little blurb. not me leaving a field undescribed, it's just how the page is πŸ™ˆ

🌈 SEE ALSO 🌈

the kernel file is ./include/linux/iommu.h, and then there's a whole crew of related pages, all section (9), all iconic in their own way:


okay that's the whole page, mwah πŸ’‹ this lil number lives in ./include/linux and it's dated October 2026 β€” go read it, it ate, no cap πŸ“πŸ§šπŸ’œ

πŸ“¦ where this page comes from