From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com,
gleb@redhat.com, vijaymohan.pandarathil@hp.com,
jan.kiszka@siemens.com, mtosatti@redhat.com,
mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com, avi@redhat.com,
pbonzini@redhat.com, akong@redhat.com, lersek@redhat.com,
afaerber@suse.de
Subject: [Qemu-devel] [RFC 09/13] kill cpu_x86_register()
Date: Thu, 16 Aug 2012 13:59:08 -0300 [thread overview]
Message-ID: <1345136352-10756-10-git-send-email-ehabkost@redhat.com> (raw)
In-Reply-To: <1345136352-10756-1-git-send-email-ehabkost@redhat.com>
Merge it with cpu_x86_create().
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
target-i386/cpu.c | 42 ++++++++++++++++++------------------------
target-i386/cpu.h | 1 -
2 files changed, 18 insertions(+), 25 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index c48de43..e7f32fc 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1499,57 +1499,51 @@ CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
return cpu_list;
}
-int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
+X86CPU *cpu_x86_create(const char *cpu_model)
{
+ X86CPU *cpu;
+ CPUX86State *env;
X86CPUDefinition def1, *def = &def1;
Error *error = NULL;
QDict *features = NULL;
char *name = NULL;
+ cpu = X86_CPU(object_new(TYPE_X86_CPU));
+ env = &cpu->env;
+ env->cpu_model_str = cpu_model;
+
/* for CPU subclasses should go into cpu_x86_init() before object_new() */
compat_normalize_cpu_model(cpu_model, &name, &features, &error);
if (error_is_set(&error)) {
- goto out;
+ goto error;
}
/* this block should be replaced by CPU subclasses */
memset(def, 0, sizeof(*def));
if (cpu_x86_find_by_name(cpu, def, name, &error) < 0) {
- goto out;
+ goto error;
}
cpudef_2_x86_cpu(cpu, def, &error);
/* for CPU subclasses should go between object_new() and
* x86_cpu_realize() */
cpu_x86_set_props(cpu, features, &error);
-
-out:
- QDECREF(features);
- g_free(name);
if (error_is_set(&error)) {
- fprintf(stderr, "%s\n", error_get_pretty(error));
- error_free(error);
- return -1;
- }
- return 0;
-}
-
-X86CPU *cpu_x86_create(const char *cpu_model)
-{
- X86CPU *cpu;
- CPUX86State *env;
-
- cpu = X86_CPU(object_new(TYPE_X86_CPU));
- env = &cpu->env;
- env->cpu_model_str = cpu_model;
-
- if (cpu_x86_register(cpu, cpu_model) < 0) {
goto error;
}
+ QDECREF(features);
+ g_free(name);
+
x86_cpu_realize(OBJECT(cpu), NULL);
return cpu;
error:
+ QDECREF(features);
+ g_free(name);
+ if (error_is_set(&error)) {
+ fprintf(stderr, "%s\n", error_get_pretty(error));
+ error_free(error);
+ }
object_delete(OBJECT(cpu));
return NULL;
}
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 6f48ba8..f2ee814 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -925,7 +925,6 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
uint32_t *eax, uint32_t *ebx,
uint32_t *ecx, uint32_t *edx);
X86CPU *cpu_x86_create(const char *cpu_model);
-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 *edx);
--
1.7.11.2
next prev parent reply other threads:[~2012-08-16 18:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-16 16:58 [Qemu-devel] [RFC 00/13] CPU init cleanup + CPU model classes (v2) Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 01/13] target-i386/cpu.c: coding style fixes Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 02/13] x86_cpudef_setup: coding style change Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 03/13] i386: x86_def_t: rename 'flags' field Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 04/13] move CPU x86 object creation to cpu.c Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 05/13] rename x86_def_t to X86CPUDefinition Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 06/13] move X86CPUDefinition to cpu-qom.h Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 07/13] cpu_x86_create: move error handling to end of function Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 08/13] cpu_x86_register: always initialize 'name' and 'features' Eduardo Habkost
2012-08-16 16:59 ` Eduardo Habkost [this message]
2012-08-16 16:59 ` [Qemu-devel] [RFC 10/13] cpu_x86_create: reorder parsing of CPU model string and creation of CPU object Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 11/13] check for NULL cpu_model outside cpu_x86_find_by_name Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 12/13] register a class for each CPU model (v2) Eduardo Habkost
2012-08-16 16:59 ` [Qemu-devel] [RFC 13/13] HACK to initialize types later Eduardo Habkost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1345136352-10756-10-git-send-email-ehabkost@redhat.com \
--to=ehabkost@redhat.com \
--cc=afaerber@suse.de \
--cc=akong@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=gleb@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=lersek@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.com \
--cc=vijaymohan.pandarathil@hp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).