From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tdalw-0004Pf-C1 for qemu-devel@nongnu.org; Wed, 28 Nov 2012 01:05:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tdalv-0004Gv-0M for qemu-devel@nongnu.org; Wed, 28 Nov 2012 01:05:24 -0500 Received: from [222.73.24.84] (port=35211 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tdalu-00041n-Mu for qemu-devel@nongnu.org; Wed, 28 Nov 2012 01:05:22 -0500 From: li guang In-Reply-To: <1352756342-13716-3-git-send-email-ehabkost@redhat.com> References: <1352756342-13716-1-git-send-email-ehabkost@redhat.com> <1352756342-13716-3-git-send-email-ehabkost@redhat.com> Date: Wed, 28 Nov 2012 14:02:48 +0800 Message-ID: <1354082568.655.0.camel@liguang.fnst.cn.fujitsu.com> Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Subject: Re: [Qemu-devel] [PATCH 02/17] target-i386: move cpu_x86_init() to cpu.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: Igor Mammedov , Don Slutz , qemu-devel@nongnu.org, Andreas =?ISO-8859-1?Q?F=E4rber?= =E5=9C=A8 2012-11-12=E4=B8=80=E7=9A=84 19:38 -0200=EF=BC=8CEduardo Habkost= =E5=86=99=E9=81=93=EF=BC=9A > Eventually all of the CPU init code will probably become just a simple > object_new() call, with some arch-independent function that handles the > CPU model string parsing. But right now we need to reorder and split > many of the steps invoved in the CPU model string parsing and CPU object > creation, and it will be easier to do that inside cpu.c, by now. >=20 > Also, make cpu_x86_register() static, as now it is only used inside > cpu.c. >=20 > Signed-off-by: Eduardo Habkost > --- > target-i386/cpu.c | 26 +++++++++++++++++++++++++- > target-i386/cpu.h | 1 - > target-i386/helper.c | 24 ------------------------ > 3 files changed, 25 insertions(+), 26 deletions(-) >=20 > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index fa8b5bd..b50ca8c 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -1423,7 +1423,7 @@ static void filter_features_for_kvm(X86CPU *cpu) > } > #endif > =20 > -int cpu_x86_register(X86CPU *cpu, const char *cpu_model) > +static int cpu_x86_register(X86CPU *cpu, const char *cpu_model) > { > CPUX86State *env =3D &cpu->env; > x86_def_t def1, *def =3D &def1; > @@ -1494,6 +1494,30 @@ int cpu_x86_register(X86CPU *cpu, const char *cpu_= model) > return 0; > } > =20 > +X86CPU *cpu_x86_init(const char *cpu_model) > +{ > + X86CPU *cpu; > + CPUX86State *env; > + Error *error =3D NULL; seems env unused anymore > + > + cpu =3D X86_CPU(object_new(TYPE_X86_CPU)); > + env =3D &cpu->env; > + env->cpu_model_str =3D cpu_model; > + > + if (cpu_x86_register(cpu, cpu_model) < 0) { > + object_delete(OBJECT(cpu)); > + return NULL; > + } > + > + x86_cpu_realize(OBJECT(cpu), &error); > + if (error) { > + error_free(error); > + object_delete(OBJECT(cpu)); > + return NULL; > + } > + return cpu; > +} > + > #if !defined(CONFIG_USER_ONLY) > =20 > void cpu_clear_apic_feature(CPUX86State *env) > diff --git a/target-i386/cpu.h b/target-i386/cpu.h > index cdc59dc..4d5510e 100644 > --- a/target-i386/cpu.h > +++ b/target-i386/cpu.h > @@ -956,7 +956,6 @@ int cpu_x86_signal_handler(int host_signum, void *pin= fo, > void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, > uint32_t *eax, uint32_t *ebx, > uint32_t *ecx, uint32_t *edx); > -int cpu_x86_register(X86CPU *cpu, const char *cpu_model); > void cpu_clear_apic_feature(CPUX86State *env); > void host_cpuid(uint32_t function, uint32_t count, > uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *e= dx); > diff --git a/target-i386/helper.c b/target-i386/helper.c > index bf206cf..47b53ed 100644 > --- a/target-i386/helper.c > +++ b/target-i386/helper.c > @@ -1240,30 +1240,6 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsi= gned int selector, > return 1; > } > =20 > -X86CPU *cpu_x86_init(const char *cpu_model) > -{ > - X86CPU *cpu; > - CPUX86State *env; > - Error *error =3D NULL; > - > - cpu =3D X86_CPU(object_new(TYPE_X86_CPU)); > - env =3D &cpu->env; > - env->cpu_model_str =3D cpu_model; > - > - if (cpu_x86_register(cpu, cpu_model) < 0) { > - object_delete(OBJECT(cpu)); > - return NULL; > - } > - > - x86_cpu_realize(OBJECT(cpu), &error); > - if (error) { > - error_free(error); > - object_delete(OBJECT(cpu)); > - return NULL; > - } > - return cpu; > -} > - > #if !defined(CONFIG_USER_ONLY) > void do_cpu_init(X86CPU *cpu) > { --=20 regards! li guang =20 linux kernel team at FNST, china thinking with brain but heart living with heart but brain