]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
cpu: Provide a proper prototype for target_words_bigendian() in a header
authorThomas Huth <thuth@redhat.com>
Fri, 5 Oct 2018 12:46:02 +0000 (14:46 +0200)
committerThomas Huth <thuth@redhat.com>
Wed, 17 Oct 2018 06:41:43 +0000 (08:41 +0200)
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.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
exec.c
hw/virtio/virtio.c
include/qom/cpu.h
qom/cpu.c

diff --git a/exec.c b/exec.c
index d0821e69aadaa4af9317ad36332ea570136c3f65..5d99ef5c93bc803d9b43df84824d28458059f051 100644 (file)
--- 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)
index 94f5c8e52a4e20f4427c21ccc47a34ee67467b4f..4e61944f14a884dc7aea3cc53ac9897cc03f3d8b 100644 (file)
@@ -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()) {
index dc130cd3072b124e77c502bbfc95f1ccc8b92d3c..4e238b0d9f8fde29fa601aceb55978f945d2a5ea 100644 (file)
@@ -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-specific 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
index 92599f35413bed810f098aa9b39d1646facf2b4e..f7746546d0bec0d756beb2c0327ffbe3fc63b5ea 100644 (file)
--- 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();