qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/2] target-mips: replace cpu_save/cpu_load with


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 1/2] target-mips: replace cpu_save/cpu_load with VMStateDescription
Date: Wed, 18 Feb 2015 17:59:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

Hi Leon,

Am 18.02.2015 um 15:51 schrieb Leon Alrae:
> Create VMStateDescription for MIPS CPU. The new structure contains exactly the
> same fields as before, therefore leaving existing version_id.
> 
> Signed-off-by: Leon Alrae <address@hidden>
> ---
>  target-mips/cpu-qom.h |   4 +
>  target-mips/cpu.c     |   1 +
>  target-mips/cpu.h     |   2 -
>  target-mips/machine.c | 567 
> ++++++++++++++++++++++----------------------------
>  4 files changed, 257 insertions(+), 317 deletions(-)
[...]
> diff --git a/target-mips/cpu.c b/target-mips/cpu.c
> index 98dc94e..cbdc463 100644
> --- a/target-mips/cpu.c
> +++ b/target-mips/cpu.c
> @@ -148,6 +148,7 @@ static void mips_cpu_class_init(ObjectClass *c, void 
> *data)
>      cc->do_unassigned_access = mips_cpu_unassigned_access;
>      cc->do_unaligned_access = mips_cpu_do_unaligned_access;
>      cc->get_phys_page_debug = mips_cpu_get_phys_page_debug;
> +    dc->vmsd = &vmstate_mips_cpu;

This looks wrong. There's two ways to do a CPU VMSD, 1) via dc->vmsd,
and 2) via cc->vmsd. When going for the new dc->vmsd, the common CPU
state would need to be referenced from vmstate_mips_cpu below. Doing so
would break backwards compatibility, so you probably want cc->vmsd,
causing a separate VMSD for the common parts to be registered.

Regards,
Andreas

>  #endif
>  
>      cc->gdb_num_core_regs = 73;
[...]
> diff --git a/target-mips/machine.c b/target-mips/machine.c
> index 6c76dfb..8d75962 100644
> --- a/target-mips/machine.c
> +++ b/target-mips/machine.c
> @@ -1,341 +1,278 @@
[...]
> +const VMStateDescription vmstate_mips_cpu = {
> +    .name = "cpu",
> +    .version_id = 5,
> +    .minimum_version_id = 5,
> +    .fields = (VMStateField[]) {
> +        /* active TC */
> +        VMSTATE_STRUCT(env.active_tc, MIPSCPU, 1, vmstate_tc, TCState),
> +
[snip]

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu,
Graham Norton; HRB 21284 (AG Nürnberg)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]