TianoCore EDK2 master
Loading...
Searching...
No Matches
VirtioMmioDevice.h File Reference

Go to the source code of this file.

Data Structures

struct  VIRTIO_MMIO_DEVICE
 

Macros

#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
 
#define VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE(Device)    CR (Device, VIRTIO_MMIO_DEVICE, VirtioDevice, VIRTIO_MMIO_DEVICE_SIGNATURE)
 
#define VIRTIO_CFG_WRITE(Device, Offset, Val)    (MmioWrite32 (Device->BaseAddress + (Offset), Val))
 
#define VIRTIO_CFG_READ(Device, Offset)    (MmioRead32 (Device->BaseAddress + (Offset)))
 

Functions

EFI_STATUS EFIAPI VirtioMmioDeviceRead (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)
 
EFI_STATUS EFIAPI VirtioMmioGetDeviceFeatures (IN VIRTIO_DEVICE_PROTOCOL *This, OUT UINT64 *DeviceFeatures)
 
EFI_STATUS EFIAPI VirtioMmioGetQueueSize (IN VIRTIO_DEVICE_PROTOCOL *This, OUT UINT16 *QueueNumMax)
 
EFI_STATUS EFIAPI VirtioMmioGetDeviceStatus (IN VIRTIO_DEVICE_PROTOCOL *This, OUT UINT8 *DeviceStatus)
 
EFI_STATUS EFIAPI VirtioMmioSetQueueSize (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT16 QueueSize)
 
EFI_STATUS EFIAPI VirtioMmioSetDeviceStatus (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT8 DeviceStatus)
 
EFI_STATUS EFIAPI VirtioMmioSetQueueNotify (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT16 QueueNotify)
 
EFI_STATUS EFIAPI VirtioMmioSetQueueSel (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT16 Sel)
 
EFI_STATUS EFIAPI VirtioMmioSetQueueAddress (IN VIRTIO_DEVICE_PROTOCOL *This, IN VRING *Ring, IN UINT64 RingBaseShift)
 
EFI_STATUS EFIAPI VirtioMmioSetQueueAlignment (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT32 Alignment)
 
EFI_STATUS EFIAPI VirtioMmioSetPageSize (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT32 PageSize)
 
EFI_STATUS EFIAPI VirtioMmioSetGuestFeatures (IN VIRTIO_DEVICE_PROTOCOL *This, IN UINT64 Features)
 
EFI_STATUS EFIAPI VirtioMmioAllocateSharedPages (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)
 
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)
 
EFI_STATUS EFIAPI VirtioMmioUnmapSharedBuffer (IN VIRTIO_DEVICE_PROTOCOL *This, IN VOID *Mapping)
 

Detailed Description

Internal definitions for the VirtIo MMIO Device driver

Copyright (C) 2013, ARM Ltd Copyright (C) 2017, AMD Inc. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file VirtioMmioDevice.h.

Macro Definition Documentation

◆ VIRTIO_CFG_READ

#define VIRTIO_CFG_READ (   Device,
  Offset 
)     (MmioRead32 (Device->BaseAddress + (Offset)))

Definition at line 42 of file VirtioMmioDevice.h.

◆ VIRTIO_CFG_WRITE

#define VIRTIO_CFG_WRITE (   Device,
  Offset,
  Val 
)     (MmioWrite32 (Device->BaseAddress + (Offset), Val))

Definition at line 40 of file VirtioMmioDevice.h.

◆ VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE

#define VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (   Device)     CR (Device, VIRTIO_MMIO_DEVICE, VirtioDevice, VIRTIO_MMIO_DEVICE_SIGNATURE)

Definition at line 37 of file VirtioMmioDevice.h.

◆ VIRTIO_MMIO_DEVICE_SIGNATURE

#define VIRTIO_MMIO_DEVICE_SIGNATURE   SIGNATURE_32 ('V', 'M', 'I', 'O')

Definition at line 25 of file VirtioMmioDevice.h.

◆ VIRTIO_MMIO_DEVICE_VERSION_0_95

#define VIRTIO_MMIO_DEVICE_VERSION_0_95   1

Definition at line 26 of file VirtioMmioDevice.h.

◆ VIRTIO_MMIO_DEVICE_VERSION_1_00

#define VIRTIO_MMIO_DEVICE_VERSION_1_00   2

Definition at line 27 of file VirtioMmioDevice.h.

Function Documentation

◆ VirtioMmioAllocateSharedPages()

EFI_STATUS EFIAPI VirtioMmioAllocateSharedPages ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINTN  NumPages,
OUT VOID **  HostAddress 
)

Definition at line 385 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioDeviceRead()

EFI_STATUS EFIAPI VirtioMmioDeviceRead ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINTN  FieldOFfset,
IN UINTN  FieldSize,
IN UINTN  BufferSize,
OUT VOID *  Buffer 
)

Definition at line 341 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioDeviceWrite()

EFI_STATUS EFIAPI VirtioMmioDeviceWrite ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINTN  FieldOffset,
IN UINTN  FieldSize,
IN UINT64  Value 
)

Definition at line 303 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioFreeSharedPages()

VOID EFIAPI VirtioMmioFreeSharedPages ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINTN  NumPages,
IN VOID *  HostAddress 
)

Definition at line 404 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioGetDeviceFeatures()

EFI_STATUS EFIAPI VirtioMmioGetDeviceFeatures ( IN VIRTIO_DEVICE_PROTOCOL This,
OUT UINT64 *  DeviceFeatures 
)

Definition at line 17 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioGetDeviceStatus()

EFI_STATUS EFIAPI VirtioMmioGetDeviceStatus ( IN VIRTIO_DEVICE_PROTOCOL This,
OUT UINT8 *  DeviceStatus 
)

Definition at line 66 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioGetQueueSize()

EFI_STATUS EFIAPI VirtioMmioGetQueueSize ( IN VIRTIO_DEVICE_PROTOCOL This,
OUT UINT16 *  QueueNumMax 
)

Definition at line 46 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioMapSharedBuffer()

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 
)

Definition at line 415 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetDeviceStatus()

EFI_STATUS EFIAPI VirtioMmioSetDeviceStatus ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT8  DeviceStatus 
)

Definition at line 106 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetGuestFeatures()

EFI_STATUS EFIAPI VirtioMmioSetGuestFeatures ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT64  Features 
)

Definition at line 264 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetPageSize()

EFI_STATUS EFIAPI VirtioMmioSetPageSize ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT32  PageSize 
)

Definition at line 156 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetQueueAddress()

EFI_STATUS EFIAPI VirtioMmioSetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL This,
IN VRING Ring,
IN UINT64  RingBaseShift 
)

Definition at line 198 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetQueueAlignment()

EFI_STATUS EFIAPI VirtioMmioSetQueueAlignment ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT32  Alignment 
)

Definition at line 138 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetQueueNotify()

EFI_STATUS EFIAPI VirtioMmioSetQueueNotify ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT16  QueueNotify 
)

Definition at line 122 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetQueueSel()

EFI_STATUS EFIAPI VirtioMmioSetQueueSel ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT16  Sel 
)

Definition at line 178 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioSetQueueSize()

EFI_STATUS EFIAPI VirtioMmioSetQueueSize ( IN VIRTIO_DEVICE_PROTOCOL This,
IN UINT16  QueueSize 
)

Definition at line 86 of file VirtioMmioDeviceFunctions.c.

◆ VirtioMmioUnmapSharedBuffer()

EFI_STATUS EFIAPI VirtioMmioUnmapSharedBuffer ( IN VIRTIO_DEVICE_PROTOCOL This,
IN VOID *  Mapping 
)

Definition at line 432 of file VirtioMmioDeviceFunctions.c.