Hi, Here's the latest patchset to have virtio working with targets that can change endianness. It is based on 2.0-rc2.
It is also available at github: https://github.com/gkurz/qemu/commits/virtio This serie addresses all the remarks that I got from v6. It also brings some more fixes: TCP checksums and virtio PCI. It introduces an alternative way to support migrations without the need to change the current layout. Please comment and/or apply. :) --- Greg Greg Kurz (1): virtio-9p: use virtio wrappers to access headers Rusty Russell (7): virtio: endian-ambivalent targets using legacy virtio virtio: allow byte swapping for vring and config access virtio-net: use virtio wrappers to access headers virtio-balloon: use virtio wrappers to access page frame numbers virtio-blk: use virtio wrappers to access headers virtio-scsi: use virtio wrappers to access headers virtio-serial-bus: use virtio wrappers to access headers exec.c | 2 - hw/9pfs/Makefile.objs | 3 - hw/9pfs/virtio-9p-device.c | 3 + hw/block/Makefile.objs | 2 - hw/block/virtio-blk.c | 38 ++++++---- hw/char/Makefile.objs | 3 - hw/char/virtio-serial-bus.c | 46 +++++++----- hw/net/Makefile.objs | 2 - hw/net/virtio-net.c | 34 +++++++-- hw/scsi/Makefile.objs | 2 - hw/scsi/virtio-scsi.c | 38 +++++----- hw/virtio/Makefile.objs | 2 - hw/virtio/virtio-balloon.c | 8 +- hw/virtio/virtio-pci.c | 11 +-- hw/virtio/virtio.c | 123 ++++++++++++++++++++++----------- include/hw/virtio/virtio-access.h | 138 +++++++++++++++++++++++++++++++++++++ include/hw/virtio/virtio.h | 2 + vl.c | 4 + 18 files changed, 339 insertions(+), 122 deletions(-) create mode 100644 include/hw/virtio/virtio-access.h