]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h
OvmfPkg/Virtio: take RingBaseShift in SetQueueAddress()
[mirror_edk2.git] / OvmfPkg / Library / VirtioMmioDeviceLib / VirtioMmioDevice.h
index 3e4e5606ccad09dd8bf7cb8d476c0a7e2e46cb2f..e6279159f8ba989bc2a43a3a98751662f06a6b9c 100644 (file)
@@ -3,6 +3,7 @@
   Internal definitions for the VirtIo MMIO Device driver\r
 \r
   Copyright (C) 2013, ARM Ltd\r
   Internal definitions for the VirtIo MMIO Device driver\r
 \r
   Copyright (C) 2013, ARM Ltd\r
+  Copyright (C) 2017, AMD Inc. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
@@ -25,6 +26,7 @@
 #include <Library/IoLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/VirtioMmioDeviceLib.h>\r
 #include <Library/IoLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/VirtioMmioDeviceLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
 \r
 #define VIRTIO_MMIO_DEVICE_SIGNATURE  SIGNATURE_32 ('V', 'M', 'I', 'O')\r
 \r
 \r
 #define VIRTIO_MMIO_DEVICE_SIGNATURE  SIGNATURE_32 ('V', 'M', 'I', 'O')\r
 \r
@@ -65,14 +67,7 @@ EFI_STATUS
 EFIAPI\r
 VirtioMmioGetDeviceFeatures (\r
   IN VIRTIO_DEVICE_PROTOCOL *This,\r
 EFIAPI\r
 VirtioMmioGetDeviceFeatures (\r
   IN VIRTIO_DEVICE_PROTOCOL *This,\r
-  OUT UINT32                *DeviceFeatures\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-VirtioMmioGetQueueAddress (\r
-  IN  VIRTIO_DEVICE_PROTOCOL *This,\r
-  OUT UINT32                 *QueueAddress\r
+  OUT UINT64                *DeviceFeatures\r
   );\r
 \r
 EFI_STATUS\r
   );\r
 \r
 EFI_STATUS\r
@@ -92,56 +87,91 @@ VirtioMmioGetDeviceStatus (
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSize (\r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSize (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT16                  QueueSize\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT16                  QueueSize\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetDeviceStatus (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetDeviceStatus (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT8                   DeviceStatus\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT8                   DeviceStatus\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueNotify (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueNotify (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT16                  QueueNotify\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT16                  QueueNotify\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSel (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSel (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT16                  Sel\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT16                  Sel\r
   );\r
 \r
 EFI_STATUS\r
 VirtioMmioSetQueueAddress (\r
   );\r
 \r
 EFI_STATUS\r
 VirtioMmioSetQueueAddress (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT32                  Address\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
+  IN VRING                   *Ring,\r
+  IN UINT64                  RingBaseShift\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueAlignment (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueAlignment (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT32                  Alignment\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT32                  Alignment\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetPageSize (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetPageSize (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT32                  PageSize\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT32                  PageSize\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetGuestFeatures (\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetGuestFeatures (\r
-  VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT32                  Features\r
+  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN UINT64                  Features\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+VirtioMmioAllocateSharedPages (\r
+  IN  VIRTIO_DEVICE_PROTOCOL        *This,\r
+  IN  UINTN                         NumPages,\r
+  OUT VOID                          **HostAddress\r
+  );\r
+\r
+VOID\r
+EFIAPI\r
+VirtioMmioFreeSharedPages (\r
+  IN  VIRTIO_DEVICE_PROTOCOL        *This,\r
+  IN  UINTN                         NumPages,\r
+  IN  VOID                          *HostAddress\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+VirtioMmioMapSharedBuffer (\r
+  IN      VIRTIO_DEVICE_PROTOCOL        *This,\r
+  IN      VIRTIO_MAP_OPERATION          Operation,\r
+  IN      VOID                          *HostAddress,\r
+  IN OUT  UINTN                         *NumberOfBytes,\r
+  OUT     EFI_PHYSICAL_ADDRESS          *DeviceAddress,\r
+  OUT     VOID                          **Mapping\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+VirtioMmioUnmapSharedBuffer (\r
+  IN  VIRTIO_DEVICE_PROTOCOL        *This,\r
+  IN  VOID                          *Mapping\r
   );\r
 \r
 #endif // _VIRTIO_MMIO_DEVICE_INTERNAL_H_\r
   );\r
 \r
 #endif // _VIRTIO_MMIO_DEVICE_INTERNAL_H_\r