[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 5/6] target-i386: move reset callback to cpu
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH RFC 5/6] target-i386: move reset callback to cpu.c |
Date: |
Tue, 17 Apr 2012 13:56:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120312 Thunderbird/11.0 |
Am 17.04.2012 13:40, schrieb Igor Mammedov:
> ----- Original Message -----
>> From: "Jan Kiszka" <address@hidden>
>> To: "Igor Mammedov" <address@hidden>
>> Cc: address@hidden, address@hidden, address@hidden, address@hidden
>> Sent: Tuesday, April 17, 2012 1:28:45 PM
>> Subject: Re: [PATCH RFC 5/6] target-i386: move reset callback to cpu.c
>>
>> On 2012-04-17 01:37, Igor Mammedov wrote:
>>> From: Igor Mammedov <address@hidden>
>>>
>>> Signed-off-by: Igor Mammedov <address@hidden>
>>> ---
>>> hw/pc.c | 8 --------
>>> target-i386/cpu.c | 8 ++++++++
>>> 2 files changed, 8 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/hw/pc.c b/hw/pc.c
>>> index db381ab..157327a 100644
>>> --- a/hw/pc.c
>>> +++ b/hw/pc.c
>>> @@ -887,13 +887,6 @@ void pc_acpi_smi_interrupt(void *opaque, int
>>> irq, int level)
>>> }
>>> }
>>>
>>> -static void pc_cpu_reset(void *opaque)
>>> -{
>>> - CPUX86State *env = opaque;
>>> -
>>> - cpu_state_reset(env);
>>> -}
>>> -
>>> void pc_cpus_init(const char *cpu_model)
>>> {
>>> CPUX86State *env;
>>> @@ -904,7 +897,6 @@ void pc_cpus_init(const char *cpu_model)
>>> if (!env) {
>>> exit(1);
>>> }
>>> - qemu_register_reset(pc_cpu_reset, env);
>>> }
>>> }
>>>
>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>> index e4dcf52..d92ec58 100644
>>> --- a/target-i386/cpu.c
>>> +++ b/target-i386/cpu.c
>>> @@ -1456,6 +1456,13 @@ static void x86_cpu_reset(CPUState *s)
>>> env->halted = !(cpu_get_apic_base(env->apic_state) &
>>> MSR_IA32_APICBASE_BSP);
>>> }
>>>
>>> +static void pc_cpu_reset(void *opaque)
>>> +{
>>> + CPUX86State *env = opaque;
>>> +
>>> + cpu_reset(ENV_GET_CPU(env));
>>> +}
>>> +
>>
>> I'm not fully familiar with QOM for CPUs, but can't we avoid this
>> wrapper completely and just register cpu_reset directly?
>
> I'd like to do so, but qemu_register_reset requires QEMUResetHandler * as
> first
> arg. I could just cast cpu_reset to it and be done with it, but not I'm
> sure people will like it.
Please don't, especially not with CPU*State, cf. the cpu_state_reset()
commit.
But I'd suggest to rename it to x86_cpu_machine_reset if in cpu.c and to
pass the X86CPU as opaque.
> We probably could get rid of it in the future when/if reset is implemented on
> QOM hierarchy. Then we just reset /machine and it propagates to children.
> and there won't be need in qemu_register_reset hack here.
Affirmative.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
Re: [Qemu-devel] [PATCH RFC 0/6] target-i386: use realize for cpu initialization, Andreas Färber, 2012/04/17