Am 13.03.2012 13:31, schrieb Igor Mitsyanko: > On 03/10/2012 08:53 PM, Andreas Färber wrote: >> diff --git a/target-arm/cpu.c b/target-arm/cpu.c >> new file mode 100644 >> index 0000000..dabc094 >> --- /dev/null >> +++ b/target-arm/cpu.c [...] >> +static void cpu_register(const ARMCPUInfo *info) >> +{ >> + TypeInfo type = { >> + .name = info->name, >> + .parent = TYPE_ARM_CPU, >> + .instance_size = sizeof(ARMCPU), >> + .class_size = sizeof(ARMCPUClass), >> + .class_init = arm_cpu_class_init, >> + .class_data = (void *)info, >> + }; > > Are non-initialized members guaranteed to be zero here?
I thought so for the C99-style struct initialization... I never ran into crashes while testing. Do we need static to be safe? >> + type_register_static(&type); >> +} >> + > > Probably should be type_register() here in case these two will actually > differ in the future. My thinking was we don't need it here because the data (esp. strings) are not dynamically allocated. By comparison, I used type_register() for -cpudef in target-i386, I believe. But I really guess it's a bug that they're just an alias right now! ;) > If this information is of any help, we've got no problems when emulating > ARM-based Exynos boards in QEMU with this whole patchset applied. Thanks a lot for testing! Have you thought about how to QOM'ify your boards? Mid-term I'd like to see an "exynos4210" object with the CPUs on it - maybe "cpu[0]" and "cpu[1]" child properties? Or "core[x]"? I had played with the sh7750 a bit on my branch but like the arm926 it's a single-core. Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg