Revision 5b5ef0db hw/gus.c
b/hw/gus.c | ||
---|---|---|
220 | 220 |
return dma_len; |
221 | 221 |
} |
222 | 222 |
|
223 |
static void GUS_save (QEMUFile *f, void *opaque) |
|
224 |
{ |
|
225 |
int32_t val; |
|
226 |
GUSState *s = opaque; |
|
227 |
|
|
228 |
val = s->freq; qemu_put_be32s (f, &val); |
|
229 |
val = s->pos; qemu_put_be32s (f, &val); |
|
230 |
val = s->left; qemu_put_be32s (f, &val); |
|
231 |
val = s->shift; qemu_put_be32s (f, &val); |
|
232 |
val = s->irqs; qemu_put_be32s (f, &val); |
|
233 |
val = s->samples; qemu_put_be32s (f, &val); |
|
234 |
qemu_put_be64s (f, &s->last_ticks); |
|
235 |
qemu_put_buffer (f, s->himem, sizeof (s->himem)); |
|
236 |
} |
|
237 |
|
|
238 |
static int GUS_load (QEMUFile *f, void *opaque, int version_id) |
|
239 |
{ |
|
240 |
int32_t val; |
|
241 |
GUSState *s = opaque; |
|
242 |
|
|
243 |
if (version_id != 1) |
|
244 |
return -EINVAL; |
|
245 |
|
|
246 |
qemu_get_be32s (f, &val); s->freq = val; |
|
247 |
qemu_get_be32s (f, &val); s->pos = val; |
|
248 |
qemu_get_be32s (f, &val); s->left = val; |
|
249 |
qemu_get_be32s (f, &val); s->shift = val; |
|
250 |
qemu_get_be32s (f, &val); s->irqs = val; |
|
251 |
qemu_get_be32s (f, &val); s->samples = val; |
|
252 |
qemu_get_be64s (f, &s->last_ticks); |
|
253 |
qemu_get_buffer (f, s->himem, sizeof (s->himem)); |
|
254 |
return 0; |
|
255 |
} |
|
256 |
|
|
223 | 257 |
int GUS_init (AudioState *audio, qemu_irq *pic) |
224 | 258 |
{ |
225 | 259 |
GUSState *s; |
... | ... | |
296 | 330 |
s->pic = pic; |
297 | 331 |
|
298 | 332 |
AUD_set_active_out (s->voice, 1); |
333 |
|
|
334 |
register_savevm ("gus", 0, 1, GUS_save, GUS_load, s); |
|
299 | 335 |
return 0; |
300 | 336 |
} |
Also available in: Unified diff