STRUCT RISCV_IOMMU_FQ_RECORD(9)
π¦ struct riscv_iommu_fq_record(9) β Fault/Event Queue Record π
okay so this is from the Kernel API Manual, and bestie, it's giving "tiny struct, big responsibilities." Let's get into it β¨
πΈ NAME πΈ
struct riscv_iommu_fq_record β the Fault/Event Queue Record, aka the little guy that holds the receipts for everything the fault/event queue catches π
β¨ SYNOPSIS β¨
struct riscv_iommu_fq_record {
u64 hdr;
u64 _reserved;
u64 iotval;
u64 iotval2;
};
that's it. four u64s. no cap, that's the whole vibe π
π«Ά Members π«Ά
hdrβ the header, and she's the main character π she's got the fault/event cause, the PID/DID, the transaction type, etc. all the iconic identifying info lives here._reservedβ the "we left room for you" field π low 32 bits are for custom use, high 32 bits are for standard use. literally reserved seating, iykyk.iotvalβ formatting that's specific to the transaction-type/cause π¦ she changes based on what kind of chaos happened.iotval2β same energy, but cause-specific this time π
π₯ Description π₯
so the fault/event queue is literally out here reporting events and failures raised when processing transactions β like a group chat notification every time something goes down π²
each record is a 32byte structure. the first dword has a fixed format for providing generic infos regarding the fault/event, and then there are two more dwords for fault/event-specific information. so like, one dword is the "what happened" starter pack, and the other two are the details that depend on what happened. periodt π
for more details see section 3.2. go read it, bestie, I believe in you π§
π lowkey important: every field isu64, and the whole record is 32 bytes β that's fouru64s doing their thing. don't go messing with the layout, the hardware is obsessed with it.
β SEE ALSO β
Kernel file ./drivers/iommu/riscv/iommu-bits.h enum riscv_iommu_igs_settings(9), enum riscv_iommu_ddtp_modes(9), enum riscv_iommu_hpmevent_id(9), struct riscv_iommu_dc(9), enum riscv_iommu_dc_iohgatp_modes(9), enum riscv_iommu_dc_fsc_atp_modes(9), struct riscv_iommu_pc(9), struct riscv_iommu_command(9), enum riscv_iommu_fq_causes(9), enum riscv_iommu_fq_ttypes(9), struct riscv_iommu_pq_record(9), struct riscv_iommu_msipte(9)
like, the whole RISC-V IOMMU friend group honestly π«Ά go say hi to all of them.
and that's the page, bestie π this came from the Kernel API Manual, lives under ./drivers/iommu/riscv, and the date on it is October 2026 β so mark your calendar and slay the day β¨ππ
π¦ 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