1 /* Declarations for use by hardware emulation. */ 2 #ifndef QEMU_HW_H 3 #define QEMU_HW_H 4 5 #include "qemu-common.h" 6 7 #if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H) 8 #include "exec/cpu-common.h" 9 #endif 10 11 #include "exec/ioport.h" 12 #include "hw/irq.h" 13 #include "block/aio.h" 14 #include "migration/qemu-file.h" 15 #include "migration/vmstate.h" 16 #include "qemu/log.h" 17 18 #ifdef NEED_CPU_H 19 #if TARGET_LONG_BITS == 64 20 #define qemu_put_betl qemu_put_be64 21 #define qemu_get_betl qemu_get_be64 22 #define qemu_put_betls qemu_put_be64s 23 #define qemu_get_betls qemu_get_be64s 24 #define qemu_put_sbetl qemu_put_sbe64 25 #define qemu_get_sbetl qemu_get_sbe64 26 #define qemu_put_sbetls qemu_put_sbe64s 27 #define qemu_get_sbetls qemu_get_sbe64s 28 #else 29 #define qemu_put_betl qemu_put_be32 30 #define qemu_get_betl qemu_get_be32 31 #define qemu_put_betls qemu_put_be32s 32 #define qemu_get_betls qemu_get_be32s 33 #define qemu_put_sbetl qemu_put_sbe32 34 #define qemu_get_sbetl qemu_get_sbe32 35 #define qemu_put_sbetls qemu_put_sbe32s 36 #define qemu_get_sbetls qemu_get_sbe32s 37 #endif 38 #endif 39 40 typedef void QEMUResetHandler(void *opaque); 41 42 void qemu_register_reset(QEMUResetHandler *func, void *opaque); 43 void qemu_unregister_reset(QEMUResetHandler *func, void *opaque); 44 45 /* handler to set the boot_device order for a specific type of QEMUMachine */ 46 /* return 0 if success */ 47 typedef int QEMUBootSetHandler(void *opaque, const char *boot_devices); 48 void qemu_register_boot_set(QEMUBootSetHandler *func, void *opaque); 49 int qemu_boot_set(const char *boot_devices); 50 51 #ifdef NEED_CPU_H 52 #if TARGET_LONG_BITS == 64 53 #define VMSTATE_UINTTL_V(_f, _s, _v) \ 54 VMSTATE_UINT64_V(_f, _s, _v) 55 #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 56 VMSTATE_UINT64_EQUAL_V(_f, _s, _v) 57 #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 58 VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v) 59 #else 60 #define VMSTATE_UINTTL_V(_f, _s, _v) \ 61 VMSTATE_UINT32_V(_f, _s, _v) 62 #define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \ 63 VMSTATE_UINT32_EQUAL_V(_f, _s, _v) 64 #define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \ 65 VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v) 66 #endif 67 #define VMSTATE_UINTTL(_f, _s) \ 68 VMSTATE_UINTTL_V(_f, _s, 0) 69 #define VMSTATE_UINTTL_EQUAL(_f, _s) \ 70 VMSTATE_UINTTL_EQUAL_V(_f, _s, 0) 71 #define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \ 72 VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0) 73 74 #endif 75 76 #endif 77