From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UXZZA-00036s-7H for qemu-devel@nongnu.org; Wed, 01 May 2013 12:07:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UXZZ7-00087D-Me for qemu-devel@nongnu.org; Wed, 01 May 2013 12:07:36 -0400 Received: from cantor2.suse.de ([195.135.220.15]:32857 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UXZZ7-000876-G4 for qemu-devel@nongnu.org; Wed, 01 May 2013 12:07:33 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Wed, 1 May 2013 18:07:19 +0200 Message-Id: <1367424440-16687-4-git-send-email-afaerber@suse.de> In-Reply-To: <1367424440-16687-1-git-send-email-afaerber@suse.de> References: <1367424440-16687-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH qom-cpu for-1.5 3/4] target-i386: Emulate X86CPU subclasses for global properties List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: imammedo@redhat.com, =?UTF-8?q?Andreas=20F=C3=A4rber?= , ehabkost@redhat.com, anthony@codemonkey.ws, pbonzini@redhat.com After initializing the object from its x86_def_t and before setting any additional -cpu arguments, set any global properties for the designated subclass -{i386,x86_64}-cpu. Signed-off-by: Andreas F=C3=A4rber --- target-i386/cpu.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index bba41fe..8a9563b 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1626,6 +1626,7 @@ X86CPU *cpu_x86_create(const char *cpu_model, Devic= eState *icc_bridge, CPUX86State *env; gchar **model_pieces; char *name, *features; + char *typename; Error *error =3D NULL; =20 model_pieces =3D g_strsplit(cpu_model, ",", 2); @@ -1653,6 +1654,14 @@ X86CPU *cpu_x86_create(const char *cpu_model, Devi= ceState *icc_bridge, goto out; } =20 + /* Emulate per-model subclasses for global properties */ + typename =3D g_strdup_printf("%s-" TYPE_X86_CPU, name); + qdev_prop_set_custom_globals(DEVICE(cpu), typename, &error); + g_free(typename); + if (error) { + goto out; + } + cpu_x86_parse_featurestr(cpu, features, &error); if (error) { goto out; --=20 1.8.1.4