- 1.1 Virtqueues,\r
- 2.3 Virtqueue Configuration.\r
\r
+ @param[in] VirtIo The virtio device which will use the ring.\r
+\r
@param[in] The number of descriptors to allocate for the\r
virtio ring, as requested by the host.\r
\r
EFI_STATUS\r
EFIAPI\r
VirtioRingInit (\r
- IN UINT16 QueueSize,\r
- OUT VRING *Ring\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN UINT16 QueueSize,\r
+ OUT VRING *Ring\r
);\r
\r
\r
invoking this function: the VSTAT_DRIVER_OK bit must be clear in\r
VhdrDeviceStatus.\r
\r
- @param[out] Ring The virtio ring to clean up.\r
+ @param[in] VirtIo The virtio device which was using the ring.\r
+\r
+ @param[out] Ring The virtio ring to clean up.\r
\r
**/\r
VOID\r
EFIAPI\r
VirtioRingUninit (\r
- IN OUT VRING *Ring\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN OUT VRING *Ring\r
);\r
\r
\r
- 1.1 Virtqueues,\r
- 2.3 Virtqueue Configuration.\r
\r
+ @param[in] VirtIo The virtio device which will use the ring.\r
+\r
@param[in] The number of descriptors to allocate for the\r
virtio ring, as requested by the host.\r
\r
EFI_STATUS\r
EFIAPI\r
VirtioRingInit (\r
- IN UINT16 QueueSize,\r
- OUT VRING *Ring\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN UINT16 QueueSize,\r
+ OUT VRING *Ring\r
)\r
{\r
UINTN RingSize;\r
invoking this function: the VSTAT_DRIVER_OK bit must be clear in\r
VhdrDeviceStatus.\r
\r
- @param[out] Ring The virtio ring to clean up.\r
+ @param[in] VirtIo The virtio device which was using the ring.\r
+\r
+ @param[out] Ring The virtio ring to clean up.\r
\r
**/\r
VOID\r
EFIAPI\r
VirtioRingUninit (\r
- IN OUT VRING *Ring\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN OUT VRING *Ring\r
)\r
{\r
FreePages (Ring->Base, Ring->NumPages);\r
\r
Copyright (C) 2012, Red Hat, Inc.\r
Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
goto Failed;\r
}\r
\r
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
\r
Failed:\r
//\r
//\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
\r
SetMem (&Dev->BlockIo, sizeof Dev->BlockIo, 0x00);\r
SetMem (&Dev->BlockIoMedia, sizeof Dev->BlockIoMedia, 0x00);\r
VirtIo GPU initialization, and commands (primitives) for the GPU device.\r
\r
Copyright (C) 2016, Red Hat, Inc.\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
//\r
// [...] population of virtqueues [...]\r
//\r
- Status = VirtioRingInit (QueueSize, &VgpuDev->Ring);\r
+ Status = VirtioRingInit (VgpuDev->VirtIo, QueueSize, &VgpuDev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&VgpuDev->Ring);\r
+ VirtioRingUninit (VgpuDev->VirtIo, &VgpuDev->Ring);\r
\r
Failed:\r
//\r
// configuration.\r
//\r
VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, 0);\r
- VirtioRingUninit (&VgpuDev->Ring);\r
+ VirtioRingUninit (VgpuDev->VirtIo, &VgpuDev->Ring);\r
}\r
\r
/**\r
\r
Copyright (C) 2013, Red Hat, Inc.\r
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
if (QueueSize < 2) {\r
return EFI_UNSUPPORTED;\r
}\r
- Status = VirtioRingInit (QueueSize, Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, Ring);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (Ring);\r
+ VirtioRingUninit (Dev->VirtIo, Ring);\r
\r
return Status;\r
}\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
\r
ReleaseTxRing:\r
- VirtioRingUninit (&Dev->TxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);\r
\r
ReleaseRxRing:\r
- VirtioRingUninit (&Dev->RxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);\r
\r
DeviceFailed:\r
//\r
\r
Copyright (C) 2013, Red Hat, Inc.\r
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
VirtioNetShutdownRx (Dev);\r
VirtioNetShutdownTx (Dev);\r
- VirtioRingUninit (&Dev->TxRing);\r
- VirtioRingUninit (&Dev->RxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);\r
\r
Dev->Snm.State = EfiSimpleNetworkStarted;\r
Status = EFI_SUCCESS;\r
\r
Copyright (C) 2012, Red Hat, Inc.\r
Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This driver:\r
\r
goto Failed;\r
}\r
\r
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
\r
Failed:\r
//\r
// the old comms area.\r
//\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
}\r
\r
//\r
\r
Copyright (C) 2012, Red Hat, Inc.\r
Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2017, AMD Inc, All rights reserved.<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
goto Failed;\r
}\r
\r
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
\r
Failed:\r
//\r
Dev->MaxLun = 0;\r
Dev->MaxSectors = 0;\r
\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
\r
SetMem (&Dev->PassThru, sizeof Dev->PassThru, 0x00);\r
SetMem (&Dev->PassThruMode, sizeof Dev->PassThruMode, 0x00);\r