xref: /qemu/include/hw/hw.h (revision 0137fdc0941cfe214e91c5c1444f3fcf6a5548b8)
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