1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#ifndef MIGRATION_QEMU_FILE_H
26#define MIGRATION_QEMU_FILE_H
27
28#include <zlib.h>
29#include "exec/cpu-common.h"
30#include "io/channel.h"
31
32QEMUFile *qemu_file_new_input(QIOChannel *ioc);
33QEMUFile *qemu_file_new_output(QIOChannel *ioc);
34int qemu_fclose(QEMUFile *f);
35
36G_DEFINE_AUTOPTR_CLEANUP_FUNC(QEMUFile, qemu_fclose)
37
38
39
40
41
42
43
44
45
46uint64_t qemu_file_transferred(QEMUFile *f);
47
48
49
50
51
52void qemu_put_buffer_async(QEMUFile *f, const uint8_t *buf, size_t size,
53 bool may_free);
54
55#include "migration/qemu-file-types.h"
56
57size_t coroutine_mixed_fn qemu_peek_buffer(QEMUFile *f, uint8_t **buf, size_t size, size_t offset);
58size_t coroutine_mixed_fn qemu_get_buffer_in_place(QEMUFile *f, uint8_t **buf, size_t size);
59
60
61
62
63
64
65int coroutine_mixed_fn qemu_peek_byte(QEMUFile *f, int offset);
66void qemu_file_skip(QEMUFile *f, int size);
67int qemu_file_get_error_obj_any(QEMUFile *f1, QEMUFile *f2, Error **errp);
68void qemu_file_set_error_obj(QEMUFile *f, int ret, Error *err);
69int qemu_file_get_error_obj(QEMUFile *f, Error **errp);
70void qemu_file_set_error(QEMUFile *f, int ret);
71int qemu_file_shutdown(QEMUFile *f);
72QEMUFile *qemu_file_get_return_path(QEMUFile *f);
73int qemu_fflush(QEMUFile *f);
74void qemu_file_set_blocking(QEMUFile *f, bool block);
75int qemu_file_get_to_fd(QEMUFile *f, int fd, size_t size);
76void qemu_set_offset(QEMUFile *f, off_t off, int whence);
77off_t qemu_get_offset(QEMUFile *f);
78void qemu_put_buffer_at(QEMUFile *f, const uint8_t *buf, size_t buflen,
79 off_t pos);
80size_t qemu_get_buffer_at(QEMUFile *f, const uint8_t *buf, size_t buflen,
81 off_t pos);
82
83QIOChannel *qemu_file_get_ioc(QEMUFile *file);
84int qemu_file_put_fd(QEMUFile *f, int fd);
85int qemu_file_get_fd(QEMUFile *f);
86
87#endif
88