This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 21/22] [GDBserver] Multi-process + multi-arch: LynxOS
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 30 May 2013 13:16:06 +0100
- Subject: [PATCH 21/22] [GDBserver] Multi-process + multi-arch: LynxOS
- References: <20130530121335 dot 15047 dot 12654 dot stgit at brno dot lan>
This adjusts the LynxOS ports to new interfaces.
Completely untested.
2012-05-30 Pedro Alves <palves@redhat.com>
* lynx-i386-low.c (tdesc_i386): Declare global.
(lynx_i386_arch_setup): Set `lynx_tdesc'.
* lynx-low.c (lynx_tdesc): New global.
(lynx_add_process): Set the new process'es tdesc.
* lynx-low.h (struct target_desc): Forward declare.
(lynx_tdesc): Declare global.
* lynx-ppc-low.c (tdesc_powerpc_32): Declare global.
(lynx_ppc_arch_setup): Set `lynx_tdesc'.
---
gdb/gdbserver/lynx-i386-low.c | 2 ++
gdb/gdbserver/lynx-low.c | 3 +++
gdb/gdbserver/lynx-low.h | 4 ++++
gdb/gdbserver/lynx-ppc-low.c | 2 ++
4 files changed, 11 insertions(+)
diff --git a/gdb/gdbserver/lynx-i386-low.c b/gdb/gdbserver/lynx-i386-low.c
index e461bb2..11b5f4c 100644
--- a/gdb/gdbserver/lynx-i386-low.c
+++ b/gdb/gdbserver/lynx-i386-low.c
@@ -122,6 +122,7 @@ enum lynx_i386_gdb_regnum
/* Defined in auto-generated file i386.c. */
extern void init_registers_i386 (void);
+extern const struct target_desc *tdesc_i386;
/* The fill_function for the general-purpose register set. */
@@ -297,6 +298,7 @@ static void
lynx_i386_arch_setup (void)
{
init_registers_i386 ();
+ lynx_tdesc = tdesc_i386;
}
/* Description of all the x86-lynx register sets. */
diff --git a/gdb/gdbserver/lynx-low.c b/gdb/gdbserver/lynx-low.c
index 3dbffa5..4cf8683 100644
--- a/gdb/gdbserver/lynx-low.c
+++ b/gdb/gdbserver/lynx-low.c
@@ -30,6 +30,8 @@
int using_threads = 1;
+const struct target_desc *lynx_tdesc;
+
/* Per-process private data. */
struct process_info_private
@@ -214,6 +216,7 @@ lynx_add_process (int pid, int attached)
struct process_info *proc;
proc = add_process (pid, attached);
+ proc->tdesc = lynx_tdesc;
proc->private = xcalloc (1, sizeof (*proc->private));
proc->private->last_wait_event_ptid = null_ptid;
diff --git a/gdb/gdbserver/lynx-low.h b/gdb/gdbserver/lynx-low.h
index 552c50f..47deaab 100644
--- a/gdb/gdbserver/lynx-low.h
+++ b/gdb/gdbserver/lynx-low.h
@@ -18,6 +18,7 @@
#include "server.h"
struct regcache;
+struct target_desc;
/* Some information relative to a given register set. */
@@ -50,3 +51,6 @@ struct lynx_target_ops
extern struct lynx_target_ops the_low_target;
+/* The inferior's target description. This is a global because the
+ LynxOS ports support neither bi-arch nor multi-process. */
+extern const struct target_desc *lynx_tdesc;
diff --git a/gdb/gdbserver/lynx-ppc-low.c b/gdb/gdbserver/lynx-ppc-low.c
index 5e5ac5d..dc5dd3c 100644
--- a/gdb/gdbserver/lynx-ppc-low.c
+++ b/gdb/gdbserver/lynx-ppc-low.c
@@ -69,6 +69,7 @@ typedef struct usr_fcontext_s
/* Defined in auto-generated file powerpc-32.c. */
extern void init_registers_powerpc_32 (void);
+extern const struct target_desc *tdesc_powerpc_32;
/* The fill_function for the general-purpose register set. */
@@ -164,6 +165,7 @@ static void
lynx_ppc_arch_setup (void)
{
init_registers_powerpc_32 ();
+ lynx_tdesc = tdesc_powerpc_32;
}
/* Description of all the powerpc-lynx register sets. */