From 1ad2134f914dfd4c8f92307c94c9a5a1e28f0059 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 19 May 2009 16:17:58 +0100 Subject: 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 --- hw/etraxfs_pic.c | 4 ++-- hw/hw.h | 7 +++++++ hw/poison.h | 27 +++++++++++++++++++++++++++ hw/virtio-pci.c | 2 +- 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 hw/poison.h (limited to 'hw') diff --git a/hw/etraxfs_pic.c b/hw/etraxfs_pic.c index 9f650de..da9d0c3 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 d0cf598..c990d1a 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 0000000..94abff2 --- /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 ebc84cc..c072423 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 */ -- cgit v1.1