Revision b6c4f71f hw/hw.h

b/hw/hw.h
39 39
int qemu_fclose(QEMUFile *f);
40 40
void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);
41 41
void qemu_put_byte(QEMUFile *f, int v);
42

  
43
static inline void qemu_put_ubyte(QEMUFile *f, unsigned int v)
44
{
45
    qemu_put_byte(f, (int)v);
46
}
47

  
48
#define qemu_put_sbyte qemu_put_byte
49

  
42 50
void qemu_put_be16(QEMUFile *f, unsigned int v);
43 51
void qemu_put_be32(QEMUFile *f, unsigned int v);
44 52
void qemu_put_be64(QEMUFile *f, uint64_t v);
45 53
int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size);
46 54
int qemu_get_byte(QEMUFile *f);
55

  
56
static inline unsigned int qemu_get_ubyte(QEMUFile *f)
57
{
58
    return (unsigned int)qemu_get_byte(f);
59
}
60

  
61
#define qemu_get_sbyte qemu_get_byte
62

  
47 63
unsigned int qemu_get_be16(QEMUFile *f);
48 64
unsigned int qemu_get_be32(QEMUFile *f);
49 65
uint64_t qemu_get_be64(QEMUFile *f);
......
94 110
    *pv = qemu_get_byte(f);
95 111
}
96 112

  
113
// Signed versions for type safety
114
static inline void qemu_put_sbuffer(QEMUFile *f, const int8_t *buf, int size)
115
{
116
    qemu_put_buffer(f, (const uint8_t *)buf, size);
117
}
118

  
119
static inline void qemu_put_sbe16(QEMUFile *f, int v)
120
{
121
    qemu_put_be16(f, (unsigned int)v);
122
}
123

  
124
static inline void qemu_put_sbe32(QEMUFile *f, int v)
125
{
126
    qemu_put_be32(f, (unsigned int)v);
127
}
128

  
129
static inline void qemu_put_sbe64(QEMUFile *f, int64_t v)
130
{
131
    qemu_put_be64(f, (uint64_t)v);
132
}
133

  
134
static inline size_t qemu_get_sbuffer(QEMUFile *f, int8_t *buf, int size)
135
{
136
    return qemu_get_buffer(f, (uint8_t *)buf, size);
137
}
138

  
139
static inline int qemu_get_sbe16(QEMUFile *f)
140
{
141
    return (int)qemu_get_be16(f);
142
}
143

  
144
static inline int qemu_get_sbe32(QEMUFile *f)
145
{
146
    return (int)qemu_get_be32(f);
147
}
148

  
149
static inline int64_t qemu_get_sbe64(QEMUFile *f)
150
{
151
    return (int64_t)qemu_get_be64(f);
152
}
153

  
154
static inline void qemu_put_s8s(QEMUFile *f, const int8_t *pv)
155
{
156
    qemu_put_8s(f, (const uint8_t *)pv);
157
}
158

  
159
static inline void qemu_put_sbe16s(QEMUFile *f, const int16_t *pv)
160
{
161
    qemu_put_be16s(f, (const uint16_t *)pv);
162
}
163

  
164
static inline void qemu_put_sbe32s(QEMUFile *f, const int32_t *pv)
165
{
166
    qemu_put_be32s(f, (const uint32_t *)pv);
167
}
168

  
169
static inline void qemu_put_sbe64s(QEMUFile *f, const int64_t *pv)
170
{
171
    qemu_put_be64s(f, (const uint64_t *)pv);
172
}
173

  
174
static inline void qemu_get_s8s(QEMUFile *f, int8_t *pv)
175
{
176
    qemu_get_8s(f, (uint8_t *)pv);
177
}
178

  
179
static inline void qemu_get_sbe16s(QEMUFile *f, int16_t *pv)
180
{
181
    qemu_get_be16s(f, (uint16_t *)pv);
182
}
183

  
184
static inline void qemu_get_sbe32s(QEMUFile *f, int32_t *pv)
185
{
186
    qemu_get_be32s(f, (uint32_t *)pv);
187
}
188

  
189
static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
190
{
191
    qemu_get_be64s(f, (uint64_t *)pv);
192
}
193

  
97 194
#ifdef NEED_CPU_H
98 195
#if TARGET_LONG_BITS == 64
99 196
#define qemu_put_betl qemu_put_be64
100 197
#define qemu_get_betl qemu_get_be64
101 198
#define qemu_put_betls qemu_put_be64s
102 199
#define qemu_get_betls qemu_get_be64s
200
#define qemu_put_sbetl qemu_put_sbe64
201
#define qemu_get_sbetl qemu_get_sbe64
202
#define qemu_put_sbetls qemu_put_sbe64s
203
#define qemu_get_sbetls qemu_get_sbe64s
103 204
#else
104 205
#define qemu_put_betl qemu_put_be32
105 206
#define qemu_get_betl qemu_get_be32
106 207
#define qemu_put_betls qemu_put_be32s
107 208
#define qemu_get_betls qemu_get_be32s
209
#define qemu_put_sbetl qemu_put_sbe32
210
#define qemu_get_sbetl qemu_get_sbe32
211
#define qemu_put_sbetls qemu_put_sbe32s
212
#define qemu_get_sbetls qemu_get_sbe32s
108 213
#endif
109 214
#endif
110 215

  

Also available in: Unified diff