summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0a78d75)
Passing the VirtIo protocol instance will allow the vring to use
VIRTIO_DEVICE_PROTOCOL.AllocateSharedPages () to allocate vring buffer.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
- 1.1 Virtqueues,\r
- 2.3 Virtqueue Configuration.\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
@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
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
invoking this function: the VSTAT_DRIVER_OK bit must be clear in\r
VhdrDeviceStatus.\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
\r
**/\r
VOID\r
EFIAPI\r
VirtioRingUninit (\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN OUT VRING *Ring\r
- 1.1 Virtqueues,\r
- 2.3 Virtqueue Configuration.\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
@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
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
)\r
{\r
UINTN RingSize;\r
invoking this function: the VSTAT_DRIVER_OK bit must be clear in\r
VhdrDeviceStatus.\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
\r
**/\r
VOID\r
EFIAPI\r
VirtioRingUninit (\r
+ IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
+ IN OUT VRING *Ring\r
)\r
{\r
FreePages (Ring->Base, Ring->NumPages);\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
\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
\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
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
//\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\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
\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
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
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
//\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
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&VgpuDev->Ring);\r
+ VirtioRingUninit (VgpuDev->VirtIo, &VgpuDev->Ring);\r
// configuration.\r
//\r
VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, 0);\r
// configuration.\r
//\r
VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, 0);\r
- VirtioRingUninit (&VgpuDev->Ring);\r
+ VirtioRingUninit (VgpuDev->VirtIo, &VgpuDev->Ring);\r
\r
Copyright (C) 2013, Red Hat, Inc.\r
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\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
\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
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
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (Ring);\r
+ VirtioRingUninit (Dev->VirtIo, Ring);\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
\r
ReleaseTxRing:\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
\r
ReleaseTxRing:\r
- VirtioRingUninit (&Dev->TxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);\r
- VirtioRingUninit (&Dev->RxRing);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);\r
\r
Copyright (C) 2013, Red Hat, Inc.\r
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\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
\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
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
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
\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
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
// the old comms area.\r
//\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\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
Copyright (C) 2012, Red Hat, Inc.\r
Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR>\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
\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
- Status = VirtioRingInit (QueueSize, &Dev->Ring);\r
+ Status = VirtioRingInit (Dev->VirtIo, QueueSize, &Dev->Ring);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
return EFI_SUCCESS;\r
\r
ReleaseQueue:\r
- VirtioRingUninit (&Dev->Ring);\r
+ VirtioRingUninit (Dev->VirtIo, &Dev->Ring);\r
Dev->MaxLun = 0;\r
Dev->MaxSectors = 0;\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
\r
SetMem (&Dev->PassThru, sizeof Dev->PassThru, 0x00);\r
SetMem (&Dev->PassThruMode, sizeof Dev->PassThruMode, 0x00);\r