return irq_msg;
}
-void pci_suppress_msi(struct pci_device *device,
- const struct jailhouse_pci_capability *cap)
+void arch_pci_suppress_msi(struct pci_device *device,
+ const struct jailhouse_pci_capability *cap)
{
unsigned int n, vectors = pci_enabled_msi_vectors(device);
const struct jailhouse_pci_device *info = device->info;
return (u32)msi.raw.address;
}
-int pci_update_msi(struct pci_device *device,
- const struct jailhouse_pci_capability *cap)
+int arch_pci_update_msi(struct pci_device *device,
+ const struct jailhouse_pci_capability *cap)
{
unsigned int n, vectors = pci_enabled_msi_vectors(device);
union x86_msi_vector msi = pci_get_x86_msi_vector(device);
return 0;
}
-int pci_update_msix_vector(struct pci_device *device, unsigned int index)
+int arch_pci_update_msix_vector(struct pci_device *device, unsigned int index)
{
union x86_msi_vector msi = {
.raw.address = device->msix_vectors[index].field.address,
unsigned int pci_enabled_msi_vectors(struct pci_device *device);
-void pci_suppress_msi(struct pci_device *device,
- const struct jailhouse_pci_capability *cap);
-int pci_update_msi(struct pci_device *device,
- const struct jailhouse_pci_capability *cap);
-int pci_update_msix_vector(struct pci_device *device, unsigned int index);
-
void pci_prepare_handover(void);
void pci_shutdown(void);
int arch_pci_add_device(struct cell *cell, struct pci_device *device);
void arch_pci_remove_device(struct pci_device *device);
+void arch_pci_suppress_msi(struct pci_device *device,
+ const struct jailhouse_pci_capability *cap);
+int arch_pci_update_msi(struct pci_device *device,
+ const struct jailhouse_pci_capability *cap);
+int arch_pci_update_msix_vector(struct pci_device *device, unsigned int index);
+
#endif /* !_JAILHOUSE_PCI_H */
int result;
for (n = 0; n < device->info->num_msix_vectors; n++) {
- result = pci_update_msix_vector(device, n);
+ result = arch_pci_update_msix_vector(device, n);
if (result < 0)
return result;
}
device->msi_registers.raw[cap_offs / 4] &= ~mask;
device->msi_registers.raw[cap_offs / 4] |= value;
- if (pci_update_msi(device, cap) < 0)
+ if (arch_pci_update_msi(device, cap) < 0)
return PCI_ACCESS_REJECT;
/*
*value);
} else {
device->msix_vectors[index].raw[dword] = *value;
- if (pci_update_msix_vector(device, index) < 0)
+ if (arch_pci_update_msix_vector(device, index) < 0)
goto invalid_access;
}
} else {
if (device->cell)
for_each_pci_cap(cap, device, n)
if (cap->id == PCI_CAP_MSI)
- pci_suppress_msi(device, cap);
+ arch_pci_suppress_msi(device, cap);
else if (cap->id == PCI_CAP_MSIX)
pci_suppress_msix(device, cap, true);
}
if (device->cell)
for_each_pci_cap(cap, device, n) {
if (cap->id == PCI_CAP_MSI) {
- err = pci_update_msi(device, cap);
+ err = arch_pci_update_msi(device, cap);
} else if (cap->id == PCI_CAP_MSIX) {
err = pci_update_msix(device, cap);
pci_suppress_msix(device, cap, false);