Revision 2ca83a8d hw/hw.h
b/hw/hw.h | ||
---|---|---|
10 | 10 |
QEMUFile *qemu_fopen(const char *filename, const char *mode); |
11 | 11 |
void qemu_fflush(QEMUFile *f); |
12 | 12 |
void qemu_fclose(QEMUFile *f); |
13 |
void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, size_t size); |
|
14 |
void qemu_put_byte(QEMUFile *f, int8_t v); |
|
15 |
|
|
16 |
static inline void qemu_put_ubyte(QEMUFile *f, uint8_t v) |
|
17 |
{ |
|
18 |
qemu_put_byte(f, (int8_t)v); |
|
19 |
} |
|
20 |
|
|
21 |
#define qemu_put_sbyte qemu_put_byte |
|
22 |
|
|
23 |
void qemu_put_be16(QEMUFile *f, uint16_t v); |
|
24 |
void qemu_put_be32(QEMUFile *f, uint32_t v); |
|
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); |
|
25 | 17 |
void qemu_put_be64(QEMUFile *f, uint64_t v); |
26 |
size_t qemu_get_buffer(QEMUFile *f, uint8_t *buf, size_t size); |
|
27 |
int8_t qemu_get_byte(QEMUFile *f); |
|
28 |
|
|
29 |
static inline uint8_t qemu_get_ubyte(QEMUFile *f) |
|
30 |
{ |
|
31 |
return (uint8_t)qemu_get_byte(f); |
|
32 |
} |
|
33 |
|
|
34 |
#define qemu_get_sbyte qemu_get_byte |
|
35 |
|
|
36 |
uint16_t qemu_get_be16(QEMUFile *f); |
|
37 |
uint32_t qemu_get_be32(QEMUFile *f); |
|
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); |
|
38 | 22 |
uint64_t qemu_get_be64(QEMUFile *f); |
39 | 23 |
|
40 | 24 |
static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv) |
... | ... | |
77 | 61 |
*pv = qemu_get_byte(f); |
78 | 62 |
} |
79 | 63 |
|
80 |
// Signed versions for type safety |
|
81 |
static inline void qemu_put_sbuffer(QEMUFile *f, const int8_t *buf, size_t size) |
|
82 |
{ |
|
83 |
qemu_put_buffer(f, (const uint8_t *)buf, size); |
|
84 |
} |
|
85 |
|
|
86 |
static inline void qemu_put_sbe16(QEMUFile *f, int16_t v) |
|
87 |
{ |
|
88 |
qemu_put_be16(f, (uint16_t)v); |
|
89 |
} |
|
90 |
|
|
91 |
static inline void qemu_put_sbe32(QEMUFile *f, int32_t v) |
|
92 |
{ |
|
93 |
qemu_put_be32(f, (uint32_t)v); |
|
94 |
} |
|
95 |
|
|
96 |
static inline void qemu_put_sbe64(QEMUFile *f, int64_t v) |
|
97 |
{ |
|
98 |
qemu_put_be64(f, (uint64_t)v); |
|
99 |
} |
|
100 |
|
|
101 |
static inline size_t qemu_get_sbuffer(QEMUFile *f, int8_t *buf, size_t size) |
|
102 |
{ |
|
103 |
return qemu_get_buffer(f, (uint8_t *)buf, size); |
|
104 |
} |
|
105 |
|
|
106 |
static inline int16_t qemu_get_sbe16(QEMUFile *f) |
|
107 |
{ |
|
108 |
return (int16_t)qemu_get_be16(f); |
|
109 |
} |
|
110 |
|
|
111 |
static inline int32_t qemu_get_sbe32(QEMUFile *f) |
|
112 |
{ |
|
113 |
return (int32_t)qemu_get_be32(f); |
|
114 |
} |
|
115 |
|
|
116 |
static inline int64_t qemu_get_sbe64(QEMUFile *f) |
|
117 |
{ |
|
118 |
return (int64_t)qemu_get_be64(f); |
|
119 |
} |
|
120 |
|
|
121 |
static inline void qemu_put_s8s(QEMUFile *f, const int8_t *pv) |
|
122 |
{ |
|
123 |
qemu_put_8s(f, (const uint8_t *)pv); |
|
124 |
} |
|
125 |
|
|
126 |
static inline void qemu_put_sbe16s(QEMUFile *f, const int16_t *pv) |
|
127 |
{ |
|
128 |
qemu_put_be16s(f, (const uint16_t *)pv); |
|
129 |
} |
|
130 |
|
|
131 |
static inline void qemu_put_sbe32s(QEMUFile *f, const int32_t *pv) |
|
132 |
{ |
|
133 |
qemu_put_be32s(f, (const uint32_t *)pv); |
|
134 |
} |
|
135 |
|
|
136 |
static inline void qemu_put_sbe64s(QEMUFile *f, const int64_t *pv) |
|
137 |
{ |
|
138 |
qemu_put_be64s(f, (const uint64_t *)pv); |
|
139 |
} |
|
140 |
|
|
141 |
static inline void qemu_get_s8s(QEMUFile *f, int8_t *pv) |
|
142 |
{ |
|
143 |
qemu_get_8s(f, (uint8_t *)pv); |
|
144 |
} |
|
145 |
|
|
146 |
static inline void qemu_get_sbe16s(QEMUFile *f, int16_t *pv) |
|
147 |
{ |
|
148 |
qemu_get_be16s(f, (uint16_t *)pv); |
|
149 |
} |
|
150 |
|
|
151 |
static inline void qemu_get_sbe32s(QEMUFile *f, int32_t *pv) |
|
152 |
{ |
|
153 |
qemu_get_be32s(f, (uint32_t *)pv); |
|
154 |
} |
|
155 |
|
|
156 |
static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv) |
|
157 |
{ |
|
158 |
qemu_get_be64s(f, (uint64_t *)pv); |
|
159 |
} |
|
160 |
|
|
161 | 64 |
#ifdef NEED_CPU_H |
162 | 65 |
#if TARGET_LONG_BITS == 64 |
163 | 66 |
#define qemu_put_betl qemu_put_be64 |
164 | 67 |
#define qemu_get_betl qemu_get_be64 |
165 | 68 |
#define qemu_put_betls qemu_put_be64s |
166 | 69 |
#define qemu_get_betls qemu_get_be64s |
167 |
#define qemu_put_sbetl qemu_put_sbe64 |
|
168 |
#define qemu_get_sbetl qemu_get_sbe64 |
|
169 |
#define qemu_put_sbetls qemu_put_sbe64s |
|
170 |
#define qemu_get_sbetls qemu_get_sbe64s |
|
171 | 70 |
#else |
172 | 71 |
#define qemu_put_betl qemu_put_be32 |
173 | 72 |
#define qemu_get_betl qemu_get_be32 |
174 | 73 |
#define qemu_put_betls qemu_put_be32s |
175 | 74 |
#define qemu_get_betls qemu_get_be32s |
176 |
#define qemu_put_sbetl qemu_put_sbe32 |
|
177 |
#define qemu_get_sbetl qemu_get_sbe32 |
|
178 |
#define qemu_put_sbetls qemu_put_sbe32s |
|
179 |
#define qemu_get_sbetls qemu_get_sbe32s |
|
180 | 75 |
#endif |
181 | 76 |
#endif |
182 | 77 |
|
Also available in: Unified diff