STRUCT RZG3S_PCIE_MSI(9)
πΈ struct rzg3s_pcie_msi(9) β RZ/G3S PCIe MSI data structure π
Ok so bestie, welcome to the Kernel API Manual β¨ and buckle up, because this page is all about one little struct: struct rzg3s_pcie_msi. It's the RZ/G3S PCIe MSI data structure, and it's honestly carrying a lot of the MSI situation on its back. Let's get into it π«Ά
β¨ SYNOPSIS β¨
Here's the shape of it, no cap β copy it exactly, we do not freestyle struct definitions:
struct rzg3s_pcie_msi {
struct irq_domain *domain;
unsigned long map[BITS_TO_LONGS( RZG3S_PCI_MSI_INT_NR)];
dma_addr_t dma_addr;
dma_addr_t window_base;
unsigned long pages;
struct mutex map_lock;
int irq;
};
π Members π
Every field is kind of a main character here, so let's give them all their moment π:
domainβ the IRQ domain, literally the whole IRQ situation lives heremapβ a bitmap holding all the allocated MSIs πdma_addrβ the address of the allocated MSI windowwindow_baseβ the base address of that MSI window, iykykpagesβ how many pages got allocated for MSI window mappingmap_lockβ the lock guarding the bitmap with the allocated MSIs π (mutex behaviour, respectfully)irqβ the MSI interrupt, the moment we've all been waiting for β‘
π SEE ALSO π
If you're obsessed and want the whole friend group, they're all right here, fr fr:
Kernel file ./drivers/pci/controller/pcie-rzg3s-host.c, plus enum rzg3s_sysc_link_mode(9), struct rzg3s_sysc_function(9), enum rzg3s_sysc_func_id(9), struct rzg3s_sysc_info(9), struct rzg3s_sysc(9), enum rzg3s_pcie_controller_id(9), struct rzg3s_pcie_soc_data(9), struct rzg3s_pcie_port(9), and struct rzg3s_pcie_host(9).
Go read them all in order bestie, that's the vibe check β
And that's the whole page, mwah π β brought to you from ./drivers/pci/controller, dated October 2026. Slay, go allocate some MSIs responsibly ππ¦
π¦ 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