Patchwork [qom-cpu,v2] cpu: Introduce CPUListState struct

login
register
mail settings
Submitter Andreas Färber
Date Dec. 19, 2012, 1:03 a.m.
Message ID <1355879035-21064-1-git-send-email-afaerber@suse.de>
Download mbox | patch
Permalink /patch/207234/
State New
Headers show

Comments

Andreas Färber - Dec. 19, 2012, 1:03 a.m.
This generalizes {ARM,M68k,Alpha}CPUListState to avoid declaring it for
each target. Place it in cpu-common.h to avoid circular dependencies.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
---
 cpu-common.h         |   12 ++++++++++++
 target-alpha/cpu.c   |    9 ++-------
 target-arm/helper.c  |    9 ++-------
 target-m68k/helper.c |    9 ++-------
 4 Dateien geändert, 18 Zeilen hinzugefügt(+), 21 Zeilen entfernt(-)
Igor Mammedov - Dec. 19, 2012, 1 p.m.
On Wed, 19 Dec 2012 02:03:55 +0100
Andreas Färber <afaerber@suse.de> wrote:

> This generalizes {ARM,M68k,Alpha}CPUListState to avoid declaring it for
> each target. Place it in cpu-common.h to avoid circular dependencies.
> 
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: Igor Mammedov <imammedo@redhat.com>
> ---
>  cpu-common.h         |   12 ++++++++++++
>  target-alpha/cpu.c   |    9 ++-------
>  target-arm/helper.c  |    9 ++-------
>  target-m68k/helper.c |    9 ++-------
>  4 Dateien geändert, 18 Zeilen hinzugefügt(+), 21 Zeilen entfernt(-)
> 
> diff --git a/cpu-common.h b/cpu-common.h
> index d2fbafa..a62b6ea 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -12,6 +12,18 @@
>  #include "bswap.h"
>  #include "qemu-queue.h"
>  
> +/**
> + * 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;
> +
>  #if !defined(CONFIG_USER_ONLY)
>  
>  enum device_endian {
> diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
> index 2deb3c1..59d8669 100644
> --- a/target-alpha/cpu.c
> +++ b/target-alpha/cpu.c
> @@ -33,11 +33,6 @@ static void alpha_cpu_realize(Object *obj, Error **errp)
>  #endif
>  }
>  
> -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
> user_data) {
>      ObjectClass *oc = data;
> -    AlphaCPUListState *s = user_data;
> +    CPUListState *s = user_data;
>  
>      (*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) 
>  void alpha_cpu_list(FILE *f, fprintf_function cpu_fprintf)
>  {
> -    AlphaCPUListState s = {
> +    CPUListState s = {
>          .file = f,
>          .cpu_fprintf = 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;
>  }
>  
> -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 = data;
> -    ARMCPUListState *s = user_data;
> +    CPUListState *s = user_data;
>  
>      (*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) 
>  void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf)
>  {
> -    ARMCPUListState s = {
> +    CPUListState s = {
>          .file = f,
>          .cpu_fprintf = 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 @@
>  
>  #define SIGNBIT (1u << 31)
>  
> -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 = data;
> -    M68kCPUListState *s = user_data;
> +    CPUListState *s = user_data;
>  
>      (*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) 
>  void m68k_cpu_list(FILE *f, fprintf_function cpu_fprintf)
>  {
> -    M68kCPUListState s = {
> +    CPUListState s = {
>          .file = f,
>          .cpu_fprintf = cpu_fprintf,
>      };

Reviewed-By: Igor Mammedov <imammedo@redhat.com>
Eduardo Habkost - Dec. 19, 2012, 1:07 p.m.
On Wed, Dec 19, 2012 at 02:00:32PM +0100, Igor Mammedov wrote:
> On Wed, 19 Dec 2012 02:03:55 +0100
> Andreas Färber <afaerber@suse.de> wrote:
> 
> > This generalizes {ARM,M68k,Alpha}CPUListState to avoid declaring it for
> > each target. Place it in cpu-common.h to avoid circular dependencies.
> > 
> > Signed-off-by: Andreas Färber <afaerber@suse.de>
> > Cc: Eduardo Habkost <ehabkost@redhat.com>
> > Cc: Igor Mammedov <imammedo@redhat.com>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

> > ---
> >  cpu-common.h         |   12 ++++++++++++
> >  target-alpha/cpu.c   |    9 ++-------
> >  target-arm/helper.c  |    9 ++-------
> >  target-m68k/helper.c |    9 ++-------
> >  4 Dateien geändert, 18 Zeilen hinzugefügt(+), 21 Zeilen entfernt(-)
> > 
> > diff --git a/cpu-common.h b/cpu-common.h
> > index d2fbafa..a62b6ea 100644
> > --- a/cpu-common.h
> > +++ b/cpu-common.h
> > @@ -12,6 +12,18 @@
> >  #include "bswap.h"
> >  #include "qemu-queue.h"
> >  
> > +/**
> > + * 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;
> > +
> >  #if !defined(CONFIG_USER_ONLY)
> >  
> >  enum device_endian {
> > diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
> > index 2deb3c1..59d8669 100644
> > --- a/target-alpha/cpu.c
> > +++ b/target-alpha/cpu.c
> > @@ -33,11 +33,6 @@ static void alpha_cpu_realize(Object *obj, Error **errp)
> >  #endif
> >  }
> >  
> > -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
> > user_data) {
> >      ObjectClass *oc = data;
> > -    AlphaCPUListState *s = user_data;
> > +    CPUListState *s = user_data;
> >  
> >      (*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) 
> >  void alpha_cpu_list(FILE *f, fprintf_function cpu_fprintf)
> >  {
> > -    AlphaCPUListState s = {
> > +    CPUListState s = {
> >          .file = f,
> >          .cpu_fprintf = 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;
> >  }
> >  
> > -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 = data;
> > -    ARMCPUListState *s = user_data;
> > +    CPUListState *s = user_data;
> >  
> >      (*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) 
> >  void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf)
> >  {
> > -    ARMCPUListState s = {
> > +    CPUListState s = {
> >          .file = f,
> >          .cpu_fprintf = 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 @@
> >  
> >  #define SIGNBIT (1u << 31)
> >  
> > -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 = data;
> > -    M68kCPUListState *s = user_data;
> > +    CPUListState *s = user_data;
> >  
> >      (*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) 
> >  void m68k_cpu_list(FILE *f, fprintf_function cpu_fprintf)
> >  {
> > -    M68kCPUListState s = {
> > +    CPUListState s = {
> >          .file = f,
> >          .cpu_fprintf = cpu_fprintf,
> >      };
> 
> Reviewed-By: Igor Mammedov <imammedo@redhat.com>

Patch

diff --git a/cpu-common.h b/cpu-common.h
index d2fbafa..a62b6ea 100644
--- a/cpu-common.h
+++ b/cpu-common.h
@@ -12,6 +12,18 @@ 
 #include "bswap.h"
 #include "qemu-queue.h"
 
+/**
+ * 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;
+
 #if !defined(CONFIG_USER_ONLY)
 
 enum device_endian {
diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
index 2deb3c1..59d8669 100644
--- a/target-alpha/cpu.c
+++ b/target-alpha/cpu.c
@@ -33,11 +33,6 @@  static void alpha_cpu_realize(Object *obj, Error **errp)
 #endif
 }
 
-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 user_data)
 {
     ObjectClass *oc = data;
-    AlphaCPUListState *s = user_data;
+    CPUListState *s = user_data;
 
     (*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)
 
 void alpha_cpu_list(FILE *f, fprintf_function cpu_fprintf)
 {
-    AlphaCPUListState s = {
+    CPUListState s = {
         .file = f,
         .cpu_fprintf = 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;
 }
 
-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 = data;
-    ARMCPUListState *s = user_data;
+    CPUListState *s = user_data;
 
     (*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)
 
 void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf)
 {
-    ARMCPUListState s = {
+    CPUListState s = {
         .file = f,
         .cpu_fprintf = 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 @@ 
 
 #define SIGNBIT (1u << 31)
 
-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 = data;
-    M68kCPUListState *s = user_data;
+    CPUListState *s = user_data;
 
     (*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)
 
 void m68k_cpu_list(FILE *f, fprintf_function cpu_fprintf)
 {
-    M68kCPUListState s = {
+    CPUListState s = {
         .file = f,
         .cpu_fprintf = cpu_fprintf,
     };