aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2009-05-19 16:17:58 +0100
committerPaul Brook <paul@codesourcery.com>2009-05-19 16:17:58 +0100
commit1ad2134f914dfd4c8f92307c94c9a5a1e28f0059 (patch)
treefafeb00db8346df20b35434ea3f1eaad1fd67832 /hw
parent8a637d444387bbdb60eff803d321244487521c86 (diff)
Hardware convenience library
The only target dependency for most hardware is sizeof(target_phys_addr_t). Build these files into a convenience library, and use that instead of building for every target. Remove and poison various target specific macros to avoid bogus target dependencies creeping back in. Big/Little endian is not handled because devices should not know or care about this to start with. Signed-off-by: Paul Brook <paul@codesourcery.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/etraxfs_pic.c4
-rw-r--r--hw/hw.h7
-rw-r--r--hw/poison.h27
-rw-r--r--hw/virtio-pci.c2
4 files changed, 37 insertions, 3 deletions
diff --git a/hw/etraxfs_pic.c b/hw/etraxfs_pic.c
index 9f650de28d..da9d0c3be6 100644
--- a/hw/etraxfs_pic.c
+++ b/hw/etraxfs_pic.c
@@ -24,8 +24,8 @@
#include "sysbus.h"
#include "hw.h"
-#include "pc.h"
-#include "etraxfs.h"
+//#include "pc.h"
+//#include "etraxfs.h"
#define D(x)
diff --git a/hw/hw.h b/hw/hw.h
index d0cf598204..c990d1a1a9 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -3,6 +3,13 @@
#define QEMU_HW_H
#include "qemu-common.h"
+
+#if defined(TARGET_PHYS_ADDR_BITS) && !defined(NEED_CPU_H)
+#include "targphys.h"
+#include "poison.h"
+#include "cpu-common.h"
+#endif
+
#include "irq.h"
/* VM Load/Save */
diff --git a/hw/poison.h b/hw/poison.h
new file mode 100644
index 0000000000..94abff2f1a
--- /dev/null
+++ b/hw/poison.h
@@ -0,0 +1,27 @@
+/* Poison identifiers that should not be used when building
+ target independent device code. */
+
+#ifndef HW_POISON_H
+#define HW_POISON_H
+#ifdef __GNUC__
+
+#pragma GCC poison TARGET_I386
+#pragma GCC poison TARGET_X86_64
+#pragma GCC poison TARGET_ALPHA
+#pragma GCC poison TARGET_ARM
+#pragma GCC poison TARGET_CRIS
+#pragma GCC poison TARGET_M68K
+#pragma GCC poison TARGET_MIPS
+#pragma GCC poison TARGET_MIPS64
+#pragma GCC poison TARGET_PPC
+#pragma GCC poison TARGET_PPCEMB
+#pragma GCC poison TARGET_PPC64
+#pragma GCC poison TARGET_ABI32
+#pragma GCC poison TARGET_SH4
+#pragma GCC poison TARGET_SPARC
+#pragma GCC poison TARGET_SPARC64
+
+#pragma GCC poison TARGET_WORDS_BIGENDIAN
+
+#endif
+#endif
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index ebc84cc2fe..c072423dcf 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -17,7 +17,7 @@
#include "virtio.h"
#include "pci.h"
-#include "sysemu.h"
+//#include "sysemu.h"
/* from Linux's linux/virtio_pci.h */