Browse Source

2002-03-27 Daniel Jacobowitz <drow@mvista.com>

* gdbserver/server.c (main): Call target_signal_to_host_p
        and target_signal_to_host on signals received from the remote.
        * gdbserver/remote-utils.c (prepare_resume_reply): Call
        target_signal_from_host on signals sent to the remote.
        * gdbserver/server.h: Add prototypes.  Include "gdb/signals.h".
        * gdbserver/Makefile.in: Add signals.o.  Add -I${INCLUDE_DIR}.
binutils-2_13-branch
Daniel Jacobowitz 25 years ago
parent
commit
0e98d0a751
  1. 9
      gdb/ChangeLog
  2. 7
      gdb/gdbserver/Makefile.in
  3. 12
      gdb/gdbserver/remote-utils.c
  4. 12
      gdb/gdbserver/server.c
  5. 5
      gdb/gdbserver/server.h

9
gdb/ChangeLog

@ -1,3 +1,12 @@
2002-03-27 Daniel Jacobowitz <drow@mvista.com>
* gdbserver/server.c (main): Call target_signal_to_host_p
and target_signal_to_host on signals received from the remote.
* gdbserver/remote-utils.c (prepare_resume_reply): Call
target_signal_from_host on signals sent to the remote.
* gdbserver/server.h: Add prototypes. Include "gdb/signals.h".
* gdbserver/Makefile.in: Add signals.o. Add -I${INCLUDE_DIR}.
2002-03-27 Daniel Jacobowitz <drow@mvista.com>
* signals/signals.c: Include "server.h" in gdbserver build.

7
gdb/gdbserver/Makefile.in

@ -83,7 +83,7 @@ READLINE_DEP = $$(READLINE_DIR)
# -I. for config files.
# -I${srcdir} for our headers.
# -I$(srcdir)/../regformats for regdef.h.
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats -I$(INCLUDE_DIR)
# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
# from the config/ directory.
@ -120,7 +120,7 @@ DEPFILES = @GDBSERVER_DEPFILES@
SOURCES = $(SFILES)
TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
OBS = utils.o $(DEPFILES) server.o remote-utils.o regcache.o
OBS = utils.o $(DEPFILES) server.o remote-utils.o regcache.o signals.o
# Prevent Sun make from putting in the machine type. Setting
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
@ -232,6 +232,9 @@ remote-utils.o: remote-utils.c terminal.h $(server_h)
utils.o: utils.c $(server_h)
regcache.o: regcache.c $(server_h) $(regdef_h)
signals.o: ../signals/signals.c $(server_h)
$(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< -DGDBSERVER
i387-fp.o: i387-fp.c $(server_h)
linux_low_h = $(srcdir)/linux-low.h

12
gdb/gdbserver/remote-utils.c

@ -463,17 +463,15 @@ outreg (int regno, char *buf)
void
prepare_resume_reply (char *buf, char status, unsigned char signo)
{
int nib;
int nib, sig;
*buf++ = status;
/* FIXME! Should be converting this signal number (numbered
according to the signal numbering of the system we are running on)
to the signal numbers used by the gdb protocol (see enum target_signal
in gdb/target.h). */
nib = ((signo & 0xf0) >> 4);
sig = (int)target_signal_from_host (signo);
nib = ((sig & 0xf0) >> 4);
*buf++ = tohex (nib);
nib = signo & 0x0f;
nib = sig & 0x0f;
*buf++ = tohex (nib);
if (status == 'T')

12
gdb/gdbserver/server.c

@ -190,13 +190,21 @@ main (int argc, char *argv[])
break;
case 'C':
convert_ascii_to_int (own_buf + 1, &sig, 1);
myresume (0, sig);
if (target_signal_to_host_p (sig))
signal = target_signal_to_host (sig);
else
signal = 0;
myresume (0, signal);
signal = mywait (&status);
prepare_resume_reply (own_buf, status, signal);
break;
case 'S':
convert_ascii_to_int (own_buf + 1, &sig, 1);
myresume (1, sig);
if (target_signal_to_host_p (sig))
signal = target_signal_to_host (sig);
else
signal = 0;
myresume (1, signal);
signal = mywait (&status);
prepare_resume_reply (own_buf, status, signal);
break;

5
gdb/gdbserver/server.h

@ -34,6 +34,7 @@
typedef long long CORE_ADDR;
#include "regcache.h"
#include "gdb/signals.h"
#include <setjmp.h>
@ -84,6 +85,10 @@ void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
unsigned int *len_ptr, char *to);
/* Functions from ``signals.c''. */
enum target_signal target_signal_from_host (int hostsig);
int target_signal_to_host_p (enum target_signal oursig);
int target_signal_to_host (enum target_signal oursig);
/* Functions from utils.c */

Loading…
Cancel
Save