EFIAPI\r
Virtio10SetQueueAddress (\r
IN VIRTIO_DEVICE_PROTOCOL *This,\r
- IN VRING *Ring\r
+ IN VRING *Ring,\r
+ IN UINT64 RingBaseShift\r
)\r
{\r
VIRTIO_1_0_DEV *Dev;\r
Dev = VIRTIO_1_0_FROM_VIRTIO_DEVICE (This);\r
\r
Address = (UINTN)Ring->Desc;\r
+ Address += RingBaseShift;\r
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,\r
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueDesc),\r
sizeof Address, &Address);\r
}\r
\r
Address = (UINTN)Ring->Avail.Flags;\r
+ Address += RingBaseShift;\r
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,\r
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueAvail),\r
sizeof Address, &Address);\r
}\r
\r
Address = (UINTN)Ring->Used.Flags;\r
+ Address += RingBaseShift;\r
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,\r
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueUsed),\r
sizeof Address, &Address);\r