From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41489) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S6PYU-0006I4-7W for qemu-devel@nongnu.org; Sat, 10 Mar 2012 11:54:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S6PYS-0001P4-Hi for qemu-devel@nongnu.org; Sat, 10 Mar 2012 11:54:05 -0500 Received: from cantor2.suse.de ([195.135.220.15]:42627 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S6PYS-0001OZ-AU for qemu-devel@nongnu.org; Sat, 10 Mar 2012 11:54:04 -0500 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sat, 10 Mar 2012 17:53:40 +0100 Message-Id: <1331398436-20761-5-git-send-email-afaerber@suse.de> In-Reply-To: <1331398436-20761-1-git-send-email-afaerber@suse.de> References: <1330893156-26569-1-git-send-email-afaerber@suse.de> <1331398436-20761-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 RFC v4 04/20] target-arm: Prepare model-specific class_init function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Paul Brook This allows to share initialization between CPU models. Signed-off-by: Andreas F=C3=A4rber --- target-arm/cpu.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 00b7ecc..1e34cba 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -102,6 +102,7 @@ static void arm_cpu_reset(CPUState *c) typedef struct ARMCPUInfo { const char *name; uint32_t id; + void (*class_init)(ARMCPUClass *klass, const struct ARMCPUInfo *info= ); } ARMCPUInfo; =20 static const ARMCPUInfo arm_cpus[] =3D { @@ -237,6 +238,10 @@ static void arm_cpu_class_init(ObjectClass *klass, v= oid *data) cpu_class->reset =3D arm_cpu_reset; =20 k->cp15.c0_cpuid =3D info->id; + + if (info->class_init !=3D NULL) { + (*info->class_init)(k, info); + } } =20 static void cpu_register(const ARMCPUInfo *info) --=20 1.7.7