diff --git a/hypervisor/dm/vpci/msi.c b/hypervisor/dm/vpci/msi.c index 0b3e61d4a..601680821 100644 --- a/hypervisor/dm/vpci/msi.c +++ b/hypervisor/dm/vpci/msi.c @@ -34,7 +34,6 @@ #include #include "pci_priv.h" -static int32_t vmsi_init(struct pci_vdev *vdev); static inline bool msicap_access(const struct pci_vdev *vdev, uint32_t offset) { @@ -107,7 +106,7 @@ static int32_t vmsi_remap(const struct pci_vdev *vdev, bool enable) return ret; } -static int32_t vmsi_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val) +int32_t vmsi_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val) { int32_t ret; /* For PIO access, we emulate Capability Structures only */ @@ -121,7 +120,7 @@ static int32_t vmsi_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32 return ret; } -static int32_t vmsi_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val) +int32_t vmsi_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val) { bool message_changed = false; bool enable; @@ -159,7 +158,7 @@ static int32_t vmsi_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t by return ret; } -static int32_t vmsi_deinit(struct pci_vdev *vdev) +int32_t vmsi_deinit(struct pci_vdev *vdev) { if (vdev->msi.capoff != 0U) { ptirq_remove_msix_remapping(vdev->vpci->vm, vdev->vbdf.value, 1U); @@ -190,7 +189,7 @@ static void buf_write32(uint8_t buf[], uint32_t val) buf[3] = (uint8_t)((val >> 24U) & 0xFFU); } -static int32_t vmsi_init(struct pci_vdev *vdev) +int32_t vmsi_init(struct pci_vdev *vdev) { struct pci_pdev *pdev = vdev->pdev; uint32_t val; diff --git a/hypervisor/dm/vpci/msix.c b/hypervisor/dm/vpci/msix.c index 9e9e5223a..fbfed05de 100644 --- a/hypervisor/dm/vpci/msix.c +++ b/hypervisor/dm/vpci/msix.c @@ -156,7 +156,7 @@ static int32_t vmsix_remap_one_entry(const struct pci_vdev *vdev, uint32_t index return ret; } -static int32_t vmsix_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val) +int32_t vmsix_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val) { int32_t ret; /* For PIO access, we emulate Capability Structures only */ @@ -171,7 +171,7 @@ static int32_t vmsix_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint3 return ret; } -static int32_t vmsix_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val) +int32_t vmsix_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val) { uint32_t msgctrl; int32_t ret; @@ -383,7 +383,7 @@ static int32_t vmsix_init_helper(struct pci_vdev *vdev) return ret; } -static int32_t vmsix_init(struct pci_vdev *vdev) +int32_t vmsix_init(struct pci_vdev *vdev) { struct pci_pdev *pdev = vdev->pdev; int32_t ret = 0; @@ -401,7 +401,7 @@ static int32_t vmsix_init(struct pci_vdev *vdev) return ret; } -static int32_t vmsix_deinit(struct pci_vdev *vdev) +int32_t vmsix_deinit(struct pci_vdev *vdev) { vdev->msix.intercepted_size = 0U; diff --git a/hypervisor/dm/vpci/pci_priv.h b/hypervisor/dm/vpci/pci_priv.h index 81f8c7ad4..b1236078b 100644 --- a/hypervisor/dm/vpci/pci_priv.h +++ b/hypervisor/dm/vpci/pci_priv.h @@ -73,6 +73,16 @@ extern const struct vpci_ops partition_mode_vpci_ops; extern const struct vpci_ops sharing_mode_vpci_ops; extern const struct pci_vdev_ops pci_ops_vdev_msi; extern const struct pci_vdev_ops pci_ops_vdev_msix; + +int32_t vmsi_init(struct pci_vdev *vdev); +int32_t vmsi_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val); +int32_t vmsi_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val); +int32_t vmsi_deinit(struct pci_vdev *vdev); + +int32_t vmsix_init(struct pci_vdev *vdev); +int32_t vmsix_cfgread(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t *val); +int32_t vmsix_cfgwrite(struct pci_vdev *vdev, uint32_t offset, uint32_t bytes, uint32_t val); +int32_t vmsix_deinit(struct pci_vdev *vdev); #endif uint32_t pci_vdev_read_cfg(const struct pci_vdev *vdev, uint32_t offset, uint32_t bytes);