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}.
This commit is contained in:
Daniel Jacobowitz 2002-03-27 05:15:49 +00:00
parent 3130066b6c
commit 0e98d0a751
5 changed files with 34 additions and 11 deletions

View File

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

View File

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

View File

@ -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')

View File

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

View File

@ -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 */