qemu-e2k/hw
Greg Kurz 616a655219 virtio: add endian-ambivalent support to VirtIODevice
Some CPU families can dynamically change their endianness. This means we
can have little endian ppc or big endian arm guests for example. This has
an impact on legacy virtio data structures since they are target endian.
We hence introduce a new property to track the endianness of each virtio
device. It is reasonnably assumed that endianness won't change while the
device is in use : we hence capture the device endianness when it gets
reset.

We migrate this property in a subsection, after the device descriptor. This
means the load code must not rely on it until it is restored. As a consequence,
the vring sanity checks had to be moved after the call to vmstate_load_state().
We enforce paranoia by poisoning the property at the begining of virtio_load().

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2014-06-29 19:39:42 +03:00
..
9pfs virtio: Drop superfluous conditionals around g_free() 2014-06-19 16:41:53 +03:00
acpi qmp: convert ACPI_DEVICE_OST event 2014-06-23 11:12:28 -04:00
alpha
arm Use PSCI v0.2 compatible string when KVM or TCG provides it 2014-06-19 18:33:05 +01:00
audio audio: fmopl: drop INLINE macro 2014-06-23 11:01:24 -04:00
block virtio-blk: implement per-device migration calls 2014-06-29 19:39:41 +03:00
bt
char virtio-serial: implement per-device migration calls 2014-06-29 19:39:41 +03:00
core net: move queue number into NICPeers 2014-06-27 11:19:31 +02:00
cpu
cris
display spice: fix 32bit build 2014-06-20 16:22:07 +01:00
dma
gpio
i2c
i386 pc: make isapc and pc-0.10 to pc-0.13 have 1.7.0 memory layout 2014-06-29 18:59:41 +03:00
ide qapi: adjust existing defines 2014-06-23 11:01:25 -04:00
input Fix new typos (found by codespell) 2014-06-24 20:01:24 +04:00
intc xics: Implement xics_ics_free() 2014-06-27 13:48:26 +02:00
ipack
isa acpi: implement ospm_status() method for PIIX4/ICH9_LPC devices 2014-06-19 18:44:22 +03:00
lm32
m68k
mem qmp: add query-memory-devices command 2014-06-19 18:44:22 +03:00
microblaze
mips gt64xxx_pci: Add VMStateDescription 2014-06-20 23:40:16 +02:00
misc vfio: Enable for SPAPR 2014-06-27 13:48:23 +02:00
moxie hw/moxie/moxiesim.c: Remove unused moxie_intc_create() 2014-06-24 20:01:24 +04:00
net virtio-net: implement per-device migration calls 2014-06-29 19:39:41 +03:00
nvram spapr: Fix RTAS token numbers 2014-06-27 13:48:22 +02:00
openrisc
pci pcie: coding style tweak 2014-06-23 17:49:49 +03:00
pci-bridge hw/pcie: implement power controller functionality 2014-06-23 17:48:42 +03:00
pci-host uninorth: Fix PCI hole size 2014-06-27 13:48:24 +02:00
pcmcia
ppc PPC: e500: Only create dt entries for existing serial ports 2014-06-27 13:48:27 +02:00
s390x
scsi virtio: introduce device specific migration calls 2014-06-29 19:39:41 +03:00
sd
sh4
sparc
sparc64
ssi
timer mc146818rtc: add rtc-reset-reinjection QMP command 2014-06-29 18:59:35 +03:00
tpm
unicore32
usb migration: Remove unneeded minimum_version_id_old 2014-06-23 19:14:52 +02:00
virtio virtio: add endian-ambivalent support to VirtIODevice 2014-06-29 19:39:42 +03:00
watchdog qapi event: clean up in callers 2014-06-27 09:27:56 -04:00
xen
xenpv
xtensa hw/xtensa/xtfpga: implement initrd loading 2014-06-29 02:32:42 +04:00
Makefile.objs pc: implement pc-dimm device abstraction 2014-06-19 16:41:47 +03:00