ENUM IOMMU_HWPT_PGFAULT_PERM(9)
β¨ enum iommu_hwpt_pgfault_perm β the Kernel API Manual, bestie edition β¨
Okay so picture this: it's the <pink>Kernel API Manual</pink>, and today's main character is enum iommu_hwpt_pgfault_perm β the perm bits for struct iommu_hwpt_pgfault. Like, it's a little enum, but it's the enum that tells everyone what kind of access a page fault is asking for. Lowkey important! π
π NAME π
enum iommu_hwpt_pgfault_perm β the perm bits for struct iommu_hwpt_pgfault. That's it, that's the vibe. π¦
πΈ SYNOPSIS πΈ
enum iommu_hwpt_pgfault_perm {
IOMMU_PGFAULT_PERM_READ ,
IOMMU_PGFAULT_PERM_WRITE ,
IOMMU_PGFAULT_PERM_EXEC ,
IOMMU_PGFAULT_PERM_PRIV
};
Not me swooning over a four-member enum π it's giving minimalist icon.
β Constants β
Time for the lineup β every single one, no skips, fr fr:
IOMMU_PGFAULT_PERM_READβ this one's asking for read permission. Pretty self-explanatory, she's just here to read. πIOMMU_PGFAULT_PERM_WRITEβ and this one's asking for write permission. She wants to change things. Main character energy.IOMMU_PGFAULT_PERM_EXECβ per(PCIE 10.4.1), it's a request with a PASID that has the Execute Requested bit set in the PASID TLP Prefix. Literally the "can I run this" flag πββοΈβ¨IOMMU_PGFAULT_PERM_PRIVβ also per(PCIE 10.4.1), a request with a PASID that has the Privileged Mode Requested bit set in the PASID TLP Prefix. Fancy privileged vibes only π
Bestie note: those two (PCIE 10.4.1) callouts are doing a lot of work β they're the spec receipts for the PASID TLP Prefix bits, so don't lose 'em. π§
π¦ SEE ALSO π¦
The whole extended friend group, and yes we're shouting out every single one because nobody gets left behind π«Ά:
Kernel file ./include/uapi/linux/iommufd.h, plus 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), 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), 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) π
Signing off from ./include/uapi/linux β the October 2026 era of enum iommu_h...pgfault_perm(9). Slay, stay paged, and don't forget your perm bits ππ
π¦ 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