[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: all class init functions for all types in QEMU are called in select_
From: |
Claudio Fontana |
Subject: |
Re: all class init functions for all types in QEMU are called in select_machine(). Expected? |
Date: |
Fri, 12 Mar 2021 18:24:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
On 3/12/21 6:04 PM, Paolo Bonzini wrote:
> On 12/03/21 14:40, Claudio Fontana wrote:
>> /*
>> * double dispatch. The first callback allows the accel cpu
>> * to run initializations for the CPU,
>> * the second one allows the CPU to customize the accel cpu
>> * behavior according to the CPU.
>> *
>> * The second is currently only used by TCG, to specialize the
>> * TCGCPUOps depending on the CPU type.
>> */
>> cc->accel_cpu = accel_cpu;
>> if (accel_cpu->cpu_class_init) {
>> accel_cpu->cpu_class_init(cc);
>> }
>> if (cc->init_accel_cpu) {
>> cc->init_accel_cpu(accel_cpu, cc);
>> }
>> }
>>
>> .. but maybe this is premature, and should wait for actual users of this
>> beyond TCG on ARM?
>
> I prefer to single out TCG and have the call in cpu_class_init. The
> idea of double dispatch (as opposed to an if/else chain with checks on
> the class of the argument) is that the first caller uses different
> "method names" to tell its type name to the target.
>
> See for example
> https://en.wikipedia.org/wiki/Double_dispatch#Example_in_Ruby.
>
> Paolo
>
Ah, just saw this. I already sent the series, but we can rework and rethink
this.
Ciao, thanks,
Claudio
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, (continued)
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Philippe Mathieu-Daudé, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Claudio Fontana, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Claudio Fontana, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Claudio Fontana, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Claudio Fontana, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Claudio Fontana, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?,
Claudio Fontana <=
- Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12
Re: all class init functions for all types in QEMU are called in select_machine(). Expected?, Paolo Bonzini, 2021/03/12