]> git.proxmox.com Git - qemu.git/blame - hw/hw.h
Break up vl.h.
[qemu.git] / 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"
6#include "irq.h"
7
8/* VM Load/Save */
9
10QEMUFile *qemu_fopen(const char *filename, const char *mode);
11void qemu_fflush(QEMUFile *f);
12void qemu_fclose(QEMUFile *f);
13void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);
14void qemu_put_byte(QEMUFile *f, int v);
15void qemu_put_be16(QEMUFile *f, unsigned int v);
16void qemu_put_be32(QEMUFile *f, unsigned int v);
17void qemu_put_be64(QEMUFile *f, uint64_t v);
18int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size);
19int qemu_get_byte(QEMUFile *f);
20unsigned int qemu_get_be16(QEMUFile *f);
21unsigned int qemu_get_be32(QEMUFile *f);
22uint64_t qemu_get_be64(QEMUFile *f);
23
24static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv)
25{
26 qemu_put_be64(f, *pv);
27}
28
29static inline void qemu_put_be32s(QEMUFile *f, const uint32_t *pv)
30{
31 qemu_put_be32(f, *pv);
32}
33
34static inline void qemu_put_be16s(QEMUFile *f, const uint16_t *pv)
35{
36 qemu_put_be16(f, *pv);
37}
38
39static inline void qemu_put_8s(QEMUFile *f, const uint8_t *pv)
40{
41 qemu_put_byte(f, *pv);
42}
43
44static inline void qemu_get_be64s(QEMUFile *f, uint64_t *pv)
45{
46 *pv = qemu_get_be64(f);
47}
48
49static inline void qemu_get_be32s(QEMUFile *f, uint32_t *pv)
50{
51 *pv = qemu_get_be32(f);
52}
53
54static inline void qemu_get_be16s(QEMUFile *f, uint16_t *pv)
55{
56 *pv = qemu_get_be16(f);
57}
58
59static inline void qemu_get_8s(QEMUFile *f, uint8_t *pv)
60{
61 *pv = qemu_get_byte(f);
62}
63
64#ifdef NEED_CPU_H
65#if TARGET_LONG_BITS == 64
66#define qemu_put_betl qemu_put_be64
67#define qemu_get_betl qemu_get_be64
68#define qemu_put_betls qemu_put_be64s
69#define qemu_get_betls qemu_get_be64s
70#else
71#define qemu_put_betl qemu_put_be32
72#define qemu_get_betl qemu_get_be32
73#define qemu_put_betls qemu_put_be32s
74#define qemu_get_betls qemu_get_be32s
75#endif
76#endif
77
78int64_t qemu_ftell(QEMUFile *f);
79int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
80
81typedef void SaveStateHandler(QEMUFile *f, void *opaque);
82typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
83
84int register_savevm(const char *idstr,
85 int instance_id,
86 int version_id,
87 SaveStateHandler *save_state,
88 LoadStateHandler *load_state,
89 void *opaque);
90
91typedef void QEMUResetHandler(void *opaque);
92
93void qemu_register_reset(QEMUResetHandler *func, void *opaque);
94
95/* These should really be in isa.h, but are here to make pc.h happy. */
96typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
97typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
98
99#endif