qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Paul Brook" <paul@codesourcery.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Richard Henderson" <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH 06/20] cpu: Introduce CPUListState struct
Date: Wed, 19 Dec 2012 14:36:22 +0100	[thread overview]
Message-ID: <1355924196-19288-7-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1355924196-19288-1-git-send-email-afaerber@suse.de>

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>
Reviewed-by: 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,
     };
-- 
1.7.10.4

  parent reply	other threads:[~2012-12-19 13:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-19 13:36 [Qemu-devel] [PULL] QOM CPUState patch queue 2012-12-19 Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 01/20] target-alpha: Let cpu_alpha_init() return AlphaCPU Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 02/20] alpha: Pass AlphaCPU array to Typhoon Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 03/20] target-alpha: Avoid leaking the alarm timer over reset Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 04/20] target-alpha: Turn CPU definitions into subclasses Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 05/20] target-alpha: Add support for -cpu ? Andreas Färber
2012-12-19 13:36 ` Andreas Färber [this message]
2012-12-19 13:36 ` [Qemu-devel] [PATCH 07/20] qdev: Coding style fixes Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 08/20] qdev-properties.c: Separate core from the code used only by qemu-system-* Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 09/20] cpu: Move kvm_fd into CPUState Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 10/20] kvm: Pass CPUState to kvm_arch_* Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 11/20] kvm: Pass CPUState to kvm_vcpu_ioctl() Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 12/20] ppc: Pass PowerPCCPU to ppc_set_irq() Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 13/20] ppc: Pass PowerPCCPU to [h]decr callbacks Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 14/20] ppc: Pass PowerPCCPU to [h]decr timer callbacks Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 15/20] ppc_booke: Pass PowerPCCPU to {decr, fit, wdt} " Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 16/20] ppc4xx_devs: Return PowerPCCPU from ppc4xx_init() Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 17/20] ppc_booke: Pass PowerPCCPU to ppc_booke_timers_init() Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 18/20] cpu: Move kvm_state field into CPUState Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 19/20] cpu: Move kvm_run " Andreas Färber
2012-12-19 13:36 ` [Qemu-devel] [PATCH 20/20] MAINTAINERS: Include X86CPU in CPU maintenance area Andreas Färber
2012-12-22 12:08 ` [Qemu-devel] [PULL] QOM CPUState patch queue 2012-12-19 Blue Swirl
2012-12-23  0:00   ` Andreas Färber
2012-12-28 20:05     ` Blue Swirl

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=1355924196-19288-7-git-send-email-afaerber@suse.de \
    --to=afaerber@suse.de \
    --cc=paul@codesourcery.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).