[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v3 06/21] target-arm: Prepare model-specific
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH RFC v3 06/21] target-arm: Prepare model-specific class_init function |
Date: |
Tue, 07 Feb 2012 00:08:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111220 Thunderbird/9.0 |
Am 07.02.2012 00:03, schrieb Anthony Liguori:
> On 02/02/2012 08:59 PM, Andreas Färber wrote:
>> This allows to share initialization between CPU models.
>>
>> Signed-off-by: Andreas Färber<address@hidden>
>> ---
>> target-arm/cpu.c | 5 +++++
>> 1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/target-arm/cpu.c b/target-arm/cpu.c
>> index 43231c9..b794ec1 100644
>> --- a/target-arm/cpu.c
>> +++ b/target-arm/cpu.c
>> @@ -96,6 +96,7 @@ static void arm_cpu_reset(CPU *c)
>> typedef struct ARMCPUInfo {
>> const char *name;
>> uint32_t id;
>> + void (*class_init)(ARMCPUClass *klass, const struct ARMCPUInfo
>> *info);
>> } ARMCPUInfo;
>
> So could you do:
>
> TypeInfo arm_cpus[] = {
> {
> .name = "arm-cpu-model",
> .parent = TYPE_ARM_CPU,
> .class_data = (void *)(intptr_t)0x2342342,
> .class_init = arm_generic_init,
> }
>
> It's roughly the same code but then there isn't redirection. You can do
> this in general by having something like:
>
> .class_data = (SpecialInfo[]){ .id = 0x23423423 },
Have you reviewed the users of this? More fields are being added, and
the specific users of this facility initialize fields not shared by many
CPUs so I wanted to keep ARMCPUInfo small. The shared fields are already
being initialized by arm_cpu_class_init() via .class_data.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [PATCH RFC v3 00/21] Introduce QOM CPU and use it for ARM, Andreas Färber, 2012/02/02
- [Qemu-devel] [PATCH RFC v3 09/21] target-arm: No longer abort on unhandled CPUIDs on reset, Andreas Färber, 2012/02/02
- [Qemu-devel] [PATCH RFC v3 06/21] target-arm: Prepare model-specific class_init function, Andreas Färber, 2012/02/02
- [Qemu-devel] [PATCH RFC v3 04/21] target-arm: Introduce QOM CPU and use it for CPUID lookup, Andreas Färber, 2012/02/02
- [Qemu-devel] [PATCH RFC v3 17/21] target-arm: Store CLIDR in ARMCPUClass, Andreas Färber, 2012/02/02
- [Qemu-devel] [PATCH RFC v3 03/21] qom: Introduce CPU class, Andreas Färber, 2012/02/02
[Qemu-devel] [PATCH RFC v3 07/21] target-arm: Overwrite reset handler for ti925t, Andreas Färber, 2012/02/02
[Qemu-devel] [PATCH v3 01/21] qom: Register QOM infrastructure early, Andreas Färber, 2012/02/02