mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
target-i386: QOM'ify CPU
Embed CPUX86State as first member of X86CPU. Distinguish between "x86_64-cpu" and "i386-cpu". Drop cpu_x86_close() in favor of calling object_delete() directly. For now let CPUClass::reset() call cpu_state_reset(). Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
30471bc94e
commit
5fd2087a1b
4 changed files with 118 additions and 8 deletions
|
@ -101,11 +101,6 @@ void cpu_state_reset(CPUX86State *env)
|
|||
cpu_watchpoint_remove_all(env, BP_CPU);
|
||||
}
|
||||
|
||||
void cpu_x86_close(CPUX86State *env)
|
||||
{
|
||||
g_free(env);
|
||||
}
|
||||
|
||||
static void cpu_x86_version(CPUX86State *env, int *family, int *model)
|
||||
{
|
||||
int cpuver = env->cpuid_version;
|
||||
|
@ -1248,10 +1243,12 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsigned int selector,
|
|||
|
||||
CPUX86State *cpu_x86_init(const char *cpu_model)
|
||||
{
|
||||
X86CPU *cpu;
|
||||
CPUX86State *env;
|
||||
static int inited;
|
||||
|
||||
env = g_malloc0(sizeof(CPUX86State));
|
||||
cpu = X86_CPU(object_new(TYPE_X86_CPU));
|
||||
env = &cpu->env;
|
||||
cpu_exec_init(env);
|
||||
env->cpu_model_str = cpu_model;
|
||||
|
||||
|
@ -1265,7 +1262,7 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
|
|||
#endif
|
||||
}
|
||||
if (cpu_x86_register(env, cpu_model) < 0) {
|
||||
cpu_x86_close(env);
|
||||
object_delete(OBJECT(cpu));
|
||||
return NULL;
|
||||
}
|
||||
env->cpuid_apic_id = env->cpu_index;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue