187ecb68bSpbrook /* Declarations for use by hardware emulation. */ 287ecb68bSpbrook #ifndef QEMU_HW_H 387ecb68bSpbrook #define QEMU_HW_H 487ecb68bSpbrook 587ecb68bSpbrook #include "qemu-common.h" 61ad2134fSPaul Brook 74be403c8SAvi Kivity #if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H) 8022c62cbSPaolo Bonzini #include "exec/cpu-common.h" 91ad2134fSPaul Brook #endif 101ad2134fSPaul Brook 11022c62cbSPaolo Bonzini #include "exec/ioport.h" 1283c9f4caSPaolo Bonzini #include "hw/irq.h" 13737e150eSPaolo Bonzini #include "block/aio.h" 14caf71f86SPaolo Bonzini #include "migration/vmstate.h" 151de7afc9SPaolo Bonzini #include "qemu/log.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 44f89a8e4eSJuan Quintela #ifdef NEED_CPU_H 45f89a8e4eSJuan Quintela #if TARGET_LONG_BITS == 64 46f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_V(_f, _s, _v) \ 47f89a8e4eSJuan Quintela VMSTATE_UINT64_V(_f, _s, _v) 48d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 49d58f5598SDavid Gibson VMSTATE_UINT64_EQUAL_V(_f, _s, _v) 50f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 51f89a8e4eSJuan Quintela VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v) 52*365162f7SJuan Quintela #define vmstate_info_uinttl vmstate_info_uint64 53f89a8e4eSJuan Quintela #else 54f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_V(_f, _s, _v) \ 55f89a8e4eSJuan Quintela VMSTATE_UINT32_V(_f, _s, _v) 56d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 57d58f5598SDavid Gibson VMSTATE_UINT32_EQUAL_V(_f, _s, _v) 58f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 59f89a8e4eSJuan Quintela VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v) 60*365162f7SJuan Quintela #define vmstate_info_uinttl vmstate_info_uint32 61f89a8e4eSJuan Quintela #endif 62f89a8e4eSJuan Quintela #define VMSTATE_UINTTL(_f, _s) \ 63f89a8e4eSJuan Quintela VMSTATE_UINTTL_V(_f, _s, 0) 64d58f5598SDavid Gibson #define VMSTATE_UINTTL_EQUAL(_f, _s) \ 65d58f5598SDavid Gibson VMSTATE_UINTTL_EQUAL_V(_f, _s, 0) 66f89a8e4eSJuan Quintela #define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \ 67f89a8e4eSJuan Quintela VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0) 68f89a8e4eSJuan Quintela 69f89a8e4eSJuan Quintela #endif 70f89a8e4eSJuan Quintela 7187ecb68bSpbrook #endif 72