Revision 178e08a5 savevm.c
b/savevm.c | ||
---|---|---|
310 | 310 |
int64_t base_offset; |
311 | 311 |
} QEMUFileBdrv; |
312 | 312 |
|
313 |
static int bdrv_put_buffer(void *opaque, const uint8_t *buf,
|
|
313 |
static int block_put_buffer(void *opaque, const uint8_t *buf,
|
|
314 | 314 |
int64_t pos, int size) |
315 | 315 |
{ |
316 | 316 |
QEMUFileBdrv *s = opaque; |
317 |
bdrv_pwrite(s->bs, s->base_offset + pos, buf, size);
|
|
317 |
bdrv_put_buffer(s->bs, buf, s->base_offset + pos, size);
|
|
318 | 318 |
return size; |
319 | 319 |
} |
320 | 320 |
|
321 |
static int bdrv_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size)
|
|
321 |
static int block_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size)
|
|
322 | 322 |
{ |
323 | 323 |
QEMUFileBdrv *s = opaque; |
324 |
return bdrv_pread(s->bs, s->base_offset + pos, buf, size);
|
|
324 |
return bdrv_get_buffer(s->bs, buf, s->base_offset + pos, size);
|
|
325 | 325 |
} |
326 | 326 |
|
327 | 327 |
static int bdrv_fclose(void *opaque) |
... | ... | |
341 | 341 |
s->base_offset = offset; |
342 | 342 |
|
343 | 343 |
if (is_writable) |
344 |
return qemu_fopen_ops(s, bdrv_put_buffer, NULL, bdrv_fclose, NULL);
|
|
344 |
return qemu_fopen_ops(s, block_put_buffer, NULL, bdrv_fclose, NULL);
|
|
345 | 345 |
|
346 |
return qemu_fopen_ops(s, NULL, bdrv_get_buffer, bdrv_fclose, NULL);
|
|
346 |
return qemu_fopen_ops(s, NULL, block_get_buffer, bdrv_fclose, NULL);
|
|
347 | 347 |
} |
348 | 348 |
|
349 | 349 |
QEMUFile *qemu_fopen_ops(void *opaque, QEMUFilePutBufferFunc *put_buffer, |
Also available in: Unified diff