iommufd_hwpt_nested_alloc(9)
π iommufd_hwpt_nested_alloc(9) β from the Kernel API Manual, bestie π
okay so you found the kernel API manual, and now you're staring at iommufd_hwpt_nested_alloc like π. don't worry, i got you. this is the whole page, nothing skipped, no cap.
β¨ NAME β¨
iommufd_hwpt_nested_alloc β get a NESTED iommu_domain for a device π¦
πΈ SYNOPSIS πΈ
struct iommufd_hwpt_nested * iommufd_hwpt_nested_alloc (struct
iommufd_ctx *ictx , struct iommufd_hwpt_paging *parent , struct
iommufd_device *idev , u32 flags , const struct iommu_user_data
*user_data );
like, that's the whole signature. it's giving "five arguments and a dream" π«
π ARGUMENTS π
ictxβ the iommufd context. your whole vibe's home base, basically.parentβ the parent PAGING-type hwpt you wanna associate the domain with. yes, "PAGING-type" is the exact kind β don't come at me with anything else.idevβ the device you're getting aniommu_domainfor. the main character of this whole operation πflagsβ flags straight from userspace. their house, their rules.user_dataβ theuser_datapointer. must be valid, fr fr. no cute little NULL surprises, okay? π
π DESCRIPTION π
so what it does is: allocate a brand-new iommu_domain β and heads up, it must be IOMMU_DOMAIN_NESTED, that's not optional β and hand it back to you as a NESTED hw_pagetable. iconic behavior tbh.
also, the parent PAGING-type hwpt you pass in? it must be capable of being a parent β that's a requirement, not a suggestion. check before you ship it π«Ά
π₯ SEE ALSO π₯
- Kernel file
./drivers/iommu/iommufd/hw_pagetable.cβ go read the source, it's literally right there π§ iommufd_hwpt_paging_alloc(9)iommufd_viommu_alloc_hwpt_nested(9)
and that's the page, bestie! π this one's from ./drivers/iommu/iommufd, dated October 2026, and it's the iommufd_hwpt_nested_alloc(9) entry β slay, go forth and nest those domains πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms