hw.h 2.2 KB
Newer Older
P
pbrook 已提交
1 2 3 4 5
/* Declarations for use by hardware emulation.  */
#ifndef QEMU_HW_H
#define QEMU_HW_H

#include "qemu-common.h"
P
Paul Brook 已提交
6

7
#if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H)
8
#include "exec/cpu-common.h"
P
Paul Brook 已提交
9 10
#endif

11
#include "exec/ioport.h"
P
pbrook 已提交
12
#include "irq.h"
13
#include "block/aio.h"
14 15
#include "migration/qemu-file.h"
#include "migration/vmstate.h"
P
Peter Maydell 已提交
16
#include "qemu-log.h"
B
blueswir1 已提交
17

P
pbrook 已提交
18 19 20 21 22 23
#ifdef NEED_CPU_H
#if TARGET_LONG_BITS == 64
#define qemu_put_betl qemu_put_be64
#define qemu_get_betl qemu_get_be64
#define qemu_put_betls qemu_put_be64s
#define qemu_get_betls qemu_get_be64s
B
blueswir1 已提交
24 25 26 27
#define qemu_put_sbetl qemu_put_sbe64
#define qemu_get_sbetl qemu_get_sbe64
#define qemu_put_sbetls qemu_put_sbe64s
#define qemu_get_sbetls qemu_get_sbe64s
P
pbrook 已提交
28 29 30 31 32
#else
#define qemu_put_betl qemu_put_be32
#define qemu_get_betl qemu_get_be32
#define qemu_put_betls qemu_put_be32s
#define qemu_get_betls qemu_get_be32s
B
blueswir1 已提交
33 34 35 36
#define qemu_put_sbetl qemu_put_sbe32
#define qemu_get_sbetl qemu_get_sbe32
#define qemu_put_sbetls qemu_put_sbe32s
#define qemu_get_sbetls qemu_get_sbe32s
P
pbrook 已提交
37 38 39 40 41
#endif
#endif

typedef void QEMUResetHandler(void *opaque);

42
void qemu_register_reset(QEMUResetHandler *func, void *opaque);
J
Jan Kiszka 已提交
43
void qemu_unregister_reset(QEMUResetHandler *func, void *opaque);
P
pbrook 已提交
44

J
Jan Kiszka 已提交
45
/* handler to set the boot_device order for a specific type of QEMUMachine */
46
/* return 0 if success */
J
Jan Kiszka 已提交
47
typedef int QEMUBootSetHandler(void *opaque, const char *boot_devices);
48
void qemu_register_boot_set(QEMUBootSetHandler *func, void *opaque);
J
Jan Kiszka 已提交
49
int qemu_boot_set(const char *boot_devices);
50

J
Juan Quintela 已提交
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
#ifdef NEED_CPU_H
#if TARGET_LONG_BITS == 64
#define VMSTATE_UINTTL_V(_f, _s, _v)                                  \
    VMSTATE_UINT64_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v)                        \
    VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
#else
#define VMSTATE_UINTTL_V(_f, _s, _v)                                  \
    VMSTATE_UINT32_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v)                        \
    VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
#endif
#define VMSTATE_UINTTL(_f, _s)                                        \
    VMSTATE_UINTTL_V(_f, _s, 0)
#define VMSTATE_UINTTL_ARRAY(_f, _s, _n)                              \
    VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0)

#endif

P
pbrook 已提交
70
#endif