From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36673) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkzaQ-0002d0-Td for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:00:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TkzaM-0005fe-Io for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:00:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:15710) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkzaM-0005eW-Aq for qemu-devel@nongnu.org; Tue, 18 Dec 2012 11:00:02 -0500 Date: Tue, 18 Dec 2012 16:59:52 +0100 From: Igor Mammedov Message-ID: <20121218165952.41188eae@nial.usersys.redhat.com> In-Reply-To: <1355817223-13076-2-git-send-email-afaerber@suse.de> References: <1355817223-13076-1-git-send-email-afaerber@suse.de> <1355817223-13076-2-git-send-email-afaerber@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH qom-cpu 1/4] cpu: Introduce CPUListState struct List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andreas =?ISO-8859-1?B?RuRyYmVy?= Cc: Peter Maydell , Richard Henderson , qemu-devel@nongnu.org, David Gibson , Paul Brook On Tue, 18 Dec 2012 08:53:40 +0100 Andreas F=E4rber wrote: > This generalizes {ARM,M68k,Alpha}CPUListState to avoid declaring it for > each target. >=20 > Signed-off-by: Andreas F=E4rber > --- > include/qemu/cpu.h | 12 ++++++++++++ > target-alpha/cpu.c | 9 ++------- > target-arm/helper.c | 9 ++------- > target-m68k/helper.c | 9 ++------- > 4 Dateien ge=E4ndert, 18 Zeilen hinzugef=FCgt(+), 21 Zeilen entfernt(-) >=20 Could we use cpus.h for CPUListState? It has related list_cpus() and it doesn't included in any headers yet. And we won't pollute base CPU qom definition with utility structures. > diff --git a/include/qemu/cpu.h b/include/qemu/cpu.h > index 61b7698..5fbb3f9 100644 > --- a/include/qemu/cpu.h > +++ b/include/qemu/cpu.h > @@ -21,6 +21,7 @@ > #define QEMU_CPU_H > =20 > #include "qemu/object.h" > +#include "qemu-common.h" > #include "qemu-thread.h" > =20 > /** > @@ -80,6 +81,17 @@ struct CPUState { > /* TODO Move common fields from CPUArchState here. */ > }; > =20 > +/** > + * CPUListState: > + * @cpu_fprintf: Print function. > + * @file: File to print to using @cpu_fprint. > + * > + * State commonly used for iterating over CPU models. > + */ > +typedef struct CPUListState { > + fprintf_function cpu_fprintf; > + FILE *file; > +} CPUListState; > =20 > /** > * cpu_reset: > diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c > index d065085..915278f 100644 > --- a/target-alpha/cpu.c > +++ b/target-alpha/cpu.c > @@ -33,11 +33,6 @@ static void alpha_cpu_realize(Object *obj, Error **err) > #endif > } > =20 > -typedef struct AlphaCPUListState { > - fprintf_function cpu_fprintf; > - FILE *file; > -} AlphaCPUListState; > - > /* Sort alphabetically by type name. */ > static gint alpha_cpu_list_compare(gconstpointer a, gconstpointer b) > { > @@ -53,7 +48,7 @@ static gint alpha_cpu_list_compare(gconstpointer a, > gconstpointer b) static void alpha_cpu_list_entry(gpointer data, gpointer Perhaps *cpu_list_entry() could be generalized too, they all look alike. > user_data) { > ObjectClass *oc =3D data; > - AlphaCPUListState *s =3D user_data; > + CPUListState *s =3D user_data; > =20 > (*s->cpu_fprintf)(s->file, " %s\n", > object_class_get_name(oc)); > @@ -61,7 +56,7 @@ static void alpha_cpu_list_entry(gpointer data, gpointer > user_data)=20 > void alpha_cpu_list(FILE *f, fprintf_function cpu_fprintf) > { > - AlphaCPUListState s =3D { > + CPUListState s =3D { > .file =3D f, > .cpu_fprintf =3D cpu_fprintf, > }; > diff --git a/target-arm/helper.c b/target-arm/helper.c > index ab8b734..d2f2fb4 100644 > --- a/target-arm/helper.c > +++ b/target-arm/helper.c > @@ -1291,11 +1291,6 @@ ARMCPU *cpu_arm_init(const char *cpu_model) > return cpu; > } > =20 > -typedef struct ARMCPUListState { > - fprintf_function cpu_fprintf; > - FILE *file; > -} ARMCPUListState; > - > /* Sort alphabetically by type name, except for "any". */ > static gint arm_cpu_list_compare(gconstpointer a, gconstpointer b) > { > @@ -1317,7 +1312,7 @@ static gint arm_cpu_list_compare(gconstpointer a, > gconstpointer b) static void arm_cpu_list_entry(gpointer data, gpointer > user_data) { > ObjectClass *oc =3D data; > - ARMCPUListState *s =3D user_data; > + CPUListState *s =3D user_data; > =20 > (*s->cpu_fprintf)(s->file, " %s\n", > object_class_get_name(oc)); > @@ -1325,7 +1320,7 @@ static void arm_cpu_list_entry(gpointer data, > gpointer user_data)=20 > void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf) > { > - ARMCPUListState s =3D { > + CPUListState s =3D { > .file =3D f, > .cpu_fprintf =3D cpu_fprintf, > }; > diff --git a/target-m68k/helper.c b/target-m68k/helper.c > index a5d0100..875a71a 100644 > --- a/target-m68k/helper.c > +++ b/target-m68k/helper.c > @@ -25,11 +25,6 @@ > =20 > #define SIGNBIT (1u << 31) > =20 > -typedef struct M68kCPUListState { > - fprintf_function cpu_fprintf; > - FILE *file; > -} M68kCPUListState; > - > /* Sort alphabetically, except for "any". */ > static gint m68k_cpu_list_compare(gconstpointer a, gconstpointer b) > { > @@ -51,7 +46,7 @@ static gint m68k_cpu_list_compare(gconstpointer a, > gconstpointer b) static void m68k_cpu_list_entry(gpointer data, gpointer > user_data) { > ObjectClass *c =3D data; > - M68kCPUListState *s =3D user_data; > + CPUListState *s =3D user_data; > =20 > (*s->cpu_fprintf)(s->file, "%s\n", > object_class_get_name(c)); > @@ -59,7 +54,7 @@ static void m68k_cpu_list_entry(gpointer data, gpointer > user_data)=20 > void m68k_cpu_list(FILE *f, fprintf_function cpu_fprintf) > { > - M68kCPUListState s =3D { > + CPUListState s =3D { > .file =3D f, > .cpu_fprintf =3D cpu_fprintf, > };