X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OvmfPkg%2FLibrary%2FVirtioMmioDeviceLib%2FVirtioMmioDevice.h;h=785876c75f82bf19455b78d5ff3b77f02aef71a6;hp=e5881d537f09349bf8f0518ee761d88c5151f26a;hb=HEAD;hpb=084cfc1a35d4d9775c73345485596a12a71fd2a6
diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h
index e5881d537f..7298cf5821 100644
--- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h
+++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h
@@ -5,13 +5,7 @@
Copyright (C) 2013, ARM Ltd
Copyright (C) 2017, AMD Inc. All rights reserved.
- This program and the accompanying materials are licensed and made available
- under the terms and conditions of the BSD License which accompanies this
- distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
- WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -28,12 +22,16 @@
#include
#include
-#define VIRTIO_MMIO_DEVICE_SIGNATURE SIGNATURE_32 ('V', 'M', 'I', 'O')
+#define VIRTIO_MMIO_DEVICE_SIGNATURE SIGNATURE_32 ('V', 'M', 'I', 'O')
+#define VIRTIO_MMIO_DEVICE_VERSION_0_95 1
+#define VIRTIO_MMIO_DEVICE_VERSION_1_00 2
typedef struct {
- UINT32 Signature;
- VIRTIO_DEVICE_PROTOCOL VirtioDevice;
- PHYSICAL_ADDRESS BaseAddress;
+ UINT32 Signature;
+ UINT32 Version;
+ UINT16 QueueNum;
+ VIRTIO_DEVICE_PROTOCOL VirtioDevice;
+ PHYSICAL_ADDRESS BaseAddress;
} VIRTIO_MMIO_DEVICE;
#define VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE(Device) \
@@ -47,27 +45,27 @@ typedef struct {
EFI_STATUS
EFIAPI
VirtioMmioDeviceRead (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN UINTN FieldOFfset,
- IN UINTN FieldSize,
- IN UINTN BufferSize,
- OUT VOID* Buffer
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN UINTN FieldOFfset,
+ IN UINTN FieldSize,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
);
EFI_STATUS
EFIAPI
VirtioMmioDeviceWrite (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN UINTN FieldOffset,
- IN UINTN FieldSize,
- IN UINT64 Value
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN UINTN FieldOffset,
+ IN UINTN FieldSize,
+ IN UINT64 Value
);
EFI_STATUS
EFIAPI
VirtioMmioGetDeviceFeatures (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- OUT UINT64 *DeviceFeatures
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ OUT UINT64 *DeviceFeatures
);
EFI_STATUS
@@ -87,90 +85,92 @@ VirtioMmioGetDeviceStatus (
EFI_STATUS
EFIAPI
VirtioMmioSetQueueSize (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT16 QueueSize
);
EFI_STATUS
EFIAPI
VirtioMmioSetDeviceStatus (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT8 DeviceStatus
);
EFI_STATUS
EFIAPI
VirtioMmioSetQueueNotify (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT16 QueueNotify
);
EFI_STATUS
EFIAPI
VirtioMmioSetQueueSel (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT16 Sel
);
EFI_STATUS
+EFIAPI
VirtioMmioSetQueueAddress (
IN VIRTIO_DEVICE_PROTOCOL *This,
- IN VRING *Ring
+ IN VRING *Ring,
+ IN UINT64 RingBaseShift
);
EFI_STATUS
EFIAPI
VirtioMmioSetQueueAlignment (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT32 Alignment
);
EFI_STATUS
EFIAPI
VirtioMmioSetPageSize (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT32 PageSize
);
EFI_STATUS
EFIAPI
VirtioMmioSetGuestFeatures (
- IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_DEVICE_PROTOCOL *This,
IN UINT64 Features
);
EFI_STATUS
EFIAPI
VirtioMmioAllocateSharedPages (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN UINTN NumPages,
- OUT VOID **HostAddress
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN UINTN NumPages,
+ OUT VOID **HostAddress
);
VOID
EFIAPI
VirtioMmioFreeSharedPages (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN UINTN NumPages,
- IN VOID *HostAddress
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN UINTN NumPages,
+ IN VOID *HostAddress
);
EFI_STATUS
EFIAPI
VirtioMmioMapSharedBuffer (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN VIRTIO_MAP_OPERATION Operation,
- IN VOID *HostAddress,
- IN OUT UINTN *NumberOfBytes,
- OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
- OUT VOID **Mapping
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VIRTIO_MAP_OPERATION Operation,
+ IN VOID *HostAddress,
+ IN OUT UINTN *NumberOfBytes,
+ OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
+ OUT VOID **Mapping
);
EFI_STATUS
EFIAPI
VirtioMmioUnmapSharedBuffer (
- IN VIRTIO_DEVICE_PROTOCOL *This,
- IN VOID *Mapping
+ IN VIRTIO_DEVICE_PROTOCOL *This,
+ IN VOID *Mapping
);
#endif // _VIRTIO_MMIO_DEVICE_INTERNAL_H_