summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-06-27 21:13:44 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-06-27 21:13:44 +0000
commit8fcb0c6a8f4ea51fba4bcff918c3f9808ee1de21 (patch)
treebdb6dba48531f08a5d441da67d20a8959184f290 /c
parent2002-06-25 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-8fcb0c6a8f4ea51fba4bcff918c3f9808ee1de21.tar.bz2
2002-06-25 Joel Sherrill <joel@OARcorp.com>
* Thomas Doerfler <Thomas.Doerfler@imd-systems.de> added m68k support to the shared gdb stub glue necessitating a move up. * ChangeLog, Makefile.am, .cvsignore: New file. * rtems-stub-glue.c: Moved from mips/shared/gdbstub and m68k/shared/gdbstub.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/shared/gdbstub/.cvsignore2
-rw-r--r--c/src/lib/libbsp/shared/gdbstub/ChangeLog8
-rw-r--r--c/src/lib/libbsp/shared/gdbstub/Makefile.am8
-rw-r--r--c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c68
4 files changed, 84 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/shared/gdbstub/.cvsignore b/c/src/lib/libbsp/shared/gdbstub/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/c/src/lib/libbsp/shared/gdbstub/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/c/src/lib/libbsp/shared/gdbstub/ChangeLog b/c/src/lib/libbsp/shared/gdbstub/ChangeLog
new file mode 100644
index 0000000000..62ee17b9b2
--- /dev/null
+++ b/c/src/lib/libbsp/shared/gdbstub/ChangeLog
@@ -0,0 +1,8 @@
+2002-06-25 Joel Sherrill <joel@OARcorp.com>
+
+ * Thomas Doerfler <Thomas.Doerfler@imd-systems.de> added m68k
+ support to the shared gdb stub glue necessitating a move up.
+ * ChangeLog, Makefile.am, .cvsignore: New file.
+ * rtems-stub-glue.c: Moved from mips/shared/gdbstub and
+ m68k/shared/gdbstub.
+
diff --git a/c/src/lib/libbsp/shared/gdbstub/Makefile.am b/c/src/lib/libbsp/shared/gdbstub/Makefile.am
new file mode 100644
index 0000000000..e20595f01e
--- /dev/null
+++ b/c/src/lib/libbsp/shared/gdbstub/Makefile.am
@@ -0,0 +1,8 @@
+##
+## $Id$
+##
+
+
+EXTRA_DIST = rtems-stub-glue.c
+
+include $(top_srcdir)/../../../../automake/local.am
diff --git a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c
index 8d17911abf..50c8d95757 100644
--- a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c
+++ b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c
@@ -371,9 +371,12 @@ int rtems_gdb_stub_get_thread_info(
tmp_buf[8] = 0;
strcat(info->display, tmp_buf);
-
+#if 0
name = *(unsigned32 *)(obj_info->local_table[thread]->name);
-
+#else
+ name = *(unsigned32 *)(obj_info->local_table[thread -
+ first_rtems_id + 1]->name);
+#endif
info->name[0] = (name >> 24) & 0xff;
info->name[1] = (name >> 16) & 0xff;
info->name[2] = (name >> 8) & 0xff;
@@ -1406,6 +1409,67 @@ int rtems_gdb_stub_get_offsets(
return 1;
}
+#elif defined(__mc68000__)
+
+
+void rtems_gdb_stub_get_registers_from_context(
+ int *registers,
+ Thread_Control *th
+)
+{
+ /*
+ * how about register D0/D1/A0/A1
+ * they are located on thread stack ...
+ * -> they are not needed for context switch
+ */
+ registers[D0] = 0;
+ registers[D1] = 0;
+ registers[D2] = (unsigned32)th->Registers.d2;
+ registers[D3] = (unsigned32)th->Registers.d3;
+ registers[D4] = (unsigned32)th->Registers.d4;
+ registers[D5] = (unsigned32)th->Registers.d5;
+ registers[D6] = (unsigned32)th->Registers.d6;
+ registers[D7] = (unsigned32)th->Registers.d7;
+
+ registers[A0] = 0;
+ registers[A1] = 0;
+ registers[A2] = (unsigned32)th->Registers.a2;
+ registers[A3] = (unsigned32)th->Registers.a3;
+ registers[A4] = (unsigned32)th->Registers.a4;
+ registers[A5] = (unsigned32)th->Registers.a5;
+ registers[A6] = (unsigned32)th->Registers.a6;
+ registers[A7] = (unsigned32)th->Registers.a7_msp;
+
+ registers[PS] = (unsigned32)th->Registers.sr;
+#if 0
+ registers[PC] = *(unsigned32 *)th->Registers.a7_msp; /* *SP = ret adr */
+#else
+ registers[PC] = (unsigned32)_CPU_Context_switch;
+#endif
+}
+
+
+int rtems_gdb_stub_get_offsets(
+ unsigned char **text_addr,
+ unsigned char **data_addr,
+ unsigned char **bss_addr
+)
+{
+/*
+ extern unsigned32 _ftext;
+ extern unsigned32 _fdata;
+ extern unsigned32 _bss_start;
+
+ *text_addr = &_ftext;
+ *data_addr = &_fdata;
+ *bss_addr = &_bss_start;
+*/
+ *text_addr = 0;
+ *data_addr = 0;
+ *bss_addr = 0;
+ return 1;
+}
+
#else
#error "rtems-gdb-stub.c: Unsupported CPU!"
#endif