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_