| # MSI | |
| ## NAME | |
| msi - Message Signaled Interrupt | |
| ## SYNOPSIS | |
| Messaged Signaled Interrupts are used in modern PCI as well as | |
| some ARM GIC controllers. MSI objects allow a privileged userspace | |
| process to allocate a range of MSIs and associated IRQ vectors for | |
| use with device drivers to allocate [`interrupt`] objects. | |
| ## DESCRIPTION | |
| The most common use for an MSI object is to allocate a range of MSIs | |
| to provide to a PCI device's Message Signaled Interrupt Capability. | |
| Subsequently, the platform or PCI bus driver may use this object to | |
| allocate [`interrupt`] objects corresponding to those MSIs for use | |
| in downstream device drivers. | |
| ## SYSCALLS | |
| - [`zx_msi_allocate()`] - allocate a range of message-signaled interrupts | |
| - [`zx_msi_create()`] - create a message-signaled interrupt object | |
| [`interrupt`]: /docs/reference/kernel_objects/interrupts.md | |
| [`zx_msi_allocate()`]: /docs/reference/syscalls/msi_allocate.md | |
| [`zx_msi_create()`]: /docs/reference/syscalls/msi_create.md |