STRUCT IOMMU_IOAS_ALLOC(9)
π struct iommu_ioas_alloc(9) β from the Kernel API Manual, bestie β¨
okay so picture this: you're deep in the kernel, you open the manual, and the page header literally says struct iommu_ioas_alloc(9) β that's the whole title, no notes. welcome to the Kernel API Manual, we're getting into ioctl business today π«Ά
πΈ NAME πΈ
struct iommu_ioas_alloc β the ioctl(IOMMU_IOAS_ALLOC) glow-up. that's it, that's the name, no cap π
β¨ SYNOPSIS β¨
here's the struct, bestie β copy it exactly, do not freestyle:
struct iommu_ioas_alloc {
__u32 size;
__u32 flags;
__u32 out_ioas_id;
};
π Members π
okay let's meet the lineup, main character energy only:
sizeβ this is justsizeof(struct iommu_ioas_alloc). yes literally, it's a self-report situation, the struct tells you how big it is πflagsβ Must be 0. not "should", not "ideally" β must. keep it zero, fr fr πout_ioas_idβ the output IOAS ID for the allocated object. this is the little gift the kernel hands back to you at the end π
π¦ Description π¦
so what does this thing do? it allocates an IO Address Space (IOAS for short β say it with me, iykyk) which holds an IO Virtual Address (IOVA) to memory mapping. that's the entire description, she's short and iconic and she ate. β¨
π SEE ALSO π
the friend group, the whole squad, everybody's here β Kernel file ./include/uapi/linux/iommufd.h, General ioctl format(9), struct iommu_destroy(9), struct iommu_iova_range(9), struct iommu_ioas_iova_ranges(9), struct iommu_ioas_allow_iovas(9), enum iommufd_ioas_map_flags(9), struct iommu_ioas_map(9), struct iommu_ioas_noiommu_get_pa(9), struct iommu_ioas_map_file(9), struct iommu_ioas_copy(9), struct iommu_ioas_unmap(9), enum iommufd_option(9), enum iommufd_option_ops(9), struct iommu_option(9), enum iommufd_vfio_ioas_op(9), struct iommu_vfio_ioas(9), enum iommufd_hwpt_alloc_flags(9), enum iommu_hwpt_vtd_s1_flags(9), struct iommu_hwpt_vtd_s1(9), struct iommu_hwpt_arm_smmuv3(9), struct iommu_hwpt_amd_guest(9), enum iommu_hwpt_data_type(9), struct iommu_hwpt_alloc(9), enum iommu_hw_info_vtd_flags(9), struct iommu_hw_info_vtd(9), enum iommu_hw_info_arm_smmuv3_flags(9), struct iommu_hw_info_arm_smmuv3(9), struct iommu_hw_info_tegra241_cmdqv(9), struct iommu_hw_info_amd(9), enum iommu_hw_info_type(9), enum iommufd_hw_capabilities(9), enum iommufd_hw_info_flags(9), struct iommu_hw_info(9), struct iommu_hwpt_set_dirty_tracking(9), enum iommufd_hwpt_get_dirty_bitmap_flags(9), struct iommu_hwpt_get_dirty_bitmap(9), enum iommu_hwpt_invalidate_data_type(9), enum iommu_hwpt_vtd_s1_invalidate_flags(9), struct iommu_hwpt_vtd_s1_invalidate(9), struct iommu_viommu_arm_smmuv3_invalidate(9), struct iommu_hwpt_invalidate(9), enum iommu_hwpt_pgfault_flags(9), enum iommu_hwpt_pgfault_perm(9), struct iommu_hwpt_pgfault(9), enum iommufd_page_response_code(9), struct iommu_hwpt_page_response(9), struct iommu_fault_alloc(9), enum iommu_viommu_type(9), struct iommu_viommu_tegra241_cmdqv(9), struct iommu_viommu_alloc(9), struct iommu_vdevice_alloc(9), struct iommu_ioas_change_process(9), enum iommu_veventq_flag(9), struct iommufd_vevent_header(9), enum iommu_veventq_type(9), struct iommu_vevent_arm_smmuv3(9), struct iommu_vevent_tegra241_cmdqv(9), struct iommu_veventq_alloc(9), enum iommu_hw_queue_type(9), struct iommu_hw_queue_alloc(9).
like I said. the whole squad. π
and that's the page, bestie!! this one lives in ./include/uapi/linux, dated October 2026 β mark your calendars, she's a Scorpio or whatever, periodt ππ
π¦ 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