STRUCT PCI_MSI_DESC(9)
β¨ struct pci_msi_desc(9) β the PCI/MSI tea βπ
okay so bestie, welcome to the kernel API manual (that's the manual name, iykyk π«Ά) and today's main character is struct pci_msi_desc β literally the PCI/MSI specific MSI descriptor data. it's giving "small struct, big responsibilities" β¨
πΈ NAME πΈ
struct pci_msi_desc β the PCI/MSI-specific MSI descriptor data, no cap π
π SYNOPSIS π
struct pci_msi_desc {
union {
u32 msi_mask;
u32 msix_ctrl;
};
struct {
u8 is_msix : 1;
u8 multiple : 3;
u8 multi_cap : 3;
u8 can_mask : 1;
u8 is_64 : 1;
u8 is_virtual : 1;
unsigned default_irq;
} msi_attrib;
union {
u8 mask_pos;
void __iomem *mask_base;
};
};
like, look at those bitfields. : 1 everywhere. it's giving "every bit is precious" π and honestly? obsessed. π§
π Members π
not a struct member? it's a member bestie, there's a difference, and we're gonna go through every single one fr fr π
{unnamed_union}β anonymous π yes that's literally what it says. it has no name. it simply is.msi_maskβ[PCI MSI]MSI cached mask bits π₯msix_ctrlβ[PCI MSI-X]MSI-X cached per vector control bits, periodt β¨msi_attribβ[PCI MSI/X]compound struct of MSI/X attributes π{unnamed_union}β anonymous again π second mystery union, we love a recurring motifmask_posβ[PCI MSI]mask register position πmask_baseβ[PCI MSI-X]mask register base address π
ngl the two anonymous unions are iconic in a "i refuse to be named" kind of way. respect. π«Ά
π¦ SEE ALSO π¦
the whole friend group shows up, and we're listing them all because nobody gets left on read π
Kernel file ./include/linux/msi.h, plus:
struct msi_msg(9)union msi_domain_cookie(9)struct msi_desc_data(9)struct msi_desc(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)
like that's a whole group chat and you're invited πβ¨
okay that's the whole page bestie, no notes π this one came out of ./include/linux, Kernel API Manual, dated October 2026 β mwah, stan, and go read msi.h ππ
π
π¦ 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