STRUCT IOMMU_HWPT_VTD_S1(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct iommu_hwpt_vtd_s1(9) β€” Intel VT-d stage-1 page table info (IOMMU_HWPT_DATA_VTD_S1)

okay so bestie, this little cutie lives in the Kernel API Manual, section 9, and it's literally just the info blob you hand over when you want an Intel VT-d stage-1 page table described. it's giving "small struct, big responsibilities" πŸ’…


🌸 NAME 🌸

struct iommu_hwpt_vtd_s1 β€” Intel VT-d stage-1 page table info (IOMMU_HWPT_DATA_VTD_S1) πŸ¦‹


✨ SYNOPSIS ✨

struct iommu_hwpt_vtd_s1 {
    __aligned_u64 flags;
    __aligned_u64 pgtbl_addr;
    __u32 addr_width;
    __u32 __reserved;
 };

look at her. four fields, zero drama. no cap. 🫢


πŸ’– Members πŸ’–

  • flags β€” a combination of enum iommu_hwpt_vtd_s1_flags 🌈 (yes, combination β€” it's a bitmask situation, not a pick-one)
  • pgtbl_addr β€” the base address of the stage-1 page table πŸ“ like, where the table actually starts
  • addr_width β€” the address width of the stage-1 page table πŸ“
  • __reserved β€” must be 0 ⚠️ fr fr, zero it out. that's the whole vibe of a reserved field

πŸ¦‹ SEE ALSO πŸ¦‹

the whole group chat, in order, no one left out πŸ’œ:

  • Kernel file ./include/uapi/linux/iommufd.h
  • General ioctl format(9)
  • struct iommu_destroy(9)
  • struct iommu_ioas_alloc(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_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)

🫢 reminder bestie: __reserved must be 0. that's not a suggestion, that's the instruction.

and that's the whole page, mwah πŸ’‹ this one came from ./include/uapi/linux, dated October 2026, and it goes by struct iommu_hwpt_vtd_s1(9) β€” slay, go read the rest of the iommufd girls, they're all in the same friend group πŸŒŸπŸŽ€

πŸ“¦ where this page comes from