msi_domain_first_desc(9)
β¨ msi_domain_first_desc β¨
okay so bestie, welcome to the msi_domain_first_desc(9) glow-up β it's a Kernel API Manual page and it's literally about grabbing the first MSI descriptor of an irqdomain that's associated to a device. one descriptor. first one. main character energy only π
π NAME π
msi_domain_first_desc β get the first MSI descriptor of an irqdomain associated to a device π
πΈ SYNOPSIS πΈ
struct msi_desc * msi_domain_first_desc (struct device *dev , unsigned
int domid , enum msi_desc_filter filter );
like, that's the whole signature, no cap π«Ά
π¦ ARGUMENTS π¦
devβ the device we're operating on, bestie. that's the one π―domidβ the id of the interrupt domain that should be walked. yes, walked. we're strolling through it πΆββοΈfilterβ the descriptor state filter. it filters. iconic behaviour β¨
π DESCRIPTION π
okay so this is the important one and I need you to listen π
Must be called with the MSI descriptor mutex held, i.e. msi_lock_descs must be invoked before the call.
like, msi_lock_descs before the call. not after. not "eh, it'll probably be fine". before. π no cap, this is not optional and honestly the kernel will not be cute about it π
π₯ RETURN π₯
returns a pointer to the first MSI descriptor matching the search criteria π«
and if there's literally nothing that matches? NULL. none found. empty. the void. it's giving "nobody's home" π
π SEE ALSO π
- Kernel file
./kernel/irq/msi.c struct msi_device_data(9)struct msi_ctrl(9)msi_alloc_desc(9)msi_domain_insert_msi_desc(9)msi_domain_free_msi_descs_range(9)msi_domain_add_simple_msi_descs(9)msi_setup_device_data(9)__msi_lock_descs(9)__msi_unlock_descs(9)msi_next_desc(9)msi_domain_get_virq(9)msi_device_populate_sysfs(9)msi_device_destroy_sysfs(9)msi_domain_set_affinity(9)msi_create_irq_domain(9)msi_create_parent_irq_domain(9)msi_parent_init_dev_msi_info(9)msi_create_device_irq_domain(9)msi_remove_device_irq_domain(9)msi_match_device_irq_domain(9)msi_domain_alloc_irqs_range_locked(9)msi_domain_alloc_irqs_range(9)msi_domain_alloc_irqs_all_locked(9)msi_domain_alloc_irq_at(9)msi_device_domain_alloc_wired(9)msi_domain_free_irqs_range_locked(9)msi_domain_free_irqs_range(9)msi_domain_free_irqs_all_locked(9)msi_domain_free_irqs_all(9)msi_device_domain_free_wired(9)msi_get_domain_info(9)msi_device_has_isolated_msi(9)
like, that's a whole friend group and they all showed up π«Άπ
aaaand that's the page!! this one lives in the kernel tree at ./kernel/irq and it's stamped October 2026 β so yeah, she's from the future, we stan a forward-thinking queen ππβ¨ 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