kvm: external module: adjust for new host kernels install location
[qemu-kvm/fedora.git] / hw / hw.h
blob6ce233948c2fd7421ac86dfc111e954805c2030b
1 /* Declarations for use by hardware emulation. */
2 #ifndef QEMU_HW_H
3 #define QEMU_HW_H
5 #include "qemu-common.h"
6 #include "irq.h"
8 /* VM Load/Save */
10 typedef void (QEMUFilePutBufferFunc)(void *opaque, const uint8_t *buf, int64_t pos, int size);
11 typedef int (QEMUFileGetBufferFunc)(void *opaque, uint8_t *buf, int64_t pos, int size);
12 typedef void (QEMUFileCloseFunc)(void *opaque);
14 QEMUFile *qemu_fopen(void *opaque, QEMUFilePutBufferFunc *put_buffer,
15 QEMUFileGetBufferFunc *get_buffer, QEMUFileCloseFunc *close);
16 QEMUFile *qemu_fopen_file(const char *filename, const char *mode);
17 QEMUFile *qemu_fopen_fd(int fd);
18 void qemu_fflush(QEMUFile *f);
19 void qemu_fclose(QEMUFile *f);
20 void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);
21 void qemu_put_byte(QEMUFile *f, int v);
22 void qemu_put_be16(QEMUFile *f, unsigned int v);
23 void qemu_put_be32(QEMUFile *f, unsigned int v);
24 void qemu_put_be64(QEMUFile *f, uint64_t v);
25 int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size);
26 int qemu_get_byte(QEMUFile *f);
27 unsigned int qemu_get_be16(QEMUFile *f);
28 unsigned int qemu_get_be32(QEMUFile *f);
29 uint64_t qemu_get_be64(QEMUFile *f);
31 static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv)
33 qemu_put_be64(f, *pv);
36 static inline void qemu_put_be32s(QEMUFile *f, const uint32_t *pv)
38 qemu_put_be32(f, *pv);
41 static inline void qemu_put_be16s(QEMUFile *f, const uint16_t *pv)
43 qemu_put_be16(f, *pv);
46 static inline void qemu_put_8s(QEMUFile *f, const uint8_t *pv)
48 qemu_put_byte(f, *pv);
51 static inline void qemu_get_be64s(QEMUFile *f, uint64_t *pv)
53 *pv = qemu_get_be64(f);
56 static inline void qemu_get_be32s(QEMUFile *f, uint32_t *pv)
58 *pv = qemu_get_be32(f);
61 static inline void qemu_get_be16s(QEMUFile *f, uint16_t *pv)
63 *pv = qemu_get_be16(f);
66 static inline void qemu_get_8s(QEMUFile *f, uint8_t *pv)
68 *pv = qemu_get_byte(f);
71 #ifdef NEED_CPU_H
72 #if TARGET_LONG_BITS == 64
73 #define qemu_put_betl qemu_put_be64
74 #define qemu_get_betl qemu_get_be64
75 #define qemu_put_betls qemu_put_be64s
76 #define qemu_get_betls qemu_get_be64s
77 #else
78 #define qemu_put_betl qemu_put_be32
79 #define qemu_get_betl qemu_get_be32
80 #define qemu_put_betls qemu_put_be32s
81 #define qemu_get_betls qemu_get_be32s
82 #endif
83 #endif
85 int64_t qemu_ftell(QEMUFile *f);
86 int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
88 typedef void SaveStateHandler(QEMUFile *f, void *opaque);
89 typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
91 int register_savevm(const char *idstr,
92 int instance_id,
93 int version_id,
94 SaveStateHandler *save_state,
95 LoadStateHandler *load_state,
96 void *opaque);
98 typedef void QEMUResetHandler(void *opaque);
100 void qemu_register_reset(QEMUResetHandler *func, void *opaque);
102 /* These should really be in isa.h, but are here to make pc.h happy. */
103 typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
104 typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
106 #endif