migration: Add qemu_loadvm_load_state_buffer() and its handler

qemu_loadvm_load_state_buffer() and its load_state_buffer
SaveVMHandler allow providing device state buffer to explicitly
specified device via its idstr and instance id.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Link: https://lore.kernel.org/qemu-devel/71ca753286b87831ced4afd422e2e2bed071af25.1741124640.git.maciej.szmigiero@oracle.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
Maciej S. Szmigiero 2025-03-04 23:03:33 +01:00 committed by Cédric Le Goater
parent 4e55cb3cde
commit a30363db08
3 changed files with 41 additions and 0 deletions

View file

@ -229,6 +229,21 @@ typedef struct SaveVMHandlers {
*/
int (*load_state)(QEMUFile *f, void *opaque, int version_id);
/**
* @load_state_buffer (invoked outside the BQL)
*
* Load device state buffer provided to qemu_loadvm_load_state_buffer().
*
* @opaque: data pointer passed to register_savevm_live()
* @buf: the data buffer to load
* @len: the data length in buffer
* @errp: pointer to Error*, to store an error if it happens.
*
* Returns true to indicate success and false for errors.
*/
bool (*load_state_buffer)(void *opaque, char *buf, size_t len,
Error **errp);
/**
* @load_setup
*