12#ifndef _VIRTIO_PCI_DEVICE_DXE_H_
13#define _VIRTIO_PCI_DEVICE_DXE_H_
22#define VIRTIO_PCI_DEVICE_SIGNATURE SIGNATURE_32 ('V', 'P', 'C', 'I')
28 UINT64 OriginalPciAttributes;
29 UINT32 DeviceSpecificConfigurationOffset;
32#define VIRTIO_PCI_DEVICE_FROM_VIRTIO_DEVICE(Device) \
33 CR (Device, VIRTIO_PCI_DEVICE, VirtioDevice, VIRTIO_PCI_DEVICE_SIGNATURE)
78VirtioPciGetDeviceFeatures (
80 OUT UINT64 *DeviceFeatures
85VirtioPciGetQueueSize (
87 OUT UINT16 *QueueNumMax
92VirtioPciSetQueueAlignment (
106VirtioPciGetDeviceStatus (
108 OUT UINT8 *DeviceStatus
113VirtioPciSetGuestFeatures (
120VirtioPciSetQueueAddress (
123 IN UINT64 RingBaseShift
128VirtioPciSetQueueSel (
135VirtioPciSetQueueNotify (
142VirtioPciSetQueueSize (
149VirtioPciSetDeviceStatus (
151 IN UINT8 DeviceStatus
156VirtioPciAllocateSharedPages (
159 OUT VOID **HostAddress
164VirtioPciFreeSharedPages (
172VirtioPciMapSharedBuffer (
174 IN VIRTIO_MAP_OPERATION Operation,
175 IN VOID *HostAddress,
183VirtioPciUnmapSharedBuffer (
UINT64 EFI_PHYSICAL_ADDRESS
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)
EFI_STATUS EFIAPI VirtioPciDeviceWrite(IN VIRTIO_DEVICE_PROTOCOL *This, IN UINTN FieldOffset, IN UINTN FieldSize, IN UINT64 Value)
EFI_STATUS EFIAPI VirtioPciDeviceRead(IN VIRTIO_DEVICE_PROTOCOL *This, IN UINTN FieldOffset, IN UINTN FieldSize, IN UINTN BufferSize, OUT VOID *Buffer)