iommu_map_sgtable(9)
πΈ iommu_map_sgtable(9) β like, the Kernel API Manual bestie π
okay so this one is iommu_map_sgtable from the Kernel API Manual and honestly? she's the one who actually gets your buffer mapped β¨ buckle up π
β¨ NAME β¨
iommu_map_sgtable β Map the given buffer to the IOMMU domain πΊοΈπ
π¦ SYNOPSIS π¦
ssize_t iommu_map_sgtable (struct iommu_domain *domain , unsigned long
iova , struct sg_table *sgt , int prot );
no cap, that's the whole signature π₯
π ARGUMENTS π
domainβ The IOMMU domain to perform the mapping π this is the vibe, the venue, the whole domain you're operating iniovaβ The start address to map the buffer π like where it's gonna livesgtβ The sg_table object describing the buffer πΈ she's the scatterlist container, the description of what you're mappingprotβ IOMMU protection bits π‘οΈ the permissions, the boundaries, the "what can u do" of it all
π DESCRIPTION π
So what she does is: Creates a mapping at iova for the buffer described by a scatterlist stored in the given sg_table object in the provided IOMMU domain π«
that's it, that's the whole thing, and she ate π literally just: give her a domain, an iova, an sgt, and she makes the mapping happen for the scatterlist-stored buffer inside that domain. main character energy fr fr π
π SEE ALSO π
Kernel file ./include/linux/iommu.h β plus the whole squad, and bestie there are so many, i listed every single one because i love u π«Ά:
struct iommu_fault_page_request(9)struct iommu_fault(9)enum iommu_page_response_code(9)struct iommu_page_response(9)struct iopf_queue(9)struct iommu_resv_region(9)struct iommu_iotlb_gather(9)struct iommu_dirty_bitmap(9)struct iommu_dirty_ops(9)struct iommu_user_data(9)struct iommu_user_data_array(9)__iommu_copy_struct_from_user(9)iommu_copy_struct_from_user(9)__iommu_copy_struct_from_user_array(9)iommu_copy_struct_from_user_array(9)iommu_copy_struct_from_full_user_array(9)__iommu_copy_struct_to_user(9)iommu_copy_struct_to_user(9)struct iommu_ops(9)struct iommu_domain_ops(9)struct iommu_device(9)struct iommu_fault_param(9)struct dev_iommu(9)iommu_iotlb_gather_is_disjoint(9)iommu_iotlb_gather_add_range(9)iommu_iotlb_gather_add_page(9)struct iommu_fwspec(9)struct iommu_sva(9)
ngl that's a long list but every one of them earned her spot π go read them, iykyk π
and that's the page!! she lives in ./include/linux and she's dated October 2026 β ok bye bestie, go map something iconic πππ§
π¦ 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