dataplane: endianness-aware accesses
commitb0e5d90ebc3edb5cfc1d5d33dd3334482dee6d46
authorCornelia Huck <cornelia.huck@de.ibm.com>
Mon, 26 Jan 2015 16:26:42 +0000 (26 17:26 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 16 Feb 2015 15:07:16 +0000 (16 15:07 +0000)
tree25c1c688c21b635c644cafe0114ab2de3a494c5e
parent9a75b0a037e3a8030992244353f17b62f6daf2ab
dataplane: endianness-aware accesses

The vring.c code currently assumes that guest and host endianness match,
which is not true for a number of cases:

- emulating targets with a different endianness than the host
- bi-endian targets, where the correct endianness depends on the virtio
  device
- upcoming support for the virtio-1 standard mandates little-endian
  accesses even for big-endian targets and hosts

Make sure to use accessors that depend on the virtio device.

Note that dataplane now needs to be built per-target.

Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Fam Zheng <famz@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 1422289602-17874-2-git-send-email-cornelia.huck@de.ibm.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/block/dataplane/virtio-blk.c
hw/scsi/virtio-scsi-dataplane.c
hw/virtio/Makefile.objs
hw/virtio/dataplane/Makefile.objs
hw/virtio/dataplane/vring.c
include/hw/virtio/dataplane/vring-accessors.h [new file with mode: 0644]
include/hw/virtio/dataplane/vring.h