[PATCH 21/22] [GDBserver] Multi-process + multi-arch: LynxOS

Pedro Alves
2013-05-29T16:30:37Z

This adjusts the LynxOS ports to new interfaces.

Completely untested.

2012-05-29 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..4ce87fc 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 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..1f67b74 100644
--- a/gdb/gdbserver/lynx-low.c
+++ b/gdb/gdbserver/lynx-low.c
@@ -30,6 +30,8 @@

int using_threads = 1;

+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..03cb9e0 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 struct target_desc *lynx_tdesc;
diff --git a/gdb/gdbserver/lynx-ppc-low.c b/gdb/gdbserver/lynx-ppc-low.c
index 5e5ac5d..967a89f 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 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. */