/* MSI/MSIX memory region implementation. The handler handles both MSI and MSIX. For MSI-X, the vector number is encoded as a part of the address, data is set to 0. For MSI, the vector number is encoded in least bits in data.  */
static void spapr_msi_write(void *opaque, hwaddr addr, uint64_t data, unsigned size)
/* MSI/MSIX memory region implementation. The handler handles both MSI and MSIX. For MSI-X, the vector number is encoded as a part of the address, data is set to 0. For MSI, the vector number is encoded in least bits in data.  */
static void spapr_msi_write(void *opaque, hwaddr addr, uint64_t data, unsigned size)
{
    uint32_t irq = data;
    trace_spapr_pci_msi_write(addr, data, irq);
    qemu_irq_pulse(xics_get_qirq(spapr->icp, irq));
}