STRUCT MSI_DESC(9)
πΈ NAME πΈ
okay bestie, you're on the struct msi_desc(9) page from the Kernel API Manual, and the name is literally Descriptor structure for MSI based interrupts. That's the assignment π
β¨ SYNOPSIS β¨
Here's the whole struct, every line, no cap:
struct msi_desc {
unsigned int irq;
unsigned int nvec_used;
struct device *dev;
struct msi_msg msg;
struct irq_affinity_desc *affinity;
#ifdef CONFIG_IRQ_MSI_IOMMU;
u64 iommu_msi_iova : 58;
u64 iommu_msi_shift : 6;
#endif;
#ifdef CONFIG_SYSFS;
struct device_attribute *sysfs_attrs;
#endif;
void (*write_msi_msg)(struct msi_desc *entry, void *data);
void *write_msi_msg_data;
u16 msi_index;
union {
struct pci_msi_desc pci;
struct msi_desc_data data;
};
};
π Members π
Every member, bestie β yes, all of them, including the anonymous-union moment π«Ά
irqβ The base interrupt number.nvec_usedβ The number of vectors used.devβ Pointer to the device which uses this descriptor.msgβ The last set MSI message cached for reuse.affinityβ Optional pointer to a cpu affinity mask for this descriptor.iommu_msi_iovaβ Optional shifted IOVA from the IOMMU to override themsi_addr. Only used ifiommu_msi_shift != 0.iommu_msi_shiftβ Indicates how many bits of the original address should be preserved when usingiommu_msi_iova.sysfs_attrsβ Pointer to sysfs device attribute.write_msi_msgβ Callback that may be called when the MSI message address or data changes.write_msi_msg_dataβ Data parameter for the callback.msi_indexβ Index of the msi descriptor.{unnamed_union}β anonymous.pciβ PCI specific msi descriptor data.dataβ Generic MSI descriptor data.
π¦ SEE ALSO π¦
The page points you at Kernel file ./include/linux/msi.h, and the cross-refs are giving linked-list energy:
struct msi_msg(9)struct pci_msi_desc(9)union msi_domain_cookie(9)struct msi_desc_data(9)struct msi_dev_domain(9)msi_first_desc(9)msi_domain_for_each_desc(9)msi_for_each_desc(9)msi_msg_set_addr(9)msi_insert_msi_desc(9)msi_free_msi_descs_range(9)msi_free_msi_descs(9)struct msi_domain_ops(9)struct msi_domain_info(9)struct msi_domain_template(9)struct msi_parent_ops(9)
that's the whole page, bestie β slay π It comes from ./include/linux, dated October 2026, and it's the struct msi_desc(9) page. 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