From 8fcb0c6a8f4ea51fba4bcff918c3f9808ee1de21 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 27 Jun 2002 21:13:44 +0000 Subject: 2002-06-25 Joel Sherrill * Thomas Doerfler 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. --- c/src/lib/libbsp/shared/gdbstub/.cvsignore | 2 + c/src/lib/libbsp/shared/gdbstub/ChangeLog | 8 +++ c/src/lib/libbsp/shared/gdbstub/Makefile.am | 8 +++ c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c | 68 ++++++++++++++++++++++- 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 c/src/lib/libbsp/shared/gdbstub/.cvsignore create mode 100644 c/src/lib/libbsp/shared/gdbstub/ChangeLog create mode 100644 c/src/lib/libbsp/shared/gdbstub/Makefile.am (limited to 'c') 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 + + * Thomas Doerfler 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; @@ -1385,6 +1388,67 @@ void rtems_gdb_stub_get_registers_from_context( } +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; +} + +#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, -- cgit v1.2.3