STRUCT MSI_CTRL(9)
Okay so this is the struct msi_ctrl(9) page from the Kernel API Manual, and we are gonna get you fluent in it, bestie π
π NAME π
struct msi_ctrl β MSI internal management control structure. That's the whole name, no cap.
β¨ SYNOPSIS β¨
struct msi_ctrl {
unsigned int domid;
unsigned int first;
unsigned int last;
unsigned int nirqs;
};
π Members π
domidβ ID of the domain on which management operations should be done. Periodt.firstβ First (hardware) slot index to operate on.lastβ Last (hardware) slot index to operate on.nirqsβ The number of Linux interrupts to allocate. Can be larger than the range due to PCI/multi-MSI. Yes, that's the note, bestie β it can be bigger than the range.
π¦ SEE ALSO π¦
Kernel file: ./kernel/irq/msi.c β that's the spot. And here's the whole friend group, lowkey iconic:
struct msi_device_data(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_domain_first_desc(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)
That's the page, bestie π«Ά Source/version: ./kernel/irq; date: October 2026; footer title: struct msi_ctrl(9). Slay β¨
π¦ 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