}
static int
-mptable_hostb_alloc_msix(device_t pcib, device_t dev, int *irq)
+mptable_hostb_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
static int
}
static int
-legacy_pcib_alloc_msix(device_t pcib, device_t dev, int *irq)
+legacy_pcib_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
static int
max = min(*count, cfg->msix.msix_msgnum);
for (i = 0; i < max; i++) {
/* Allocate a message. */
- error = PCIB_ALLOC_MSIX(device_get_parent(dev), child, &irq);
+ error = PCIB_ALLOC_MSIX(device_get_parent(dev), child, &irq,
+ -1 /* XXX */);
if (error)
break;
resource_list_add(&dinfo->resources, SYS_RES_IRQ, i + 1, irq,
/* Release the IRQs. */
for (i = 0; i < msix->msix_alloc; i++)
PCIB_RELEASE_MSIX(device_get_parent(dev), child,
- msix->msix_vectors[i].mv_irq);
+ msix->msix_vectors[i].mv_irq, -1 /* XXX */);
kfree(msix->msix_vectors, M_DEVBUF);
msix->msix_alloc = 0;
return (0);
/* Pass request to alloc an MSI-X message up to the parent bridge. */
int
-pcib_alloc_msix(device_t pcib, device_t dev, int *irq)
+pcib_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
struct pcib_softc *sc = device_get_softc(pcib);
device_t bus;
if (sc->flags & PCIB_DISABLE_MSI)
return (ENXIO);
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
/* Pass request to release an MSI-X message up to the parent bridge. */
int
-pcib_release_msix(device_t pcib, device_t dev, int irq)
+pcib_release_msix(device_t pcib, device_t dev, int irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_RELEASE_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_RELEASE_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
/* Pass request to map MSI/MSI-X message up to parent bridge. */
device_t pcib;
device_t dev;
int *irq;
+ int cpuid;
};
#
device_t pcib;
device_t dev;
int irq;
+ int cpuid;
};
#
int pcib_route_interrupt(device_t pcib, device_t dev, int pin);
int pcib_alloc_msi(device_t pcib, device_t dev, int count, int maxcount, int *irqs, int cpuid);
int pcib_release_msi(device_t pcib, device_t dev, int count, int *irqs, int cpuid);
-int pcib_alloc_msix(device_t pcib, device_t dev, int *irq);
-int pcib_release_msix(device_t pcib, device_t dev, int irq);
+int pcib_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid);
+int pcib_release_msix(device_t pcib, device_t dev, int irq, int cpuid);
int pcib_map_msi(device_t pcib, device_t dev, int irq, uint64_t *addr, uint32_t *data, int cpuid);
#endif
}
static int
-mptable_hostb_alloc_msix(device_t pcib, device_t dev, int *irq)
+mptable_hostb_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
static int
}
static int
-legacy_pcib_alloc_msix(device_t pcib, device_t dev, int *irq)
+legacy_pcib_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
static int
static int acpi_pcib_map_msi(device_t pcib, device_t dev,
int irq, uint64_t *addr, uint32_t *data, int cpuid);
static int acpi_pcib_alloc_msix(device_t pcib, device_t dev,
- int *irq);
+ int *irq, int cpuid);
static struct resource *acpi_pcib_acpi_alloc_resource(device_t dev,
device_t child, int type, int *rid,
u_long start, u_long end, u_long count,
}
static int
-acpi_pcib_alloc_msix(device_t pcib, device_t dev, int *irq)
+acpi_pcib_alloc_msix(device_t pcib, device_t dev, int *irq, int cpuid)
{
device_t bus;
bus = device_get_parent(pcib);
- return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq));
+ return (PCIB_ALLOC_MSIX(device_get_parent(bus), dev, irq, cpuid));
}
static int