hw.h 2.2 KB

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