ENUM IOMMU_HWPT_PGFAULT_PERM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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