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