cpu/virtio: turn virtio_is_big_endian() into a CPU object method

Legacy virtio devices are target endian, which means it depends on the CPU.
If we want to support targets that can change endianness (modern PPC and ARM
for the moment), we need to add a per-CPU class method to be called from
the virtio code: .has_big_endian_virtio. The name looks like a software
boundary violation, but please consider it as a hint for people to
avoid using it anywhere but in the virtio code... and FWIW, the violation
comes from the virtio specification^Wmess itself ! :)

We may safely use current_cpu as the affected paths come from cpu_exec().

The base class implementation returns what we have today: it is based
on TARGET_WORDS_BIGENDIAN.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Refresh of virtio_is_big_endian-cpu-method
refresh (create temporary patch)
refresh (create temporary patch)
refresh
refresh