STRUCT IOMMU_HW_INFO_VTD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iommu_hw_info_vtd(9) β€” Intel VT-d hardware information

Okay bestie, welcome to the struct iommu_hw_info_vtd(9) page from the Kernel API Manual ✨ β€” this one's short and sweet but it's literally the glow-up info for your Intel VT-d hardware, so pay attention 🫢


🌸 NAME

struct iommu_hw_info_vtd β€” Intel VT-d hardware information πŸ’–


✨ SYNOPSIS

struct iommu_hw_info_vtd {
    __u32 flags;
    __u32 __reserved;
    __aligned_u64 cap_reg;
    __aligned_u64 ecap_reg;
 };

That's the whole struct, no cap 🧚 four fields and she's iconic.


πŸŽ€ Members

  • flags β€” a combo of enum iommu_hw_info_vtd_flags πŸ’« (yes, mix and match, she's flexible)
  • __reserved β€” must be 0. Not optional, not negotiable, periodt πŸ’€
  • cap_reg β€” the value of the Intel VT-d capability register, as defined in VT-d spec section 11.4.2 Capability Register πŸ”₯
  • ecap_reg β€” the value of the Intel VT-d capability register, as defined in VT-d spec section 11.4.3 Extended Capability Register ⭐

πŸ¦‹ Description

Genuinely the whole vibe here: user needs to understand the Intel VT-d specification to decode the register value 😭 like, the kernel hands you the raw register bits and you gotta know the spec yourself to make sense of them. No hand-holding, no decoder ring, just you and the VT-d documentation. iykyk πŸ’…

Ngl bestie, if you haven't read the spec, those register values are gonna look like absolute gibberish. That's on you, not on the struct πŸ™ˆ

🌈 SEE ALSO

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), enum iommu_hwpt_data_type(9), struct iommu_hwpt_alloc(9), enum iommu_hw_info_vtd_flags(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)

Yeah that's a lot of cross-references but she ate and left no crumbs πŸ‘‘ go read them all, bestie.


That's the whole page, bestie β€” brought to you straight from the kernel API manual source at ./include/uapi/linux, dated October 2026 πŸ’œβœ¨ Go forth and decode those registers, you've got this πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from