187ecb68bSpbrook /* Declarations for use by hardware emulation. */ 287ecb68bSpbrook #ifndef QEMU_HW_H 387ecb68bSpbrook #define QEMU_HW_H 487ecb68bSpbrook 51ad2134fSPaul Brook 64be403c8SAvi Kivity #if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H) 7022c62cbSPaolo Bonzini #include "exec/cpu-common.h" 81ad2134fSPaul Brook #endif 91ad2134fSPaul Brook 10022c62cbSPaolo Bonzini #include "exec/ioport.h" 1183c9f4caSPaolo Bonzini #include "hw/irq.h" 12737e150eSPaolo Bonzini #include "block/aio.h" 13caf71f86SPaolo Bonzini #include "migration/vmstate.h" 141de7afc9SPaolo Bonzini #include "qemu/log.h" 15*0137fdc0SMarkus Armbruster #include "qemu/module.h" 16b6c4f71fSblueswir1 1787ecb68bSpbrook #ifdef NEED_CPU_H 1887ecb68bSpbrook #if TARGET_LONG_BITS == 64 1987ecb68bSpbrook #define qemu_put_betl qemu_put_be64 2087ecb68bSpbrook #define qemu_get_betl qemu_get_be64 2187ecb68bSpbrook #define qemu_put_betls qemu_put_be64s 2287ecb68bSpbrook #define qemu_get_betls qemu_get_be64s 23b6c4f71fSblueswir1 #define qemu_put_sbetl qemu_put_sbe64 24b6c4f71fSblueswir1 #define qemu_get_sbetl qemu_get_sbe64 25b6c4f71fSblueswir1 #define qemu_put_sbetls qemu_put_sbe64s 26b6c4f71fSblueswir1 #define qemu_get_sbetls qemu_get_sbe64s 2787ecb68bSpbrook #else 2887ecb68bSpbrook #define qemu_put_betl qemu_put_be32 2987ecb68bSpbrook #define qemu_get_betl qemu_get_be32 3087ecb68bSpbrook #define qemu_put_betls qemu_put_be32s 3187ecb68bSpbrook #define qemu_get_betls qemu_get_be32s 32b6c4f71fSblueswir1 #define qemu_put_sbetl qemu_put_sbe32 33b6c4f71fSblueswir1 #define qemu_get_sbetl qemu_get_sbe32 34b6c4f71fSblueswir1 #define qemu_put_sbetls qemu_put_sbe32s 35b6c4f71fSblueswir1 #define qemu_get_sbetls qemu_get_sbe32s 3687ecb68bSpbrook #endif 3787ecb68bSpbrook #endif 3887ecb68bSpbrook 3987ecb68bSpbrook typedef void QEMUResetHandler(void *opaque); 4087ecb68bSpbrook 41a08d4367SJan Kiszka void qemu_register_reset(QEMUResetHandler *func, void *opaque); 42dda9b29fSJan Kiszka void qemu_unregister_reset(QEMUResetHandler *func, void *opaque); 4387ecb68bSpbrook 44*0137fdc0SMarkus Armbruster void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); 45*0137fdc0SMarkus Armbruster 46f89a8e4eSJuan Quintela #ifdef NEED_CPU_H 47f89a8e4eSJuan Quintela #if TARGET_LONG_BITS == 64 48f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_V(_f, _s, _v) \ 49f89a8e4eSJuan Quintela VMSTATE_UINT64_V(_f, _s, _v) 50d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 51d58f5598SDavid Gibson VMSTATE_UINT64_EQUAL_V(_f, _s, _v) 52f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 53f89a8e4eSJuan Quintela VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v) 54365162f7SJuan Quintela #define vmstate_info_uinttl vmstate_info_uint64 55f89a8e4eSJuan Quintela #else 56f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_V(_f, _s, _v) \ 57f89a8e4eSJuan Quintela VMSTATE_UINT32_V(_f, _s, _v) 58d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 59d58f5598SDavid Gibson VMSTATE_UINT32_EQUAL_V(_f, _s, _v) 60f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 61f89a8e4eSJuan Quintela VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v) 62365162f7SJuan Quintela #define vmstate_info_uinttl vmstate_info_uint32 63f89a8e4eSJuan Quintela #endif 64f89a8e4eSJuan Quintela #define VMSTATE_UINTTL(_f, _s) \ 65f89a8e4eSJuan Quintela VMSTATE_UINTTL_V(_f, _s, 0) 66d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL(_f, _s) \ 67d58f5598SDavid Gibson VMSTATE_UINTTL_EQUAL_V(_f, _s, 0) 68f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \ 69f89a8e4eSJuan Quintela VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0) 70f89a8e4eSJuan Quintela 71f89a8e4eSJuan Quintela #endif 72f89a8e4eSJuan Quintela 7387ecb68bSpbrook #endif 74