1 /* Declarations for use by hardware emulation. */
5 #include "qemu-common.h"
10 QEMUFile
*qemu_fopen(const char *filename
, const char *mode
);
11 void qemu_fflush(QEMUFile
*f
);
12 void qemu_fclose(QEMUFile
*f
);
13 void qemu_put_buffer(QEMUFile
*f
, const uint8_t *buf
, int size
);
14 void qemu_put_byte(QEMUFile
*f
, int v
);
15 void qemu_put_be16(QEMUFile
*f
, unsigned int v
);
16 void qemu_put_be32(QEMUFile
*f
, unsigned int v
);
17 void qemu_put_be64(QEMUFile
*f
, uint64_t v
);
18 int qemu_get_buffer(QEMUFile
*f
, uint8_t *buf
, int size
);
19 int qemu_get_byte(QEMUFile
*f
);
20 unsigned int qemu_get_be16(QEMUFile
*f
);
21 unsigned int qemu_get_be32(QEMUFile
*f
);
22 uint64_t qemu_get_be64(QEMUFile
*f
);
24 static inline void qemu_put_be64s(QEMUFile
*f
, const uint64_t *pv
)
26 qemu_put_be64(f
, *pv
);
29 static inline void qemu_put_be32s(QEMUFile
*f
, const uint32_t *pv
)
31 qemu_put_be32(f
, *pv
);
34 static inline void qemu_put_be16s(QEMUFile
*f
, const uint16_t *pv
)
36 qemu_put_be16(f
, *pv
);
39 static inline void qemu_put_8s(QEMUFile
*f
, const uint8_t *pv
)
41 qemu_put_byte(f
, *pv
);
44 static inline void qemu_get_be64s(QEMUFile
*f
, uint64_t *pv
)
46 *pv
= qemu_get_be64(f
);
49 static inline void qemu_get_be32s(QEMUFile
*f
, uint32_t *pv
)
51 *pv
= qemu_get_be32(f
);
54 static inline void qemu_get_be16s(QEMUFile
*f
, uint16_t *pv
)
56 *pv
= qemu_get_be16(f
);
59 static inline void qemu_get_8s(QEMUFile
*f
, uint8_t *pv
)
61 *pv
= qemu_get_byte(f
);
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
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
78 int64_t qemu_ftell(QEMUFile
*f
);
79 int64_t qemu_fseek(QEMUFile
*f
, int64_t pos
, int whence
);
81 typedef void SaveStateHandler(QEMUFile
*f
, void *opaque
);
82 typedef int LoadStateHandler(QEMUFile
*f
, void *opaque
, int version_id
);
84 int register_savevm(const char *idstr
,
87 SaveStateHandler
*save_state
,
88 LoadStateHandler
*load_state
,
91 typedef void QEMUResetHandler(void *opaque
);
93 void qemu_register_reset(QEMUResetHandler
*func
, void *opaque
);
95 /* These should really be in isa.h, but are here to make pc.h happy. */
96 typedef void (IOPortWriteFunc
)(void *opaque
, uint32_t address
, uint32_t data
);
97 typedef uint32_t (IOPortReadFunc
)(void *opaque
, uint32_t address
);