audk/OvmfPkg/VirtioNetDxe
Laszlo Ersek bc8fde6f62 OvmfPkg: VIRTIO_DEVICE_PROTOCOL: widen the Features bitmap to 64 bits
The virtio-1.0 spec widens the Features bitmap to 64 bits. Modify the
declarations of the GetDeviceFeatures() and SetGuestFeatures() protocol
member functions accordingly.

Normally, a protocol cannot be changed in incompatible ways if the GUID
stays the same; however, we've always been extremely clear that
VIRTIO_DEVICE_PROTOCOL is internal to edk2. See for example the top of
"OvmfPkg/Include/Protocol/VirtioDevice.h".

In this patch, all producers and consumers of the GetDeviceFeatures() and
SetGuestFeatures() protocol members are updated.

The drivers that currently produce these members are "legacy" drivers (in
virtio-1.0 terminology), and they cannot (and will not) handle feature
bits above BIT31. Therefore their conversion is only for compatibility
with the modified protocol interface. The consumers will be responsible
for checking the VIRTIO_DEVICE_PROTOCOL.Revision field, and for not
passing feature bits that these backends cannot handle.

The VirtioMmioGetDeviceFeatures() implementation stores the result of an
MmioRead32() call with normal assignment, so it needs no change beyond
adapting its prototype.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-04-06 13:04:03 +02:00
..
ComponentName.c OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00
DriverBinding.c OvmfPkg: VIRTIO_DEVICE_PROTOCOL: widen the Features bitmap to 64 bits 2016-04-06 13:04:03 +02:00
EntryPoint.c OvmfPkg: VirtioNetDxe: add entry point 2013-06-14 07:39:40 +00:00
Events.c OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00
SnpGetStatus.c OvmfPkg: Fix VS2005 build warnings 2014-09-25 02:29:10 +00:00
SnpInitialize.c OvmfPkg: VIRTIO_DEVICE_PROTOCOL: widen the Features bitmap to 64 bits 2016-04-06 13:04:03 +02:00
SnpMcastIpToMac.c OvmfPkg: VirtioNetDxe: map multicast IP to MAC: SNP.McastIpToMac 2013-06-14 07:40:30 +00:00
SnpReceive.c OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00
SnpReceiveFilters.c OvmfPkg: VirtioNetDxe: emulate Rx filter configuration: SNP.ReceiveFilters 2013-06-14 07:40:36 +00:00
SnpSharedHelpers.c OvmfPkg: VirtioNetDxe: add SNP.Initialize and shared dependencies 2013-06-14 07:40:05 +00:00
SnpShutdown.c OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00
SnpStart.c OvmfPkg: VirtioNetDxe: Simple Network Protocol members Start and Stop 2013-06-14 07:39:58 +00:00
SnpStop.c OvmfPkg: VirtioNetDxe: Simple Network Protocol members Start and Stop 2013-06-14 07:39:58 +00:00
SnpTransmit.c OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00
SnpUnsupported.c OvmfPkg: VirtioNetDxe: definitions of unsupported SNP member functions 2013-06-14 07:40:42 +00:00
TechNotes.txt OvmfPkg: VirtioNetDxe: add technical notes 2013-06-14 07:39:25 +00:00
VirtioNet.h OvmfPkg/Virtio: Removed VirtioReadDevice() / VirtIoWriteDevice() functions 2013-12-11 16:58:39 +00:00
VirtioNet.inf OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL 2013-12-11 16:58:22 +00:00