From: Juan Quintela Date: Thu, 10 Sep 2009 01:04:31 +0000 (+0200) Subject: vmstate: Add pre_load() hook X-Git-Tag: v2.7.1~11525 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=fd4d52deab2b1e13c559fd8e4ed4d5eb515f30cb;p=mirror_qemu.git vmstate: Add pre_load() hook Signed-off-by: Juan Quintela Signed-off-by: Anthony Liguori --- diff --git a/hw/hw.h b/hw/hw.h index c85ce503b4..8e75a040a9 100644 --- a/hw/hw.h +++ b/hw/hw.h @@ -306,6 +306,7 @@ struct VMStateDescription { int minimum_version_id; int minimum_version_id_old; LoadStateHandler *load_state_old; + int (*pre_load)(void *opaque); int (*post_load)(void *opaque); VMStateField *fields; }; diff --git a/savevm.c b/savevm.c index 38f99468f8..8ae8d1627d 100644 --- a/savevm.c +++ b/savevm.c @@ -1028,6 +1028,11 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, if (version_id < vmsd->minimum_version_id) { return vmsd->load_state_old(f, opaque, version_id); } + if (vmsd->pre_load) { + int ret = vmsd->pre_load(opaque); + if (ret) + return ret; + } while(field->name) { if (field->version_id <= version_id) { void *base_addr = opaque + field->offset;