From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, Alistair Francis <alistair@alistair23.me>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Peter Crosthwaite <crosthwaite.peter@gmail.com>,
Richard Henderson <rth@twiddle.net>,
"Michael S. Tsirkin" <mst@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Laszlo Ersek <lersek@redhat.com>
Subject: [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header
Date: Fri, 5 Oct 2018 15:01:47 +0200 [thread overview]
Message-ID: <1538744508-17108-2-git-send-email-thuth@redhat.com> (raw)
In-Reply-To: <1538744508-17108-1-git-send-email-thuth@redhat.com>
We've got three places already that provide a prototype for this
function in a .c file - that's ugly. Let's provide a proper prototype
in a header instead, with a proper description why this function should
not be used in most cases.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
NB: I've tried to replace the "utterly broken" comment with something
better, as suggested by Laszlo... not sure whether I've really got the
message right here, so feel free to provide some better wording if you
like!
exec.c | 5 -----
hw/virtio/virtio.c | 1 -
include/qom/cpu.h | 11 +++++++++++
qom/cpu.c | 1 -
4 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/exec.c b/exec.c
index d0821e6..5d99ef5 100644
--- a/exec.c
+++ b/exec.c
@@ -3906,11 +3906,6 @@ int qemu_target_page_bits_min(void)
}
#endif
-/*
- * 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 target_words_bigendian(void);
bool target_words_bigendian(void)
{
#if defined(TARGET_WORDS_BIGENDIAN)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 94f5c8e..4e61944 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1169,7 +1169,6 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t val)
return 0;
}
-bool target_words_bigendian(void);
static enum virtio_device_endian virtio_default_endian(void)
{
if (target_words_bigendian()) {
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index dc130cd..6d35c37 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -1085,6 +1085,17 @@ void cpu_exec_initfn(CPUState *cpu);
void cpu_exec_realizefn(CPUState *cpu, Error **errp);
void cpu_exec_unrealizefn(CPUState *cpu);
+/**
+ * target_words_bigendian:
+ * Returns true if the (default) endianness of the target is big endian,
+ * false otherwise. Note that in target-specifc code, you can use
+ * TARGET_WORDS_BIGENDIAN directly instead. On the other hand, common
+ * code should normally never need to know about the endianness of the
+ * target, so please do *not* use this function unless you know very well
+ * what you are doing!
+ */
+bool target_words_bigendian(void);
+
#ifdef NEED_CPU_H
#ifdef CONFIG_SOFTMMU
diff --git a/qom/cpu.c b/qom/cpu.c
index 92599f3..f774654 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -194,7 +194,6 @@ static bool cpu_common_debug_check_watchpoint(CPUState *cpu, CPUWatchpoint *wp)
return true;
}
-bool target_words_bigendian(void);
static bool cpu_common_virtio_is_big_endian(CPUState *cpu)
{
return target_words_bigendian();
--
1.8.3.1
next prev parent reply other threads:[~2018-10-05 13:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 13:01 [Qemu-devel] [PATCH v2 0/2] Use target_words_bigendian() for generic-loader Thomas Huth
2018-10-05 13:01 ` Thomas Huth [this message]
2018-10-05 13:14 ` [Qemu-devel] [PATCH v2 1/2] cpu: Provide a proper prototype for target_words_bigendian() in a header Philippe Mathieu-Daudé
2018-10-05 13:20 ` Laszlo Ersek
2018-10-05 13:32 ` Peter Maydell
2018-10-05 13:01 ` [Qemu-devel] [PATCH v2 2/2] hw/core/generic-loader: Compile only once, not for each target Thomas Huth
2018-10-05 13:16 ` Philippe Mathieu-Daudé
2018-10-05 16:24 ` Alistair Francis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1538744508-17108-2-git-send-email-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=alistair@alistair23.me \
--cc=crosthwaite.peter@gmail.com \
--cc=lersek@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).