summaryrefslogtreecommitdiffstats
path: root/server/vd_interface.h
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-05-11 15:23:29 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-05-19 11:22:07 +0200
commit20da2f162af24f2dbbe0709fa986bcce8b26586c (patch)
tree0fefcb6c404539b53e64f6683f6355ad0060e3c3 /server/vd_interface.h
parent6bdf38daf8796a596fe992bd79b79dd312870b89 (diff)
downloadspice-20da2f162af24f2dbbe0709fa986bcce8b26586c.tar.gz
spice-20da2f162af24f2dbbe0709fa986bcce8b26586c.tar.xz
spice-20da2f162af24f2dbbe0709fa986bcce8b26586c.zip
replace worker load/save with loadvm_commands, allow keeping surface content
Add worker->loadvm_commands. qemu will uses this to send a series of commands needed to restore state after savevm/loadvm and migration. That will be one create-surface command per surface and one cursor-set command for the local pointer. The worker->save/load functions are not needed any more. Likewise the interface->{get,set}_save_data callbacks. Surfaces created via loadvm_commands *will* not be cleared. Also primary surfaces are not cleared any more (unconditionally, although we could do that conditionally on loadvm using the flags field in QXLSurfaceCreate).
Diffstat (limited to 'server/vd_interface.h')
-rw-r--r--server/vd_interface.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/server/vd_interface.h b/server/vd_interface.h
index 0f26822d..d3cf5cbe 100644
--- a/server/vd_interface.h
+++ b/server/vd_interface.h
@@ -103,8 +103,6 @@ struct QXLWorker {
uint32_t major_version;
void (*wakeup)(QXLWorker *worker);
void (*oom)(QXLWorker *worker);
- void (*save)(QXLWorker *worker);
- void (*load)(QXLWorker *worker);
void (*start)(QXLWorker *worker);
void (*stop)(QXLWorker *worker);
void (*update_area)(QXLWorker *qxl_worker, uint32_t surface_id,
@@ -120,6 +118,7 @@ struct QXLWorker {
void (*reset_image_cache)(QXLWorker *worker);
void (*reset_cursor)(QXLWorker *worker);
void (*destroy_surface_wait)(QXLWorker *worker, uint32_t surface_id);
+ void (*loadvm_commands)(QXLWorker *worker, struct QXLCommandExt *ext, uint32_t count);
};
typedef struct DrawArea {
@@ -196,8 +195,6 @@ struct QXLInterface {
int (*get_cursor_command)(QXLInstance *qin, struct QXLCommandExt *cmd);
int (*req_cursor_notification)(QXLInstance *qin);
void (*notify_update)(QXLInstance *qin, uint32_t update_id);
- void (*set_save_data)(QXLInstance *qin, void *data, int size);
- void *(*get_save_data)(QXLInstance *qin);
int (*flush_resources)(QXLInstance *qin);
};