aboutsummaryrefslogtreecommitdiff
path: root/vl.h
diff options
context:
space:
mode:
Diffstat (limited to 'vl.h')
-rw-r--r--vl.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/vl.h b/vl.h
index a29aa440c..9f29ac472 100644
--- a/vl.h
+++ b/vl.h
@@ -401,7 +401,23 @@ void cpu_disable_ticks(void);
/* VM Load/Save */
-typedef FILE QEMUFile;
+//typedef FILE QEMUFile;
+typedef struct QEMUFile_s QEMUFile;
+struct QEMUFile_s {
+ void *opaque;
+ int (*open)(QEMUFile *f, const char *filename, const char *flags);
+ void (*close)(QEMUFile *f);
+ void (*put_byte)(QEMUFile *f, int v);
+ int (*get_byte)(QEMUFile *f);
+ void (*put_buffer)(QEMUFile *f, const uint8_t *buf, int size);
+ int (*get_buffer)(QEMUFile *f, uint8_t *buf, int size);
+ int64_t (*tell)(QEMUFile *f);
+ int64_t (*seek)(QEMUFile *f, int64_t pos, int whence);
+ int (*eof)(QEMUFile *f);
+};
+
+extern QEMUFile qemu_savevm_method_file;
+extern QEMUFile qemu_savevm_method_socket;
void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);
void qemu_put_byte(QEMUFile *f, int v);
@@ -472,8 +488,8 @@ int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
typedef void SaveStateHandler(QEMUFile *f, void *opaque);
typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
-int qemu_loadvm(const char *filename);
-int qemu_savevm(const char *filename);
+int qemu_loadvm(const char *filename, QEMUFile *f);
+int qemu_savevm(const char *filename, QEMUFile *f);
int register_savevm(const char *idstr,
int instance_id,
int version_id,