STRUCT XILINX_CPM_PCIE(9)
π NAME π
struct xilinx_cpm_pcie β bestie, it's literally the PCIe port information struct, that's the whole vibe β¨
π¦ SYNOPSIS π¦
Okay so picture this: you're in the Kernel API Manual, and this is the struct you came for π
struct xilinx_cpm_pcie {
struct device *dev;
void __iomem *reg_base;
void __iomem *cpm_base;
struct irq_domain *intx_domain;
struct irq_domain *cpm_domain;
struct pci_config_window *cfg;
int intx_irq;
int irq;
raw_spinlock_t lock;
const struct xilinx_cpm_variant *variant;
};
No cap, that field list is exact β don't be out here renaming anything, the compiler will NOT be your friend π
π MEMBERS π
Every single one of them, in order, we're not skipping a thing π«Ά
devβ the device pointer, aka the main character reference πreg_baseβ Bridge Register Base, that's where the registers live πcpm_baseβ CPM System Level Control and Status Register(SLCR) Base β say it with your chest, SLCR πintx_domainβ legacy IRQ domain pointer, the old-school one πcpm_domainβ CPM IRQ domain pointer, the CPM-flavoured one π¦cfgβ holds mappings of config space window, like a little window into config space πͺintx_irqβ legacy interrupt number π’irqβ Error interrupt number, that's a different number, don't mix them up πlockβ lock protecting shared register access, guards the shared registers with its life πvariantβ CPM version check pointer, so you know which CPM you're dealing with π
β¨ SEE ALSO β¨
Go read these next, they're all iconic π
- Kernel file
./drivers/pci/controller/pcie-xilinx-cpm.cstructxilinx_cpm_variant(9) xilinx_cpm_pcie_intx_map(9)xilinx_cpm_pcie_init_irq_domain(9)xilinx_cpm_pcie_init_port(9)xilinx_cpm_pcie_parse_dt(9)xilinx_cpm_pcie_probe(9)
And that's the page, bestie π«Ά sign-off time: this came from ./drivers/pci/controller and it's dated October 2026, struct xilinx_cpm_pcie(9), periodt βπ
π¦ 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