mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
s390x: vmstatify config migration for virtio-ccw
Let's vmstatify virtio_ccw_save_config and virtio_ccw_load_config for flexibility (extending using subsections) and for fun. To achieve this we need to hack the config_vector, which is VirtIODevice (that is common virtio) state, in the middle of the VirtioCcwDevice state representation. This is somewhat ugly, but we have no choice because the stream format needs to be preserved. Almost no changes in behavior. Exception is everything that comes with vmstate like extra bookkeeping about what's in the stream, and maybe some extra checks and better error reporting. Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-Id: <20170703213414.94298-1-pasic@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
2185c93ba8
commit
517ff12c7d
7 changed files with 358 additions and 237 deletions
|
@ -17,6 +17,7 @@
|
|||
#include "trace.h"
|
||||
#include "hw/qdev.h"
|
||||
#include "qapi/error.h"
|
||||
#include "hw/s390x/s390-virtio-ccw.h"
|
||||
|
||||
S390FLICState *s390_get_flic(void)
|
||||
{
|
||||
|
@ -136,3 +137,30 @@ static void qemu_s390_flic_register_types(void)
|
|||
}
|
||||
|
||||
type_init(qemu_s390_flic_register_types)
|
||||
|
||||
const VMStateDescription vmstate_adapter_info = {
|
||||
.name = "s390_adapter_info",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT64(ind_offset, AdapterInfo),
|
||||
/*
|
||||
* We do not have to migrate neither the id nor the addresses.
|
||||
* The id is set by css_register_io_adapter and the addresses
|
||||
* are set based on the IndAddr objects after those get mapped.
|
||||
*/
|
||||
VMSTATE_END_OF_LIST()
|
||||
},
|
||||
};
|
||||
|
||||
const VMStateDescription vmstate_adapter_routes = {
|
||||
|
||||
.name = "s390_adapter_routes",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_STRUCT(adapter, AdapterRoutes, 1, vmstate_adapter_info,
|
||||
AdapterInfo),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue