From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h | 188 +++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 roms/edk2/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h (limited to 'roms/edk2/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h') diff --git a/roms/edk2/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h b/roms/edk2/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h new file mode 100644 index 000000000..fe8514d42 --- /dev/null +++ b/roms/edk2/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h @@ -0,0 +1,188 @@ +/** @file + + Internal definitions for the VirtIo PCI Device driver + + Copyright (C) 2013, ARM Ltd + Copyright (c) 2017, AMD Inc, All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _VIRTIO_PCI_DEVICE_DXE_H_ +#define _VIRTIO_PCI_DEVICE_DXE_H_ + +#include +#include +#include +#include + +#include + +#define VIRTIO_PCI_DEVICE_SIGNATURE SIGNATURE_32 ('V', 'P', 'C', 'I') + +typedef struct { + UINT32 Signature; + VIRTIO_DEVICE_PROTOCOL VirtioDevice; + EFI_PCI_IO_PROTOCOL *PciIo; + UINT64 OriginalPciAttributes; + UINT32 DeviceSpecificConfigurationOffset; +} VIRTIO_PCI_DEVICE; + +#define VIRTIO_PCI_DEVICE_FROM_VIRTIO_DEVICE(Device) \ + CR (Device, VIRTIO_PCI_DEVICE, VirtioDevice, VIRTIO_PCI_DEVICE_SIGNATURE) + + +EFI_STATUS +EFIAPI +VirtioPciIoRead ( + IN VIRTIO_PCI_DEVICE *Dev, + IN UINTN FieldOffset, + IN UINTN FieldSize, + IN UINTN BufferSize, + OUT VOID *Buffer + ); + +EFI_STATUS +EFIAPI +VirtioPciIoWrite ( + IN VIRTIO_PCI_DEVICE *Dev, + IN UINTN FieldOffset, + IN UINTN FieldSize, + IN UINT64 Value + ); + +/******************************************** + * PCI Functions for VIRTIO_DEVICE_PROTOCOL + *******************************************/ +EFI_STATUS +EFIAPI +VirtioPciDeviceRead ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINTN FieldOffset, + IN UINTN FieldSize, + IN UINTN BufferSize, + OUT VOID *Buffer + ); + +EFI_STATUS +EFIAPI +VirtioPciDeviceWrite ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINTN FieldOffset, + IN UINTN FieldSize, + IN UINT64 Value + ); + +EFI_STATUS +EFIAPI +VirtioPciGetDeviceFeatures ( + IN VIRTIO_DEVICE_PROTOCOL *This, + OUT UINT64 *DeviceFeatures + ); + +EFI_STATUS +EFIAPI +VirtioPciGetQueueSize ( + IN VIRTIO_DEVICE_PROTOCOL *This, + OUT UINT16 *QueueNumMax + ); + +EFI_STATUS +EFIAPI +VirtioPciSetQueueAlignment ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT32 Alignment + ); + +EFI_STATUS +EFIAPI +VirtioPciSetPageSize ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT32 PageSize + ); + +EFI_STATUS +EFIAPI +VirtioPciGetDeviceStatus ( + IN VIRTIO_DEVICE_PROTOCOL *This, + OUT UINT8 *DeviceStatus + ); + +EFI_STATUS +EFIAPI +VirtioPciSetGuestFeatures ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT64 Features + ); + +EFI_STATUS +EFIAPI +VirtioPciSetQueueAddress ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN VRING *Ring, + IN UINT64 RingBaseShift + ); + +EFI_STATUS +EFIAPI +VirtioPciSetQueueSel ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 Sel + ); + +EFI_STATUS +EFIAPI +VirtioPciSetQueueNotify ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 Index + ); + +EFI_STATUS +EFIAPI +VirtioPciSetQueueSize ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT16 Size + ); + +EFI_STATUS +EFIAPI +VirtioPciSetDeviceStatus ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINT8 DeviceStatus + ); + +EFI_STATUS +EFIAPI +VirtioPciAllocateSharedPages ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINTN NumPages, + OUT VOID **HostAddress + ); + +VOID +EFIAPI +VirtioPciFreeSharedPages ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN UINTN NumPages, + IN VOID *HostAddress + ); + +EFI_STATUS +EFIAPI +VirtioPciMapSharedBuffer ( + 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 +VirtioPciUnmapSharedBuffer ( + IN VIRTIO_DEVICE_PROTOCOL *This, + IN VOID *Mapping + ); +#endif // _VIRTIO_PCI_DEVICE_DXE_H_ -- cgit 1.2.3-korg