* [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml
@ 2015-12-03 12:14 Christian Borntraeger
2016-01-14 14:27 ` Christian Borntraeger
0 siblings, 1 reply; 5+ messages in thread
From: Christian Borntraeger @ 2015-12-03 12:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Christian Borntraeger, David Hildenbrand
From: David Hildenbrand <dahi@linux.vnet.ibm.com>
This patch provides the name of the architecture in the target.xml
if available.
This allows the remote gdb to detect the target architecture on its
own - so there is no need to specify it manually (e.g. if gdb is
started without a binary) using "set arch *arch_name*".
The name of the architecture is provided by a callback that can
be implemented by all architectures. The arm implementation has
special handling for iwmmxt and returns arm otherwise. This can
be extended if necessary.
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
[rework to use a callback]
---
v1->v2: replace the fixed string with a callback
gdbstub.c | 21 ++++++++++++++-------
include/qom/cpu.h | 3 +++
target-arm/cpu.c | 12 ++++++++++++
target-arm/cpu64.c | 6 ++++++
target-ppc/translate_init.c | 10 ++++++++++
target-s390x/cpu.c | 6 ++++++
6 files changed, 51 insertions(+), 7 deletions(-)
diff --git a/gdbstub.c b/gdbstub.c
index 9c29aa0..6a674b2 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -540,13 +540,20 @@ static const char *get_feature_xml(const char *p, const char **newp,
GDBRegisterState *r;
CPUState *cpu = first_cpu;
- snprintf(target_xml, sizeof(target_xml),
- "<?xml version=\"1.0\"?>"
- "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
- "<target>"
- "<xi:include href=\"%s\"/>",
- cc->gdb_core_xml_file);
-
+ pstrcat(target_xml, sizeof(target_xml),
+ "<?xml version=\"1.0\"?>"
+ "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
+ "<target>");
+ if (cc->gdb_arch_name) {
+ gchar *arch = cc->gdb_arch_name(cpu);
+ pstrcat(target_xml, sizeof(target_xml), "<architecture>");
+ pstrcat(target_xml, sizeof(target_xml), arch);
+ pstrcat(target_xml, sizeof(target_xml), "</architecture>");
+ g_free(arch);
+ }
+ pstrcat(target_xml, sizeof(target_xml), "<xi:include href=\"");
+ pstrcat(target_xml, sizeof(target_xml), cc->gdb_core_xml_file);
+ pstrcat(target_xml, sizeof(target_xml), "\"/>");
for (r = cpu->gdb_regs; r; r = r->next) {
pstrcat(target_xml, sizeof(target_xml), "<xi:include href=\"");
pstrcat(target_xml, sizeof(target_xml), r->xml);
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 51a1323..c3c2812 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -114,6 +114,8 @@ struct TranslationBlock;
* @gdb_core_xml_file: File name for core registers GDB XML description.
* @gdb_stop_before_watchpoint: Indicates whether GDB expects the CPU to stop
* before the insn which triggers a watchpoint rather than after it.
+ * @gdb_arch_name: Optional callback that returns the architecture name known
+ * to GDB. The caller must free the returned string with g_free.
* @cpu_exec_enter: Callback for cpu_exec preparation.
* @cpu_exec_exit: Callback for cpu_exec cleanup.
* @cpu_exec_interrupt: Callback for processing interrupts in cpu_exec.
@@ -168,6 +170,7 @@ typedef struct CPUClass {
const struct VMStateDescription *vmsd;
int gdb_num_core_regs;
const char *gdb_core_xml_file;
+ gchar * (*gdb_arch_name)(CPUState *cpu);
bool gdb_stop_before_watchpoint;
void (*cpu_exec_enter)(CPUState *cpu);
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 30739fc..771cf91 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -1393,6 +1393,17 @@ static int arm_cpu_handle_mmu_fault(CPUState *cs, vaddr address, int rw,
}
#endif
+static gchar *arm_gdb_arch_name(CPUState *cs)
+{
+ ARMCPU *cpu = ARM_CPU(cs);
+ CPUARMState *env = &cpu->env;
+
+ if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
+ return g_strdup("iwmmxt");
+ }
+ return g_strdup("arm");
+}
+
static void arm_cpu_class_init(ObjectClass *oc, void *data)
{
ARMCPUClass *acc = ARM_CPU_CLASS(oc);
@@ -1423,6 +1434,7 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
#endif
cc->gdb_num_core_regs = 26;
cc->gdb_core_xml_file = "arm-core.xml";
+ cc->gdb_arch_name = arm_gdb_arch_name;
cc->gdb_stop_before_watchpoint = true;
cc->debug_excp_handler = arm_debug_excp_handler;
diff --git a/target-arm/cpu64.c b/target-arm/cpu64.c
index 63c8b1c..ad1991d 100644
--- a/target-arm/cpu64.c
+++ b/target-arm/cpu64.c
@@ -286,6 +286,11 @@ static void aarch64_cpu_set_pc(CPUState *cs, vaddr value)
}
}
+static gchar *aarch64_gdb_arch_name(CPUState *cs)
+{
+ return g_strdup("aarch64");
+}
+
static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
{
CPUClass *cc = CPU_CLASS(oc);
@@ -299,6 +304,7 @@ static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
cc->gdb_write_register = aarch64_cpu_gdb_write_register;
cc->gdb_num_core_regs = 34;
cc->gdb_core_xml_file = "aarch64-core.xml";
+ cc->gdb_arch_name = aarch64_gdb_arch_name;
}
static void aarch64_cpu_register(const ARMCPUInfo *info)
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index e88dc7f..e36d0a3 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -9681,6 +9681,15 @@ static bool ppc_pvr_match_default(PowerPCCPUClass *pcc, uint32_t pvr)
return pcc->pvr == pvr;
}
+static gchar *ppc_gdb_arch_name(CPUState *cs)
+{
+#if defined(TARGET_PPC64)
+ return g_strdup("powerpc:common64");
+#else
+ return g_strdup("powerpc:common");
+#endif
+}
+
static void ppc_cpu_class_init(ObjectClass *oc, void *data)
{
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
@@ -9725,6 +9734,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data)
cc->gdb_num_core_regs = 71 + 32;
#endif
+ cc->gdb_arch_name = ppc_gdb_arch_name;
#if defined(TARGET_PPC64)
cc->gdb_core_xml_file = "power64-core.xml";
#else
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index 48ecd34..69f914f 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -369,6 +369,11 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu)
}
#endif
+static gchar *s390_gdb_arch_name(CPUState *cs)
+{
+ return g_strdup("s390:64-bit");
+}
+
static void s390_cpu_class_init(ObjectClass *oc, void *data)
{
S390CPUClass *scc = S390_CPU_CLASS(oc);
@@ -405,6 +410,7 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
cc->gdb_num_core_regs = S390_NUM_CORE_REGS;
cc->gdb_core_xml_file = "s390x-core64.xml";
+ cc->gdb_arch_name = s390_gdb_arch_name;
/*
* Reason: s390_cpu_initfn() calls cpu_exec_init(), which saves
--
2.3.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml
2015-12-03 12:14 [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml Christian Borntraeger
@ 2016-01-14 14:27 ` Christian Borntraeger
2016-01-15 14:18 ` Peter Maydell
0 siblings, 1 reply; 5+ messages in thread
From: Christian Borntraeger @ 2016-01-14 14:27 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, David Hildenbrand
Ping?
On 12/03/2015 01:14 PM, Christian Borntraeger wrote:
> From: David Hildenbrand <dahi@linux.vnet.ibm.com>
>
> This patch provides the name of the architecture in the target.xml
> if available.
>
> This allows the remote gdb to detect the target architecture on its
> own - so there is no need to specify it manually (e.g. if gdb is
> started without a binary) using "set arch *arch_name*".
>
> The name of the architecture is provided by a callback that can
> be implemented by all architectures. The arm implementation has
> special handling for iwmmxt and returns arm otherwise. This can
> be extended if necessary.
>
> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> [rework to use a callback]
> ---
> v1->v2: replace the fixed string with a callback
>
> gdbstub.c | 21 ++++++++++++++-------
> include/qom/cpu.h | 3 +++
> target-arm/cpu.c | 12 ++++++++++++
> target-arm/cpu64.c | 6 ++++++
> target-ppc/translate_init.c | 10 ++++++++++
> target-s390x/cpu.c | 6 ++++++
> 6 files changed, 51 insertions(+), 7 deletions(-)
>
> diff --git a/gdbstub.c b/gdbstub.c
> index 9c29aa0..6a674b2 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -540,13 +540,20 @@ static const char *get_feature_xml(const char *p, const char **newp,
> GDBRegisterState *r;
> CPUState *cpu = first_cpu;
>
> - snprintf(target_xml, sizeof(target_xml),
> - "<?xml version=\"1.0\"?>"
> - "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
> - "<target>"
> - "<xi:include href=\"%s\"/>",
> - cc->gdb_core_xml_file);
> -
> + pstrcat(target_xml, sizeof(target_xml),
> + "<?xml version=\"1.0\"?>"
> + "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
> + "<target>");
> + if (cc->gdb_arch_name) {
> + gchar *arch = cc->gdb_arch_name(cpu);
> + pstrcat(target_xml, sizeof(target_xml), "<architecture>");
> + pstrcat(target_xml, sizeof(target_xml), arch);
> + pstrcat(target_xml, sizeof(target_xml), "</architecture>");
> + g_free(arch);
> + }
> + pstrcat(target_xml, sizeof(target_xml), "<xi:include href=\"");
> + pstrcat(target_xml, sizeof(target_xml), cc->gdb_core_xml_file);
> + pstrcat(target_xml, sizeof(target_xml), "\"/>");
> for (r = cpu->gdb_regs; r; r = r->next) {
> pstrcat(target_xml, sizeof(target_xml), "<xi:include href=\"");
> pstrcat(target_xml, sizeof(target_xml), r->xml);
> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
> index 51a1323..c3c2812 100644
> --- a/include/qom/cpu.h
> +++ b/include/qom/cpu.h
> @@ -114,6 +114,8 @@ struct TranslationBlock;
> * @gdb_core_xml_file: File name for core registers GDB XML description.
> * @gdb_stop_before_watchpoint: Indicates whether GDB expects the CPU to stop
> * before the insn which triggers a watchpoint rather than after it.
> + * @gdb_arch_name: Optional callback that returns the architecture name known
> + * to GDB. The caller must free the returned string with g_free.
> * @cpu_exec_enter: Callback for cpu_exec preparation.
> * @cpu_exec_exit: Callback for cpu_exec cleanup.
> * @cpu_exec_interrupt: Callback for processing interrupts in cpu_exec.
> @@ -168,6 +170,7 @@ typedef struct CPUClass {
> const struct VMStateDescription *vmsd;
> int gdb_num_core_regs;
> const char *gdb_core_xml_file;
> + gchar * (*gdb_arch_name)(CPUState *cpu);
> bool gdb_stop_before_watchpoint;
>
> void (*cpu_exec_enter)(CPUState *cpu);
> diff --git a/target-arm/cpu.c b/target-arm/cpu.c
> index 30739fc..771cf91 100644
> --- a/target-arm/cpu.c
> +++ b/target-arm/cpu.c
> @@ -1393,6 +1393,17 @@ static int arm_cpu_handle_mmu_fault(CPUState *cs, vaddr address, int rw,
> }
> #endif
>
> +static gchar *arm_gdb_arch_name(CPUState *cs)
> +{
> + ARMCPU *cpu = ARM_CPU(cs);
> + CPUARMState *env = &cpu->env;
> +
> + if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
> + return g_strdup("iwmmxt");
> + }
> + return g_strdup("arm");
> +}
> +
> static void arm_cpu_class_init(ObjectClass *oc, void *data)
> {
> ARMCPUClass *acc = ARM_CPU_CLASS(oc);
> @@ -1423,6 +1434,7 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
> #endif
> cc->gdb_num_core_regs = 26;
> cc->gdb_core_xml_file = "arm-core.xml";
> + cc->gdb_arch_name = arm_gdb_arch_name;
> cc->gdb_stop_before_watchpoint = true;
> cc->debug_excp_handler = arm_debug_excp_handler;
>
> diff --git a/target-arm/cpu64.c b/target-arm/cpu64.c
> index 63c8b1c..ad1991d 100644
> --- a/target-arm/cpu64.c
> +++ b/target-arm/cpu64.c
> @@ -286,6 +286,11 @@ static void aarch64_cpu_set_pc(CPUState *cs, vaddr value)
> }
> }
>
> +static gchar *aarch64_gdb_arch_name(CPUState *cs)
> +{
> + return g_strdup("aarch64");
> +}
> +
> static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
> {
> CPUClass *cc = CPU_CLASS(oc);
> @@ -299,6 +304,7 @@ static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
> cc->gdb_write_register = aarch64_cpu_gdb_write_register;
> cc->gdb_num_core_regs = 34;
> cc->gdb_core_xml_file = "aarch64-core.xml";
> + cc->gdb_arch_name = aarch64_gdb_arch_name;
> }
>
> static void aarch64_cpu_register(const ARMCPUInfo *info)
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index e88dc7f..e36d0a3 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -9681,6 +9681,15 @@ static bool ppc_pvr_match_default(PowerPCCPUClass *pcc, uint32_t pvr)
> return pcc->pvr == pvr;
> }
>
> +static gchar *ppc_gdb_arch_name(CPUState *cs)
> +{
> +#if defined(TARGET_PPC64)
> + return g_strdup("powerpc:common64");
> +#else
> + return g_strdup("powerpc:common");
> +#endif
> +}
> +
> static void ppc_cpu_class_init(ObjectClass *oc, void *data)
> {
> PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
> @@ -9725,6 +9734,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data)
> cc->gdb_num_core_regs = 71 + 32;
> #endif
>
> + cc->gdb_arch_name = ppc_gdb_arch_name;
> #if defined(TARGET_PPC64)
> cc->gdb_core_xml_file = "power64-core.xml";
> #else
> diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
> index 48ecd34..69f914f 100644
> --- a/target-s390x/cpu.c
> +++ b/target-s390x/cpu.c
> @@ -369,6 +369,11 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu)
> }
> #endif
>
> +static gchar *s390_gdb_arch_name(CPUState *cs)
> +{
> + return g_strdup("s390:64-bit");
> +}
> +
> static void s390_cpu_class_init(ObjectClass *oc, void *data)
> {
> S390CPUClass *scc = S390_CPU_CLASS(oc);
> @@ -405,6 +410,7 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
>
> cc->gdb_num_core_regs = S390_NUM_CORE_REGS;
> cc->gdb_core_xml_file = "s390x-core64.xml";
> + cc->gdb_arch_name = s390_gdb_arch_name;
>
> /*
> * Reason: s390_cpu_initfn() calls cpu_exec_init(), which saves
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml
2016-01-14 14:27 ` Christian Borntraeger
@ 2016-01-15 14:18 ` Peter Maydell
2016-01-21 16:17 ` Christian Borntraeger
0 siblings, 1 reply; 5+ messages in thread
From: Peter Maydell @ 2016-01-15 14:18 UTC (permalink / raw)
To: Christian Borntraeger; +Cc: David Hildenbrand, qemu-devel
On 14 January 2016 at 14:27, Christian Borntraeger
<borntraeger@de.ibm.com> wrote:
> Ping?
>
> On 12/03/2015 01:14 PM, Christian Borntraeger wrote:
>> From: David Hildenbrand <dahi@linux.vnet.ibm.com>
>>
>> This patch provides the name of the architecture in the target.xml
>> if available.
>>
>> This allows the remote gdb to detect the target architecture on its
>> own - so there is no need to specify it manually (e.g. if gdb is
>> started without a binary) using "set arch *arch_name*".
>>
>> The name of the architecture is provided by a callback that can
>> be implemented by all architectures. The arm implementation has
>> special handling for iwmmxt and returns arm otherwise. This can
>> be extended if necessary.
>>
>> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
>> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> [rework to use a callback]
>> ---
>> v1->v2: replace the fixed string with a callback
>>
>> gdbstub.c | 21 ++++++++++++++-------
>> include/qom/cpu.h | 3 +++
>> target-arm/cpu.c | 12 ++++++++++++
>> target-arm/cpu64.c | 6 ++++++
>> target-ppc/translate_init.c | 10 ++++++++++
>> target-s390x/cpu.c | 6 ++++++
>> 6 files changed, 51 insertions(+), 7 deletions(-)
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
(at least for the generic and ARM related bits).
thanks
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml
2016-01-15 14:18 ` Peter Maydell
@ 2016-01-21 16:17 ` Christian Borntraeger
2016-01-21 16:28 ` Cornelia Huck
0 siblings, 1 reply; 5+ messages in thread
From: Christian Borntraeger @ 2016-01-21 16:17 UTC (permalink / raw)
To: Peter Maydell; +Cc: Cornelia Huck, David Hildenbrand, qemu-devel
On 01/15/2016 03:18 PM, Peter Maydell wrote:
> On 14 January 2016 at 14:27, Christian Borntraeger
> <borntraeger@de.ibm.com> wrote:
>> Ping?
>>
>> On 12/03/2015 01:14 PM, Christian Borntraeger wrote:
>>> From: David Hildenbrand <dahi@linux.vnet.ibm.com>
>>>
>>> This patch provides the name of the architecture in the target.xml
>>> if available.
>>>
>>> This allows the remote gdb to detect the target architecture on its
>>> own - so there is no need to specify it manually (e.g. if gdb is
>>> started without a binary) using "set arch *arch_name*".
>>>
>>> The name of the architecture is provided by a callback that can
>>> be implemented by all architectures. The arm implementation has
>>> special handling for iwmmxt and returns arm otherwise. This can
>>> be extended if necessary.
>>>
>>> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
>>> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>>> [rework to use a callback]
>>> ---
>>> v1->v2: replace the fixed string with a callback
>>>
>>> gdbstub.c | 21 ++++++++++++++-------
>>> include/qom/cpu.h | 3 +++
>>> target-arm/cpu.c | 12 ++++++++++++
>>> target-arm/cpu64.c | 6 ++++++
>>> target-ppc/translate_init.c | 10 ++++++++++
>>> target-s390x/cpu.c | 6 ++++++
>>> 6 files changed, 51 insertions(+), 7 deletions(-)
>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>
> (at least for the generic and ARM related bits).
Ok, so I will take that and send it via the s390/kvm tree?
Well, Conny will probably do the next round.
Christian
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml
2016-01-21 16:17 ` Christian Borntraeger
@ 2016-01-21 16:28 ` Cornelia Huck
0 siblings, 0 replies; 5+ messages in thread
From: Cornelia Huck @ 2016-01-21 16:28 UTC (permalink / raw)
To: Christian Borntraeger; +Cc: Peter Maydell, qemu-devel, David Hildenbrand
On Thu, 21 Jan 2016 17:17:05 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> On 01/15/2016 03:18 PM, Peter Maydell wrote:
> > On 14 January 2016 at 14:27, Christian Borntraeger
> > <borntraeger@de.ibm.com> wrote:
> >> Ping?
> >>
> >> On 12/03/2015 01:14 PM, Christian Borntraeger wrote:
> >>> From: David Hildenbrand <dahi@linux.vnet.ibm.com>
> >>>
> >>> This patch provides the name of the architecture in the target.xml
> >>> if available.
> >>>
> >>> This allows the remote gdb to detect the target architecture on its
> >>> own - so there is no need to specify it manually (e.g. if gdb is
> >>> started without a binary) using "set arch *arch_name*".
> >>>
> >>> The name of the architecture is provided by a callback that can
> >>> be implemented by all architectures. The arm implementation has
> >>> special handling for iwmmxt and returns arm otherwise. This can
> >>> be extended if necessary.
> >>>
> >>> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
> >>> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> >>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> >>> [rework to use a callback]
> >>> ---
> >>> v1->v2: replace the fixed string with a callback
> >>>
> >>> gdbstub.c | 21 ++++++++++++++-------
> >>> include/qom/cpu.h | 3 +++
> >>> target-arm/cpu.c | 12 ++++++++++++
> >>> target-arm/cpu64.c | 6 ++++++
> >>> target-ppc/translate_init.c | 10 ++++++++++
> >>> target-s390x/cpu.c | 6 ++++++
> >>> 6 files changed, 51 insertions(+), 7 deletions(-)
> >
> > Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> >
> > (at least for the generic and ARM related bits).
>
> Ok, so I will take that and send it via the s390/kvm tree?
> Well, Conny will probably do the next round.
Will do, unless somebody objects.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-21 16:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-03 12:14 [Qemu-devel] [PATCH v2] gdb: provide the name of the architecture in the target.xml Christian Borntraeger
2016-01-14 14:27 ` Christian Borntraeger
2016-01-15 14:18 ` Peter Maydell
2016-01-21 16:17 ` Christian Borntraeger
2016-01-21 16:28 ` Cornelia Huck
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).