STRUCT MSI_MSG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct msi_msg(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” we're looking at struct msi_msg today and honestly? it's giving "small but mighty." ✨


🌸 NAME 🌸

struct msi_msg β€” the representation of a MSI message πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct msi_msg {
    union {
      u32 address_lo;
      arch_msi_msg_addr_lo_t arch_addr_lo;
    };
    union {
      u32 address_hi;
      arch_msi_msg_addr_hi_t arch_addr_hi;
    };
    union {
      u32 data;
      arch_msi_msg_data_t arch_data;
    };
 };

look at her. three little unions, all anonymous, all iconic. πŸ‘‘


πŸ’… Members πŸ’…

so like. each of these blocks is an {unnamed_union} and it's just anonymous. yes really. no name, no problem. she's mysterious like that. πŸ™ˆ

  • address_lo β€” the low 32 bits of the msi message address. the little half. πŸ“
  • arch_addr_lo β€” the architecture specific shadow of address_lo. same vibe, different arch, iykyk.
  • {unnamed_union} β€” anonymous. again. mystery queen behavior.
  • address_hi β€” the high 32 bits of the msi message address β€” only used when the device supports it, so don't come for her if she's sitting there unused.
  • arch_addr_hi β€” the architecture specific shadow of address_hi. matching set fr fr. 🫢
  • {unnamed_union} β€” anonymous. third time's the charm bestie.
  • data β€” the MSI message data, usually 16 bits. tiny but she's doing the work.
  • arch_data β€” the architecture specific shadow of data. the arch-specific twin, slaying in the background. πŸ’œ
ngl the whole struct is basically real value + arch-specific shadow Γ—3, and that's the entire plot. no notes. πŸ”₯

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/msi.h β€” and the whole friend group:

go read them, they all ate. πŸ’€βœ¨


and that's the whole page bestie!! mwah 🫢 this one lives in ./include/linux and the date on it is October 2026 β€” so like, she's from the future, main character energy fr. 🌈⭐ bye babes!! πŸ’–

πŸ“¦ where this page comes from