]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / Library / VirtioMmioDeviceLib / VirtioMmioDevice.h
index e6279159f8ba989bc2a43a3a98751662f06a6b9c..7298cf582152b09e95677cab89ece99b6fe43008 100644 (file)
@@ -5,13 +5,7 @@
   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
-  distribution. The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT\r
-  WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include <Library/VirtioMmioDeviceLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
 \r
-#define VIRTIO_MMIO_DEVICE_SIGNATURE  SIGNATURE_32 ('V', 'M', 'I', 'O')\r
+#define VIRTIO_MMIO_DEVICE_SIGNATURE     SIGNATURE_32 ('V', 'M', 'I', 'O')\r
+#define VIRTIO_MMIO_DEVICE_VERSION_0_95  1\r
+#define VIRTIO_MMIO_DEVICE_VERSION_1_00  2\r
 \r
 typedef struct {\r
-  UINT32                 Signature;\r
-  VIRTIO_DEVICE_PROTOCOL VirtioDevice;\r
-  PHYSICAL_ADDRESS       BaseAddress;\r
+  UINT32                    Signature;\r
+  UINT32                    Version;\r
+  UINT16                    QueueNum;\r
+  VIRTIO_DEVICE_PROTOCOL    VirtioDevice;\r
+  PHYSICAL_ADDRESS          BaseAddress;\r
 } VIRTIO_MMIO_DEVICE;\r
 \r
 #define VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE(Device) \\r
@@ -47,27 +45,27 @@ typedef struct {
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioDeviceRead (\r
-  IN  VIRTIO_DEVICE_PROTOCOL    *This,\r
-  IN  UINTN                     FieldOFfset,\r
-  IN  UINTN                     FieldSize,\r
-  IN  UINTN                     BufferSize,\r
-  OUT VOID*                     Buffer\r
+  IN  VIRTIO_DEVICE_PROTOCOL  *This,\r
+  IN  UINTN                   FieldOFfset,\r
+  IN  UINTN                   FieldSize,\r
+  IN  UINTN                   BufferSize,\r
+  OUT VOID                    *Buffer\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioDeviceWrite (\r
-  IN  VIRTIO_DEVICE_PROTOCOL    *This,\r
-  IN  UINTN                     FieldOffset,\r
-  IN  UINTN                     FieldSize,\r
-  IN  UINT64                    Value\r
+  IN  VIRTIO_DEVICE_PROTOCOL  *This,\r
+  IN  UINTN                   FieldOffset,\r
+  IN  UINTN                   FieldSize,\r
+  IN  UINT64                  Value\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioGetDeviceFeatures (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
-  OUT UINT64                *DeviceFeatures\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
+  OUT UINT64                 *DeviceFeatures\r
   );\r
 \r
 EFI_STATUS\r
@@ -87,32 +85,33 @@ VirtioMmioGetDeviceStatus (
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSize (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT16                  QueueSize\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetDeviceStatus (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT8                   DeviceStatus\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueNotify (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT16                  QueueNotify\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueSel (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT16                  Sel\r
   );\r
 \r
 EFI_STATUS\r
+EFIAPI\r
 VirtioMmioSetQueueAddress (\r
   IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN VRING                   *Ring,\r
@@ -122,56 +121,56 @@ VirtioMmioSetQueueAddress (
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetQueueAlignment (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT32                  Alignment\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetPageSize (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\r
+  IN VIRTIO_DEVICE_PROTOCOL  *This,\r
   IN UINT32                  PageSize\r
   );\r
 \r
 EFI_STATUS\r
 EFIAPI\r
 VirtioMmioSetGuestFeatures (\r
-  IN VIRTIO_DEVICE_PROTOCOL *This,\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
+  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
+  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
+  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
+  IN  VIRTIO_DEVICE_PROTOCOL  *This,\r
+  IN  VOID                    *Mapping\r
   );\r
 \r
 #endif // _VIRTIO_MMIO_DEVICE_INTERNAL_H_\r