Igor Mammedov <[email protected]> wrote:
>
> +#define VMSTATE_CPU_STATUS_ARRAY(_field, _state)
> \
> + {
> \
> + .name = (stringify(_field)),
> \
> + .version_id = 0,
> \
this line should be:
.version_id = 4,
> + .num = PIIX4_PROC_LEN,
> \
> + .info = &vmstate_info_uint8,
> \
> + .size = sizeof(uint8_t),
> \
> + .flags = VMS_ARRAY,
> \
> + .offset = vmstate_offset_array(_state, _field, uint8_t,
> \
> + PIIX4_PROC_LEN),
> \
> + }
> +
> /* qemu-kvm 1.2 uses version 3 but advertised as 2
> * To support incoming qemu-kvm 1.2 migration, change version_id
> * and minimum_version_id to 2 below (which breaks migration from
> @@ -265,7 +289,7 @@ static int acpi_load_old(QEMUFile *f, void *opaque, int
> version_id)
> */
> static const VMStateDescription vmstate_acpi = {
> .name = "piix4_pm",
> - .version_id = 3,
> + .version_id = 4,
> .minimum_version_id = 3,
> .minimum_version_id_old = 1,
> .load_state_old = acpi_load_old,
> @@ -281,6 +305,7 @@ static const VMStateDescription vmstate_acpi = {
> VMSTATE_STRUCT(ar.gpe, PIIX4PMState, 2, vmstate_gpe, ACPIGPE),
> VMSTATE_STRUCT(pci0_status, PIIX4PMState, 2, vmstate_pci_status,
> struct pci_status),
> + VMSTATE_CPU_STATUS_ARRAY(gpe_cpu.sts, PIIX4PMState),
It is more, I think that simply:
VMSTATE_UINT8_ARRAY_V(gpu_cpu.sts, PIIX4PMstate, PIIX4_PROC_LEN, 4);
Should do the trick without the previous blob (it was needed for the old
version because we have a uint32 data but we send a uint16 one).
Could you check? I don't have an easy way to test that it "receives"
the right value.
Later, Juan.
> VMSTATE_END_OF_LIST()
> }
> };
> @@ -585,6 +610,85 @@ static const MemoryRegionOps piix4_pci_ops = {