msi_domain_a...range_locked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so this is msi_domain_alloc_irqs_range_locked β€” it allocates interrupts from a MSI interrupt domain. that's the whole vibe. it's from the Kernel API Manual, bestie, and yes the header truncates the name all dramatically like msi_domain_a...range_locked(9) but the full glow-up name is the one up there ☝️


✨ SYNOPSIS ✨

int msi_domain_alloc_irqs_range_locked (struct device *dev , unsigned
int domid , unsigned int first , unsigned int last );

like, exactly that. character for character. don't come for me 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” Pointer to device struct of the device for which the interrupts are allocated. it's giving "who is this for" main character energy πŸ’–
  • domid β€” Id of the interrupt domain to operate on. the domain's little ID badge πŸͺͺ
  • first β€” First index to allocate (inclusive). inclusive, babes, meaning it counts πŸ”₯
  • last β€” Last index to allocate (inclusive). also inclusive. the range is a closed set, no cap πŸ’€

🌸 DESCRIPTION 🌸

okay so the big rule: this Must be invoked from within a msi_lock_descs / msi_unlock_descs pair. literally non-negotiable, you gotta be inside that lock sandwich or it's not it πŸ™ˆ

Use this for MSI irqdomains which implement their own descriptor allocation/free. like, they do their own thing, they're independent, they slay their own descriptors πŸ‘‘


⭐ RETURN ⭐

0 on success or an error code. that's it. zero means we ate, anything else means something went sideways 😭


πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, in order, no one left out:


lowkey reminder bestie: if you're not holding that msi_lock_descs / msi_unlock_descs pair, you're doing it wrong. it's giving "read the description again" πŸ’€

and that's the page!! 🌈 source spot is ./kernel/irq, version/date is October 2026, and the manual is msi_domain_a...range_locked(9) β€” mwah, stan kernel docs, bye bestie πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from