All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Alexander Graf" <agraf@suse.de>,
	"Blue Swirl" <blauwirbel@gmail.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Michael Walle" <michael@walle.cc>,
	"open list:PowerPC" <qemu-ppc@nongnu.org>,
	"Paul Brook" <paul@codesourcery.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Guan Xuetao" <gxt@mprc.pku.edu.cn>,
	"Andreas Färber" <afaerber@suse.de>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Richard Henderson" <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH qom-next 57/59] cpu: Introduce mandatory tlb_flush callback
Date: Wed, 23 May 2012 05:08:20 +0200	[thread overview]
Message-ID: <1337742502-28565-58-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1337742502-28565-1-git-send-email-afaerber@suse.de>

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 include/qemu/cpu.h          |   12 ++++++++++++
 qom/cpu.c                   |    9 +++++++++
 target-alpha/cpu.c          |   16 ++++++++++++++++
 target-arm/cpu.c            |   10 ++++++++++
 target-cris/cpu.c           |   10 ++++++++++
 target-i386/cpu.c           |   10 ++++++++++
 target-lm32/cpu.c           |   10 ++++++++++
 target-m68k/cpu.c           |   10 ++++++++++
 target-microblaze/cpu.c     |   10 ++++++++++
 target-mips/cpu.c           |   10 ++++++++++
 target-ppc/translate_init.c |   10 ++++++++++
 target-s390x/cpu.c          |   10 ++++++++++
 target-sh4/cpu.c            |   10 ++++++++++
 target-sparc/cpu.c          |   10 ++++++++++
 target-unicore32/cpu.c      |   16 ++++++++++++++++
 target-xtensa/cpu.c         |   10 ++++++++++
 16 files changed, 173 insertions(+), 0 deletions(-)

diff --git a/include/qemu/cpu.h b/include/qemu/cpu.h
index 61b7698..7d03369 100644
--- a/include/qemu/cpu.h
+++ b/include/qemu/cpu.h
@@ -41,6 +41,7 @@ typedef struct CPUState CPUState;
 /**
  * CPUClass:
  * @reset: Callback to reset the #CPUState to its initial state.
+ * @tlb_flush: Callback to flush the TLB.
  *
  * Represents a CPU family or model.
  */
@@ -50,6 +51,8 @@ typedef struct CPUClass {
     /*< public >*/
 
     void (*reset)(CPUState *cpu);
+
+    void (*tlb_flush)(CPUState *cpu, bool flush_global);
 } CPUClass;
 
 /**
@@ -88,6 +91,15 @@ struct CPUState {
 void cpu_reset(CPUState *cpu);
 
 /**
+ * cpu_tlb_flush:
+ * @cpu: The CPU whose TLB is to be flushed.
+ * @flush_global: Whether to flush TLB entries marked as global.
+ *
+ * Flushes the TLB of the CPU.
+ */
+void cpu_tlb_flush(CPUState *cpu, bool flush_global);
+
+/**
  * qemu_cpu_has_work:
  * @cpu: The vCPU to check.
  *
diff --git a/qom/cpu.c b/qom/cpu.c
index 5b36046..729f4cf 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -34,6 +34,15 @@ static void cpu_common_reset(CPUState *cpu)
 {
 }
 
+void cpu_tlb_flush(CPUState *cpu, bool flush_global)
+{
+    CPUClass *cc = CPU_GET_CLASS(cpu);
+
+    g_assert(cc->tlb_flush != NULL);
+
+    cc->tlb_flush(cpu, flush_global);
+}
+
 static void cpu_class_init(ObjectClass *klass, void *data)
 {
     CPUClass *k = CPU_CLASS(klass);
diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
index 11a19eb..d20f367 100644
--- a/target-alpha/cpu.c
+++ b/target-alpha/cpu.c
@@ -23,6 +23,14 @@
 #include "qemu-common.h"
 
 
+/* CPUClass::tlb_flush() */
+static void alpha_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    AlphaCPU *cpu = ALPHA_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void alpha_cpu_initfn(Object *obj)
 {
     AlphaCPU *cpu = ALPHA_CPU(obj);
@@ -41,6 +49,13 @@ static void alpha_cpu_initfn(Object *obj)
     env->fen = 1;
 }
 
+static void alpha_cpu_class_init(ObjectClass *oc, void *data)
+{
+    CPUClass *cc = CPU_CLASS(oc);
+
+    cc->tlb_flush = alpha_cpu_tlb_flush;
+}
+
 static const TypeInfo alpha_cpu_type_info = {
     .name = TYPE_ALPHA_CPU,
     .parent = TYPE_CPU,
@@ -48,6 +63,7 @@ static const TypeInfo alpha_cpu_type_info = {
     .instance_init = alpha_cpu_initfn,
     .abstract = false,
     .class_size = sizeof(AlphaCPUClass),
+    .class_init = alpha_cpu_class_init,
 };
 
 static void alpha_cpu_register_types(void)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 7eb323a..abcf158 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -120,6 +120,14 @@ static void arm_cpu_reset(CPUState *s)
     tb_flush(env);
 }
 
+/* CPUClass::tlb_flush() */
+static void arm_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    ARMCPU *cpu = ARM_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static inline void set_feature(CPUARMState *env, int feature)
 {
     env->features |= 1u << feature;
@@ -637,6 +645,8 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
 
     acc->parent_reset = cc->reset;
     cc->reset = arm_cpu_reset;
+
+    cc->tlb_flush = arm_cpu_tlb_flush;
 }
 
 static void cpu_register(const ARMCPUInfo *info)
diff --git a/target-cris/cpu.c b/target-cris/cpu.c
index c596609..167ba30 100644
--- a/target-cris/cpu.c
+++ b/target-cris/cpu.c
@@ -55,6 +55,14 @@ static void cris_cpu_reset(CPUState *s)
 #endif
 }
 
+/* CPUClass::tlb_flush() */
+static void cris_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    CRISCPU *cpu = CRIS_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void cris_cpu_initfn(Object *obj)
 {
     CRISCPU *cpu = CRIS_CPU(obj);
@@ -70,6 +78,8 @@ static void cris_cpu_class_init(ObjectClass *oc, void *data)
 
     ccc->parent_reset = cc->reset;
     cc->reset = cris_cpu_reset;
+
+    cc->tlb_flush = cris_cpu_tlb_flush;
 }
 
 static const TypeInfo cris_cpu_type_info = {
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 89b4ac7..c8e6b80 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1706,6 +1706,14 @@ static void x86_cpu_reset(CPUState *s)
     cpu_watchpoint_remove_all(env, BP_CPU);
 }
 
+/* CPUClass::tlb_flush() */
+static void x86_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    X86CPU *cpu = X86_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void mce_init(X86CPU *cpu)
 {
     CPUX86State *cenv = &cpu->env;
@@ -1772,6 +1780,8 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data)
 
     xcc->parent_reset = cc->reset;
     cc->reset = x86_cpu_reset;
+
+    cc->tlb_flush = x86_cpu_tlb_flush;
 }
 
 static const TypeInfo x86_cpu_type_info = {
diff --git a/target-lm32/cpu.c b/target-lm32/cpu.c
index caa4834..a58369e 100644
--- a/target-lm32/cpu.c
+++ b/target-lm32/cpu.c
@@ -42,6 +42,14 @@ static void lm32_cpu_reset(CPUState *s)
     memset(env, 0, offsetof(CPULM32State, breakpoints));
 }
 
+/* CPUClass::tlb_flush() */
+static void lm32_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    LM32CPU *cpu = LM32_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void lm32_cpu_initfn(Object *obj)
 {
     LM32CPU *cpu = LM32_CPU(obj);
@@ -61,6 +69,8 @@ static void lm32_cpu_class_init(ObjectClass *oc, void *data)
 
     lcc->parent_reset = cc->reset;
     cc->reset = lm32_cpu_reset;
+
+    cc->tlb_flush = lm32_cpu_tlb_flush;
 }
 
 static const TypeInfo lm32_cpu_type_info = {
diff --git a/target-m68k/cpu.c b/target-m68k/cpu.c
index 3e70bb0..e1daeff 100644
--- a/target-m68k/cpu.c
+++ b/target-m68k/cpu.c
@@ -53,6 +53,14 @@ static void m68k_cpu_reset(CPUState *s)
     tlb_flush(env, 1);
 }
 
+/* CPUClass::tlb_flush() */
+static void m68k_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    M68kCPU *cpu = M68K_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 /* CPU models */
 
 static void m5206_cpu_initfn(Object *obj)
@@ -134,6 +142,8 @@ static void m68k_cpu_class_init(ObjectClass *c, void *data)
 
     mcc->parent_reset = cc->reset;
     cc->reset = m68k_cpu_reset;
+
+    cc->tlb_flush = m68k_cpu_tlb_flush;
 }
 
 static void register_cpu_type(const M68kCPUInfo *info)
diff --git a/target-microblaze/cpu.c b/target-microblaze/cpu.c
index 9c3b74e..a850d8f 100644
--- a/target-microblaze/cpu.c
+++ b/target-microblaze/cpu.c
@@ -83,6 +83,14 @@ static void mb_cpu_reset(CPUState *s)
 #endif
 }
 
+/* CPUClass::tlb_flush() */
+static void mb_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    MicroBlazeCPU *cpu = MICROBLAZE_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void mb_cpu_initfn(Object *obj)
 {
     MicroBlazeCPU *cpu = MICROBLAZE_CPU(obj);
@@ -100,6 +108,8 @@ static void mb_cpu_class_init(ObjectClass *oc, void *data)
 
     mcc->parent_reset = cc->reset;
     cc->reset = mb_cpu_reset;
+
+    cc->tlb_flush = mb_cpu_tlb_flush;
 }
 
 static const TypeInfo mb_cpu_type_info = {
diff --git a/target-mips/cpu.c b/target-mips/cpu.c
index 0044062..7e51a2b 100644
--- a/target-mips/cpu.c
+++ b/target-mips/cpu.c
@@ -34,6 +34,14 @@ static void mips_cpu_reset(CPUState *s)
     cpu_state_reset(env);
 }
 
+/* CPUClass::tlb_flush() */
+static void mips_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    MIPSCPU *cpu = MIPS_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void mips_cpu_initfn(Object *obj)
 {
     MIPSCPU *cpu = MIPS_CPU(obj);
@@ -49,6 +57,8 @@ static void mips_cpu_class_init(ObjectClass *c, void *data)
 
     mcc->parent_reset = cc->reset;
     cc->reset = mips_cpu_reset;
+
+    cc->tlb_flush = mips_cpu_tlb_flush;
 }
 
 static const TypeInfo mips_cpu_type_info = {
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 6f61175..5bebd84 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -10266,6 +10266,14 @@ static void ppc_cpu_reset(CPUState *s)
     tlb_flush(env, 1);
 }
 
+/* CPUClass::tlb_flush() */
+static void ppc_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    PowerPCCPU *cpu = POWERPC_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void ppc_cpu_initfn(Object *obj)
 {
     PowerPCCPU *cpu = POWERPC_CPU(obj);
@@ -10281,6 +10289,8 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data)
 
     pcc->parent_reset = cc->reset;
     cc->reset = ppc_cpu_reset;
+
+    cc->tlb_flush = ppc_cpu_tlb_flush;
 }
 
 static const TypeInfo ppc_cpu_type_info = {
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index 619b202..b87e307 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -45,6 +45,14 @@ static void s390_cpu_reset(CPUState *s)
     s390_add_running_cpu(env);
 }
 
+/* CPUClass::tlb_flush() */
+static void s390_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    S390CPU *cpu = S390_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void s390_cpu_initfn(Object *obj)
 {
     S390CPU *cpu = S390_CPU(obj);
@@ -76,6 +84,8 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
 
     scc->parent_reset = cc->reset;
     cc->reset = s390_cpu_reset;
+
+    cc->tlb_flush = s390_cpu_tlb_flush;
 }
 
 static const TypeInfo s390_cpu_type_info = {
diff --git a/target-sh4/cpu.c b/target-sh4/cpu.c
index a1a177f..a0727bc 100644
--- a/target-sh4/cpu.c
+++ b/target-sh4/cpu.c
@@ -53,6 +53,14 @@ static void superh_cpu_reset(CPUState *s)
     set_default_nan_mode(1, &env->fp_status);
 }
 
+/* CPUClass::tlb_flush() */
+static void superh_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    SuperHCPU *cpu = SUPERH_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void superh_cpu_initfn(Object *obj)
 {
     SuperHCPU *cpu = SUPERH_CPU(obj);
@@ -70,6 +78,8 @@ static void superh_cpu_class_init(ObjectClass *oc, void *data)
 
     scc->parent_reset = cc->reset;
     cc->reset = superh_cpu_reset;
+
+    cc->tlb_flush = superh_cpu_tlb_flush;
 }
 
 static const TypeInfo superh_cpu_type_info = {
diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c
index f7c004c..7216b42 100644
--- a/target-sparc/cpu.c
+++ b/target-sparc/cpu.c
@@ -74,6 +74,14 @@ static void sparc_cpu_reset(CPUState *s)
     env->cache_control = 0;
 }
 
+/* CPUClass::tlb_flush() */
+static void sparc_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    SPARCCPU *cpu = SPARC_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static int cpu_sparc_register(CPUSPARCState *env, const char *cpu_model)
 {
     sparc_def_t def1, *def = &def1;
@@ -875,6 +883,8 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data)
 
     scc->parent_reset = cc->reset;
     cc->reset = sparc_cpu_reset;
+
+    cc->tlb_flush = sparc_cpu_tlb_flush;
 }
 
 static const TypeInfo sparc_cpu_type_info = {
diff --git a/target-unicore32/cpu.c b/target-unicore32/cpu.c
index 5467728..cc00bc2 100644
--- a/target-unicore32/cpu.c
+++ b/target-unicore32/cpu.c
@@ -20,6 +20,14 @@ static inline void set_feature(CPUUniCore32State *env, int feature)
     env->features |= feature;
 }
 
+/* CPUClass::tlb_flush() */
+static void uc32_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    UniCore32CPU *cpu = UNICORE32_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 /* CPU models */
 
 typedef struct UniCore32CPUInfo {
@@ -71,6 +79,13 @@ static void uc32_cpu_initfn(Object *obj)
     tlb_flush(env, 1);
 }
 
+static void uc32_cpu_class_init(ObjectClass *oc, void *data)
+{
+    CPUClass *cc = CPU_CLASS(oc);
+
+    cc->tlb_flush = uc32_cpu_tlb_flush;
+}
+
 static void uc32_register_cpu_type(const UniCore32CPUInfo *info)
 {
     TypeInfo type_info = {
@@ -89,6 +104,7 @@ static const TypeInfo uc32_cpu_type_info = {
     .instance_init = uc32_cpu_initfn,
     .abstract = true,
     .class_size = sizeof(UniCore32CPUClass),
+    .class_init = uc32_cpu_class_init,
 };
 
 static void uc32_cpu_register_types(void)
diff --git a/target-xtensa/cpu.c b/target-xtensa/cpu.c
index 9d01983..59671c1 100644
--- a/target-xtensa/cpu.c
+++ b/target-xtensa/cpu.c
@@ -53,6 +53,14 @@ static void xtensa_cpu_reset(CPUState *s)
     reset_mmu(env);
 }
 
+/* CPUClass::tlb_flush() */
+static void xtensa_cpu_tlb_flush(CPUState *c, bool flush_global)
+{
+    XtensaCPU *cpu = XTENSA_CPU(c);
+
+    tlb_flush(&cpu->env, flush_global);
+}
+
 static void xtensa_cpu_initfn(Object *obj)
 {
     XtensaCPU *cpu = XTENSA_CPU(obj);
@@ -68,6 +76,8 @@ static void xtensa_cpu_class_init(ObjectClass *oc, void *data)
 
     xcc->parent_reset = cc->reset;
     cc->reset = xtensa_cpu_reset;
+
+    cc->tlb_flush = xtensa_cpu_tlb_flush;
 }
 
 static const TypeInfo xtensa_cpu_type_info = {
-- 
1.7.7

  parent reply	other threads:[~2012-05-23  3:09 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-23  3:07 [PATCH qom-next 00/59] QOM CPUState, part 4: CPU_COMMON Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 01/59] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 02/59] cpu: Move CPU_COMMON_THREAD into CPUState Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 03/59] cpu: Move thread field " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 04/59] pc: Add CPU as /machine/cpu[n] Andreas Färber
2012-06-08  8:20   ` Igor Mammedov
2012-06-08  9:11     ` Andreas Färber
2012-06-08 10:21       ` Jan Kiszka
2012-06-08 10:36         ` Andreas Färber
2012-06-08 10:45           ` Andreas Färber
2012-06-08 11:36           ` Igor Mammedov
2012-06-08 12:26             ` Andreas Färber
2012-06-08 12:05       ` Igor Mammedov
2012-06-08 12:34         ` Andreas Färber
2012-06-08 12:36           ` Jan Kiszka
2012-06-08 12:47             ` Igor Mammedov
2012-06-08 12:52               ` Jan Kiszka
2012-06-08 13:00                 ` Q (Igor Mammedov)
2012-06-08 13:04                 ` Andreas Färber
2012-07-04  9:18                   ` Igor Mammedov
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 05/59] apic: Replace cpu_env pointer by X86CPU link Andreas Färber
2012-07-11 10:47   ` Igor Mammedov
2012-05-23  3:07 ` [PATCH qom-next 06/59] pc: Pass X86CPU to cpu_is_bsp() Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-07-11 10:25   ` Igor Mammedov
2012-07-11 10:25     ` [Qemu-devel] " Igor Mammedov
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 07/59] cpu: Move thread_kicked to CPUState Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 08/59] Makefile.dis: Add include/ to include path Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 09/59] cpus: Pass CPUState to qemu_cpu_is_self() Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 10/59] cpus: Pass CPUState to qemu_cpu_kick_thread() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 11/59] cpu: Move created field to CPUState Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 12/59] cpu: Move stop " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 13/59] ppce500_spin: Store PowerPCCPU in SpinKick Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 14/59] cpu: Move stopped field to CPUState Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 15/59] cpus: Pass CPUState to cpu_is_stopped() Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 16/59] cpus: Pass CPUState to cpu_can_run() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 17/59] cpu: Move halt_cond to CPUState Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 18/59] cpus: Pass CPUState to qemu_tcg_cpu_thread_fn Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 19/59] cpus: Pass CPUState to qemu_tcg_init_vcpu() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 20/59] ppc: Pass PowerPCCPU to ppc6xx_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 21/59] ppc: Pass PowerPCCPU to ppc970_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 22/59] ppc: Pass PowerPCCPU to power7_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 23/59] ppc: Pass PowerPCCPU to ppc40x_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 24/59] ppc: Pass PowerPCCPU to ppce500_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 25/59] sun4m: Pass SPARCCPU to cpu_set_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 26/59] sun4m: Pass SPARCCPU to cpu_kick_irq() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 27/59] sun4u: Pass SPARCCPU to {, s, hs}tick_irq() and cpu_timer_create() Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 28/59] sun4u: Pass SPARCCPU to cpu_kick_irq() Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 29/59] target-ppc: Rename kvm_kick_{env => cpu} and pass PowerPCCPU Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 30/59] target-s390x: Let cpu_s390x_init() return S390CPU Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 31/59] s390-virtio: Use cpu_s390x_init() to obtain S390CPU Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 32/59] s390-virtio: Let s390_cpu_addr2state() return S390CPU Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 33/59] target-s390x: Pass S390CPU to s390_cpu_restart() Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [PATCH qom-next 34/59] cpus: Pass CPUState to qemu_cpu_kick() Andreas Färber
2012-05-23  3:07   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 35/59] cpu: Move queued_work_{first, last} to CPUState Andreas Färber
2012-05-23  3:07 ` [Qemu-devel] [PATCH qom-next 36/59] cpus: Pass CPUState to flush_queued_work() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 37/59] cpus: Pass CPUState to qemu_wait_io_event_common() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 38/59] target-ppc: Pass PowerPCCPU to powerpc_excp() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 39/59] target-ppc: Pass PowerPCCPU to cpu_ppc_hypercall Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 40/59] spapr: Pass PowerPCCPU to spapr_hypercall() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 41/59] spapr: Pass PowerPCCPU to hypercalls Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 42/59] xtensa_pic: Pass XtensaCPU to xtensa_ccompare_cb() Andreas Färber
2012-10-10 15:15   ` Andreas Färber
2012-10-10 15:35     ` Max Filippov
2012-10-10 16:33       ` Andreas Färber
2012-10-10 20:21         ` Max Filippov
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 43/59] cpus: Pass CPUState to [qemu_]cpu_has_work() Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 44/59] target-i386: Pass X86CPU to kvm_mce_inject() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 45/59] target-i386: Pass X86CPU to cpu_x86_inject_mce() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 46/59] cpus: Pass CPUState to run_on_cpu() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 47/59] cpu: Move thread_id to CPUState Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 48/59] target-i386: Pass X86CPU to cpu_x86_load_seg_cache_sipi() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 49/59] target-i386: Drop version 5 CPU VMState support Andreas Färber
2012-05-24 11:32   ` Juan Quintela
2012-05-23  3:08 ` [PATCH qom-next 50/59] target-i386: Pass X86CPU to kvm_get_mp_state() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 51/59] target-i386: Pass X86CPU to kvm_handle_halt() Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 52/59] target-mips: Pass MIPSCPU to mips_tc_wake() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 53/59] target-mips: Pass MIPSCPU to mips_vpe_is_wfi() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 54/59] target-mips: Pass MIPSCPU to mips_tc_sleep() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 55/59] target-mips: Pass MIPSCPU to mips_vpe_sleep() Andreas Färber
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 56/59] sun4u: Pass SPARCCPU to cpu_set_ivec_irq() Andreas Färber
2012-05-23  3:08 ` Andreas Färber [this message]
2012-05-23  3:08 ` [Qemu-devel] [PATCH qom-next 58/59] xen_machine_pv: Use cpu_x86_init() to obtain X86CPU Andreas Färber
2012-05-23  3:08   ` Andreas Färber
2012-05-23  3:08 ` [PATCH qom-next 59/59] cpu: Move halted and interrupt_request to CPUState Andreas Färber
2012-05-23  3:08   ` Andreas Färber
2012-05-23  3:08   ` [Qemu-devel] " Andreas Färber
2012-05-23 11:27 ` [PATCH qom-next 00/59] QOM CPUState, part 4: CPU_COMMON Stefano Stabellini
2012-05-23 11:27   ` [Qemu-devel] " Stefano Stabellini
2012-05-23 15:36   ` Andreas Färber
2012-05-23 15:36     ` Andreas Färber
2012-05-23 15:16 ` [Qemu-devel] " Andreas Färber
2012-05-23 15:16   ` Andreas Färber
2012-05-23 19:36 ` Blue Swirl
2012-05-23 19:36   ` [Qemu-devel] " Blue Swirl
     [not found] ` <CAFEAcA9ga9=+iVUvtb8ApUQGh=j9sTfrWVcdOXHWTC2ZPx0-5w@mail.gmail.com>
     [not found]   ` <4FC5EF52.8010103@suse.de>
     [not found]     ` <201205311953.31459.paul@codesourcery.com>
2012-06-02 19:40       ` [Qemu-devel] [PATCH qom-next 57/59] cpu: Introduce mandatory tlb_flush callback 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=1337742502-28565-58-git-send-email-afaerber@suse.de \
    --to=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=blauwirbel@gmail.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=jcmvbkbc@gmail.com \
    --cc=michael@walle.cc \
    --cc=paul@codesourcery.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.