All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Bin Meng" <bin.meng@windriver.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Peter Xu" <peterx@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Alistair Francis" <alistair.francis@wdc.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Alexandre Iooss" <erdnaxe@crans.org>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Greg Kurz" <groug@kaod.org>,
	qemu-s390x@nongnu.org, qemu-arm@nongnu.org,
	"Stafford Horne" <shorne@gmail.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	qemu-riscv@nongnu.org,
	"Bastian Koppelmann" <kbastian@mail.uni-paderborn.de>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Laurent Vivier" <laurent@vivier.eu>,
	qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Mahmoud Mandour" <ma.mandourr@gmail.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PATCH 14/29] tcg_funcs:Add  tcg_exec_{realizefn, unrealizefn} to TCGModuleOps
Date: Tue, 31 Aug 2021 14:15:30 +0200	[thread overview]
Message-ID: <20210831121545.2874233-15-kraxel@redhat.com> (raw)
In-Reply-To: <20210831121545.2874233-1-kraxel@redhat.com>

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/exec/cpu-all.h   |  2 --
 include/tcg/tcg-module.h |  2 ++
 accel/tcg/cpu-exec.c     | 12 ++++++++++--
 accel/tcg/tcg-module.c   |  6 ++++++
 cpu.c                    |  4 ++--
 5 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index 32cfb634c6a0..c2bfd0ea1de1 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -440,8 +440,6 @@ void dump_opcount_info(void);
 #ifdef CONFIG_TCG
 /* accel/tcg/cpu-exec.c */
 int cpu_exec(CPUState *cpu);
-void tcg_exec_realizefn(CPUState *cpu, Error **errp);
-void tcg_exec_unrealizefn(CPUState *cpu);
 #endif /* CONFIG_TCG */
 
 /* Returns: 0 on success, -1 on error */
diff --git a/include/tcg/tcg-module.h b/include/tcg/tcg-module.h
index 159cbd3e7ce6..5dd4deb9ed57 100644
--- a/include/tcg/tcg-module.h
+++ b/include/tcg/tcg-module.h
@@ -11,6 +11,8 @@ struct TCGModuleOps {
     bool (*tlb_plugin_lookup)(CPUState *cpu, target_ulong addr, int mmu_idx,
                               bool is_store, struct qemu_plugin_hwaddr *data);
 #endif
+    void (*tcg_exec_unrealizefn)(CPUState *cpu);
+    void (*tcg_exec_realizefn)(CPUState *cpu, Error **errp);
 };
 extern struct TCGModuleOps tcg;
 
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index e5c0ccd1a2ab..d41d1d2bd24f 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -981,7 +981,7 @@ int cpu_exec(CPUState *cpu)
     return ret;
 }
 
-void tcg_exec_realizefn(CPUState *cpu, Error **errp)
+static void tcg_exec_realizefn(CPUState *cpu, Error **errp)
 {
     static bool tcg_target_initialized;
     CPUClass *cc = CPU_GET_CLASS(cpu);
@@ -999,7 +999,7 @@ void tcg_exec_realizefn(CPUState *cpu, Error **errp)
 }
 
 /* undo the initializations in reverse order */
-void tcg_exec_unrealizefn(CPUState *cpu)
+static void tcg_exec_unrealizefn(CPUState *cpu)
 {
 #ifndef CONFIG_USER_ONLY
     tcg_iommu_free_notifier_list(cpu);
@@ -1031,3 +1031,11 @@ void dump_drift_info(void)
 }
 
 #endif /* !CONFIG_USER_ONLY */
+
+static void tcg_module_ops_exec(void)
+{
+    tcg.tcg_exec_realizefn = tcg_exec_realizefn;
+    tcg.tcg_exec_unrealizefn = tcg_exec_unrealizefn;
+}
+
+type_init(tcg_module_ops_exec);
diff --git a/accel/tcg/tcg-module.c b/accel/tcg/tcg-module.c
index db3d3e9e9318..36c1df564f31 100644
--- a/accel/tcg/tcg-module.c
+++ b/accel/tcg/tcg-module.c
@@ -21,6 +21,10 @@ static bool tlb_plugin_lookup_stub(CPUState *cpu, target_ulong addr, int mmu_idx
 }
 #endif
 
+static void tcg_exec_realizefn_stub(CPUState *cpu, Error **errp)
+{
+}
+
 struct TCGModuleOps tcg = {
     .tlb_flush = update_cpu_stub,
     .tlb_flush_page = tlb_flush_page_stub,
@@ -28,4 +32,6 @@ struct TCGModuleOps tcg = {
     .tlb_reset_dirty = tlb_reset_dirty_stub,
     .tlb_plugin_lookup = tlb_plugin_lookup_stub,
 #endif
+    .tcg_exec_realizefn = tcg_exec_realizefn_stub,
+    .tcg_exec_unrealizefn = update_cpu_stub,
 };
diff --git a/cpu.c b/cpu.c
index 26277f387baf..d1c9f68a26e7 100644
--- a/cpu.c
+++ b/cpu.c
@@ -140,7 +140,7 @@ void cpu_exec_realizefn(CPUState *cpu, Error **errp)
 #ifdef CONFIG_TCG
     /* NB: errp parameter is unused currently */
     if (tcg_enabled()) {
-        tcg_exec_realizefn(cpu, errp);
+        tcg.tcg_exec_realizefn(cpu, errp);
     }
 #endif /* CONFIG_TCG */
 
@@ -172,7 +172,7 @@ void cpu_exec_unrealizefn(CPUState *cpu)
 #ifdef CONFIG_TCG
     /* NB: errp parameter is unused currently */
     if (tcg_enabled()) {
-        tcg_exec_unrealizefn(cpu);
+        tcg.tcg_exec_unrealizefn(cpu);
     }
 #endif /* CONFIG_TCG */
 
-- 
2.31.1



WARNING: multiple messages have this Message-ID (diff)
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Aurelien Jarno" <aurelien@aurel32.net>,
	"Laurent Vivier" <laurent@vivier.eu>,
	"Peter Xu" <peterx@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	qemu-ppc@nongnu.org,
	"Bastian Koppelmann" <kbastian@mail.uni-paderborn.de>,
	"Thomas Huth" <thuth@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	qemu-riscv@nongnu.org,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Stafford Horne" <shorne@gmail.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Bin Meng" <bin.meng@windriver.com>,
	"Mahmoud Mandour" <ma.mandourr@gmail.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Alexandre Iooss" <erdnaxe@crans.org>,
	"Greg Kurz" <groug@kaod.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	qemu-arm@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alistair Francis" <alistair.francis@wdc.com>,
	qemu-s390x@nongnu.org,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>
Subject: [PATCH 14/29] tcg_funcs:Add  tcg_exec_{realizefn, unrealizefn} to TCGModuleOps
Date: Tue, 31 Aug 2021 14:15:30 +0200	[thread overview]
Message-ID: <20210831121545.2874233-15-kraxel@redhat.com> (raw)
In-Reply-To: <20210831121545.2874233-1-kraxel@redhat.com>

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/exec/cpu-all.h   |  2 --
 include/tcg/tcg-module.h |  2 ++
 accel/tcg/cpu-exec.c     | 12 ++++++++++--
 accel/tcg/tcg-module.c   |  6 ++++++
 cpu.c                    |  4 ++--
 5 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index 32cfb634c6a0..c2bfd0ea1de1 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -440,8 +440,6 @@ void dump_opcount_info(void);
 #ifdef CONFIG_TCG
 /* accel/tcg/cpu-exec.c */
 int cpu_exec(CPUState *cpu);
-void tcg_exec_realizefn(CPUState *cpu, Error **errp);
-void tcg_exec_unrealizefn(CPUState *cpu);
 #endif /* CONFIG_TCG */
 
 /* Returns: 0 on success, -1 on error */
diff --git a/include/tcg/tcg-module.h b/include/tcg/tcg-module.h
index 159cbd3e7ce6..5dd4deb9ed57 100644
--- a/include/tcg/tcg-module.h
+++ b/include/tcg/tcg-module.h
@@ -11,6 +11,8 @@ struct TCGModuleOps {
     bool (*tlb_plugin_lookup)(CPUState *cpu, target_ulong addr, int mmu_idx,
                               bool is_store, struct qemu_plugin_hwaddr *data);
 #endif
+    void (*tcg_exec_unrealizefn)(CPUState *cpu);
+    void (*tcg_exec_realizefn)(CPUState *cpu, Error **errp);
 };
 extern struct TCGModuleOps tcg;
 
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index e5c0ccd1a2ab..d41d1d2bd24f 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -981,7 +981,7 @@ int cpu_exec(CPUState *cpu)
     return ret;
 }
 
-void tcg_exec_realizefn(CPUState *cpu, Error **errp)
+static void tcg_exec_realizefn(CPUState *cpu, Error **errp)
 {
     static bool tcg_target_initialized;
     CPUClass *cc = CPU_GET_CLASS(cpu);
@@ -999,7 +999,7 @@ void tcg_exec_realizefn(CPUState *cpu, Error **errp)
 }
 
 /* undo the initializations in reverse order */
-void tcg_exec_unrealizefn(CPUState *cpu)
+static void tcg_exec_unrealizefn(CPUState *cpu)
 {
 #ifndef CONFIG_USER_ONLY
     tcg_iommu_free_notifier_list(cpu);
@@ -1031,3 +1031,11 @@ void dump_drift_info(void)
 }
 
 #endif /* !CONFIG_USER_ONLY */
+
+static void tcg_module_ops_exec(void)
+{
+    tcg.tcg_exec_realizefn = tcg_exec_realizefn;
+    tcg.tcg_exec_unrealizefn = tcg_exec_unrealizefn;
+}
+
+type_init(tcg_module_ops_exec);
diff --git a/accel/tcg/tcg-module.c b/accel/tcg/tcg-module.c
index db3d3e9e9318..36c1df564f31 100644
--- a/accel/tcg/tcg-module.c
+++ b/accel/tcg/tcg-module.c
@@ -21,6 +21,10 @@ static bool tlb_plugin_lookup_stub(CPUState *cpu, target_ulong addr, int mmu_idx
 }
 #endif
 
+static void tcg_exec_realizefn_stub(CPUState *cpu, Error **errp)
+{
+}
+
 struct TCGModuleOps tcg = {
     .tlb_flush = update_cpu_stub,
     .tlb_flush_page = tlb_flush_page_stub,
@@ -28,4 +32,6 @@ struct TCGModuleOps tcg = {
     .tlb_reset_dirty = tlb_reset_dirty_stub,
     .tlb_plugin_lookup = tlb_plugin_lookup_stub,
 #endif
+    .tcg_exec_realizefn = tcg_exec_realizefn_stub,
+    .tcg_exec_unrealizefn = update_cpu_stub,
 };
diff --git a/cpu.c b/cpu.c
index 26277f387baf..d1c9f68a26e7 100644
--- a/cpu.c
+++ b/cpu.c
@@ -140,7 +140,7 @@ void cpu_exec_realizefn(CPUState *cpu, Error **errp)
 #ifdef CONFIG_TCG
     /* NB: errp parameter is unused currently */
     if (tcg_enabled()) {
-        tcg_exec_realizefn(cpu, errp);
+        tcg.tcg_exec_realizefn(cpu, errp);
     }
 #endif /* CONFIG_TCG */
 
@@ -172,7 +172,7 @@ void cpu_exec_unrealizefn(CPUState *cpu)
 #ifdef CONFIG_TCG
     /* NB: errp parameter is unused currently */
     if (tcg_enabled()) {
-        tcg_exec_unrealizefn(cpu);
+        tcg.tcg_exec_unrealizefn(cpu);
     }
 #endif /* CONFIG_TCG */
 
-- 
2.31.1



  parent reply	other threads:[~2021-08-31 12:34 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-31 12:15 [PATCH 00/29] [RFC] build more i386 tcg code modular Gerd Hoffmann
2021-08-31 12:15 ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 01/29] build: temporarily disable modular tcg Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 02/29] plugins: register qemu_plugin_opts using opts_init() Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 03/29] tcg/module: move hmp.c to module Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 04/29] tcg/module: move cputlb.c " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 05/29] tcg/module: move tcg_ss to module [accel/tcg] Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 06/29] tcg/module: move tcg_ss to module [tcg] Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 07/29] tcg/module: move files to module [target/i386/tcg] Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 08/29] move cpu-exec-common.c from tcg module to core qemu [accel/tcg] Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 09/29] tcg/module: add tcg-module.[ch] infrastructure Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-09-28 11:47   ` Philippe Mathieu-Daudé
2021-09-28 11:47     ` Philippe Mathieu-Daudé
2021-09-28 12:11     ` Gerd Hoffmann
2021-09-28 12:11       ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 10/29] tcg_funcs: Add tlb_flush to TCGModuleOps Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-09-02 13:09   ` Richard Henderson
2021-09-02 13:09     ` Richard Henderson
2021-09-28 11:32     ` Gerd Hoffmann
2021-09-28 11:32       ` Gerd Hoffmann
2021-09-28 12:50       ` Richard Henderson
2021-09-28 12:50         ` Richard Henderson
2021-09-29  7:09         ` Gerd Hoffmann
2021-09-29  7:09           ` Gerd Hoffmann
2021-09-29 10:35           ` Richard Henderson
2021-09-29 10:35             ` Richard Henderson
2021-08-31 12:15 ` [PATCH 11/29] tcg_funcs: Add tlb_flush_page " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 12/29] tcg_funcs: Add tlb_reset_dirty " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 13/29] tcg_funcs: Add tlb_plugin_lookup " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` Gerd Hoffmann [this message]
2021-08-31 12:15   ` [PATCH 14/29] tcg_funcs:Add tcg_exec_{realizefn, unrealizefn} " Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 15/29] tcg_funcs: Add tb_flush " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-09-01  8:10   ` Greg Kurz
2021-09-01  8:10     ` Greg Kurz
2021-08-31 12:15 ` [PATCH 16/29] tcg: use tb_page_addr_t for tb_invalidate_phys_range() Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 17/29] tcg: drop tb_invalidate_phys_page_range() Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 18/29] tcg_funcs: Add tb_invalidate_phys_range to TCGModuleOps Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 19/29] tcg_funcs: Add tb_check_watchpoint " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 20/29] tcg_funcs: Add cpu_restore_state " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-09-01  2:35   ` David Gibson
2021-09-01  2:35     ` David Gibson
2021-09-01  8:09   ` Bastian Koppelmann
2021-09-01  8:09     ` Bastian Koppelmann
2021-08-31 12:15 ` [PATCH 21/29] tcg_funcs: Add curr_cflags " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 22/29] tcg_i386_funcs: Add update_fp_status to TCGI386ModuleOps Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 23/29] tcg_i386_funcs: Add update_mxcsr_status " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 24/29] tcg_i386_funcs: Add update_mxcsr_from_sse_status " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 25/29] tcg_i386_funcs: Add x86_register_ferr_irq " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 26/29] tcg_i386_funcs: Add cpu_set_ignne " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 27/29] tcg_i386_funcs: Add cpu_x86_update_dr7 " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 28/29] tcg_i386_funcs: Add cpu_cc_compute_all " Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann
2021-08-31 12:15 ` [PATCH 29/29] Revert "build: temporarily disable modular tcg" Gerd Hoffmann
2021-08-31 12:15   ` Gerd Hoffmann

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=20210831121545.2874233-15-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alex.bennee@linaro.org \
    --cc=alistair.francis@wdc.com \
    --cc=aurelien@aurel32.net \
    --cc=bin.meng@windriver.com \
    --cc=borntraeger@de.ibm.com \
    --cc=chenhuacai@kernel.org \
    --cc=cohuck@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=erdnaxe@crans.org \
    --cc=f4bug@amsat.org \
    --cc=groug@kaod.org \
    --cc=jcmvbkbc@gmail.com \
    --cc=kbastian@mail.uni-paderborn.de \
    --cc=laurent@vivier.eu \
    --cc=ma.mandourr@gmail.com \
    --cc=mst@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shorne@gmail.com \
    --cc=thuth@redhat.com \
    /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.