STRUCT MSI_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 the msi_addr. Only used if iommu_msi_shift != 0.
  • iommu_msi_shift β€” Indicates how many bits of the original address should be preserved when using iommu_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:


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