ENUM IOMMU_HWPT_DATA_TYPE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum iommu_hwpt_data_type(9) β€” IOMMU HWPT Data Type

okay bestie, welcome to the Kernel API Manual ✨ this one's a tiny lil enum page but she's important, so let's get into it 🫢


🌸 NAME 🌸

enum iommu_hwpt_data_type β€” the IOMMU HWPT Data Type, aka "which flavor of page table data are we handing over" πŸŽ€


✨ SYNOPSIS ✨

enum iommu_hwpt_data_type {
    IOMMU_HWPT_DATA_NONE ,
    IOMMU_HWPT_DATA_VTD_S1 ,
    IOMMU_HWPT_DATA_ARM_SMMUV3 ,
    IOMMU_HWPT_DATA_AMD_GUEST

};

πŸ¦‹ CONSTANTS πŸ¦‹

so every single one of these is a vibe check on what kind of data the hardware page table (HWPT) is carrying. no skips, here's the whole roster πŸ’–

  • IOMMU_HWPT_DATA_NONE β€” literally no data. nothing. empty. it's giving "I have nothing to declare" πŸ™ˆ
  • IOMMU_HWPT_DATA_VTD_S1 β€” Intel VT-d stage-1 page table, bestie πŸ”₯
  • IOMMU_HWPT_DATA_ARM_SMMUV3 β€” ARM SMMUv3 Context Descriptor Table, iconic ARM behavior 🌈
  • IOMMU_HWPT_DATA_AMD_GUEST β€” AMD IOMMU guest page table, AMD girlies rise πŸ‘‘

πŸ‘€ SEE ALSO πŸ‘€

buckle up because this list is long and she ate, no cap. first the source file, then the whole iommufd extended family πŸ’€

  • 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_vtd_s1(9)
  • struct iommu_hwpt_arm_smmuv3(9)
  • struct iommu_hwpt_amd_guest(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)

lowkey that's the whole page 🫢 four constants, one source file, and a see-also section that could fill a group chat. go read the neighbors, iykyk πŸ’œ

✨ and that's the tea, bestie ✨ brought to you from ./include/uapi/linux, dated October 2026, straight out of the enum iommu_hwpt_data_type(9) page itself. slay responsibly πŸ’…πŸŽ€

πŸ“¦ where this page comes from