qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH next v2 37/74] arm_boot: Pass ARMCPU to do_cpu_r


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH next v2 37/74] arm_boot: Pass ARMCPU to do_cpu_reset()
Date: Thu, 10 May 2012 22:41:16 +0100

On 10 May 2012 01:14, Andreas Färber <address@hidden> wrote:
> Allows us to use cpu_reset() in place of cpu_state_reset().
>
> Signed-off-by: Andreas Färber <address@hidden>
> ---
>  hw/arm_boot.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/hw/arm_boot.c b/hw/arm_boot.c
> index 7447f5c..eb2d176 100644
> --- a/hw/arm_boot.c
> +++ b/hw/arm_boot.c
> @@ -274,10 +274,11 @@ static int load_dtb(target_phys_addr_t addr, const 
> struct arm_boot_info *binfo)
>
>  static void do_cpu_reset(void *opaque)
>  {
> -    CPUARMState *env = opaque;
> +    ARMCPU *cpu = opaque;
> +    CPUARMState *env = &cpu->env;
>     const struct arm_boot_info *info = env->boot_info;
>
> -    cpu_state_reset(env);
> +    cpu_reset(CPU(cpu));

(Sadface for QOM method invocation requiring the explicit cast to
base class...)

>     if (info) {
>         if (!info->is_linux) {
>             /* Jump to the entry point.  */
> @@ -302,6 +303,7 @@ static void do_cpu_reset(void *opaque)
>
>  void arm_load_kernel(CPUARMState *env, struct arm_boot_info *info)
>  {
> +    ARMCPU *cpu;
>     int kernel_size;
>     int initrd_size;
>     int n;

This variable could be kept in the more limited scope inside
the for loop below, right?

> @@ -406,7 +408,8 @@ void arm_load_kernel(CPUARMState *env, struct 
> arm_boot_info *info)
>     info->is_linux = is_linux;
>
>     for (; env; env = env->next_cpu) {
> +        cpu = arm_env_get_cpu(env);
>         env->boot_info = info;
> -        qemu_register_reset(do_cpu_reset, env);
> +        qemu_register_reset(do_cpu_reset, cpu);
>     }
>  }
> --
> 1.7.7
>
>


-- PMM



reply via email to

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