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.
This commit is contained in:
Joel Sherrill
2002-06-27 21:13:44 +00:00
parent 085dd80dc5
commit 8fcb0c6a8f
4 changed files with 84 additions and 2 deletions

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -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.

View File

@@ -0,0 +1,8 @@
##
## $Id$
##
EXTRA_DIST = rtems-stub-glue.c
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -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,