mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-27 13:30:52 +00:00
vmstate: Add pre/post_save() hooks
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
fd4d52deab
commit
8fb0791d30
2
hw/hw.h
2
hw/hw.h
@ -308,6 +308,8 @@ struct VMStateDescription {
|
||||
LoadStateHandler *load_state_old;
|
||||
int (*pre_load)(void *opaque);
|
||||
int (*post_load)(void *opaque);
|
||||
void (*pre_save)(const void *opaque);
|
||||
void (*post_save)(const void *opaque);
|
||||
VMStateField *fields;
|
||||
};
|
||||
|
||||
|
6
savevm.c
6
savevm.c
@ -1073,6 +1073,9 @@ void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,
|
||||
{
|
||||
VMStateField *field = vmsd->fields;
|
||||
|
||||
if (vmsd->pre_save) {
|
||||
vmsd->pre_save(opaque);
|
||||
}
|
||||
while(field->name) {
|
||||
const void *base_addr = opaque + field->offset;
|
||||
int i, n_elems = 1;
|
||||
@ -1096,6 +1099,9 @@ void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,
|
||||
}
|
||||
field++;
|
||||
}
|
||||
if (vmsd->post_save) {
|
||||
vmsd->post_save(opaque);
|
||||
}
|
||||
}
|
||||
|
||||
static int vmstate_load(QEMUFile *f, SaveStateEntry *se, int version_id)
|
||||
|
Loading…
Reference in New Issue
Block a user