X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OvmfPkg%2FLibrary%2FVirtioMmioDeviceLib%2FVirtioMmioDeviceFunctions.c;h=9142d4a162c06f43659aa57b649afe7e0226ed84;hp=4b7d2932836295ebba9c969f2b342420350e413d;hb=22701a3d4dd1fd3eed385215d6e2dad0ad069b7f;hpb=bc8fde6f62fd038e709b4981babda0f7c7ba8418 diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c index 4b7d293283..9142d4a162 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c @@ -38,26 +38,6 @@ VirtioMmioGetDeviceFeatures ( return EFI_SUCCESS; } -EFI_STATUS -EFIAPI -VirtioMmioGetQueueAddress ( - IN VIRTIO_DEVICE_PROTOCOL *This, - OUT UINT32 *QueueAddress - ) -{ - VIRTIO_MMIO_DEVICE *Device; - - if (QueueAddress == NULL) { - return EFI_INVALID_PARAMETER; - } - - Device = VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); - - *QueueAddress = VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN); - - return EFI_SUCCESS; -} - EFI_STATUS EFIAPI VirtioMmioGetQueueSize ( @@ -101,8 +81,8 @@ VirtioMmioGetDeviceStatus ( EFI_STATUS EFIAPI VirtioMmioSetQueueSize ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT16 QueueSize + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 QueueSize ) { VIRTIO_MMIO_DEVICE *Device; @@ -117,8 +97,8 @@ VirtioMmioSetQueueSize ( EFI_STATUS EFIAPI VirtioMmioSetDeviceStatus ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT8 DeviceStatus + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT8 DeviceStatus ) { VIRTIO_MMIO_DEVICE *Device; @@ -133,8 +113,8 @@ VirtioMmioSetDeviceStatus ( EFI_STATUS EFIAPI VirtioMmioSetQueueNotify ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT16 QueueNotify + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 QueueNotify ) { VIRTIO_MMIO_DEVICE *Device; @@ -149,8 +129,8 @@ VirtioMmioSetQueueNotify ( EFI_STATUS EFIAPI VirtioMmioSetQueueAlignment ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT32 Alignment + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT32 Alignment ) { VIRTIO_MMIO_DEVICE *Device; @@ -165,8 +145,8 @@ VirtioMmioSetQueueAlignment ( EFI_STATUS EFIAPI VirtioMmioSetPageSize ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT32 PageSize + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT32 PageSize ) { VIRTIO_MMIO_DEVICE *Device; @@ -185,8 +165,8 @@ VirtioMmioSetPageSize ( EFI_STATUS EFIAPI VirtioMmioSetQueueSel ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT16 Sel + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 Sel ) { VIRTIO_MMIO_DEVICE *Device; @@ -200,15 +180,16 @@ VirtioMmioSetQueueSel ( EFI_STATUS VirtioMmioSetQueueAddress ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT32 Address + IN VIRTIO_DEVICE_PROTOCOL *This, + IN VRING *Ring ) { VIRTIO_MMIO_DEVICE *Device; Device = VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); - VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, Address); + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, + (UINT32)((UINTN)Ring->Base >> EFI_PAGE_SHIFT)); return EFI_SUCCESS; } @@ -216,8 +197,8 @@ VirtioMmioSetQueueAddress ( EFI_STATUS EFIAPI VirtioMmioSetGuestFeatures ( - VIRTIO_DEVICE_PROTOCOL *This, - UINT64 Features + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT64 Features ) { VIRTIO_MMIO_DEVICE *Device;