Revision 67d8cec3 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, 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); |
|
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); |
|
17 | 25 |
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); |
|
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); |
|
22 | 38 |
uint64_t qemu_get_be64(QEMUFile *f); |
23 | 39 |
|
24 | 40 |
static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv) |
... | ... | |
61 | 77 |
*pv = qemu_get_byte(f); |
62 | 78 |
} |
63 | 79 |
|
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 |
|
|
64 | 161 |
#ifdef NEED_CPU_H |
65 | 162 |
#if TARGET_LONG_BITS == 64 |
66 | 163 |
#define qemu_put_betl qemu_put_be64 |
67 | 164 |
#define qemu_get_betl qemu_get_be64 |
68 | 165 |
#define qemu_put_betls qemu_put_be64s |
69 | 166 |
#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 |
|
70 | 171 |
#else |
71 | 172 |
#define qemu_put_betl qemu_put_be32 |
72 | 173 |
#define qemu_get_betl qemu_get_be32 |
73 | 174 |
#define qemu_put_betls qemu_put_be32s |
74 | 175 |
#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 |
|
75 | 180 |
#endif |
76 | 181 |
#endif |
77 | 182 |
|
Also available in: Unified diff