STRUCT MSI_DOMAIN_INFO(9)
π struct msi_domain_info(9) π
okay so this is from the Kernel API Manual bestie, and it's literally the whole vibe of MSI interrupt domain data β like, all the info a domain needs to exist and slay β¨
πΈ NAME πΈ
struct msi_domain_info β MSI interrupt domain data. that's it, that's the girl π
β¨ SYNOPSIS β¨
struct msi_domain_info {
u32 flags;
enum irq_domain_bus_token bus_token;
unsigned int hwsize;
struct msi_domain_ops *ops;
struct device *dev;
struct irq_chip *chip;
void *chip_data;
irq_flow_handler_t handler;
void *handler_data;
const char *handler_name;
msi_alloc_info_t *alloc_data;
void *data;
};
like, look at her. structurally flawless. no notes π«Ά
π Members π
flagsβ the flags that describe the features and capabilities, iykyk π©bus_tokenβ the domain bus token, it's giving passport energy πhwsizeβ the hardware table size or the software index limit. and listen: if it's0then the size is considered unlimited, and it gets initialized to the maximum software index limit by the domain creation code. periodt β¨opsβ the callback data structure, the main character of the operation π¬devβ the device which creates the domain π§chipβ Optional: associated interrupt chip πchip_dataβ Optional: associated interrupt chip data πhandlerβ Optional: associated interrupt flow handler πhandler_dataβ Optional: associated interrupt flow handler data π¦handler_nameβ Optional: associated interrupt flow handler name π·οΈalloc_dataβ Optional: associated interrupt allocation data π«dataβ Optional: domain specific data, the little extra sprinkle on top π₯
bestie notice how many of these say Optional β like they're not mandatory, they're just there if the vibe calls for it π
π SEE ALSO π
Kernel file ./include/linux/msi.h β and the whole friend group:
struct msi_msg(9)struct pci_msi_desc(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_template(9)struct msi_parent_ops(9)
and that's the whole page bestie, no cap ππ
this one lives in ./include/linux and it's dated October 2026 β so like, future iconic behavior fr fr πβ¨π¦
go off, read the source, stan the kernel π π
π¦ 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