From fd4d52deab2b1e13c559fd8e4ed4d5eb515f30cb Mon Sep 17 00:00:00 2001 From: Juan Quintela Date: Thu, 10 Sep 2009 03:04:31 +0200 Subject: [PATCH] vmstate: Add pre_load() hook Signed-off-by: Juan Quintela Signed-off-by: Anthony Liguori --- hw/hw.h | 1 + savevm.c | 5 +++++ 2 files changed, 6 insertions(+) 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; -- GitLab