qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] [PATCH qom-cpu v3 4/6] cpu: Introduce cpu_class_set_vmsd()
       [not found]   ` <20130226193203.GC32578@otherpad.lan.raisama.net>
@ 2013-03-05 17:10     ` Andreas Färber
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Färber @ 2013-03-05 17:10 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: qemu-devel, quintela

Am 26.02.2013 20:32, schrieb Eduardo Habkost:
> On Mon, Feb 25, 2013 at 07:22:48PM +0100, Andreas Färber wrote:
>> This setter avoids redefining each VMStateDescription value to
>> vmstate_dummy by not referencing the value for CONFIG_USER_ONLY.
>>
>> Suggested-by: Juan Quintela <quintela@redhat.com>
>> Signed-off-by: Andreas Färber <afaerber@suse.de>
>> ---
>>  include/qom/cpu.h |   17 +++++++++++++++++
>>  1 Datei geändert, 17 Zeilen hinzugefügt(+)
>>
>> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
>> index 1106e39..65e24d3 100644
>> --- a/include/qom/cpu.h
>> +++ b/include/qom/cpu.h
>> @@ -135,6 +135,23 @@ void cpu_reset(CPUState *cpu);
>>  ObjectClass *cpu_class_by_name(const char *typename, const char *cpu_model);
>>  
>>  /**
>> + * cpu_class_set_vmsd:
>> + * @cc: CPU class
>> + * @value: Value to set.
>> + *
>> + * Sets #VMStateDescription for @cc.
>> + */
>> +#ifndef CONFIG_USER_ONLY
>> +static inline void cpu_class_set_vmsd(CPUClass *cc,
>> +                                      const struct VMStateDescription *value)
>> +{
>> +    cc->vmsd = value;
>> +}
>> +#else
>> +#define cpu_class_set_vmsd(cpu, val) ((cpu)->vmsd = NULL)
> 
> Even after reading the description above, I was going to ask you why
> this was not an inline function as well. But then I read patch 5/6 and
> understood why.  :-)
> 
> I would add a coment here noting that "val" is actually expected to be
> never evaluated when CONFIG_USER_ONLY is defined.

Done. I also renamed the arguments to match those of the function.

> 
> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

Thanks,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH qom-cpu v3 0/6] QOM CPUState VMStateDescriptions
       [not found] <1361816570-8707-1-git-send-email-afaerber@suse.de>
       [not found] ` <1361816570-8707-5-git-send-email-afaerber@suse.de>
@ 2013-03-05 18:21 ` Andreas Färber
       [not found] ` <1361816570-8707-7-git-send-email-afaerber@suse.de>
  2 siblings, 0 replies; 3+ messages in thread
From: Andreas Färber @ 2013-03-05 18:21 UTC (permalink / raw)
  To: Juan Quintela, Michael Walle
  Cc: Jia Liu, Michael Roth, qemu-devel, Blue Swirl, Anthony Liguori,
	Igor Mammedov, Richard Henderson, ehabkost

Am 25.02.2013 19:22, schrieb Andreas Färber:
> Andreas Färber (6):
>   vmstate: Make vmstate_register() static inline
>   stubs: Add a vmstate_dummy struct for CONFIG_USER_ONLY
>   cpu: Register VMStateDescription through CPUState
>   cpu: Introduce cpu_class_set_vmsd()
>   target-i386: Update VMStateDescription to X86CPU

Applied these to qom-cpu (with change suggested by Eduardo):
https://github.com/afaerber/qemu-cpu/commits/qom-cpu

>   target-lm32: Update VMStateDescription to LM32CPU

Juan/Michael, could you take a look at this one?

Thanks,
Andreas

> 
>  exec.c                      |   11 ++-
>  include/migration/vmstate.h |   16 +++-
>  include/qom/cpu.h           |   20 ++++
>  savevm.c                    |    7 --
>  stubs/vmstate.c             |    2 +
>  target-i386/cpu-qom.h       |    4 +
>  target-i386/cpu.c           |    2 +
>  target-i386/cpu.h           |    2 -
>  target-i386/machine.c       |  215 +++++++++++++++++++++----------------------
>  target-lm32/cpu-qom.h       |    4 +
>  target-lm32/cpu.c           |    2 +
>  target-lm32/cpu.h           |    2 -
>  target-lm32/machine.c       |   25 ++---
>  13 Dateien geändert, 177 Zeilen hinzugefügt(+), 135 Zeilen entfernt(-)

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH qom-cpu v3 6/6] target-lm32: Update VMStateDescription to LM32CPU
       [not found] ` <1361816570-8707-7-git-send-email-afaerber@suse.de>
@ 2013-03-05 23:48   ` Michael Walle
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Walle @ 2013-03-05 23:48 UTC (permalink / raw)
  To: Andreas Färber; +Cc: qemu-devel, ehabkost, quintela

Am Montag 25 Februar 2013, 19:22:50 schrieb Andreas Färber:
> Add a vmstate_lm32_cpu referencing the previous VMStateDescription as a
> sub-struct and hook it up to CPUClass::vmsd. Drop cpu_{save,load}().
> 
> Signed-off-by: Andreas Färber <afaerber@suse.de>

Acked-by: Michael Walle <michael@walle.cc>

> ---
>  target-lm32/cpu-qom.h |    4 ++++
>  target-lm32/cpu.c     |    2 ++
>  target-lm32/cpu.h     |    2 --
>  target-lm32/machine.c |   25 +++++++++++++------------
>  4 Dateien geändert, 19 Zeilen hinzugefügt(+), 14 Zeilen entfernt(-)
> 
> diff --git a/target-lm32/cpu-qom.h b/target-lm32/cpu-qom.h
> index c0b6ce5..e00cca6 100644
> --- a/target-lm32/cpu-qom.h
> +++ b/target-lm32/cpu-qom.h
> @@ -71,4 +71,8 @@ static inline LM32CPU *lm32_env_get_cpu(CPULM32State
> *env)
> 
>  #define ENV_OFFSET offsetof(LM32CPU, env)
> 
> +#ifndef CONFIG_USER_ONLY
> +extern const struct VMStateDescription vmstate_lm32_cpu;
> +#endif
> +
>  #endif
> diff --git a/target-lm32/cpu.c b/target-lm32/cpu.c
> index a2badb5..3199102 100644
> --- a/target-lm32/cpu.c
> +++ b/target-lm32/cpu.c
> @@ -83,6 +83,8 @@ static void lm32_cpu_class_init(ObjectClass *oc, void
> *data)
> 
>      lcc->parent_reset = cc->reset;
>      cc->reset = lm32_cpu_reset;
> +
> +    cpu_class_set_vmsd(cc, &vmstate_lm32_cpu);
>  }
> 
>  static const TypeInfo lm32_cpu_type_info = {
> diff --git a/target-lm32/cpu.h b/target-lm32/cpu.h
> index 6948d0e..e0bbe04 100644
> --- a/target-lm32/cpu.h
> +++ b/target-lm32/cpu.h
> @@ -212,8 +212,6 @@ static inline CPULM32State *cpu_init(const char
> *cpu_model) #define cpu_gen_code cpu_lm32_gen_code
>  #define cpu_signal_handler cpu_lm32_signal_handler
> 
> -#define CPU_SAVE_VERSION 1
> -
>  int cpu_lm32_handle_mmu_fault(CPULM32State *env, target_ulong address, int
> rw, int mmu_idx);
>  #define cpu_handle_mmu_fault cpu_lm32_handle_mmu_fault
> diff --git a/target-lm32/machine.c b/target-lm32/machine.c
> index 6802e81..9e0919c 100644
> --- a/target-lm32/machine.c
> +++ b/target-lm32/machine.c
> @@ -1,9 +1,9 @@
>  #include "hw/hw.h"
>  #include "hw/boards.h"
> 
> -static const VMStateDescription vmstate_cpu = {
> -    .name = "cpu",
> -    .version_id = CPU_SAVE_VERSION,
> +static const VMStateDescription vmstate_env = {
> +    .name = "env",
> +    .version_id = 1,
>      .minimum_version_id = 1,
>      .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
> @@ -22,12 +22,13 @@ static const VMStateDescription vmstate_cpu = {
>      }
>  };
> 
> -void cpu_save(QEMUFile *f, void *opaque)
> -{
> -    vmstate_save_state(f, &vmstate_cpu, opaque);
> -}
> -
> -int cpu_load(QEMUFile *f, void *opaque, int version_id)
> -{
> -    return vmstate_load_state(f, &vmstate_cpu, opaque, version_id);
> -}
> +const VMStateDescription vmstate_lm32_cpu = {
> +    .name = "cpu",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .minimum_version_id_old = 1,
> +    .fields      = (VMStateField[]) {
> +        VMSTATE_STRUCT(env, LM32CPU, 1, vmstate_env, CPULM32State),
> +        VMSTATE_END_OF_LIST()
> +    }
> +};

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-03-05 23:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1361816570-8707-1-git-send-email-afaerber@suse.de>
     [not found] ` <1361816570-8707-5-git-send-email-afaerber@suse.de>
     [not found]   ` <20130226193203.GC32578@otherpad.lan.raisama.net>
2013-03-05 17:10     ` [Qemu-devel] [PATCH qom-cpu v3 4/6] cpu: Introduce cpu_class_set_vmsd() Andreas Färber
2013-03-05 18:21 ` [Qemu-devel] [PATCH qom-cpu v3 0/6] QOM CPUState VMStateDescriptions Andreas Färber
     [not found] ` <1361816570-8707-7-git-send-email-afaerber@suse.de>
2013-03-05 23:48   ` [Qemu-devel] [PATCH qom-cpu v3 6/6] target-lm32: Update VMStateDescription to LM32CPU Michael Walle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).