From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45740) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvPrk-0000y5-6e for qemu-devel@nongnu.org; Fri, 13 Jun 2014 07:41:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WvPrc-0003Bk-NA for qemu-devel@nongnu.org; Fri, 13 Jun 2014 07:41:52 -0400 Received: from cantor2.suse.de ([195.135.220.15]:53874 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvPrc-0003BY-GQ for qemu-devel@nongnu.org; Fri, 13 Jun 2014 07:41:44 -0400 Message-ID: <539AE376.6010001@suse.de> Date: Fri, 13 Jun 2014 13:41:42 +0200 From: Alexander Graf MIME-Version: 1.0 References: <20140613111703.22108.14322.stgit@bahia.local> <20140613112145.22108.98246.stgit@bahia.local> In-Reply-To: <20140613112145.22108.98246.stgit@bahia.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v8 09/20] exec: introduce target_words_bigendian() helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz , qemu-devel@nongnu.org Cc: Kevin Wolf , Peter Maydell , Stefan Hajnoczi , Juan Quintela , Rusty Russell , "Michael S. Tsirkin" , aneesh.kumar@linux.vnet.ibm.com, Anthony Liguori , Amit Shah , Paolo Bonzini , =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= On 13.06.14 13:21, Greg Kurz wrote: > We currently have a virtio_is_big_endian() helper that provides the target > endianness to the virtio code. As of today, the helper returns a fixed > compile-time value. Of course, this will have to change if we want to > support target endianness changes at run-time. > > Let's move the TARGET_WORDS_BIGENDIAN bits out to a new helper and have > virtio_is_big_endian() implemented on top of it. > > This patch doesn't change any functionality. > > Signed-off-by: Greg Kurz > --- > exec.c | 11 +---------- > hw/virtio/virtio-pci.c | 3 --- > include/exec/cpu-common.h | 1 + > include/hw/virtio/virtio.h | 5 +++++ > 4 files changed, 7 insertions(+), 13 deletions(-) > > diff --git a/exec.c b/exec.c > index 4e179a6..a7d4431 100644 > --- a/exec.c > +++ b/exec.c > @@ -2738,14 +2738,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr, > } > #endif > > -#if !defined(CONFIG_USER_ONLY) > - > -/* > - * A helper function for the _utterly broken_ virtio device model to find out if > - * it's running on a big endian machine. Don't do this at home kids! > - */ > -bool virtio_is_big_endian(void); > -bool virtio_is_big_endian(void) > +bool target_words_bigendian(void) > { > #if defined(TARGET_WORDS_BIGENDIAN) > return true; > @@ -2754,8 +2747,6 @@ bool virtio_is_big_endian(void) > #endif > } > > -#endif > - > #ifndef CONFIG_USER_ONLY > bool cpu_physical_memory_is_io(hwaddr phys_addr) > { > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index ce97514..390c8d2 100644 > --- a/hw/virtio/virtio-pci.c > +++ b/hw/virtio/virtio-pci.c > @@ -89,9 +89,6 @@ > /* Flags track per-device state like workarounds for quirks in older guests. */ > #define VIRTIO_PCI_FLAG_BUS_MASTER_BUG (1 << 0) > > -/* HACK for virtio to determine if it's running a big endian guest */ > -bool virtio_is_big_endian(void); > - > static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size, > VirtIOPCIProxy *dev); > > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index a21b65a..eb798c1 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -122,4 +122,5 @@ void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque); > > #endif > > +bool target_words_bigendian(void); Please don't make this function globally available - usually no code in hw/ should know about this except for virtio. Put it in a virtio header instead. Alex