initial push
This commit is contained in:
5
m68k/gdbserver/.cvsignore
Normal file
5
m68k/gdbserver/.cvsignore
Normal file
@@ -0,0 +1,5 @@
|
||||
.deps
|
||||
Makefile
|
||||
Makefile.in
|
||||
bdmgdbserver
|
||||
bdmgdbserver.exe
|
||||
87
m68k/gdbserver/Makefile.am
Executable file
87
m68k/gdbserver/Makefile.am
Executable file
@@ -0,0 +1,87 @@
|
||||
##
|
||||
## $Id: Makefile.am,v 1.8 2008/06/16 00:01:21 cjohns Exp $
|
||||
##
|
||||
## This file is part of a free BDM package
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
|
||||
AM_CPPFLAGS = -I$(srcdir)/../driver \
|
||||
-I$(srcdir)/../lib \
|
||||
-DGDBSERVER=1 \
|
||||
-DNO_REMOTE_ASYNC=1 \
|
||||
-DNO_PASS_SIGNALS=1 \
|
||||
-DNO_LIBRARIES=1
|
||||
AM_CFLAGS = -Wall
|
||||
|
||||
##
|
||||
## XML files.
|
||||
##
|
||||
XML_FILES = \
|
||||
$(srcdir)/m68k-core.xml \
|
||||
$(srcdir)/m68k-fpu.xml \
|
||||
$(srcdir)/m68k-cpu32.xml \
|
||||
$(srcdir)/m68k-cpu32plus.xml \
|
||||
$(srcdir)/m68k-cf5200.xml \
|
||||
$(srcdir)/m68k-cf5235.xml \
|
||||
$(srcdir)/m68k-cf5272.xml \
|
||||
$(srcdir)/m68k-cf5282.xml \
|
||||
$(srcdir)/m68k-cf52223.xml \
|
||||
$(srcdir)/m68k-cf5307.xml \
|
||||
$(srcdir)/m68k-cfv4e.xml
|
||||
|
||||
##
|
||||
## Only way I know of anding in automake.
|
||||
##
|
||||
|
||||
if WIN32
|
||||
AM_CFLAGS += -DUSE_WIN32API=1
|
||||
if BDM_REMOTE
|
||||
LIBS += -l wsock32
|
||||
endif
|
||||
endif
|
||||
|
||||
if TBLCF_USB
|
||||
TBLCF_USB_LIB = $(top_builddir)/tblcf/libtblcf.a
|
||||
endif
|
||||
|
||||
if LIBUSB_PATH
|
||||
AM_CPPFLAGS += -I@LIBUSB_INCLUDE_DIR@
|
||||
AM_LDFLAGS = -L@LIBUSB_LIB_DIR@
|
||||
endif
|
||||
|
||||
if GDBSERVER
|
||||
bin_PROGRAMS = m68k-bdm-gdbserver
|
||||
endif
|
||||
|
||||
m68k_bdm_gdbserver_SOURCES = \
|
||||
inferiors.c m68k-bdm-low.c mem-break.c \
|
||||
regcache.c remote-utils.c \
|
||||
server.c signals.c target.c utils.c version.c \
|
||||
xml-builtin.c \
|
||||
m68k-core-regs.c m68k-cpu32-regs.c m68k-cpu32plus-regs.c\
|
||||
m68k-cf5200-regs.c m68k-cf52223-regs.c m68k-cf5235-regs.c \
|
||||
m68k-cf5272-regs.c m68k-cf5282-regs.c m68k-cf5307-regs.c \
|
||||
m68k-cfv4e-regs.c
|
||||
|
||||
m68k_bdm_gdbserver_CPPFLAGS = \
|
||||
@CFLAGS@ $(AM_CPPFLAGS)
|
||||
m68k_bdm_gdbserver_LDADD = \
|
||||
$(top_builddir)/lib/libBDM.a \
|
||||
$(TBLCF_USB_LIB)
|
||||
|
||||
version.c: Makefile $(srcdir)/version.in
|
||||
rm -f version.c-tmp version.c
|
||||
echo '#include "server.h"' >> version.c-tmp
|
||||
echo 'const char version[] = "'"`sed q ${srcdir}/version.in`"'";' >> version.c-tmp
|
||||
echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp
|
||||
mv version.c-tmp version.c
|
||||
|
||||
xml-builtin.c: $(srcdir)/feature_to_c.sh Makefile $(XML_FILES)
|
||||
rm -f xml-builtin.tmp
|
||||
sh $(srcdir)/feature_to_c.sh xml-builtin.tmp $(XML_FILES)
|
||||
mv xml-builtin.tmp xml-builtin.c
|
||||
echo stamp > stamp-xml
|
||||
822
m68k/gdbserver/Makefile.in
Normal file
822
m68k/gdbserver/Makefile.in
Normal file
@@ -0,0 +1,822 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
@WIN32_TRUE@am__append_1 = -DUSE_WIN32API=1
|
||||
@BDM_REMOTE_TRUE@@WIN32_TRUE@am__append_2 = -l wsock32
|
||||
@LIBUSB_PATH_TRUE@am__append_3 = -I@LIBUSB_INCLUDE_DIR@
|
||||
@GDBSERVER_TRUE@bin_PROGRAMS = m68k-bdm-gdbserver$(EXEEXT)
|
||||
subdir = gdbserver
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_m68k_bdm_gdbserver_OBJECTS = \
|
||||
m68k_bdm_gdbserver-inferiors.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-bdm-low.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-mem-break.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-regcache.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-remote-utils.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-server.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-signals.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-target.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-utils.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-version.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-xml-builtin.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-core-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cpu32-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cpu32plus-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf5200-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf52223-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf5235-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf5272-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf5282-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cf5307-regs.$(OBJEXT) \
|
||||
m68k_bdm_gdbserver-m68k-cfv4e-regs.$(OBJEXT)
|
||||
m68k_bdm_gdbserver_OBJECTS = $(am_m68k_bdm_gdbserver_OBJECTS)
|
||||
m68k_bdm_gdbserver_DEPENDENCIES = $(top_builddir)/lib/libBDM.a \
|
||||
$(TBLCF_USB_LIB)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(m68k_bdm_gdbserver_SOURCES)
|
||||
DIST_SOURCES = $(m68k_bdm_gdbserver_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BDM_SUBDIRS = @BDM_SUBDIRS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FLASH_PLUGIN_GCC = @FLASH_PLUGIN_GCC@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@ $(am__append_2)
|
||||
LIBUSB_INCLUDE_DIR = @LIBUSB_INCLUDE_DIR@
|
||||
LIBUSB_LIB_DIR = @LIBUSB_LIB_DIR@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
flash_plugin_cc = @flash_plugin_cc@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_CPPFLAGS = -I$(srcdir)/../driver -I$(srcdir)/../lib -DGDBSERVER=1 \
|
||||
-DNO_REMOTE_ASYNC=1 -DNO_PASS_SIGNALS=1 -DNO_LIBRARIES=1 \
|
||||
$(am__append_3)
|
||||
AM_CFLAGS = -Wall $(am__append_1)
|
||||
XML_FILES = \
|
||||
$(srcdir)/m68k-core.xml \
|
||||
$(srcdir)/m68k-fpu.xml \
|
||||
$(srcdir)/m68k-cpu32.xml \
|
||||
$(srcdir)/m68k-cpu32plus.xml \
|
||||
$(srcdir)/m68k-cf5200.xml \
|
||||
$(srcdir)/m68k-cf5235.xml \
|
||||
$(srcdir)/m68k-cf5272.xml \
|
||||
$(srcdir)/m68k-cf5282.xml \
|
||||
$(srcdir)/m68k-cf52223.xml \
|
||||
$(srcdir)/m68k-cf5307.xml \
|
||||
$(srcdir)/m68k-cfv4e.xml
|
||||
|
||||
@TBLCF_USB_TRUE@TBLCF_USB_LIB = $(top_builddir)/tblcf/libtblcf.a
|
||||
@LIBUSB_PATH_TRUE@AM_LDFLAGS = -L@LIBUSB_LIB_DIR@
|
||||
m68k_bdm_gdbserver_SOURCES = \
|
||||
inferiors.c m68k-bdm-low.c mem-break.c \
|
||||
regcache.c remote-utils.c \
|
||||
server.c signals.c target.c utils.c version.c \
|
||||
xml-builtin.c \
|
||||
m68k-core-regs.c m68k-cpu32-regs.c m68k-cpu32plus-regs.c\
|
||||
m68k-cf5200-regs.c m68k-cf52223-regs.c m68k-cf5235-regs.c \
|
||||
m68k-cf5272-regs.c m68k-cf5282-regs.c m68k-cf5307-regs.c \
|
||||
m68k-cfv4e-regs.c
|
||||
|
||||
m68k_bdm_gdbserver_CPPFLAGS = \
|
||||
@CFLAGS@ $(AM_CPPFLAGS)
|
||||
|
||||
m68k_bdm_gdbserver_LDADD = \
|
||||
$(top_builddir)/lib/libBDM.a \
|
||||
$(TBLCF_USB_LIB)
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gdbserver/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign gdbserver/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
m68k-bdm-gdbserver$(EXEEXT): $(m68k_bdm_gdbserver_OBJECTS) $(m68k_bdm_gdbserver_DEPENDENCIES)
|
||||
@rm -f m68k-bdm-gdbserver$(EXEEXT)
|
||||
$(LINK) $(m68k_bdm_gdbserver_OBJECTS) $(m68k_bdm_gdbserver_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-inferiors.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-mem-break.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-regcache.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-server.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-signals.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-target.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-utils.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-version.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
m68k_bdm_gdbserver-inferiors.o: inferiors.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-inferiors.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Tpo -c -o m68k_bdm_gdbserver-inferiors.o `test -f 'inferiors.c' || echo '$(srcdir)/'`inferiors.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Tpo $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='inferiors.c' object='m68k_bdm_gdbserver-inferiors.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-inferiors.o `test -f 'inferiors.c' || echo '$(srcdir)/'`inferiors.c
|
||||
|
||||
m68k_bdm_gdbserver-inferiors.obj: inferiors.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-inferiors.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Tpo -c -o m68k_bdm_gdbserver-inferiors.obj `if test -f 'inferiors.c'; then $(CYGPATH_W) 'inferiors.c'; else $(CYGPATH_W) '$(srcdir)/inferiors.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Tpo $(DEPDIR)/m68k_bdm_gdbserver-inferiors.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='inferiors.c' object='m68k_bdm_gdbserver-inferiors.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-inferiors.obj `if test -f 'inferiors.c'; then $(CYGPATH_W) 'inferiors.c'; else $(CYGPATH_W) '$(srcdir)/inferiors.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-bdm-low.o: m68k-bdm-low.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-bdm-low.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Tpo -c -o m68k_bdm_gdbserver-m68k-bdm-low.o `test -f 'm68k-bdm-low.c' || echo '$(srcdir)/'`m68k-bdm-low.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-bdm-low.c' object='m68k_bdm_gdbserver-m68k-bdm-low.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-bdm-low.o `test -f 'm68k-bdm-low.c' || echo '$(srcdir)/'`m68k-bdm-low.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-bdm-low.obj: m68k-bdm-low.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-bdm-low.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Tpo -c -o m68k_bdm_gdbserver-m68k-bdm-low.obj `if test -f 'm68k-bdm-low.c'; then $(CYGPATH_W) 'm68k-bdm-low.c'; else $(CYGPATH_W) '$(srcdir)/m68k-bdm-low.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-bdm-low.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-bdm-low.c' object='m68k_bdm_gdbserver-m68k-bdm-low.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-bdm-low.obj `if test -f 'm68k-bdm-low.c'; then $(CYGPATH_W) 'm68k-bdm-low.c'; else $(CYGPATH_W) '$(srcdir)/m68k-bdm-low.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-mem-break.o: mem-break.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-mem-break.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Tpo -c -o m68k_bdm_gdbserver-mem-break.o `test -f 'mem-break.c' || echo '$(srcdir)/'`mem-break.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Tpo $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem-break.c' object='m68k_bdm_gdbserver-mem-break.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-mem-break.o `test -f 'mem-break.c' || echo '$(srcdir)/'`mem-break.c
|
||||
|
||||
m68k_bdm_gdbserver-mem-break.obj: mem-break.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-mem-break.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Tpo -c -o m68k_bdm_gdbserver-mem-break.obj `if test -f 'mem-break.c'; then $(CYGPATH_W) 'mem-break.c'; else $(CYGPATH_W) '$(srcdir)/mem-break.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Tpo $(DEPDIR)/m68k_bdm_gdbserver-mem-break.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem-break.c' object='m68k_bdm_gdbserver-mem-break.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-mem-break.obj `if test -f 'mem-break.c'; then $(CYGPATH_W) 'mem-break.c'; else $(CYGPATH_W) '$(srcdir)/mem-break.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-regcache.o: regcache.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-regcache.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-regcache.Tpo -c -o m68k_bdm_gdbserver-regcache.o `test -f 'regcache.c' || echo '$(srcdir)/'`regcache.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-regcache.Tpo $(DEPDIR)/m68k_bdm_gdbserver-regcache.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='regcache.c' object='m68k_bdm_gdbserver-regcache.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-regcache.o `test -f 'regcache.c' || echo '$(srcdir)/'`regcache.c
|
||||
|
||||
m68k_bdm_gdbserver-regcache.obj: regcache.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-regcache.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-regcache.Tpo -c -o m68k_bdm_gdbserver-regcache.obj `if test -f 'regcache.c'; then $(CYGPATH_W) 'regcache.c'; else $(CYGPATH_W) '$(srcdir)/regcache.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-regcache.Tpo $(DEPDIR)/m68k_bdm_gdbserver-regcache.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='regcache.c' object='m68k_bdm_gdbserver-regcache.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-regcache.obj `if test -f 'regcache.c'; then $(CYGPATH_W) 'regcache.c'; else $(CYGPATH_W) '$(srcdir)/regcache.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-remote-utils.o: remote-utils.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-remote-utils.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Tpo -c -o m68k_bdm_gdbserver-remote-utils.o `test -f 'remote-utils.c' || echo '$(srcdir)/'`remote-utils.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Tpo $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='remote-utils.c' object='m68k_bdm_gdbserver-remote-utils.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-remote-utils.o `test -f 'remote-utils.c' || echo '$(srcdir)/'`remote-utils.c
|
||||
|
||||
m68k_bdm_gdbserver-remote-utils.obj: remote-utils.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-remote-utils.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Tpo -c -o m68k_bdm_gdbserver-remote-utils.obj `if test -f 'remote-utils.c'; then $(CYGPATH_W) 'remote-utils.c'; else $(CYGPATH_W) '$(srcdir)/remote-utils.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Tpo $(DEPDIR)/m68k_bdm_gdbserver-remote-utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='remote-utils.c' object='m68k_bdm_gdbserver-remote-utils.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-remote-utils.obj `if test -f 'remote-utils.c'; then $(CYGPATH_W) 'remote-utils.c'; else $(CYGPATH_W) '$(srcdir)/remote-utils.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-server.o: server.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-server.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-server.Tpo -c -o m68k_bdm_gdbserver-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-server.Tpo $(DEPDIR)/m68k_bdm_gdbserver-server.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='server.c' object='m68k_bdm_gdbserver-server.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
|
||||
|
||||
m68k_bdm_gdbserver-server.obj: server.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-server.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-server.Tpo -c -o m68k_bdm_gdbserver-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-server.Tpo $(DEPDIR)/m68k_bdm_gdbserver-server.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='server.c' object='m68k_bdm_gdbserver-server.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-signals.o: signals.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-signals.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-signals.Tpo -c -o m68k_bdm_gdbserver-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-signals.Tpo $(DEPDIR)/m68k_bdm_gdbserver-signals.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='m68k_bdm_gdbserver-signals.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
|
||||
|
||||
m68k_bdm_gdbserver-signals.obj: signals.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-signals.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-signals.Tpo -c -o m68k_bdm_gdbserver-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-signals.Tpo $(DEPDIR)/m68k_bdm_gdbserver-signals.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='m68k_bdm_gdbserver-signals.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-target.o: target.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-target.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-target.Tpo -c -o m68k_bdm_gdbserver-target.o `test -f 'target.c' || echo '$(srcdir)/'`target.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-target.Tpo $(DEPDIR)/m68k_bdm_gdbserver-target.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='target.c' object='m68k_bdm_gdbserver-target.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-target.o `test -f 'target.c' || echo '$(srcdir)/'`target.c
|
||||
|
||||
m68k_bdm_gdbserver-target.obj: target.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-target.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-target.Tpo -c -o m68k_bdm_gdbserver-target.obj `if test -f 'target.c'; then $(CYGPATH_W) 'target.c'; else $(CYGPATH_W) '$(srcdir)/target.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-target.Tpo $(DEPDIR)/m68k_bdm_gdbserver-target.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='target.c' object='m68k_bdm_gdbserver-target.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-target.obj `if test -f 'target.c'; then $(CYGPATH_W) 'target.c'; else $(CYGPATH_W) '$(srcdir)/target.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-utils.o: utils.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-utils.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-utils.Tpo -c -o m68k_bdm_gdbserver-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-utils.Tpo $(DEPDIR)/m68k_bdm_gdbserver-utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='m68k_bdm_gdbserver-utils.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
|
||||
|
||||
m68k_bdm_gdbserver-utils.obj: utils.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-utils.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-utils.Tpo -c -o m68k_bdm_gdbserver-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-utils.Tpo $(DEPDIR)/m68k_bdm_gdbserver-utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='m68k_bdm_gdbserver-utils.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-version.o: version.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-version.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-version.Tpo -c -o m68k_bdm_gdbserver-version.o `test -f 'version.c' || echo '$(srcdir)/'`version.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-version.Tpo $(DEPDIR)/m68k_bdm_gdbserver-version.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='version.c' object='m68k_bdm_gdbserver-version.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-version.o `test -f 'version.c' || echo '$(srcdir)/'`version.c
|
||||
|
||||
m68k_bdm_gdbserver-version.obj: version.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-version.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-version.Tpo -c -o m68k_bdm_gdbserver-version.obj `if test -f 'version.c'; then $(CYGPATH_W) 'version.c'; else $(CYGPATH_W) '$(srcdir)/version.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-version.Tpo $(DEPDIR)/m68k_bdm_gdbserver-version.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='version.c' object='m68k_bdm_gdbserver-version.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-version.obj `if test -f 'version.c'; then $(CYGPATH_W) 'version.c'; else $(CYGPATH_W) '$(srcdir)/version.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-xml-builtin.o: xml-builtin.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-xml-builtin.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Tpo -c -o m68k_bdm_gdbserver-xml-builtin.o `test -f 'xml-builtin.c' || echo '$(srcdir)/'`xml-builtin.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Tpo $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xml-builtin.c' object='m68k_bdm_gdbserver-xml-builtin.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-xml-builtin.o `test -f 'xml-builtin.c' || echo '$(srcdir)/'`xml-builtin.c
|
||||
|
||||
m68k_bdm_gdbserver-xml-builtin.obj: xml-builtin.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-xml-builtin.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Tpo -c -o m68k_bdm_gdbserver-xml-builtin.obj `if test -f 'xml-builtin.c'; then $(CYGPATH_W) 'xml-builtin.c'; else $(CYGPATH_W) '$(srcdir)/xml-builtin.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Tpo $(DEPDIR)/m68k_bdm_gdbserver-xml-builtin.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xml-builtin.c' object='m68k_bdm_gdbserver-xml-builtin.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-xml-builtin.obj `if test -f 'xml-builtin.c'; then $(CYGPATH_W) 'xml-builtin.c'; else $(CYGPATH_W) '$(srcdir)/xml-builtin.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-core-regs.o: m68k-core-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-core-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-core-regs.o `test -f 'm68k-core-regs.c' || echo '$(srcdir)/'`m68k-core-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-core-regs.c' object='m68k_bdm_gdbserver-m68k-core-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-core-regs.o `test -f 'm68k-core-regs.c' || echo '$(srcdir)/'`m68k-core-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-core-regs.obj: m68k-core-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-core-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-core-regs.obj `if test -f 'm68k-core-regs.c'; then $(CYGPATH_W) 'm68k-core-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-core-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-core-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-core-regs.c' object='m68k_bdm_gdbserver-m68k-core-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-core-regs.obj `if test -f 'm68k-core-regs.c'; then $(CYGPATH_W) 'm68k-core-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-core-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cpu32-regs.o: m68k-cpu32-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cpu32-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cpu32-regs.o `test -f 'm68k-cpu32-regs.c' || echo '$(srcdir)/'`m68k-cpu32-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cpu32-regs.c' object='m68k_bdm_gdbserver-m68k-cpu32-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cpu32-regs.o `test -f 'm68k-cpu32-regs.c' || echo '$(srcdir)/'`m68k-cpu32-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cpu32-regs.obj: m68k-cpu32-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cpu32-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cpu32-regs.obj `if test -f 'm68k-cpu32-regs.c'; then $(CYGPATH_W) 'm68k-cpu32-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cpu32-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cpu32-regs.c' object='m68k_bdm_gdbserver-m68k-cpu32-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cpu32-regs.obj `if test -f 'm68k-cpu32-regs.c'; then $(CYGPATH_W) 'm68k-cpu32-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cpu32-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cpu32plus-regs.o: m68k-cpu32plus-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cpu32plus-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cpu32plus-regs.o `test -f 'm68k-cpu32plus-regs.c' || echo '$(srcdir)/'`m68k-cpu32plus-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cpu32plus-regs.c' object='m68k_bdm_gdbserver-m68k-cpu32plus-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cpu32plus-regs.o `test -f 'm68k-cpu32plus-regs.c' || echo '$(srcdir)/'`m68k-cpu32plus-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cpu32plus-regs.obj: m68k-cpu32plus-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cpu32plus-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cpu32plus-regs.obj `if test -f 'm68k-cpu32plus-regs.c'; then $(CYGPATH_W) 'm68k-cpu32plus-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cpu32plus-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cpu32plus-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cpu32plus-regs.c' object='m68k_bdm_gdbserver-m68k-cpu32plus-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cpu32plus-regs.obj `if test -f 'm68k-cpu32plus-regs.c'; then $(CYGPATH_W) 'm68k-cpu32plus-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cpu32plus-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5200-regs.o: m68k-cf5200-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5200-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5200-regs.o `test -f 'm68k-cf5200-regs.c' || echo '$(srcdir)/'`m68k-cf5200-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5200-regs.c' object='m68k_bdm_gdbserver-m68k-cf5200-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5200-regs.o `test -f 'm68k-cf5200-regs.c' || echo '$(srcdir)/'`m68k-cf5200-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5200-regs.obj: m68k-cf5200-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5200-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5200-regs.obj `if test -f 'm68k-cf5200-regs.c'; then $(CYGPATH_W) 'm68k-cf5200-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5200-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5200-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5200-regs.c' object='m68k_bdm_gdbserver-m68k-cf5200-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5200-regs.obj `if test -f 'm68k-cf5200-regs.c'; then $(CYGPATH_W) 'm68k-cf5200-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5200-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf52223-regs.o: m68k-cf52223-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf52223-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf52223-regs.o `test -f 'm68k-cf52223-regs.c' || echo '$(srcdir)/'`m68k-cf52223-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf52223-regs.c' object='m68k_bdm_gdbserver-m68k-cf52223-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf52223-regs.o `test -f 'm68k-cf52223-regs.c' || echo '$(srcdir)/'`m68k-cf52223-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf52223-regs.obj: m68k-cf52223-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf52223-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf52223-regs.obj `if test -f 'm68k-cf52223-regs.c'; then $(CYGPATH_W) 'm68k-cf52223-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf52223-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf52223-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf52223-regs.c' object='m68k_bdm_gdbserver-m68k-cf52223-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf52223-regs.obj `if test -f 'm68k-cf52223-regs.c'; then $(CYGPATH_W) 'm68k-cf52223-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf52223-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5235-regs.o: m68k-cf5235-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5235-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5235-regs.o `test -f 'm68k-cf5235-regs.c' || echo '$(srcdir)/'`m68k-cf5235-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5235-regs.c' object='m68k_bdm_gdbserver-m68k-cf5235-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5235-regs.o `test -f 'm68k-cf5235-regs.c' || echo '$(srcdir)/'`m68k-cf5235-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5235-regs.obj: m68k-cf5235-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5235-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5235-regs.obj `if test -f 'm68k-cf5235-regs.c'; then $(CYGPATH_W) 'm68k-cf5235-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5235-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5235-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5235-regs.c' object='m68k_bdm_gdbserver-m68k-cf5235-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5235-regs.obj `if test -f 'm68k-cf5235-regs.c'; then $(CYGPATH_W) 'm68k-cf5235-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5235-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5272-regs.o: m68k-cf5272-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5272-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5272-regs.o `test -f 'm68k-cf5272-regs.c' || echo '$(srcdir)/'`m68k-cf5272-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5272-regs.c' object='m68k_bdm_gdbserver-m68k-cf5272-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5272-regs.o `test -f 'm68k-cf5272-regs.c' || echo '$(srcdir)/'`m68k-cf5272-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5272-regs.obj: m68k-cf5272-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5272-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5272-regs.obj `if test -f 'm68k-cf5272-regs.c'; then $(CYGPATH_W) 'm68k-cf5272-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5272-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5272-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5272-regs.c' object='m68k_bdm_gdbserver-m68k-cf5272-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5272-regs.obj `if test -f 'm68k-cf5272-regs.c'; then $(CYGPATH_W) 'm68k-cf5272-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5272-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5282-regs.o: m68k-cf5282-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5282-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5282-regs.o `test -f 'm68k-cf5282-regs.c' || echo '$(srcdir)/'`m68k-cf5282-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5282-regs.c' object='m68k_bdm_gdbserver-m68k-cf5282-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5282-regs.o `test -f 'm68k-cf5282-regs.c' || echo '$(srcdir)/'`m68k-cf5282-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5282-regs.obj: m68k-cf5282-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5282-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5282-regs.obj `if test -f 'm68k-cf5282-regs.c'; then $(CYGPATH_W) 'm68k-cf5282-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5282-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5282-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5282-regs.c' object='m68k_bdm_gdbserver-m68k-cf5282-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5282-regs.obj `if test -f 'm68k-cf5282-regs.c'; then $(CYGPATH_W) 'm68k-cf5282-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5282-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5307-regs.o: m68k-cf5307-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5307-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5307-regs.o `test -f 'm68k-cf5307-regs.c' || echo '$(srcdir)/'`m68k-cf5307-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5307-regs.c' object='m68k_bdm_gdbserver-m68k-cf5307-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5307-regs.o `test -f 'm68k-cf5307-regs.c' || echo '$(srcdir)/'`m68k-cf5307-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cf5307-regs.obj: m68k-cf5307-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cf5307-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cf5307-regs.obj `if test -f 'm68k-cf5307-regs.c'; then $(CYGPATH_W) 'm68k-cf5307-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5307-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cf5307-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cf5307-regs.c' object='m68k_bdm_gdbserver-m68k-cf5307-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cf5307-regs.obj `if test -f 'm68k-cf5307-regs.c'; then $(CYGPATH_W) 'm68k-cf5307-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cf5307-regs.c'; fi`
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cfv4e-regs.o: m68k-cfv4e-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cfv4e-regs.o -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cfv4e-regs.o `test -f 'm68k-cfv4e-regs.c' || echo '$(srcdir)/'`m68k-cfv4e-regs.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cfv4e-regs.c' object='m68k_bdm_gdbserver-m68k-cfv4e-regs.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cfv4e-regs.o `test -f 'm68k-cfv4e-regs.c' || echo '$(srcdir)/'`m68k-cfv4e-regs.c
|
||||
|
||||
m68k_bdm_gdbserver-m68k-cfv4e-regs.obj: m68k-cfv4e-regs.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT m68k_bdm_gdbserver-m68k-cfv4e-regs.obj -MD -MP -MF $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Tpo -c -o m68k_bdm_gdbserver-m68k-cfv4e-regs.obj `if test -f 'm68k-cfv4e-regs.c'; then $(CYGPATH_W) 'm68k-cfv4e-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cfv4e-regs.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Tpo $(DEPDIR)/m68k_bdm_gdbserver-m68k-cfv4e-regs.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m68k-cfv4e-regs.c' object='m68k_bdm_gdbserver-m68k-cfv4e-regs.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(m68k_bdm_gdbserver_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o m68k_bdm_gdbserver-m68k-cfv4e-regs.obj `if test -f 'm68k-cfv4e-regs.c'; then $(CYGPATH_W) 'm68k-cfv4e-regs.c'; else $(CYGPATH_W) '$(srcdir)/m68k-cfv4e-regs.c'; fi`
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||
clean-generic ctags distclean distclean-compile \
|
||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-binPROGRAMS \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-binPROGRAMS
|
||||
|
||||
|
||||
version.c: Makefile $(srcdir)/version.in
|
||||
rm -f version.c-tmp version.c
|
||||
echo '#include "server.h"' >> version.c-tmp
|
||||
echo 'const char version[] = "'"`sed q ${srcdir}/version.in`"'";' >> version.c-tmp
|
||||
echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp
|
||||
mv version.c-tmp version.c
|
||||
|
||||
xml-builtin.c: $(srcdir)/feature_to_c.sh Makefile $(XML_FILES)
|
||||
rm -f xml-builtin.tmp
|
||||
sh $(srcdir)/feature_to_c.sh xml-builtin.tmp $(XML_FILES)
|
||||
mv xml-builtin.tmp xml-builtin.c
|
||||
echo stamp > stamp-xml
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
75
m68k/gdbserver/feature_to_c.sh
Executable file
75
m68k/gdbserver/feature_to_c.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Convert text files to compilable C arrays.
|
||||
#
|
||||
# Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GDB.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
output=$1
|
||||
shift
|
||||
|
||||
if test -z "$output" || test -z "$1"; then
|
||||
echo "Usage: $0 OUTPUTFILE INPUTFILE..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -e "$output"; then
|
||||
echo "Output file \"$output\" already exists; refusing to overwrite."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for input; do
|
||||
arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'`
|
||||
|
||||
${AWK:-awk} 'BEGIN { n = 0
|
||||
print "static const char '$arrayname'[] = {"
|
||||
for (i = 0; i < 255; i++)
|
||||
_ord_[sprintf("%c", i)] = i
|
||||
} {
|
||||
split($0, line, "");
|
||||
printf " "
|
||||
for (i = 1; i <= length($0); i++) {
|
||||
c = line[i]
|
||||
if (c == "'\''") {
|
||||
printf "'\''\\'\'''\'', "
|
||||
} else if (c == "\\") {
|
||||
printf "'\''\\\\'\'', "
|
||||
} else if (_ord_[c] >= 32 && _ord_[c] < 127) {
|
||||
printf "'\''%s'\'', ", c
|
||||
} else {
|
||||
printf "'\''\\%03o'\'', ", _ord_[c]
|
||||
}
|
||||
if (i % 10 == 0)
|
||||
printf "\n "
|
||||
}
|
||||
printf "'\''\\n'\'', \n"
|
||||
} END {
|
||||
print " 0 };"
|
||||
}' < $input >> $output
|
||||
done
|
||||
|
||||
echo >> $output
|
||||
echo "const char *const xml_builtin[][2] = {" >> $output
|
||||
|
||||
for input; do
|
||||
basename=`echo $input | sed 's,.*/,,'`
|
||||
arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'`
|
||||
echo " { \"$basename\", $arrayname }," >> $output
|
||||
done
|
||||
|
||||
echo " { 0, 0 }" >> $output
|
||||
echo "};" >> $output
|
||||
45
m68k/gdbserver/gdb-target.dtd
Normal file
45
m68k/gdbserver/gdb-target.dtd
Normal file
@@ -0,0 +1,45 @@
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- The root element of a GDB target description is <target>. -->
|
||||
|
||||
<!ELEMENT target (architecture?, feature*)>
|
||||
<!ATTLIST target
|
||||
version CDATA #FIXED "1.0">
|
||||
|
||||
<!ELEMENT architecture (#PCDATA)>
|
||||
|
||||
<!ELEMENT feature ((vector | union)*, reg*)>
|
||||
<!ATTLIST feature
|
||||
name ID #REQUIRED>
|
||||
|
||||
<!ELEMENT reg (description*)>
|
||||
<!ATTLIST reg
|
||||
name CDATA #REQUIRED
|
||||
bitsize CDATA #REQUIRED
|
||||
regnum CDATA #IMPLIED
|
||||
save-restore (yes | no) 'yes'
|
||||
type CDATA 'int'
|
||||
group CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT vector EMPTY>
|
||||
<!ATTLIST vector
|
||||
id CDATA #REQUIRED
|
||||
type CDATA #REQUIRED
|
||||
count CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT union (field+)>
|
||||
<!ATTLIST union
|
||||
id CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT field EMPTY>
|
||||
<!ATTLIST field
|
||||
name CDATA #REQUIRED
|
||||
type CDATA #REQUIRED>
|
||||
|
||||
<!ENTITY % xinclude SYSTEM "xinclude.dtd">
|
||||
%xinclude;
|
||||
234
m68k/gdbserver/gdb/signals.h
Normal file
234
m68k/gdbserver/gdb/signals.h
Normal file
@@ -0,0 +1,234 @@
|
||||
/* Target signal numbers for GDB and the GDB remote protocol.
|
||||
Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
1998, 1999, 2000, 2001, 2002, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef GDB_SIGNALS_H
|
||||
#define GDB_SIGNALS_H
|
||||
|
||||
/* The numbering of these signals is chosen to match traditional unix
|
||||
signals (insofar as various unices use the same numbers, anyway).
|
||||
It is also the numbering of the GDB remote protocol. Other remote
|
||||
protocols, if they use a different numbering, should make sure to
|
||||
translate appropriately.
|
||||
|
||||
Since these numbers have actually made it out into other software
|
||||
(stubs, etc.), you mustn't disturb the assigned numbering. If you
|
||||
need to add new signals here, add them to the end of the explicitly
|
||||
numbered signals, at the comment marker. Add them unconditionally,
|
||||
not within any #if or #ifdef.
|
||||
|
||||
This is based strongly on Unix/POSIX signals for several reasons:
|
||||
(1) This set of signals represents a widely-accepted attempt to
|
||||
represent events of this sort in a portable fashion, (2) we want a
|
||||
signal to make it from wait to child_wait to the user intact, (3) many
|
||||
remote protocols use a similar encoding. However, it is
|
||||
recognized that this set of signals has limitations (such as not
|
||||
distinguishing between various kinds of SIGSEGV, or not
|
||||
distinguishing hitting a breakpoint from finishing a single step).
|
||||
So in the future we may get around this either by adding additional
|
||||
signals for breakpoint, single-step, etc., or by adding signal
|
||||
codes; the latter seems more in the spirit of what BSD, System V,
|
||||
etc. are doing to address these issues. */
|
||||
|
||||
/* For an explanation of what each signal means, see
|
||||
target_signal_to_string. */
|
||||
|
||||
enum target_signal
|
||||
{
|
||||
/* Used some places (e.g. stop_signal) to record the concept that
|
||||
there is no signal. */
|
||||
TARGET_SIGNAL_0 = 0,
|
||||
TARGET_SIGNAL_FIRST = 0,
|
||||
TARGET_SIGNAL_HUP = 1,
|
||||
TARGET_SIGNAL_INT = 2,
|
||||
TARGET_SIGNAL_QUIT = 3,
|
||||
TARGET_SIGNAL_ILL = 4,
|
||||
TARGET_SIGNAL_TRAP = 5,
|
||||
TARGET_SIGNAL_ABRT = 6,
|
||||
TARGET_SIGNAL_EMT = 7,
|
||||
TARGET_SIGNAL_FPE = 8,
|
||||
TARGET_SIGNAL_KILL = 9,
|
||||
TARGET_SIGNAL_BUS = 10,
|
||||
TARGET_SIGNAL_SEGV = 11,
|
||||
TARGET_SIGNAL_SYS = 12,
|
||||
TARGET_SIGNAL_PIPE = 13,
|
||||
TARGET_SIGNAL_ALRM = 14,
|
||||
TARGET_SIGNAL_TERM = 15,
|
||||
TARGET_SIGNAL_URG = 16,
|
||||
TARGET_SIGNAL_STOP = 17,
|
||||
TARGET_SIGNAL_TSTP = 18,
|
||||
TARGET_SIGNAL_CONT = 19,
|
||||
TARGET_SIGNAL_CHLD = 20,
|
||||
TARGET_SIGNAL_TTIN = 21,
|
||||
TARGET_SIGNAL_TTOU = 22,
|
||||
TARGET_SIGNAL_IO = 23,
|
||||
TARGET_SIGNAL_XCPU = 24,
|
||||
TARGET_SIGNAL_XFSZ = 25,
|
||||
TARGET_SIGNAL_VTALRM = 26,
|
||||
TARGET_SIGNAL_PROF = 27,
|
||||
TARGET_SIGNAL_WINCH = 28,
|
||||
TARGET_SIGNAL_LOST = 29,
|
||||
TARGET_SIGNAL_USR1 = 30,
|
||||
TARGET_SIGNAL_USR2 = 31,
|
||||
TARGET_SIGNAL_PWR = 32,
|
||||
/* Similar to SIGIO. Perhaps they should have the same number. */
|
||||
TARGET_SIGNAL_POLL = 33,
|
||||
TARGET_SIGNAL_WIND = 34,
|
||||
TARGET_SIGNAL_PHONE = 35,
|
||||
TARGET_SIGNAL_WAITING = 36,
|
||||
TARGET_SIGNAL_LWP = 37,
|
||||
TARGET_SIGNAL_DANGER = 38,
|
||||
TARGET_SIGNAL_GRANT = 39,
|
||||
TARGET_SIGNAL_RETRACT = 40,
|
||||
TARGET_SIGNAL_MSG = 41,
|
||||
TARGET_SIGNAL_SOUND = 42,
|
||||
TARGET_SIGNAL_SAK = 43,
|
||||
TARGET_SIGNAL_PRIO = 44,
|
||||
TARGET_SIGNAL_REALTIME_33 = 45,
|
||||
TARGET_SIGNAL_REALTIME_34 = 46,
|
||||
TARGET_SIGNAL_REALTIME_35 = 47,
|
||||
TARGET_SIGNAL_REALTIME_36 = 48,
|
||||
TARGET_SIGNAL_REALTIME_37 = 49,
|
||||
TARGET_SIGNAL_REALTIME_38 = 50,
|
||||
TARGET_SIGNAL_REALTIME_39 = 51,
|
||||
TARGET_SIGNAL_REALTIME_40 = 52,
|
||||
TARGET_SIGNAL_REALTIME_41 = 53,
|
||||
TARGET_SIGNAL_REALTIME_42 = 54,
|
||||
TARGET_SIGNAL_REALTIME_43 = 55,
|
||||
TARGET_SIGNAL_REALTIME_44 = 56,
|
||||
TARGET_SIGNAL_REALTIME_45 = 57,
|
||||
TARGET_SIGNAL_REALTIME_46 = 58,
|
||||
TARGET_SIGNAL_REALTIME_47 = 59,
|
||||
TARGET_SIGNAL_REALTIME_48 = 60,
|
||||
TARGET_SIGNAL_REALTIME_49 = 61,
|
||||
TARGET_SIGNAL_REALTIME_50 = 62,
|
||||
TARGET_SIGNAL_REALTIME_51 = 63,
|
||||
TARGET_SIGNAL_REALTIME_52 = 64,
|
||||
TARGET_SIGNAL_REALTIME_53 = 65,
|
||||
TARGET_SIGNAL_REALTIME_54 = 66,
|
||||
TARGET_SIGNAL_REALTIME_55 = 67,
|
||||
TARGET_SIGNAL_REALTIME_56 = 68,
|
||||
TARGET_SIGNAL_REALTIME_57 = 69,
|
||||
TARGET_SIGNAL_REALTIME_58 = 70,
|
||||
TARGET_SIGNAL_REALTIME_59 = 71,
|
||||
TARGET_SIGNAL_REALTIME_60 = 72,
|
||||
TARGET_SIGNAL_REALTIME_61 = 73,
|
||||
TARGET_SIGNAL_REALTIME_62 = 74,
|
||||
TARGET_SIGNAL_REALTIME_63 = 75,
|
||||
|
||||
/* Used internally by Solaris threads. See signal(5) on Solaris. */
|
||||
TARGET_SIGNAL_CANCEL = 76,
|
||||
|
||||
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
|
||||
GNU/Linux does, and we can't disturb the numbering, since it's
|
||||
part of the remote protocol. Note that in some GDB's
|
||||
TARGET_SIGNAL_REALTIME_32 is number 76. */
|
||||
TARGET_SIGNAL_REALTIME_32,
|
||||
/* Yet another pain, IRIX 6 has SIG64. */
|
||||
TARGET_SIGNAL_REALTIME_64,
|
||||
/* Yet another pain, GNU/Linux MIPS might go up to 128. */
|
||||
TARGET_SIGNAL_REALTIME_65,
|
||||
TARGET_SIGNAL_REALTIME_66,
|
||||
TARGET_SIGNAL_REALTIME_67,
|
||||
TARGET_SIGNAL_REALTIME_68,
|
||||
TARGET_SIGNAL_REALTIME_69,
|
||||
TARGET_SIGNAL_REALTIME_70,
|
||||
TARGET_SIGNAL_REALTIME_71,
|
||||
TARGET_SIGNAL_REALTIME_72,
|
||||
TARGET_SIGNAL_REALTIME_73,
|
||||
TARGET_SIGNAL_REALTIME_74,
|
||||
TARGET_SIGNAL_REALTIME_75,
|
||||
TARGET_SIGNAL_REALTIME_76,
|
||||
TARGET_SIGNAL_REALTIME_77,
|
||||
TARGET_SIGNAL_REALTIME_78,
|
||||
TARGET_SIGNAL_REALTIME_79,
|
||||
TARGET_SIGNAL_REALTIME_80,
|
||||
TARGET_SIGNAL_REALTIME_81,
|
||||
TARGET_SIGNAL_REALTIME_82,
|
||||
TARGET_SIGNAL_REALTIME_83,
|
||||
TARGET_SIGNAL_REALTIME_84,
|
||||
TARGET_SIGNAL_REALTIME_85,
|
||||
TARGET_SIGNAL_REALTIME_86,
|
||||
TARGET_SIGNAL_REALTIME_87,
|
||||
TARGET_SIGNAL_REALTIME_88,
|
||||
TARGET_SIGNAL_REALTIME_89,
|
||||
TARGET_SIGNAL_REALTIME_90,
|
||||
TARGET_SIGNAL_REALTIME_91,
|
||||
TARGET_SIGNAL_REALTIME_92,
|
||||
TARGET_SIGNAL_REALTIME_93,
|
||||
TARGET_SIGNAL_REALTIME_94,
|
||||
TARGET_SIGNAL_REALTIME_95,
|
||||
TARGET_SIGNAL_REALTIME_96,
|
||||
TARGET_SIGNAL_REALTIME_97,
|
||||
TARGET_SIGNAL_REALTIME_98,
|
||||
TARGET_SIGNAL_REALTIME_99,
|
||||
TARGET_SIGNAL_REALTIME_100,
|
||||
TARGET_SIGNAL_REALTIME_101,
|
||||
TARGET_SIGNAL_REALTIME_102,
|
||||
TARGET_SIGNAL_REALTIME_103,
|
||||
TARGET_SIGNAL_REALTIME_104,
|
||||
TARGET_SIGNAL_REALTIME_105,
|
||||
TARGET_SIGNAL_REALTIME_106,
|
||||
TARGET_SIGNAL_REALTIME_107,
|
||||
TARGET_SIGNAL_REALTIME_108,
|
||||
TARGET_SIGNAL_REALTIME_109,
|
||||
TARGET_SIGNAL_REALTIME_110,
|
||||
TARGET_SIGNAL_REALTIME_111,
|
||||
TARGET_SIGNAL_REALTIME_112,
|
||||
TARGET_SIGNAL_REALTIME_113,
|
||||
TARGET_SIGNAL_REALTIME_114,
|
||||
TARGET_SIGNAL_REALTIME_115,
|
||||
TARGET_SIGNAL_REALTIME_116,
|
||||
TARGET_SIGNAL_REALTIME_117,
|
||||
TARGET_SIGNAL_REALTIME_118,
|
||||
TARGET_SIGNAL_REALTIME_119,
|
||||
TARGET_SIGNAL_REALTIME_120,
|
||||
TARGET_SIGNAL_REALTIME_121,
|
||||
TARGET_SIGNAL_REALTIME_122,
|
||||
TARGET_SIGNAL_REALTIME_123,
|
||||
TARGET_SIGNAL_REALTIME_124,
|
||||
TARGET_SIGNAL_REALTIME_125,
|
||||
TARGET_SIGNAL_REALTIME_126,
|
||||
TARGET_SIGNAL_REALTIME_127,
|
||||
|
||||
TARGET_SIGNAL_INFO,
|
||||
|
||||
/* Some signal we don't know about. */
|
||||
TARGET_SIGNAL_UNKNOWN,
|
||||
|
||||
/* Use whatever signal we use when one is not specifically specified
|
||||
(for passing to proceed and so on). */
|
||||
TARGET_SIGNAL_DEFAULT,
|
||||
|
||||
/* Mach exceptions. In versions of GDB before 5.2, these were just before
|
||||
TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
|
||||
otherwise). */
|
||||
TARGET_EXC_BAD_ACCESS,
|
||||
TARGET_EXC_BAD_INSTRUCTION,
|
||||
TARGET_EXC_ARITHMETIC,
|
||||
TARGET_EXC_EMULATION,
|
||||
TARGET_EXC_SOFTWARE,
|
||||
TARGET_EXC_BREAKPOINT,
|
||||
|
||||
/* If you are adding a new signal, add it just above this comment. */
|
||||
|
||||
/* Last and unused enum value, for sizing arrays, etc. */
|
||||
TARGET_SIGNAL_LAST
|
||||
};
|
||||
|
||||
#endif /* #ifndef GDB_SIGNALS_H */
|
||||
47
m68k/gdbserver/gdbserver-regs.xsl
Normal file
47
m68k/gdbserver/gdbserver-regs.xsl
Normal file
@@ -0,0 +1,47 @@
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="text"/>
|
||||
|
||||
<xsl:variable name="total" select="count(//reg)"/>
|
||||
|
||||
<xsl:template name="pad">
|
||||
<xsl:param name="count" select="0"/>
|
||||
<xsl:text>0:
|
||||
</xsl:text>
|
||||
<xsl:if test="$count > 1">
|
||||
<xsl:call-template name="pad">
|
||||
<xsl:with-param name="count" select="$count - 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="reg">
|
||||
<xsl:param name="which" select="1"/>
|
||||
<xsl:param name="nextnum" select="0"/>
|
||||
<xsl:variable name="thisnum" select="@regnum"/>
|
||||
<xsl:if test="$nextnum < number(@regnum)">
|
||||
<xsl:call-template name="pad">
|
||||
<xsl:with-param name="count" select="@regnum - $nextnum"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="@bitsize"/>
|
||||
<xsl:text>:</xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
<xsl:if test="$which < $total">
|
||||
<xsl:for-each select="/descendant::reg[$which + 1]">
|
||||
<xsl:call-template name="reg">
|
||||
<xsl:with-param name="which" select="$which + 1"/>
|
||||
<xsl:with-param name="nextnum" select="$thisnum + 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:for-each select="/descendant::reg[1]">
|
||||
<xsl:call-template name="reg"/>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
320
m68k/gdbserver/inferiors.c
Normal file
320
m68k/gdbserver/inferiors.c
Normal file
@@ -0,0 +1,320 @@
|
||||
/* Inferior process information for the remote server for GDB.
|
||||
Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "server.h"
|
||||
|
||||
struct thread_info
|
||||
{
|
||||
struct inferior_list_entry entry;
|
||||
void *target_data;
|
||||
void *regcache_data;
|
||||
unsigned int gdb_id;
|
||||
};
|
||||
|
||||
struct inferior_list all_threads;
|
||||
struct inferior_list all_dlls;
|
||||
int dlls_changed;
|
||||
|
||||
struct thread_info *current_inferior;
|
||||
|
||||
#define get_thread(inf) ((struct thread_info *)(inf))
|
||||
#define get_dll(inf) ((struct dll_info *)(inf))
|
||||
|
||||
void
|
||||
add_inferior_to_list (struct inferior_list *list,
|
||||
struct inferior_list_entry *new_inferior)
|
||||
{
|
||||
new_inferior->next = NULL;
|
||||
if (list->tail != NULL)
|
||||
list->tail->next = new_inferior;
|
||||
else
|
||||
list->head = new_inferior;
|
||||
list->tail = new_inferior;
|
||||
}
|
||||
|
||||
void
|
||||
for_each_inferior (struct inferior_list *list,
|
||||
void (*action) (struct inferior_list_entry *))
|
||||
{
|
||||
struct inferior_list_entry *cur = list->head, *next;
|
||||
|
||||
while (cur != NULL)
|
||||
{
|
||||
next = cur->next;
|
||||
(*action) (cur);
|
||||
cur = next;
|
||||
}
|
||||
}
|
||||
|
||||
/* When debugging a single-threaded program, the threads list (such as
|
||||
it is) is indexed by PID. When debugging a multi-threaded program,
|
||||
we index by TID. This ugly routine replaces the
|
||||
first-debugged-thread's PID with its TID. */
|
||||
|
||||
void
|
||||
change_inferior_id (struct inferior_list *list,
|
||||
unsigned long new_id)
|
||||
{
|
||||
if (list->head != list->tail)
|
||||
error ("tried to change thread ID after multiple threads are created");
|
||||
|
||||
list->head->id = new_id;
|
||||
}
|
||||
|
||||
void
|
||||
remove_inferior (struct inferior_list *list,
|
||||
struct inferior_list_entry *entry)
|
||||
{
|
||||
struct inferior_list_entry **cur;
|
||||
|
||||
if (list->head == entry)
|
||||
{
|
||||
list->head = entry->next;
|
||||
if (list->tail == entry)
|
||||
list->tail = list->head;
|
||||
return;
|
||||
}
|
||||
|
||||
cur = &list->head;
|
||||
while (*cur && (*cur)->next != entry)
|
||||
cur = &(*cur)->next;
|
||||
|
||||
if (*cur == NULL)
|
||||
return;
|
||||
|
||||
(*cur)->next = entry->next;
|
||||
|
||||
if (list->tail == entry)
|
||||
list->tail = *cur;
|
||||
}
|
||||
|
||||
void
|
||||
add_thread (unsigned long thread_id, void *target_data, unsigned int gdb_id)
|
||||
{
|
||||
struct thread_info *new_thread = malloc (sizeof (*new_thread));
|
||||
|
||||
memset (new_thread, 0, sizeof (*new_thread));
|
||||
|
||||
new_thread->entry.id = thread_id;
|
||||
|
||||
add_inferior_to_list (&all_threads, & new_thread->entry);
|
||||
|
||||
if (current_inferior == NULL)
|
||||
current_inferior = new_thread;
|
||||
|
||||
new_thread->target_data = target_data;
|
||||
set_inferior_regcache_data (new_thread, new_register_cache ());
|
||||
new_thread->gdb_id = gdb_id;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
thread_id_to_gdb_id (unsigned long thread_id)
|
||||
{
|
||||
struct inferior_list_entry *inf = all_threads.head;
|
||||
|
||||
while (inf != NULL)
|
||||
{
|
||||
struct thread_info *thread = get_thread (inf);
|
||||
if (inf->id == thread_id)
|
||||
return thread->gdb_id;
|
||||
inf = inf->next;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
thread_to_gdb_id (struct thread_info *thread)
|
||||
{
|
||||
return thread->gdb_id;
|
||||
}
|
||||
|
||||
struct thread_info *
|
||||
gdb_id_to_thread (unsigned int gdb_id)
|
||||
{
|
||||
struct inferior_list_entry *inf = all_threads.head;
|
||||
|
||||
while (inf != NULL)
|
||||
{
|
||||
struct thread_info *thread = get_thread (inf);
|
||||
if (thread->gdb_id == gdb_id)
|
||||
return thread;
|
||||
inf = inf->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
unsigned long
|
||||
gdb_id_to_thread_id (unsigned int gdb_id)
|
||||
{
|
||||
struct thread_info *thread = gdb_id_to_thread (gdb_id);
|
||||
|
||||
return thread ? thread->entry.id : 0;
|
||||
}
|
||||
|
||||
static void
|
||||
free_one_thread (struct inferior_list_entry *inf)
|
||||
{
|
||||
struct thread_info *thread = get_thread (inf);
|
||||
free_register_cache (inferior_regcache_data (thread));
|
||||
free (thread);
|
||||
}
|
||||
|
||||
void
|
||||
remove_thread (struct thread_info *thread)
|
||||
{
|
||||
remove_inferior (&all_threads, (struct inferior_list_entry *) thread);
|
||||
free_one_thread (&thread->entry);
|
||||
}
|
||||
|
||||
struct inferior_list_entry *
|
||||
find_inferior (struct inferior_list *list,
|
||||
int (*func) (struct inferior_list_entry *, void *), void *arg)
|
||||
{
|
||||
struct inferior_list_entry *inf = list->head;
|
||||
|
||||
while (inf != NULL)
|
||||
{
|
||||
if ((*func) (inf, arg))
|
||||
return inf;
|
||||
inf = inf->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct inferior_list_entry *
|
||||
find_inferior_id (struct inferior_list *list, unsigned long id)
|
||||
{
|
||||
struct inferior_list_entry *inf = list->head;
|
||||
|
||||
while (inf != NULL)
|
||||
{
|
||||
if (inf->id == id)
|
||||
return inf;
|
||||
inf = inf->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *
|
||||
inferior_target_data (struct thread_info *inferior)
|
||||
{
|
||||
return inferior->target_data;
|
||||
}
|
||||
|
||||
void
|
||||
set_inferior_target_data (struct thread_info *inferior, void *data)
|
||||
{
|
||||
inferior->target_data = data;
|
||||
}
|
||||
|
||||
void *
|
||||
inferior_regcache_data (struct thread_info *inferior)
|
||||
{
|
||||
return inferior->regcache_data;
|
||||
}
|
||||
|
||||
void
|
||||
set_inferior_regcache_data (struct thread_info *inferior, void *data)
|
||||
{
|
||||
inferior->regcache_data = data;
|
||||
}
|
||||
|
||||
static void
|
||||
free_one_dll (struct inferior_list_entry *inf)
|
||||
{
|
||||
struct dll_info *dll = get_dll (inf);
|
||||
if (dll->name != NULL)
|
||||
free (dll->name);
|
||||
free (dll);
|
||||
}
|
||||
|
||||
/* Find a DLL with the same name and/or base address. A NULL name in
|
||||
the key is ignored; so is an all-ones base address. */
|
||||
|
||||
static int
|
||||
match_dll (struct inferior_list_entry *inf, void *arg)
|
||||
{
|
||||
struct dll_info *iter = (void *) inf;
|
||||
struct dll_info *key = arg;
|
||||
|
||||
if (key->base_addr != ~(CORE_ADDR) 0
|
||||
&& iter->base_addr == key->base_addr)
|
||||
return 1;
|
||||
else if (key->name != NULL
|
||||
&& iter->name != NULL
|
||||
&& strcmp (key->name, iter->name) == 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Record a newly loaded DLL at BASE_ADDR. */
|
||||
|
||||
void
|
||||
loaded_dll (const char *name, CORE_ADDR base_addr)
|
||||
{
|
||||
struct dll_info *new_dll = malloc (sizeof (*new_dll));
|
||||
memset (new_dll, 0, sizeof (*new_dll));
|
||||
|
||||
new_dll->entry.id = -1;
|
||||
|
||||
new_dll->name = strdup (name);
|
||||
new_dll->base_addr = base_addr;
|
||||
|
||||
add_inferior_to_list (&all_dlls, &new_dll->entry);
|
||||
dlls_changed = 1;
|
||||
}
|
||||
|
||||
/* Record that the DLL with NAME and BASE_ADDR has been unloaded. */
|
||||
|
||||
void
|
||||
unloaded_dll (const char *name, CORE_ADDR base_addr)
|
||||
{
|
||||
struct dll_info *dll;
|
||||
struct dll_info key_dll;
|
||||
|
||||
/* Be careful not to put the key DLL in any list. */
|
||||
key_dll.name = (char *) name;
|
||||
key_dll.base_addr = base_addr;
|
||||
|
||||
dll = (void *) find_inferior (&all_dlls, match_dll, &key_dll);
|
||||
remove_inferior (&all_dlls, &dll->entry);
|
||||
free_one_dll (&dll->entry);
|
||||
dlls_changed = 1;
|
||||
}
|
||||
|
||||
#define clear_list(LIST) \
|
||||
do { (LIST)->head = (LIST)->tail = NULL; } while (0)
|
||||
|
||||
void
|
||||
clear_inferiors (void)
|
||||
{
|
||||
for_each_inferior (&all_threads, free_one_thread);
|
||||
for_each_inferior (&all_dlls, free_one_dll);
|
||||
|
||||
clear_list (&all_threads);
|
||||
clear_list (&all_dlls);
|
||||
}
|
||||
2325
m68k/gdbserver/m68k-bdm-low.c
Normal file
2325
m68k/gdbserver/m68k-bdm-low.c
Normal file
File diff suppressed because it is too large
Load Diff
92
m68k/gdbserver/m68k-bdm-low.h
Normal file
92
m68k/gdbserver/m68k-bdm-low.h
Normal file
@@ -0,0 +1,92 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
#if !defined (M68K_BDM_LOW_H)
|
||||
#define M68K_BDM_LOW_H
|
||||
|
||||
#include "regdef.h"
|
||||
#include "BDMlib.h"
|
||||
|
||||
/*
|
||||
* Mark a register as a control register using this define.
|
||||
*/
|
||||
#define BDM_REG_CONTROL_REG (1 << 31)
|
||||
#define BDM_REG_CONTROL_REG_MASK (~(1 << 31))
|
||||
#define BDM_REG_CTRL(r) (BDM_REG_CONTROL_REG | (r))
|
||||
|
||||
/*
|
||||
* Mark a register as a debug register using this define.
|
||||
*/
|
||||
#define BDM_REG_DEBUG_REG (1 << 30)
|
||||
#define BDM_REG_DEBUG_REG_MASK (~(1 << 30))
|
||||
#define BDM_REG_DEBUG(r) (BDM_REG_DEBUG_REG | (r))
|
||||
|
||||
/*
|
||||
* Mark a register as virtual or not present.
|
||||
*/
|
||||
#define BDM_REG_VIRTUAL_REG (1 << 29)
|
||||
#define BDM_REG_VIRTUAL_REG_MASK (~(1 << 29))
|
||||
#define BDM_REG_VIRT(r) (BDM_REG_VIRTUAL_REG | (r))
|
||||
|
||||
#define BDM_REG_MASK \
|
||||
(~(BDM_REG_CONTROL_REG | BDM_REG_DEBUG_REG | BDM_REG_VIRTUAL_REG))
|
||||
|
||||
/*
|
||||
* Types of registers.
|
||||
*/
|
||||
#define M68K_BDM_REG_TYPE_INT32 (0)
|
||||
#define M68K_BDM_REG_TYPE_UINT32 (1)
|
||||
#define M68K_BDM_REG_TYPE_VOID_DATA_PTR (2)
|
||||
#define M68K_BDM_REG_TYPE_M68881_EXT (3)
|
||||
|
||||
/*
|
||||
* The Coldfire VBR is write only.
|
||||
*/
|
||||
#define M68K_BDM_CF_VBR_FLAGS (REG_NON_CACHEABLE | REG_WRITE_ONLY)
|
||||
|
||||
/*
|
||||
* Hold a mapping from a register number to a register type
|
||||
* and device number type. The register number comes from the
|
||||
* register name.
|
||||
*/
|
||||
struct m68k_bdm_reg_mapping
|
||||
{
|
||||
const char* name;
|
||||
int type;
|
||||
int num;
|
||||
unsigned int code;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
/*
|
||||
* The number of registers.
|
||||
*/
|
||||
#define M68K_BDM_REG_NUMBER(_m) (sizeof (_m) / sizeof (struct m68k_bdm_reg_mapping))
|
||||
|
||||
#endif
|
||||
74
m68k/gdbserver/m68k-cf5200-regs.c
Normal file
74
m68k/gdbserver/m68k-cf5200-regs.c
Normal file
@@ -0,0 +1,74 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* Generic Coldfire Register set, MCF5200e.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf5200_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "mbar", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0xc0f), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf5200_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf5200_reg_map);
|
||||
|
||||
31
m68k/gdbserver/m68k-cf5200.xml
Normal file
31
m68k/gdbserver/m68k-cf5200.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 5200 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="mbar" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="24"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="25"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="26"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="27"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="28"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="29"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="30"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="31"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="32"/>
|
||||
</feature>
|
||||
</target>
|
||||
80
m68k/gdbserver/m68k-cf52223-regs.c
Normal file
80
m68k/gdbserver/m68k-cf52223-regs.c
Normal file
@@ -0,0 +1,80 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* 52223/52235 Coldfire Register set.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf52223_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc05), REG_NON_CACHEABLE },
|
||||
{ "flashbar", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "othera7", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_CTRL (0x800), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbr1", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0x1a), REG_NOT_ACCESSABLE },
|
||||
{ "pbr2", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0x1b), REG_NOT_ACCESSABLE },
|
||||
{ "pbr3", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0x18), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 36, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE },
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 37, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 38, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc", M68K_BDM_REG_TYPE_INT32, 39, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf52223_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf52223_reg_map);
|
||||
38
m68k/gdbserver/m68k-cf52223.xml
Normal file
38
m68k/gdbserver/m68k-cf52223.xml
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 52223 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="flashbar" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="othera7" bitsize="32" group="system" regnum="24"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="25"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="26"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="27"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="28"/>
|
||||
<reg name="pbr1" bitsize="32" group="debug" regnum="29"/>
|
||||
<reg name="pbr2" bitsize="32" group="debug" regnum="30"/>
|
||||
<reg name="pbr3" bitsize="32" group="debug" regnum="31"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="32"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="33"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="34"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="35"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="36"/>
|
||||
<reg name="macsr" bitsize="32" regnum="37"/>
|
||||
<reg name="mask" bitsize="32" regnum="38"/>
|
||||
<reg name="acc" bitsize="32" regnum="39"/>
|
||||
</feature>
|
||||
</target>
|
||||
82
m68k/gdbserver/m68k-cf5235-regs.c
Normal file
82
m68k/gdbserver/m68k-cf5235-regs.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* 5235 Coldfire Register set.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf5235_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc05), REG_NON_CACHEABLE },
|
||||
{ "othera7", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0x800), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "xcsr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x1), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE},
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc0", M68K_BDM_REG_TYPE_INT32, 36, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE },
|
||||
{ "acc1", M68K_BDM_REG_TYPE_INT32, 37, BDM_REG_CTRL (0x809), REG_NON_CACHEABLE },
|
||||
{ "acc2", M68K_BDM_REG_TYPE_INT32, 38, BDM_REG_CTRL (0x80a), REG_NON_CACHEABLE },
|
||||
{ "acc3", M68K_BDM_REG_TYPE_INT32, 39, BDM_REG_CTRL (0x80b), REG_NON_CACHEABLE },
|
||||
{ "accext01", M68K_BDM_REG_TYPE_INT32, 40, BDM_REG_CTRL (0x807), REG_NON_CACHEABLE },
|
||||
{ "accext32", M68K_BDM_REG_TYPE_INT32, 41, BDM_REG_CTRL (0x808), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf5235_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf5235_reg_map);
|
||||
40
m68k/gdbserver/m68k-cf5235.xml
Normal file
40
m68k/gdbserver/m68k-cf5235.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 5235 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="othera7" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="24"/>
|
||||
<reg name="xcsr" bitsize="32" group="debug" regnum="25"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="26"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="27"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="28"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="29"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="30"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="31"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="32"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="33"/>
|
||||
<reg name="macsr" bitsize="32" regnum="34"/>
|
||||
<reg name="mask" bitsize="32" regnum="35"/>
|
||||
<reg name="acc0" bitsize="32" regnum="36"/>
|
||||
<reg name="acc1" bitsize="32" regnum="37"/>
|
||||
<reg name="acc2" bitsize="32" regnum="38"/>
|
||||
<reg name="acc3" bitsize="32" regnum="39"/>
|
||||
<reg name="accext01" bitsize="32" regnum="40"/>
|
||||
<reg name="accext32" bitsize="32" regnum="41"/>
|
||||
</feature>
|
||||
</target>
|
||||
76
m68k/gdbserver/m68k-cf5272-regs.c
Normal file
76
m68k/gdbserver/m68k-cf5272-regs.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* 5272 Coldfire Register set. Has the EMAC.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf5272_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "mbar", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0xc0f), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE },
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf5272_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf5272_reg_map);
|
||||
35
m68k/gdbserver/m68k-cf5272.xml
Normal file
35
m68k/gdbserver/m68k-cf5272.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 5272 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="mbar" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="24"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="25"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="26"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="27"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="28"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="29"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="30"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="31"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="32"/>
|
||||
<reg name="macsr" bitsize="32" regnum="33"/>
|
||||
<reg name="mask" bitsize="32" regnum="34"/>
|
||||
<reg name="acc" bitsize="32" regnum="35"/>
|
||||
</feature>
|
||||
</target>
|
||||
|
||||
82
m68k/gdbserver/m68k-cf5282-regs.c
Normal file
82
m68k/gdbserver/m68k-cf5282-regs.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* 5282 Coldfire Register set. Has the extended EMAC, no MBAR.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf5282_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc05), REG_NON_CACHEABLE },
|
||||
{ "flashbar", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "othera7", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_CTRL (0x800), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE },
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc0", M68K_BDM_REG_TYPE_INT32, 36, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE },
|
||||
{ "acc1", M68K_BDM_REG_TYPE_INT32, 37, BDM_REG_CTRL (0x809), REG_NON_CACHEABLE },
|
||||
{ "acc2", M68K_BDM_REG_TYPE_INT32, 38, BDM_REG_CTRL (0x80a), REG_NON_CACHEABLE },
|
||||
{ "acc3", M68K_BDM_REG_TYPE_INT32, 39, BDM_REG_CTRL (0x80b), REG_NON_CACHEABLE },
|
||||
{ "accext01", M68K_BDM_REG_TYPE_INT32, 40, BDM_REG_CTRL (0x807), REG_NON_CACHEABLE },
|
||||
{ "accext32", M68K_BDM_REG_TYPE_INT32, 41, BDM_REG_CTRL (0x808), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf5282_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf5282_reg_map);
|
||||
40
m68k/gdbserver/m68k-cf5282.xml
Normal file
40
m68k/gdbserver/m68k-cf5282.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 5282 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="flashbar" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="othera7" bitsize="32" group="system" regnum="24"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="25"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="26"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="27"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="28"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="29"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="30"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="31"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="32"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="33"/>
|
||||
<reg name="macsr" bitsize="32" regnum="34"/>
|
||||
<reg name="mask" bitsize="32" regnum="35"/>
|
||||
<reg name="acc0" bitsize="32" regnum="36"/>
|
||||
<reg name="acc1" bitsize="32" regnum="37"/>
|
||||
<reg name="acc2" bitsize="32" regnum="38"/>
|
||||
<reg name="acc3" bitsize="32" regnum="39"/>
|
||||
<reg name="accext01" bitsize="32" regnum="40"/>
|
||||
<reg name="accext32" bitsize="32" regnum="41"/>
|
||||
</feature>
|
||||
</target>
|
||||
76
m68k/gdbserver/m68k-cf5307-regs.c
Normal file
76
m68k/gdbserver/m68k-cf5307-regs.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* 5307 V3 Coldfire Register set
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cf5307_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC,0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 20, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 21, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "rambar", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "mbar", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_CTRL (0xc0f), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 24, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 25, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 29, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE },
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cf5307_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cf5307_reg_map);
|
||||
25
m68k/gdbserver/m68k-cf5307.xml
Normal file
25
m68k/gdbserver/m68k-cf5307.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The 5307 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="rambar" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="mbar" bitsize="32" group="debug" regnum="23"/>
|
||||
<reg name="macsr" bitsize="32" regnum="24"/>
|
||||
<reg name="mask" bitsize="32" regnum="25"/>
|
||||
<reg name="acc" bitsize="32" regnum="26"/>
|
||||
</feature>
|
||||
</target>
|
||||
106
m68k/gdbserver/m68k-cfv4e-regs.c
Normal file
106
m68k/gdbserver/m68k-cfv4e-regs.c
Normal file
@@ -0,0 +1,106 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* V4E Coldfire Register set.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cfv4e_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_CTRL (0x80e), 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_CTRL (0x80f), 0 },
|
||||
{ "fp0", M68K_BDM_REG_TYPE_M68881_EXT, 18, BDM_REG_CTRL (0x810), 0 },
|
||||
{ "fp1", M68K_BDM_REG_TYPE_M68881_EXT, 19, BDM_REG_CTRL (0x812), 0 },
|
||||
{ "fp2", M68K_BDM_REG_TYPE_M68881_EXT, 20, BDM_REG_CTRL (0x814), 0 },
|
||||
{ "fp3", M68K_BDM_REG_TYPE_M68881_EXT, 21, BDM_REG_CTRL (0x816), 0 },
|
||||
{ "fp4", M68K_BDM_REG_TYPE_M68881_EXT, 22, BDM_REG_CTRL (0x818), 0 },
|
||||
{ "fp5", M68K_BDM_REG_TYPE_M68881_EXT, 23, BDM_REG_CTRL (0x81a), 0 },
|
||||
{ "fp6", M68K_BDM_REG_TYPE_M68881_EXT, 24, BDM_REG_CTRL (0x81c), 0 },
|
||||
{ "fp7", M68K_BDM_REG_TYPE_M68881_EXT, 25, BDM_REG_CTRL (0x81e), 0 },
|
||||
{ "fpcontrol", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_CTRL (0x824), 0 },
|
||||
{ "fpstatus", M68K_BDM_REG_TYPE_INT32, 27, BDM_REG_CTRL (0x822), 0 },
|
||||
{ "fpiaddr", M68K_BDM_REG_TYPE_INT32, 28, BDM_REG_CTRL (0x821), 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 29, BDM_REG_CTRL (0x801), M68K_BDM_CF_VBR_FLAGS },
|
||||
{ "cacr", M68K_BDM_REG_TYPE_INT32, 30, BDM_REG_CTRL (0x002), REG_NON_CACHEABLE },
|
||||
{ "asid", M68K_BDM_REG_TYPE_INT32, 31, BDM_REG_CTRL (0x003), REG_NON_CACHEABLE },
|
||||
{ "acr0", M68K_BDM_REG_TYPE_INT32, 32, BDM_REG_CTRL (0x004), REG_NON_CACHEABLE },
|
||||
{ "acr1", M68K_BDM_REG_TYPE_INT32, 33, BDM_REG_CTRL (0x005), REG_NON_CACHEABLE },
|
||||
{ "acr2", M68K_BDM_REG_TYPE_INT32, 34, BDM_REG_CTRL (0x006), REG_NON_CACHEABLE },
|
||||
{ "acr3", M68K_BDM_REG_TYPE_INT32, 35, BDM_REG_CTRL (0x007), REG_NON_CACHEABLE },
|
||||
{ "mmubar", M68K_BDM_REG_TYPE_INT32, 36, BDM_REG_CTRL (0x008), REG_NON_CACHEABLE },
|
||||
{ "mbar", M68K_BDM_REG_TYPE_INT32, 37, BDM_REG_CTRL (0xc0f), REG_NON_CACHEABLE },
|
||||
{ "rambar0", M68K_BDM_REG_TYPE_INT32, 38, BDM_REG_CTRL (0xc04), REG_NON_CACHEABLE },
|
||||
{ "rambar1", M68K_BDM_REG_TYPE_INT32, 39, BDM_REG_CTRL (0xc05), REG_NON_CACHEABLE },
|
||||
{ "csr", M68K_BDM_REG_TYPE_INT32, 40, BDM_REG_DEBUG (0x0), REG_NOT_ACCESSABLE },
|
||||
{ "aatr", M68K_BDM_REG_TYPE_INT32, 41, BDM_REG_DEBUG (0x6), REG_NOT_ACCESSABLE },
|
||||
{ "tdr", M68K_BDM_REG_TYPE_INT32, 42, BDM_REG_DEBUG (0x7), REG_NOT_ACCESSABLE },
|
||||
{ "xtdr", M68K_BDM_REG_TYPE_INT32, 42, BDM_REG_DEBUG (0x17), REG_NOT_ACCESSABLE },
|
||||
{ "pbr", M68K_BDM_REG_TYPE_INT32, 43, BDM_REG_DEBUG (0x8), REG_NOT_ACCESSABLE },
|
||||
{ "pbr1", M68K_BDM_REG_TYPE_INT32, 44, BDM_REG_DEBUG (0x18), REG_NOT_ACCESSABLE },
|
||||
{ "pbr2", M68K_BDM_REG_TYPE_INT32, 45, BDM_REG_DEBUG (0x1a), REG_NOT_ACCESSABLE },
|
||||
{ "pbr3", M68K_BDM_REG_TYPE_INT32, 46, BDM_REG_DEBUG (0x1b), REG_NOT_ACCESSABLE },
|
||||
{ "pbmr", M68K_BDM_REG_TYPE_INT32, 47, BDM_REG_DEBUG (0x9), REG_NOT_ACCESSABLE },
|
||||
{ "pbasid", M68K_BDM_REG_TYPE_INT32, 43, BDM_REG_DEBUG (0x14), REG_NOT_ACCESSABLE },
|
||||
{ "abhr", M68K_BDM_REG_TYPE_INT32, 48, BDM_REG_DEBUG (0xc), REG_NOT_ACCESSABLE },
|
||||
{ "ablr", M68K_BDM_REG_TYPE_INT32, 49, BDM_REG_DEBUG (0xd), REG_NOT_ACCESSABLE },
|
||||
{ "abhr1", M68K_BDM_REG_TYPE_INT32, 50, BDM_REG_DEBUG (0x1c), REG_NOT_ACCESSABLE },
|
||||
{ "ablr1", M68K_BDM_REG_TYPE_INT32, 51, BDM_REG_DEBUG (0x1d), REG_NOT_ACCESSABLE },
|
||||
{ "dbr", M68K_BDM_REG_TYPE_INT32, 52, BDM_REG_DEBUG (0xe), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr", M68K_BDM_REG_TYPE_INT32, 53, BDM_REG_DEBUG (0xf), REG_NOT_ACCESSABLE },
|
||||
{ "dbr1", M68K_BDM_REG_TYPE_INT32, 54, BDM_REG_DEBUG (0x1e), REG_NOT_ACCESSABLE },
|
||||
{ "dbmr1", M68K_BDM_REG_TYPE_INT32, 55, BDM_REG_DEBUG (0x1f), REG_NOT_ACCESSABLE },
|
||||
{ "macsr", M68K_BDM_REG_TYPE_INT32, 56, BDM_REG_CTRL (0x804), REG_NON_CACHEABLE },
|
||||
{ "mask", M68K_BDM_REG_TYPE_INT32, 57, BDM_REG_CTRL (0x805), REG_NON_CACHEABLE },
|
||||
{ "acc0", M68K_BDM_REG_TYPE_INT32, 58, BDM_REG_CTRL (0x806), REG_NON_CACHEABLE },
|
||||
{ "acc1", M68K_BDM_REG_TYPE_INT32, 59, BDM_REG_CTRL (0x809), REG_NON_CACHEABLE },
|
||||
{ "acc2", M68K_BDM_REG_TYPE_INT32, 60, BDM_REG_CTRL (0x80a), REG_NON_CACHEABLE },
|
||||
{ "acc3", M68K_BDM_REG_TYPE_INT32, 61, BDM_REG_CTRL (0x80b), REG_NON_CACHEABLE },
|
||||
{ "accext01", M68K_BDM_REG_TYPE_INT32, 62, BDM_REG_CTRL (0x807), REG_NON_CACHEABLE },
|
||||
{ "accext32", M68K_BDM_REG_TYPE_INT32, 63, BDM_REG_CTRL (0x808), REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cfv4e_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cfv4e_reg_map);
|
||||
54
m68k/gdbserver/m68k-cfv4e.xml
Normal file
54
m68k/gdbserver/m68k-cfv4e.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- The 68000 standard FPU registers -->
|
||||
<xi:include href="m68k-fpu.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The cfv4e specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="29"/>
|
||||
<reg name="cacr" bitsize="32" group="system" regnum="30"/>
|
||||
<reg name="asid" bitsize="32" group="system" regnum="31"/>
|
||||
<reg name="acr0" bitsize="32" group="system" regnum="32"/>
|
||||
<reg name="acr1" bitsize="32" group="system" regnum="33"/>
|
||||
<reg name="acr2" bitsize="32" group="system" regnum="34"/>
|
||||
<reg name="acr3" bitsize="32" group="system" regnum="35"/>
|
||||
<reg name="mmubar" bitsize="32" group="system" regnum="36"/>
|
||||
<reg name="mbar" bitsize="32" group="system" regnum="37"/>
|
||||
<reg name="rambar0" bitsize="32" group="system" regnum="38"/>
|
||||
<reg name="rambar1" bitsize="32" group="system" regnum="39"/>
|
||||
<reg name="csr" bitsize="32" group="debug" regnum="40"/>
|
||||
<reg name="aatr" bitsize="32" group="debug" regnum="41"/>
|
||||
<reg name="tdr" bitsize="32" group="debug" regnum="42"/>
|
||||
<reg name="pbr" bitsize="32" group="debug" regnum="43"/>
|
||||
<reg name="pbr1" bitsize="32" group="debug" regnum="44"/>
|
||||
<reg name="pbr2" bitsize="32" group="debug" regnum="45"/>
|
||||
<reg name="pbr3" bitsize="32" group="debug" regnum="46"/>
|
||||
<reg name="pbmr" bitsize="32" group="debug" regnum="47"/>
|
||||
<reg name="abhr" bitsize="32" group="debug" regnum="48"/>
|
||||
<reg name="ablr" bitsize="32" group="debug" regnum="49"/>
|
||||
<reg name="abhr1" bitsize="32" group="debug" regnum="50"/>
|
||||
<reg name="ablr1" bitsize="32" group="debug" regnum="51"/>
|
||||
<reg name="dbr" bitsize="32" group="debug" regnum="52"/>
|
||||
<reg name="dbmr" bitsize="32" group="debug" regnum="53"/>
|
||||
<reg name="dbr1" bitsize="32" group="debug" regnum="54"/>
|
||||
<reg name="dbmr1" bitsize="32" group="debug" regnum="55"/>
|
||||
<reg name="macsr" bitsize="32" regnum="56"/>
|
||||
<reg name="mask" bitsize="32" regnum="57"/>
|
||||
<reg name="acc0" bitsize="32" regnum="58"/>
|
||||
<reg name="acc1" bitsize="32" regnum="59"/>
|
||||
<reg name="acc2" bitsize="32" regnum="60"/>
|
||||
<reg name="acc3" bitsize="32" regnum="61"/>
|
||||
<reg name="accext01" bitsize="32" regnum="62"/>
|
||||
<reg name="accext32" bitsize="32" regnum="63"/>
|
||||
</feature>
|
||||
</target>
|
||||
|
||||
57
m68k/gdbserver/m68k-core-regs.c
Normal file
57
m68k/gdbserver/m68k-core-regs.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* The standard 68000.
|
||||
*/
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_68000_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 }
|
||||
};
|
||||
|
||||
const int m68k_bdm_68000_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_68000_reg_map);
|
||||
31
m68k/gdbserver/m68k-core.xml
Normal file
31
m68k/gdbserver/m68k-core.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The standard m68k register set -->
|
||||
<reg name="d0" bitsize="32" regnum="0"/>
|
||||
<reg name="d1" bitsize="32" regnum="1"/>
|
||||
<reg name="d2" bitsize="32" regnum="2"/>
|
||||
<reg name="d3" bitsize="32" regnum="3"/>
|
||||
<reg name="d4" bitsize="32" regnum="4"/>
|
||||
<reg name="d5" bitsize="32" regnum="5"/>
|
||||
<reg name="d6" bitsize="32" regnum="6"/>
|
||||
<reg name="d7" bitsize="32" regnum="7"/>
|
||||
<reg name="a0" bitsize="32" regnum="8" type="data_ptr"/>
|
||||
<reg name="a1" bitsize="32" regnum="9" type="data_ptr"/>
|
||||
<reg name="a2" bitsize="32" regnum="10" type="data_ptr"/>
|
||||
<reg name="a3" bitsize="32" regnum="11" type="data_ptr"/>
|
||||
<reg name="a4" bitsize="32" regnum="12" type="data_ptr"/>
|
||||
<reg name="a5" bitsize="32" regnum="13" type="data_ptr"/>
|
||||
|
||||
<!-- The fp is a6 and sp is a7 -->
|
||||
<reg name="fp" bitsize="32" regnum="14" type="data_ptr"/>
|
||||
<reg name="sp" bitsize="32" regnum="15" type="data_ptr"/>
|
||||
|
||||
<reg name="ps" bitsize="32" regnum="16"/>
|
||||
<reg name="pc" bitsize="32" regnum="17" type="code_ptr"/>
|
||||
</feature>
|
||||
64
m68k/gdbserver/m68k-cpu32-regs.c
Normal file
64
m68k/gdbserver/m68k-cpu32-regs.c
Normal file
@@ -0,0 +1,64 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* The standard CPU32 core.
|
||||
*/
|
||||
|
||||
struct m68k_bdm_reg_mapping m68k_bdm_cpu32_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_VBR, REG_NON_CACHEABLE },
|
||||
{ "pcc", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_PCC, 0 },
|
||||
{ "usp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 20, BDM_REG_USP, 0 },
|
||||
{ "ssp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 21, BDM_REG_SSP, 0 },
|
||||
{ "sfc", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_SFC, REG_NON_CACHEABLE },
|
||||
{ "dfc", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_DFC, REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cpu32_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cpu32_reg_map);
|
||||
22
m68k/gdbserver/m68k-cpu32.xml
Normal file
22
m68k/gdbserver/m68k-cpu32.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The CPU32 specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="pcc" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="usp" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="ssp" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="sfc" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="dfc" bitsize="32" group="system" regnum="23"/>
|
||||
</feature>
|
||||
</target>
|
||||
67
m68k/gdbserver/m68k-cpu32plus-regs.c
Normal file
67
m68k/gdbserver/m68k-cpu32plus-regs.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/* BDM/m68k specific low level interface, for the remote server for GDB.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008 Chris Johns (chrisj@rtems.org).
|
||||
|
||||
This file is part of M68K BDM.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
The code in the this file is based on the GDB server code in GDB and
|
||||
the code in M68K BDM GDB patch file called 'remote-m68k-bdm.c'.
|
||||
Based on:
|
||||
1. `A Background Debug Mode Driver Package for Motorola's
|
||||
16-bit and 32-Bit Microcontrollers', Scott Howard, Motorola
|
||||
Canada, 1993.
|
||||
2. `Linux device driver for public domain BDM Interface',
|
||||
M. Schraut, Technische Universitaet Muenchen, Lehrstuhl
|
||||
fuer Prozessrechner, 1995. */
|
||||
|
||||
|
||||
#include "m68k-bdm-low.h"
|
||||
|
||||
/*
|
||||
* The CPU32+ core, ie 68360.
|
||||
*/
|
||||
|
||||
const struct m68k_bdm_reg_mapping m68k_bdm_cpu32plus_reg_map[] = {
|
||||
{ "d0", M68K_BDM_REG_TYPE_INT32, 0, BDM_REG_D0, 0 },
|
||||
{ "d1", M68K_BDM_REG_TYPE_INT32, 1, BDM_REG_D1, 0 },
|
||||
{ "d2", M68K_BDM_REG_TYPE_INT32, 2, BDM_REG_D2, 0 },
|
||||
{ "d3", M68K_BDM_REG_TYPE_INT32, 3, BDM_REG_D3, 0 },
|
||||
{ "d4", M68K_BDM_REG_TYPE_INT32, 4, BDM_REG_D4, 0 },
|
||||
{ "d5", M68K_BDM_REG_TYPE_INT32, 5, BDM_REG_D5, 0 },
|
||||
{ "d6", M68K_BDM_REG_TYPE_INT32, 6, BDM_REG_D6, 0 },
|
||||
{ "d7", M68K_BDM_REG_TYPE_INT32, 7, BDM_REG_D7, 0 },
|
||||
{ "a0", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 8, BDM_REG_A0, 0 },
|
||||
{ "a1", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 9, BDM_REG_A1, 0 },
|
||||
{ "a2", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 10, BDM_REG_A2, 0 },
|
||||
{ "a3", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 11, BDM_REG_A3, 0 },
|
||||
{ "a4", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 12, BDM_REG_A4, 0 },
|
||||
{ "a5", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 13, BDM_REG_A5, 0 },
|
||||
{ "fp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 14, BDM_REG_A6, 0 },
|
||||
{ "sp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 15, BDM_REG_A7, 0 },
|
||||
{ "ps", M68K_BDM_REG_TYPE_INT32, 16, BDM_REG_SR, 0 },
|
||||
{ "pc", M68K_BDM_REG_TYPE_INT32, 17, BDM_REG_RPC, 0 },
|
||||
{ "vbr", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 18, BDM_REG_VBR, REG_NON_CACHEABLE },
|
||||
{ "pcc", M68K_BDM_REG_TYPE_INT32, 19, BDM_REG_PCC, 0 },
|
||||
{ "usp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 20, BDM_REG_USP, 0 },
|
||||
{ "ssp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 21, BDM_REG_SSP, 0 },
|
||||
{ "sfc", M68K_BDM_REG_TYPE_INT32, 22, BDM_REG_SFC, REG_NON_CACHEABLE },
|
||||
{ "dfc", M68K_BDM_REG_TYPE_INT32, 23, BDM_REG_DFC, REG_NON_CACHEABLE },
|
||||
{ "atemp", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 24, BDM_REG_ATEMP, REG_NON_CACHEABLE },
|
||||
{ "far", M68K_BDM_REG_TYPE_VOID_DATA_PTR, 25, BDM_REG_FAR, REG_NON_CACHEABLE },
|
||||
{ "mbar", M68K_BDM_REG_TYPE_INT32, 26, BDM_REG_MBAR, REG_NON_CACHEABLE }
|
||||
};
|
||||
|
||||
const int m68k_bdm_cpu32plus_reg_map_size = M68K_BDM_REG_NUMBER (m68k_bdm_cpu32plus_reg_map);
|
||||
25
m68k/gdbserver/m68k-cpu32plus.xml
Normal file
25
m68k/gdbserver/m68k-cpu32plus.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<!-- The 68000 standard registers -->
|
||||
<xi:include href="m68k-core.xml"/>
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core">
|
||||
<!-- The CPU32+ specific registers -->
|
||||
<reg name="vbr" bitsize="32" group="system" regnum="18"/>
|
||||
<reg name="pcc" bitsize="32" group="system" regnum="19"/>
|
||||
<reg name="usp" bitsize="32" group="system" regnum="20"/>
|
||||
<reg name="ssp" bitsize="32" group="system" regnum="21"/>
|
||||
<reg name="sfc" bitsize="32" group="system" regnum="22"/>
|
||||
<reg name="dfc" bitsize="32" group="system" regnum="23"/>
|
||||
<reg name="atemp" bitsize="32" group="system" regnum="24"/>
|
||||
<reg name="far" bitsize="32" group="system" regnum="25"/>
|
||||
<reg name="mbat" bitsize="32" group="system" regnum="26"/>
|
||||
</feature>
|
||||
</target>
|
||||
22
m68k/gdbserver/m68k-fpu.xml
Normal file
22
m68k/gdbserver/m68k-fpu.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<!-- This is the name used m68k-tdep.c in GDB. -->
|
||||
<feature name="org.gnu.gdb.coldfire.core.fp">
|
||||
<reg name="fp0" bitsize="64" type="float" group="float" regnum="18"/>
|
||||
<reg name="fp1" bitsize="64" type="float" group="float" regnum="19"/>
|
||||
<reg name="fp2" bitsize="64" type="float" group="float" regnum="20"/>
|
||||
<reg name="fp3" bitsize="64" type="float" group="float" regnum="21"/>
|
||||
<reg name="fp4" bitsize="64" type="float" group="float" regnum="22"/>
|
||||
<reg name="fp5" bitsize="64" type="float" group="float" regnum="23"/>
|
||||
<reg name="fp6" bitsize="64" type="float" group="float" regnum="24"/>
|
||||
<reg name="fp7" bitsize="64" type="float" group="float" regnum="25"/>
|
||||
<reg name="fpcontrol" bitsize="32" group="float" regnum="26"/>
|
||||
<reg name="fpstatus" bitsize="32" group="float" regnum="27"/>,
|
||||
<reg name="fpiaddr" bitsize="32" type="code_ptr" group="float" regnum="28"/>
|
||||
</feature>
|
||||
292
m68k/gdbserver/mem-break.c
Normal file
292
m68k/gdbserver/mem-break.c
Normal file
@@ -0,0 +1,292 @@
|
||||
/* Memory breakpoint operations for the remote server for GDB.
|
||||
Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "server.h"
|
||||
|
||||
const unsigned char *breakpoint_data;
|
||||
int breakpoint_len;
|
||||
|
||||
#define MAX_BREAKPOINT_LEN 8
|
||||
|
||||
struct breakpoint
|
||||
{
|
||||
struct breakpoint *next;
|
||||
CORE_ADDR pc;
|
||||
unsigned char old_data[MAX_BREAKPOINT_LEN];
|
||||
|
||||
/* Non-zero iff we are stepping over this breakpoint. */
|
||||
int reinserting;
|
||||
|
||||
/* Non-NULL iff this breakpoint was inserted to step over
|
||||
another one. Points to the other breakpoint (which is also
|
||||
in the *next chain somewhere). */
|
||||
struct breakpoint *breakpoint_to_reinsert;
|
||||
|
||||
/* Function to call when we hit this breakpoint. */
|
||||
void (*handler) (CORE_ADDR);
|
||||
};
|
||||
|
||||
struct breakpoint *breakpoints;
|
||||
|
||||
void
|
||||
set_breakpoint_at (CORE_ADDR where, void (*handler) (CORE_ADDR))
|
||||
{
|
||||
struct breakpoint *bp;
|
||||
|
||||
if (breakpoint_data == NULL)
|
||||
error ("Target does not support breakpoints.");
|
||||
|
||||
bp = malloc (sizeof (struct breakpoint));
|
||||
memset (bp, 0, sizeof (struct breakpoint));
|
||||
|
||||
(*the_target->read_memory) (where, bp->old_data,
|
||||
breakpoint_len);
|
||||
(*the_target->write_memory) (where, breakpoint_data,
|
||||
breakpoint_len);
|
||||
|
||||
bp->pc = where;
|
||||
bp->handler = handler;
|
||||
|
||||
bp->next = breakpoints;
|
||||
breakpoints = bp;
|
||||
}
|
||||
|
||||
static void
|
||||
delete_breakpoint (struct breakpoint *bp)
|
||||
{
|
||||
struct breakpoint *cur;
|
||||
|
||||
if (breakpoints == bp)
|
||||
{
|
||||
breakpoints = bp->next;
|
||||
(*the_target->write_memory) (bp->pc, bp->old_data,
|
||||
breakpoint_len);
|
||||
free (bp);
|
||||
return;
|
||||
}
|
||||
cur = breakpoints;
|
||||
while (cur->next)
|
||||
{
|
||||
if (cur->next == bp)
|
||||
{
|
||||
cur->next = bp->next;
|
||||
(*the_target->write_memory) (bp->pc, bp->old_data,
|
||||
breakpoint_len);
|
||||
free (bp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
warning ("Could not find breakpoint in list.");
|
||||
}
|
||||
|
||||
static struct breakpoint *
|
||||
find_breakpoint_at (CORE_ADDR where)
|
||||
{
|
||||
struct breakpoint *bp = breakpoints;
|
||||
|
||||
while (bp != NULL)
|
||||
{
|
||||
if (bp->pc == where)
|
||||
return bp;
|
||||
bp = bp->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
delete_breakpoint_at (CORE_ADDR addr)
|
||||
{
|
||||
struct breakpoint *bp = find_breakpoint_at (addr);
|
||||
if (bp != NULL)
|
||||
delete_breakpoint (bp);
|
||||
}
|
||||
|
||||
static void
|
||||
reinsert_breakpoint_handler (CORE_ADDR stop_pc)
|
||||
{
|
||||
struct breakpoint *stop_bp, *orig_bp;
|
||||
|
||||
stop_bp = find_breakpoint_at (stop_pc);
|
||||
if (stop_bp == NULL)
|
||||
error ("lost the stopping breakpoint.");
|
||||
|
||||
orig_bp = stop_bp->breakpoint_to_reinsert;
|
||||
if (orig_bp == NULL)
|
||||
error ("no breakpoint to reinsert");
|
||||
|
||||
(*the_target->write_memory) (orig_bp->pc, breakpoint_data,
|
||||
breakpoint_len);
|
||||
orig_bp->reinserting = 0;
|
||||
delete_breakpoint (stop_bp);
|
||||
}
|
||||
|
||||
void
|
||||
reinsert_breakpoint_by_bp (CORE_ADDR stop_pc, CORE_ADDR stop_at)
|
||||
{
|
||||
struct breakpoint *bp, *orig_bp;
|
||||
|
||||
set_breakpoint_at (stop_at, reinsert_breakpoint_handler);
|
||||
|
||||
orig_bp = find_breakpoint_at (stop_pc);
|
||||
if (orig_bp == NULL)
|
||||
error ("Could not find original breakpoint in list.");
|
||||
|
||||
bp = find_breakpoint_at (stop_at);
|
||||
if (bp == NULL)
|
||||
error ("Could not find breakpoint in list (reinserting by breakpoint).");
|
||||
bp->breakpoint_to_reinsert = orig_bp;
|
||||
|
||||
(*the_target->write_memory) (orig_bp->pc, orig_bp->old_data,
|
||||
breakpoint_len);
|
||||
orig_bp->reinserting = 1;
|
||||
}
|
||||
|
||||
void
|
||||
uninsert_breakpoint (CORE_ADDR stopped_at)
|
||||
{
|
||||
struct breakpoint *bp;
|
||||
|
||||
bp = find_breakpoint_at (stopped_at);
|
||||
if (bp == NULL)
|
||||
error ("Could not find breakpoint in list (uninserting).");
|
||||
|
||||
(*the_target->write_memory) (bp->pc, bp->old_data,
|
||||
breakpoint_len);
|
||||
bp->reinserting = 1;
|
||||
}
|
||||
|
||||
void
|
||||
reinsert_breakpoint (CORE_ADDR stopped_at)
|
||||
{
|
||||
struct breakpoint *bp;
|
||||
|
||||
bp = find_breakpoint_at (stopped_at);
|
||||
if (bp == NULL)
|
||||
error ("Could not find breakpoint in list (uninserting).");
|
||||
if (! bp->reinserting)
|
||||
error ("Breakpoint already inserted at reinsert time.");
|
||||
|
||||
(*the_target->write_memory) (bp->pc, breakpoint_data,
|
||||
breakpoint_len);
|
||||
bp->reinserting = 0;
|
||||
}
|
||||
|
||||
int
|
||||
check_breakpoints (CORE_ADDR stop_pc)
|
||||
{
|
||||
struct breakpoint *bp;
|
||||
|
||||
bp = find_breakpoint_at (stop_pc);
|
||||
if (bp == NULL)
|
||||
return 0;
|
||||
if (bp->reinserting)
|
||||
{
|
||||
warning ("Hit a removed breakpoint?");
|
||||
return 0;
|
||||
}
|
||||
|
||||
(*bp->handler) (bp->pc);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
set_breakpoint_data (const unsigned char *bp_data, int bp_len)
|
||||
{
|
||||
breakpoint_data = bp_data;
|
||||
breakpoint_len = bp_len;
|
||||
}
|
||||
|
||||
void
|
||||
check_mem_read (CORE_ADDR mem_addr, unsigned char *buf, int mem_len)
|
||||
{
|
||||
struct breakpoint *bp = breakpoints;
|
||||
CORE_ADDR mem_end = mem_addr + mem_len;
|
||||
|
||||
for (; bp != NULL; bp = bp->next)
|
||||
{
|
||||
CORE_ADDR bp_end = bp->pc + breakpoint_len;
|
||||
CORE_ADDR start, end;
|
||||
int copy_offset, copy_len, buf_offset;
|
||||
|
||||
if (mem_addr >= bp_end)
|
||||
continue;
|
||||
if (bp->pc >= mem_end)
|
||||
continue;
|
||||
|
||||
start = bp->pc;
|
||||
if (mem_addr > start)
|
||||
start = mem_addr;
|
||||
|
||||
end = bp_end;
|
||||
if (end > mem_end)
|
||||
end = mem_end;
|
||||
|
||||
copy_len = end - start;
|
||||
copy_offset = start - bp->pc;
|
||||
buf_offset = start - mem_addr;
|
||||
|
||||
memcpy (buf + buf_offset, bp->old_data + copy_offset, copy_len);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
check_mem_write (CORE_ADDR mem_addr, unsigned char *buf, int mem_len)
|
||||
{
|
||||
struct breakpoint *bp = breakpoints;
|
||||
CORE_ADDR mem_end = mem_addr + mem_len;
|
||||
|
||||
for (; bp != NULL; bp = bp->next)
|
||||
{
|
||||
CORE_ADDR bp_end = bp->pc + breakpoint_len;
|
||||
CORE_ADDR start, end;
|
||||
int copy_offset, copy_len, buf_offset;
|
||||
|
||||
if (mem_addr >= bp_end)
|
||||
continue;
|
||||
if (bp->pc >= mem_end)
|
||||
continue;
|
||||
|
||||
start = bp->pc;
|
||||
if (mem_addr > start)
|
||||
start = mem_addr;
|
||||
|
||||
end = bp_end;
|
||||
if (end > mem_end)
|
||||
end = mem_end;
|
||||
|
||||
copy_len = end - start;
|
||||
copy_offset = start - bp->pc;
|
||||
buf_offset = start - mem_addr;
|
||||
|
||||
memcpy (bp->old_data + copy_offset, buf + buf_offset, copy_len);
|
||||
if (bp->reinserting == 0)
|
||||
memcpy (buf + buf_offset, breakpoint_data + copy_offset, copy_len);
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete all breakpoints. */
|
||||
|
||||
void
|
||||
delete_all_breakpoints (void)
|
||||
{
|
||||
while (breakpoints)
|
||||
delete_breakpoint (breakpoints);
|
||||
}
|
||||
77
m68k/gdbserver/mem-break.h
Normal file
77
m68k/gdbserver/mem-break.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* Memory breakpoint interfaces for the remote server for GDB.
|
||||
Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef MEM_BREAK_H
|
||||
#define MEM_BREAK_H
|
||||
|
||||
/* Breakpoints are opaque. */
|
||||
|
||||
/* Create a new breakpoint at WHERE, and call HANDLER when
|
||||
it is hit. */
|
||||
|
||||
void set_breakpoint_at (CORE_ADDR where,
|
||||
void (*handler) (CORE_ADDR));
|
||||
|
||||
/* Delete a breakpoint previously inserted at ADDR with
|
||||
set_breakpoint_at. */
|
||||
|
||||
void delete_breakpoint_at (CORE_ADDR addr);
|
||||
|
||||
/* Create a reinsertion breakpoint at STOP_AT for the breakpoint
|
||||
currently at STOP_PC (and temporarily remove the breakpoint at
|
||||
STOP_PC). */
|
||||
|
||||
void reinsert_breakpoint_by_bp (CORE_ADDR stop_pc, CORE_ADDR stop_at);
|
||||
|
||||
/* Change the status of the breakpoint at WHERE to inserted. */
|
||||
|
||||
void reinsert_breakpoint (CORE_ADDR where);
|
||||
|
||||
/* Change the status of the breakpoint at WHERE to uninserted. */
|
||||
|
||||
void uninsert_breakpoint (CORE_ADDR where);
|
||||
|
||||
/* See if any breakpoint claims ownership of STOP_PC. Call the handler for
|
||||
the breakpoint, if found. */
|
||||
|
||||
int check_breakpoints (CORE_ADDR stop_pc);
|
||||
|
||||
/* See if any breakpoints shadow the target memory area from MEM_ADDR
|
||||
to MEM_ADDR + MEM_LEN. Update the data already read from the target
|
||||
(in BUF) if necessary. */
|
||||
|
||||
void check_mem_read (CORE_ADDR mem_addr, unsigned char *buf, int mem_len);
|
||||
|
||||
/* See if any breakpoints shadow the target memory area from MEM_ADDR
|
||||
to MEM_ADDR + MEM_LEN. Update the data to be written to the target
|
||||
(in BUF) if necessary, as well as the original data for any breakpoints. */
|
||||
|
||||
void check_mem_write (CORE_ADDR mem_addr, unsigned char *buf, int mem_len);
|
||||
|
||||
/* Set the byte pattern to insert for memory breakpoints. This function
|
||||
must be called before any breakpoints are set. */
|
||||
|
||||
void set_breakpoint_data (const unsigned char *bp_data, int bp_len);
|
||||
|
||||
/* Delete all breakpoints. */
|
||||
|
||||
void delete_all_breakpoints (void);
|
||||
|
||||
#endif /* MEM_BREAK_H */
|
||||
22
m68k/gdbserver/move-if-change
Executable file
22
m68k/gdbserver/move-if-change
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# Like mv $1 $2, but if the files are the same, just delete $1.
|
||||
# Status is zero if successful, nonzero otherwise.
|
||||
|
||||
usage="$0: usage: $0 SOURCE DEST"
|
||||
|
||||
case $# in
|
||||
2) ;;
|
||||
*) echo "$usage" >&2; exit 1;;
|
||||
esac
|
||||
|
||||
for arg in "$1" "$2"; do
|
||||
case $arg in
|
||||
-*) echo "$usage" >&2; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test -r "$2" && cmp -s "$1" "$2"; then
|
||||
rm -f "$1"
|
||||
else
|
||||
mv -f "$1" "$2"
|
||||
fi
|
||||
47
m68k/gdbserver/number-regs.xsl
Normal file
47
m68k/gdbserver/number-regs.xsl
Normal file
@@ -0,0 +1,47 @@
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:variable name="total" select="count(//reg)"/>
|
||||
<xsl:template name="reg">
|
||||
<xsl:param name="which" select="1"/>
|
||||
<xsl:param name="nextnum" select="0"/>
|
||||
<xsl:variable name="thisnum" select="@regnum"/>
|
||||
<xsl:element name="reg">
|
||||
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
|
||||
<xsl:attribute name="bitsize"><xsl:value-of select="@bitsize"/></xsl:attribute>
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@regnum)">
|
||||
<xsl:attribute name="regnum"><xsl:value-of select="$nextnum"/></xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="regnum"><xsl:value-of select="@regnum"/></xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:element>
|
||||
<xsl:if test="$which < $total">
|
||||
<xsl:for-each select="/descendant::reg[$which + 1]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not($thisnum)">
|
||||
<xsl:call-template name="reg">
|
||||
<xsl:with-param name="which" select="$which + 1"/>
|
||||
<xsl:with-param name="nextnum" select="$nextnum + 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="reg">
|
||||
<xsl:with-param name="which" select="$which + 1"/>
|
||||
<xsl:with-param name="nextnum" select="$thisnum + 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="/">
|
||||
<target>
|
||||
<xsl:for-each select="/descendant::reg[1]">
|
||||
<xsl:call-template name="reg"/>
|
||||
</xsl:for-each>
|
||||
</target>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
281
m68k/gdbserver/regcache.c
Normal file
281
m68k/gdbserver/regcache.c
Normal file
@@ -0,0 +1,281 @@
|
||||
/* Register support routines for the remote server for GDB.
|
||||
Copyright (C) 2001, 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "server.h"
|
||||
#include "regdef.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* The private data for the register cache. Note that we have one
|
||||
per inferior; this is primarily for simplicity, as the performance
|
||||
benefit is minimal. */
|
||||
|
||||
struct inferior_regcache_data
|
||||
{
|
||||
int registers_valid;
|
||||
unsigned char *registers;
|
||||
unsigned char *shadow; /* handle a register being dirty */
|
||||
};
|
||||
|
||||
static int register_bytes;
|
||||
|
||||
static struct reg *reg_defs;
|
||||
static int num_registers;
|
||||
|
||||
const char **gdbserver_expedite_regs;
|
||||
|
||||
static struct inferior_regcache_data *
|
||||
get_regcache (struct thread_info *inf, int fetch)
|
||||
{
|
||||
struct inferior_regcache_data *regcache;
|
||||
|
||||
regcache = (struct inferior_regcache_data *) inferior_regcache_data (inf);
|
||||
|
||||
if (regcache == NULL)
|
||||
fatal ("no register cache");
|
||||
|
||||
/* FIXME - fetch registers for INF */
|
||||
if (fetch && regcache->registers_valid == 0)
|
||||
{
|
||||
fetch_inferior_registers (0);
|
||||
regcache->registers_valid = 1;
|
||||
}
|
||||
|
||||
return regcache;
|
||||
}
|
||||
|
||||
void
|
||||
regcache_invalidate_one (struct inferior_list_entry *entry)
|
||||
{
|
||||
struct thread_info *thread = (struct thread_info *) entry;
|
||||
struct inferior_regcache_data *regcache;
|
||||
|
||||
regcache = (struct inferior_regcache_data *) inferior_regcache_data (thread);
|
||||
|
||||
if (regcache->registers_valid)
|
||||
{
|
||||
struct thread_info *saved_inferior = current_inferior;
|
||||
|
||||
current_inferior = thread;
|
||||
store_inferior_registers (-1);
|
||||
current_inferior = saved_inferior;
|
||||
}
|
||||
|
||||
regcache->registers_valid = 0;
|
||||
}
|
||||
|
||||
void
|
||||
regcache_invalidate ()
|
||||
{
|
||||
for_each_inferior (&all_threads, regcache_invalidate_one);
|
||||
}
|
||||
|
||||
int
|
||||
registers_length (void)
|
||||
{
|
||||
return 2 * register_bytes;
|
||||
}
|
||||
|
||||
void *
|
||||
new_register_cache (void)
|
||||
{
|
||||
struct inferior_regcache_data *regcache;
|
||||
|
||||
regcache = malloc (sizeof (*regcache));
|
||||
|
||||
/* Make sure to zero-initialize the register cache when it is created,
|
||||
in case there are registers the target never fetches. This way they'll
|
||||
read as zero instead of garbage. */
|
||||
regcache->registers = calloc (1, register_bytes);
|
||||
regcache->shadow = calloc (1, register_bytes);
|
||||
if (regcache->registers == NULL || regcache->shadow == NULL)
|
||||
fatal ("Could not allocate register cache.");
|
||||
|
||||
regcache->registers_valid = 0;
|
||||
|
||||
return regcache;
|
||||
}
|
||||
|
||||
void
|
||||
free_register_cache (void *regcache_p)
|
||||
{
|
||||
struct inferior_regcache_data *regcache
|
||||
= (struct inferior_regcache_data *) regcache_p;
|
||||
|
||||
free (regcache->shadow);
|
||||
free (regcache->registers);
|
||||
free (regcache);
|
||||
}
|
||||
|
||||
void
|
||||
set_register_cache (struct reg *regs, int n)
|
||||
{
|
||||
int offset, i;
|
||||
|
||||
reg_defs = regs;
|
||||
num_registers = n;
|
||||
|
||||
offset = 0;
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
regs[i].offset = offset;
|
||||
offset += regs[i].size;
|
||||
}
|
||||
|
||||
register_bytes = offset / 8;
|
||||
}
|
||||
|
||||
static int
|
||||
register_dirty (int n)
|
||||
{
|
||||
struct inferior_regcache_data *regcache = get_regcache (current_inferior, 0);
|
||||
return memcmp (regcache->registers + (reg_defs[n].offset / 8),
|
||||
regcache->shadow + (reg_defs[n].offset / 8),
|
||||
register_size (n)) != 0;
|
||||
}
|
||||
|
||||
static unsigned char *
|
||||
register_data (int n, int fetch)
|
||||
{
|
||||
unsigned char *registers
|
||||
= get_regcache (current_inferior, fetch)->registers;
|
||||
|
||||
return registers + (reg_defs[n].offset / 8);
|
||||
}
|
||||
|
||||
static unsigned char *
|
||||
register_shadow_data (int n)
|
||||
{
|
||||
unsigned char *registers
|
||||
= get_regcache (current_inferior, 0)->shadow;
|
||||
|
||||
return registers + (reg_defs[n].offset / 8);
|
||||
}
|
||||
|
||||
/* Sending to GDB */
|
||||
void
|
||||
registers_to_string (char *buf)
|
||||
{
|
||||
unsigned char *registers = get_regcache (current_inferior, 1)->registers;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < num_registers; i++)
|
||||
if ((reg_defs[i].flags & REG_NON_CACHEABLE) &&
|
||||
((reg_defs[i].flags & (REG_NOT_ACCESSABLE | REG_WRITE_ONLY)) == 0))
|
||||
fetch_inferior_registers (i);
|
||||
|
||||
convert_int_to_ascii (registers, buf, register_bytes);
|
||||
}
|
||||
|
||||
/* Received from GDB */
|
||||
void
|
||||
registers_from_string (char *buf)
|
||||
{
|
||||
int len = strlen (buf);
|
||||
unsigned char *registers = get_regcache (current_inferior, 1)->registers;
|
||||
int i;
|
||||
|
||||
if (len != register_bytes * 2)
|
||||
{
|
||||
warning ("Wrong sized register packet (expected %d bytes, got %d)",
|
||||
2*register_bytes, len);
|
||||
if (len > register_bytes * 2)
|
||||
len = register_bytes * 2;
|
||||
}
|
||||
|
||||
convert_ascii_to_int (buf, registers, len / 2);
|
||||
|
||||
for (i = 0; i < num_registers; i++)
|
||||
if (register_dirty (i) &&
|
||||
(reg_defs[i].flags & REG_NON_CACHEABLE) &&
|
||||
((reg_defs[i].flags & (REG_NOT_ACCESSABLE | REG_READ_ONLY)) == 0))
|
||||
store_inferior_registers (i);
|
||||
}
|
||||
|
||||
struct reg *
|
||||
find_register_by_name (const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < num_registers; i++)
|
||||
if (!strcmp (name, reg_defs[i].name))
|
||||
return ®_defs[i];
|
||||
fatal ("Unknown register %s requested", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
find_regno (const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < num_registers; i++)
|
||||
if (!strcmp (name, reg_defs[i].name))
|
||||
return i;
|
||||
fatal ("Unknown register %s requested", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
struct reg *
|
||||
find_register_by_number (int n)
|
||||
{
|
||||
return ®_defs[n];
|
||||
}
|
||||
|
||||
int
|
||||
register_size (int n)
|
||||
{
|
||||
return reg_defs[n].size / 8;
|
||||
}
|
||||
|
||||
void
|
||||
supply_register (int n, const void *buf)
|
||||
{
|
||||
memcpy (register_data (n, 0), buf, register_size (n));
|
||||
/* backend places the register into the cache so it is not dirty */
|
||||
memcpy (register_shadow_data (n), buf, register_size (n));
|
||||
}
|
||||
|
||||
void
|
||||
supply_register_by_name (const char *name, const void *buf)
|
||||
{
|
||||
supply_register (find_regno (name), buf);
|
||||
}
|
||||
|
||||
int
|
||||
collect_register (int n, void *buf)
|
||||
{
|
||||
int dirty = register_dirty (n);
|
||||
memcpy (buf, register_data (n, 1), register_size (n));
|
||||
/* backend takes the register and places it into the inferior so it is not dirty */
|
||||
memcpy (register_shadow_data (n), register_data (n, 0), register_size (n));
|
||||
return dirty;
|
||||
}
|
||||
|
||||
void
|
||||
collect_register_as_string (int n, char *buf)
|
||||
{
|
||||
convert_int_to_ascii (register_data (n, 1), buf, register_size (n));
|
||||
}
|
||||
|
||||
void
|
||||
collect_register_by_name (const char *name, void *buf)
|
||||
{
|
||||
collect_register (find_regno (name), buf);
|
||||
}
|
||||
70
m68k/gdbserver/regcache.h
Normal file
70
m68k/gdbserver/regcache.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Register support routines for the remote server for GDB.
|
||||
Copyright (C) 2001, 2002, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef REGCACHE_H
|
||||
#define REGCACHE_H
|
||||
|
||||
struct inferior_list_entry;
|
||||
|
||||
/* Create a new register cache for INFERIOR. */
|
||||
|
||||
void *new_register_cache (void);
|
||||
|
||||
/* Release all memory associated with the register cache for INFERIOR. */
|
||||
|
||||
void free_register_cache (void *regcache);
|
||||
|
||||
/* Invalidate cached registers for one or all threads. */
|
||||
|
||||
void regcache_invalidate_one (struct inferior_list_entry *);
|
||||
void regcache_invalidate (void);
|
||||
|
||||
/* Convert all registers to a string in the currently specified remote
|
||||
format. */
|
||||
|
||||
void registers_to_string (char *buf);
|
||||
|
||||
/* Convert a string to register values and fill our register cache. */
|
||||
|
||||
void registers_from_string (char *buf);
|
||||
|
||||
/* Return the size in bytes of a string-encoded register packet. */
|
||||
|
||||
int registers_length (void);
|
||||
|
||||
/* Return a pointer to the description of register ``n''. */
|
||||
|
||||
struct reg *find_register_by_number (int n);
|
||||
|
||||
int register_size (int n);
|
||||
|
||||
int find_regno (const char *name);
|
||||
|
||||
extern const char **gdbserver_expedite_regs;
|
||||
|
||||
void supply_register (int n, const void *buf);
|
||||
|
||||
void supply_register_by_name (const char *name, const void *buf);
|
||||
|
||||
int collect_register (int n, void *buf);
|
||||
|
||||
void collect_register_as_string (int n, char *buf);
|
||||
|
||||
void collect_register_by_name (const char *name, void *buf);
|
||||
|
||||
#endif /* REGCACHE_H */
|
||||
58
m68k/gdbserver/regdef.h
Normal file
58
m68k/gdbserver/regdef.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Register protocol definition structures for the GNU Debugger
|
||||
Copyright 2001, 2002, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef REGDEF_H
|
||||
#define REGDEF_H
|
||||
|
||||
/* The register is not to be cached. All accesses are passed to the
|
||||
target. */
|
||||
#define REG_NON_CACHEABLE (1 << 0)
|
||||
/* The register is not accessable to gdb. The target should not
|
||||
* read or write it. */
|
||||
#define REG_NOT_ACCESSABLE (1 << 1)
|
||||
/* The register is write only. The target should not read it. */
|
||||
#define REG_WRITE_ONLY (1 << 2)
|
||||
/* The register is read only. The target should not write it. */
|
||||
#define REG_READ_ONLY (1 << 3)
|
||||
|
||||
struct reg
|
||||
{
|
||||
/* The name of this register - NULL for pad entries. */
|
||||
const char *name;
|
||||
|
||||
/* At the moment, both of the following bit counts must be divisible
|
||||
by eight (to match the representation as two hex digits) and divisible
|
||||
by the size of a byte (to match the layout of each register in
|
||||
memory). */
|
||||
|
||||
/* The offset (in bits) of the value of this register in the buffer. */
|
||||
int offset;
|
||||
|
||||
/* The size (in bits) of the value of this register, as transmitted. */
|
||||
int size;
|
||||
|
||||
/* Flags for the register. Default to 0 for existing registers. */
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
/* Set the current remote protocol and register cache according to the array
|
||||
``regs'', with ``n'' elements. */
|
||||
|
||||
void set_register_cache (struct reg *regs, int n);
|
||||
|
||||
#endif /* REGDEF_H */
|
||||
1317
m68k/gdbserver/remote-utils.c
Normal file
1317
m68k/gdbserver/remote-utils.c
Normal file
File diff suppressed because it is too large
Load Diff
1297
m68k/gdbserver/server.c
Executable file
1297
m68k/gdbserver/server.c
Executable file
File diff suppressed because it is too large
Load Diff
246
m68k/gdbserver/server.h
Executable file
246
m68k/gdbserver/server.h
Executable file
@@ -0,0 +1,246 @@
|
||||
/* Common definitions for remote server for GDB.
|
||||
Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
|
||||
2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef SERVER_H
|
||||
#define SERVER_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef __MINGW32CE__
|
||||
#include "wincecompat.h"
|
||||
#endif
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_ERRNO_H
|
||||
#include <errno.h>
|
||||
#endif
|
||||
#include <setjmp.h>
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#if !HAVE_DECL_STRERROR
|
||||
#ifndef strerror
|
||||
extern char *strerror (int); /* X3.159-1989 4.11.6.2 */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !HAVE_DECL_PERROR
|
||||
#ifndef perror
|
||||
extern void perror (const char *);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ATTR_NORETURN
|
||||
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
|
||||
#define ATTR_NORETURN __attribute__ ((noreturn))
|
||||
#else
|
||||
#define ATTR_NORETURN /* nothing */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ATTR_FORMAT
|
||||
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 4))
|
||||
#define ATTR_FORMAT(type, x, y) __attribute__ ((format(type, x, y)))
|
||||
#else
|
||||
#define ATTR_FORMAT(type, x, y) /* nothing */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* A type used for binary buffers. */
|
||||
typedef unsigned char gdb_byte;
|
||||
|
||||
/* FIXME: This should probably be autoconf'd for. It's an integer type at
|
||||
least the size of a (void *). */
|
||||
typedef long long CORE_ADDR;
|
||||
|
||||
/* Generic information for tracking a list of ``inferiors'' - threads,
|
||||
processes, etc. */
|
||||
struct inferior_list
|
||||
{
|
||||
struct inferior_list_entry *head;
|
||||
struct inferior_list_entry *tail;
|
||||
};
|
||||
struct inferior_list_entry
|
||||
{
|
||||
unsigned long id;
|
||||
struct inferior_list_entry *next;
|
||||
};
|
||||
|
||||
/* Opaque type for user-visible threads. */
|
||||
struct thread_info;
|
||||
|
||||
struct dll_info
|
||||
{
|
||||
struct inferior_list_entry entry;
|
||||
char *name;
|
||||
CORE_ADDR base_addr;
|
||||
};
|
||||
|
||||
#include "regcache.h"
|
||||
#include "gdb/signals.h"
|
||||
|
||||
#include "target.h"
|
||||
#include "mem-break.h"
|
||||
|
||||
/* Target-specific functions */
|
||||
|
||||
void initialize_low ();
|
||||
|
||||
/* From inferiors.c. */
|
||||
|
||||
extern struct inferior_list all_threads;
|
||||
extern struct inferior_list all_dlls;
|
||||
extern int dlls_changed;
|
||||
|
||||
void add_inferior_to_list (struct inferior_list *list,
|
||||
struct inferior_list_entry *new_inferior);
|
||||
void for_each_inferior (struct inferior_list *list,
|
||||
void (*action) (struct inferior_list_entry *));
|
||||
extern struct thread_info *current_inferior;
|
||||
void remove_inferior (struct inferior_list *list,
|
||||
struct inferior_list_entry *entry);
|
||||
void remove_thread (struct thread_info *thread);
|
||||
void add_thread (unsigned long thread_id, void *target_data, unsigned int);
|
||||
unsigned int thread_id_to_gdb_id (unsigned long);
|
||||
unsigned int thread_to_gdb_id (struct thread_info *);
|
||||
unsigned long gdb_id_to_thread_id (unsigned int);
|
||||
struct thread_info *gdb_id_to_thread (unsigned int);
|
||||
void clear_inferiors (void);
|
||||
struct inferior_list_entry *find_inferior
|
||||
(struct inferior_list *,
|
||||
int (*func) (struct inferior_list_entry *,
|
||||
void *),
|
||||
void *arg);
|
||||
struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
|
||||
unsigned long id);
|
||||
void *inferior_target_data (struct thread_info *);
|
||||
void set_inferior_target_data (struct thread_info *, void *);
|
||||
void *inferior_regcache_data (struct thread_info *);
|
||||
void set_inferior_regcache_data (struct thread_info *, void *);
|
||||
void change_inferior_id (struct inferior_list *list,
|
||||
unsigned long new_id);
|
||||
|
||||
void loaded_dll (const char *name, CORE_ADDR base_addr);
|
||||
void unloaded_dll (const char *name, CORE_ADDR base_addr);
|
||||
|
||||
/* Public variables in server.c */
|
||||
|
||||
extern unsigned long cont_thread;
|
||||
extern unsigned long general_thread;
|
||||
extern unsigned long step_thread;
|
||||
extern unsigned long thread_from_wait;
|
||||
extern unsigned long old_thread_from_wait;
|
||||
extern int server_waiting;
|
||||
extern int debug_threads;
|
||||
extern int pass_signals[];
|
||||
|
||||
extern jmp_buf toplevel;
|
||||
|
||||
/* The stdout and stderr descriptors. They can be remapped if
|
||||
the remote is a pipe. */
|
||||
extern FILE *my_stderr;
|
||||
extern FILE *my_stdout;
|
||||
|
||||
/* From remote-utils.c */
|
||||
|
||||
extern int remote_debug;
|
||||
extern int all_symbols_looked_up;
|
||||
/* From utils.c. Set in the backend to have a prefix other than gdb. The gdb
|
||||
prefix can be confusing when running inside gdb as a remote pipe. */
|
||||
extern const char* warning_prefix;
|
||||
|
||||
int putpkt (char *buf);
|
||||
int putpkt_binary (char *buf, int len);
|
||||
int getpkt (char *buf, int buflen);
|
||||
void remote_open (char *name);
|
||||
void remote_close (void);
|
||||
void write_ok (char *buf);
|
||||
void write_enn (char *buf);
|
||||
void enable_async_io (void);
|
||||
void disable_async_io (void);
|
||||
void unblock_async_io (void);
|
||||
void block_async_io (void);
|
||||
void check_remote_input_interrupt_request (void);
|
||||
void convert_ascii_to_int (char *from, unsigned char *to, int n);
|
||||
void convert_int_to_ascii (unsigned char *from, char *to, int n);
|
||||
void new_thread_notify (int id);
|
||||
void dead_thread_notify (int id);
|
||||
void prepare_resume_reply (char *buf, char status, unsigned char sig);
|
||||
|
||||
const char *decode_address_to_semicolon (CORE_ADDR *addrp, const char *start);
|
||||
void decode_address (CORE_ADDR *addrp, const char *start, int len);
|
||||
void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
|
||||
unsigned int *len_ptr);
|
||||
void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
|
||||
unsigned int *len_ptr, unsigned char *to);
|
||||
int decode_X_packet (char *from, int packet_len, CORE_ADDR * mem_addr_ptr,
|
||||
unsigned int *len_ptr, unsigned char *to);
|
||||
int decode_xfer_write (char *buf, int packet_len, char **annex,
|
||||
CORE_ADDR *offset, unsigned int *len,
|
||||
unsigned char *data);
|
||||
|
||||
int unhexify (char *bin, const char *hex, int count);
|
||||
int hexify (char *hex, const char *bin, int count);
|
||||
int remote_escape_output (const gdb_byte *buffer, int len,
|
||||
gdb_byte *out_buf, int *out_len,
|
||||
int out_maxlen);
|
||||
|
||||
int look_up_one_symbol (const char *name, CORE_ADDR *addrp);
|
||||
|
||||
void monitor_output (const char *string,...) ATTR_FORMAT (printf, 1, 2);
|
||||
|
||||
char *xml_escape_text (const char *text);
|
||||
|
||||
/* 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);
|
||||
char *target_signal_to_name (enum target_signal);
|
||||
|
||||
/* Functions from utils.c */
|
||||
|
||||
int printf_filtered (const char *format,...) ATTR_FORMAT (printf, 1, 2);
|
||||
void perror_with_name (char *string);
|
||||
void error (const char *string,...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
|
||||
void fatal (const char *string,...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
|
||||
void warning (const char *string,...) ATTR_FORMAT (printf, 1, 2);
|
||||
|
||||
/* Functions from the register cache definition. */
|
||||
|
||||
void init_registers (void);
|
||||
|
||||
/* Maximum number of bytes to read/write at once. The value here
|
||||
is chosen to fill up a packet (the headers account for the 32). */
|
||||
#define MAXBUFBYTES(N) (((N)-32)/2)
|
||||
|
||||
/* Buffer sizes for transferring memory, registers, etc. Round up PBUFSIZ to
|
||||
hold all the registers, at least. */
|
||||
#define PBUFSIZ ((registers_length () + 32 > 2000) \
|
||||
? (registers_length () + 32) \
|
||||
: 2000)
|
||||
|
||||
/* Version information, from version.c. */
|
||||
extern const char version[];
|
||||
extern const char host_name[];
|
||||
|
||||
#endif /* SERVER_H */
|
||||
833
m68k/gdbserver/signals.c
Normal file
833
m68k/gdbserver/signals.c
Normal file
@@ -0,0 +1,833 @@
|
||||
/* Target signal translation functions for GDB.
|
||||
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
2000, 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifdef GDBSERVER
|
||||
#include "server.h"
|
||||
#else
|
||||
#include "defs.h"
|
||||
#include "target.h"
|
||||
#include "gdb_string.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
/* Always use __SIGRTMIN if it's available. SIGRTMIN is the lowest
|
||||
_available_ realtime signal, not the lowest supported; glibc takes
|
||||
several for its own use. */
|
||||
|
||||
#ifndef REALTIME_LO
|
||||
# if defined(__SIGRTMIN)
|
||||
# define REALTIME_LO __SIGRTMIN
|
||||
# define REALTIME_HI (__SIGRTMAX + 1)
|
||||
# elif defined(SIGRTMIN)
|
||||
# define REALTIME_LO SIGRTMIN
|
||||
# define REALTIME_HI (SIGRTMAX + 1)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* This table must match in order and size the signals in enum target_signal
|
||||
in target.h. */
|
||||
/* *INDENT-OFF* */
|
||||
static struct {
|
||||
char *name;
|
||||
char *string;
|
||||
} signals [] =
|
||||
{
|
||||
{"0", "Signal 0"},
|
||||
{"SIGHUP", "Hangup"},
|
||||
{"SIGINT", "Interrupt"},
|
||||
{"SIGQUIT", "Quit"},
|
||||
{"SIGILL", "Illegal instruction"},
|
||||
{"SIGTRAP", "Trace/breakpoint trap"},
|
||||
{"SIGABRT", "Aborted"},
|
||||
{"SIGEMT", "Emulation trap"},
|
||||
{"SIGFPE", "Arithmetic exception"},
|
||||
{"SIGKILL", "Killed"},
|
||||
{"SIGBUS", "Bus error"},
|
||||
{"SIGSEGV", "Segmentation fault"},
|
||||
{"SIGSYS", "Bad system call"},
|
||||
{"SIGPIPE", "Broken pipe"},
|
||||
{"SIGALRM", "Alarm clock"},
|
||||
{"SIGTERM", "Terminated"},
|
||||
{"SIGURG", "Urgent I/O condition"},
|
||||
{"SIGSTOP", "Stopped (signal)"},
|
||||
{"SIGTSTP", "Stopped (user)"},
|
||||
{"SIGCONT", "Continued"},
|
||||
{"SIGCHLD", "Child status changed"},
|
||||
{"SIGTTIN", "Stopped (tty input)"},
|
||||
{"SIGTTOU", "Stopped (tty output)"},
|
||||
{"SIGIO", "I/O possible"},
|
||||
{"SIGXCPU", "CPU time limit exceeded"},
|
||||
{"SIGXFSZ", "File size limit exceeded"},
|
||||
{"SIGVTALRM", "Virtual timer expired"},
|
||||
{"SIGPROF", "Profiling timer expired"},
|
||||
{"SIGWINCH", "Window size changed"},
|
||||
{"SIGLOST", "Resource lost"},
|
||||
{"SIGUSR1", "User defined signal 1"},
|
||||
{"SIGUSR2", "User defined signal 2"},
|
||||
{"SIGPWR", "Power fail/restart"},
|
||||
{"SIGPOLL", "Pollable event occurred"},
|
||||
{"SIGWIND", "SIGWIND"},
|
||||
{"SIGPHONE", "SIGPHONE"},
|
||||
{"SIGWAITING", "Process's LWPs are blocked"},
|
||||
{"SIGLWP", "Signal LWP"},
|
||||
{"SIGDANGER", "Swap space dangerously low"},
|
||||
{"SIGGRANT", "Monitor mode granted"},
|
||||
{"SIGRETRACT", "Need to relinquish monitor mode"},
|
||||
{"SIGMSG", "Monitor mode data available"},
|
||||
{"SIGSOUND", "Sound completed"},
|
||||
{"SIGSAK", "Secure attention"},
|
||||
{"SIGPRIO", "SIGPRIO"},
|
||||
{"SIG33", "Real-time event 33"},
|
||||
{"SIG34", "Real-time event 34"},
|
||||
{"SIG35", "Real-time event 35"},
|
||||
{"SIG36", "Real-time event 36"},
|
||||
{"SIG37", "Real-time event 37"},
|
||||
{"SIG38", "Real-time event 38"},
|
||||
{"SIG39", "Real-time event 39"},
|
||||
{"SIG40", "Real-time event 40"},
|
||||
{"SIG41", "Real-time event 41"},
|
||||
{"SIG42", "Real-time event 42"},
|
||||
{"SIG43", "Real-time event 43"},
|
||||
{"SIG44", "Real-time event 44"},
|
||||
{"SIG45", "Real-time event 45"},
|
||||
{"SIG46", "Real-time event 46"},
|
||||
{"SIG47", "Real-time event 47"},
|
||||
{"SIG48", "Real-time event 48"},
|
||||
{"SIG49", "Real-time event 49"},
|
||||
{"SIG50", "Real-time event 50"},
|
||||
{"SIG51", "Real-time event 51"},
|
||||
{"SIG52", "Real-time event 52"},
|
||||
{"SIG53", "Real-time event 53"},
|
||||
{"SIG54", "Real-time event 54"},
|
||||
{"SIG55", "Real-time event 55"},
|
||||
{"SIG56", "Real-time event 56"},
|
||||
{"SIG57", "Real-time event 57"},
|
||||
{"SIG58", "Real-time event 58"},
|
||||
{"SIG59", "Real-time event 59"},
|
||||
{"SIG60", "Real-time event 60"},
|
||||
{"SIG61", "Real-time event 61"},
|
||||
{"SIG62", "Real-time event 62"},
|
||||
{"SIG63", "Real-time event 63"},
|
||||
{"SIGCANCEL", "LWP internal signal"},
|
||||
{"SIG32", "Real-time event 32"},
|
||||
{"SIG64", "Real-time event 64"},
|
||||
{"SIG65", "Real-time event 65"},
|
||||
{"SIG66", "Real-time event 66"},
|
||||
{"SIG67", "Real-time event 67"},
|
||||
{"SIG68", "Real-time event 68"},
|
||||
{"SIG69", "Real-time event 69"},
|
||||
{"SIG70", "Real-time event 70"},
|
||||
{"SIG71", "Real-time event 71"},
|
||||
{"SIG72", "Real-time event 72"},
|
||||
{"SIG73", "Real-time event 73"},
|
||||
{"SIG74", "Real-time event 74"},
|
||||
{"SIG75", "Real-time event 75"},
|
||||
{"SIG76", "Real-time event 76"},
|
||||
{"SIG77", "Real-time event 77"},
|
||||
{"SIG78", "Real-time event 78"},
|
||||
{"SIG79", "Real-time event 79"},
|
||||
{"SIG80", "Real-time event 80"},
|
||||
{"SIG81", "Real-time event 81"},
|
||||
{"SIG82", "Real-time event 82"},
|
||||
{"SIG83", "Real-time event 83"},
|
||||
{"SIG84", "Real-time event 84"},
|
||||
{"SIG85", "Real-time event 85"},
|
||||
{"SIG86", "Real-time event 86"},
|
||||
{"SIG87", "Real-time event 87"},
|
||||
{"SIG88", "Real-time event 88"},
|
||||
{"SIG89", "Real-time event 89"},
|
||||
{"SIG90", "Real-time event 90"},
|
||||
{"SIG91", "Real-time event 91"},
|
||||
{"SIG92", "Real-time event 92"},
|
||||
{"SIG93", "Real-time event 93"},
|
||||
{"SIG94", "Real-time event 94"},
|
||||
{"SIG95", "Real-time event 95"},
|
||||
{"SIG96", "Real-time event 96"},
|
||||
{"SIG97", "Real-time event 97"},
|
||||
{"SIG98", "Real-time event 98"},
|
||||
{"SIG99", "Real-time event 99"},
|
||||
{"SIG100", "Real-time event 100"},
|
||||
{"SIG101", "Real-time event 101"},
|
||||
{"SIG102", "Real-time event 102"},
|
||||
{"SIG103", "Real-time event 103"},
|
||||
{"SIG104", "Real-time event 104"},
|
||||
{"SIG105", "Real-time event 105"},
|
||||
{"SIG106", "Real-time event 106"},
|
||||
{"SIG107", "Real-time event 107"},
|
||||
{"SIG108", "Real-time event 108"},
|
||||
{"SIG109", "Real-time event 109"},
|
||||
{"SIG110", "Real-time event 110"},
|
||||
{"SIG111", "Real-time event 111"},
|
||||
{"SIG112", "Real-time event 112"},
|
||||
{"SIG113", "Real-time event 113"},
|
||||
{"SIG114", "Real-time event 114"},
|
||||
{"SIG115", "Real-time event 115"},
|
||||
{"SIG116", "Real-time event 116"},
|
||||
{"SIG117", "Real-time event 117"},
|
||||
{"SIG118", "Real-time event 118"},
|
||||
{"SIG119", "Real-time event 119"},
|
||||
{"SIG120", "Real-time event 120"},
|
||||
{"SIG121", "Real-time event 121"},
|
||||
{"SIG122", "Real-time event 122"},
|
||||
{"SIG123", "Real-time event 123"},
|
||||
{"SIG124", "Real-time event 124"},
|
||||
{"SIG125", "Real-time event 125"},
|
||||
{"SIG126", "Real-time event 126"},
|
||||
{"SIG127", "Real-time event 127"},
|
||||
|
||||
{"SIGINFO", "Information request"},
|
||||
|
||||
{NULL, "Unknown signal"},
|
||||
{NULL, "Internal error: printing TARGET_SIGNAL_DEFAULT"},
|
||||
|
||||
/* Mach exceptions */
|
||||
{"EXC_BAD_ACCESS", "Could not access memory"},
|
||||
{"EXC_BAD_INSTRUCTION", "Illegal instruction/operand"},
|
||||
{"EXC_ARITHMETIC", "Arithmetic exception"},
|
||||
{"EXC_EMULATION", "Emulation instruction"},
|
||||
{"EXC_SOFTWARE", "Software generated exception"},
|
||||
{"EXC_BREAKPOINT", "Breakpoint"},
|
||||
|
||||
/* Last entry, used to check whether the table is the right size. */
|
||||
{NULL, "TARGET_SIGNAL_MAGIC"}
|
||||
};
|
||||
/* *INDENT-ON* */
|
||||
|
||||
|
||||
|
||||
/* Return the string for a signal. */
|
||||
char *
|
||||
target_signal_to_string (enum target_signal sig)
|
||||
{
|
||||
if ((int) sig >= TARGET_SIGNAL_FIRST && (int) sig <= TARGET_SIGNAL_LAST)
|
||||
return signals[sig].string;
|
||||
else
|
||||
return signals[TARGET_SIGNAL_UNKNOWN].string;
|
||||
}
|
||||
|
||||
/* Return the name for a signal. */
|
||||
char *
|
||||
target_signal_to_name (enum target_signal sig)
|
||||
{
|
||||
if ((int) sig >= TARGET_SIGNAL_FIRST && (int) sig <= TARGET_SIGNAL_LAST
|
||||
&& signals[sig].name != NULL)
|
||||
return signals[sig].name;
|
||||
else
|
||||
/* I think the code which prints this will always print it along
|
||||
with the string, so no need to be verbose (very old comment). */
|
||||
return "?";
|
||||
}
|
||||
|
||||
/* Given a name, return its signal. */
|
||||
enum target_signal
|
||||
target_signal_from_name (char *name)
|
||||
{
|
||||
enum target_signal sig;
|
||||
|
||||
/* It's possible we also should allow "SIGCLD" as well as "SIGCHLD"
|
||||
for TARGET_SIGNAL_SIGCHLD. SIGIOT, on the other hand, is more
|
||||
questionable; seems like by now people should call it SIGABRT
|
||||
instead. */
|
||||
|
||||
/* This ugly cast brought to you by the native VAX compiler. */
|
||||
for (sig = TARGET_SIGNAL_HUP;
|
||||
sig < TARGET_SIGNAL_LAST;
|
||||
sig = (enum target_signal) ((int) sig + 1))
|
||||
if (signals[sig].name != NULL
|
||||
&& strcmp (name, signals[sig].name) == 0)
|
||||
return sig;
|
||||
return TARGET_SIGNAL_UNKNOWN;
|
||||
}
|
||||
|
||||
/* The following functions are to help certain targets deal
|
||||
with the signal/waitstatus stuff. They could just as well be in
|
||||
a file called native-utils.c or unixwaitstatus-utils.c or whatever. */
|
||||
|
||||
/* Convert host signal to our signals. */
|
||||
enum target_signal
|
||||
target_signal_from_host (int hostsig)
|
||||
{
|
||||
/* A switch statement would make sense but would require special kludges
|
||||
to deal with the cases where more than one signal has the same number. */
|
||||
|
||||
if (hostsig == 0)
|
||||
return TARGET_SIGNAL_0;
|
||||
|
||||
#if defined (SIGHUP)
|
||||
if (hostsig == SIGHUP)
|
||||
return TARGET_SIGNAL_HUP;
|
||||
#endif
|
||||
#if defined (SIGINT)
|
||||
if (hostsig == SIGINT)
|
||||
return TARGET_SIGNAL_INT;
|
||||
#endif
|
||||
#if defined (SIGQUIT)
|
||||
if (hostsig == SIGQUIT)
|
||||
return TARGET_SIGNAL_QUIT;
|
||||
#endif
|
||||
#if defined (SIGILL)
|
||||
if (hostsig == SIGILL)
|
||||
return TARGET_SIGNAL_ILL;
|
||||
#endif
|
||||
#if defined (SIGTRAP)
|
||||
if (hostsig == SIGTRAP)
|
||||
return TARGET_SIGNAL_TRAP;
|
||||
#endif
|
||||
#if defined (SIGABRT)
|
||||
if (hostsig == SIGABRT)
|
||||
return TARGET_SIGNAL_ABRT;
|
||||
#endif
|
||||
#if defined (SIGEMT)
|
||||
if (hostsig == SIGEMT)
|
||||
return TARGET_SIGNAL_EMT;
|
||||
#endif
|
||||
#if defined (SIGFPE)
|
||||
if (hostsig == SIGFPE)
|
||||
return TARGET_SIGNAL_FPE;
|
||||
#endif
|
||||
#if defined (SIGKILL)
|
||||
if (hostsig == SIGKILL)
|
||||
return TARGET_SIGNAL_KILL;
|
||||
#endif
|
||||
#if defined (SIGBUS)
|
||||
if (hostsig == SIGBUS)
|
||||
return TARGET_SIGNAL_BUS;
|
||||
#endif
|
||||
#if defined (SIGSEGV)
|
||||
if (hostsig == SIGSEGV)
|
||||
return TARGET_SIGNAL_SEGV;
|
||||
#endif
|
||||
#if defined (SIGSYS)
|
||||
if (hostsig == SIGSYS)
|
||||
return TARGET_SIGNAL_SYS;
|
||||
#endif
|
||||
#if defined (SIGPIPE)
|
||||
if (hostsig == SIGPIPE)
|
||||
return TARGET_SIGNAL_PIPE;
|
||||
#endif
|
||||
#if defined (SIGALRM)
|
||||
if (hostsig == SIGALRM)
|
||||
return TARGET_SIGNAL_ALRM;
|
||||
#endif
|
||||
#if defined (SIGTERM)
|
||||
if (hostsig == SIGTERM)
|
||||
return TARGET_SIGNAL_TERM;
|
||||
#endif
|
||||
#if defined (SIGUSR1)
|
||||
if (hostsig == SIGUSR1)
|
||||
return TARGET_SIGNAL_USR1;
|
||||
#endif
|
||||
#if defined (SIGUSR2)
|
||||
if (hostsig == SIGUSR2)
|
||||
return TARGET_SIGNAL_USR2;
|
||||
#endif
|
||||
#if defined (SIGCLD)
|
||||
if (hostsig == SIGCLD)
|
||||
return TARGET_SIGNAL_CHLD;
|
||||
#endif
|
||||
#if defined (SIGCHLD)
|
||||
if (hostsig == SIGCHLD)
|
||||
return TARGET_SIGNAL_CHLD;
|
||||
#endif
|
||||
#if defined (SIGPWR)
|
||||
if (hostsig == SIGPWR)
|
||||
return TARGET_SIGNAL_PWR;
|
||||
#endif
|
||||
#if defined (SIGWINCH)
|
||||
if (hostsig == SIGWINCH)
|
||||
return TARGET_SIGNAL_WINCH;
|
||||
#endif
|
||||
#if defined (SIGURG)
|
||||
if (hostsig == SIGURG)
|
||||
return TARGET_SIGNAL_URG;
|
||||
#endif
|
||||
#if defined (SIGIO)
|
||||
if (hostsig == SIGIO)
|
||||
return TARGET_SIGNAL_IO;
|
||||
#endif
|
||||
#if defined (SIGPOLL)
|
||||
if (hostsig == SIGPOLL)
|
||||
return TARGET_SIGNAL_POLL;
|
||||
#endif
|
||||
#if defined (SIGSTOP)
|
||||
if (hostsig == SIGSTOP)
|
||||
return TARGET_SIGNAL_STOP;
|
||||
#endif
|
||||
#if defined (SIGTSTP)
|
||||
if (hostsig == SIGTSTP)
|
||||
return TARGET_SIGNAL_TSTP;
|
||||
#endif
|
||||
#if defined (SIGCONT)
|
||||
if (hostsig == SIGCONT)
|
||||
return TARGET_SIGNAL_CONT;
|
||||
#endif
|
||||
#if defined (SIGTTIN)
|
||||
if (hostsig == SIGTTIN)
|
||||
return TARGET_SIGNAL_TTIN;
|
||||
#endif
|
||||
#if defined (SIGTTOU)
|
||||
if (hostsig == SIGTTOU)
|
||||
return TARGET_SIGNAL_TTOU;
|
||||
#endif
|
||||
#if defined (SIGVTALRM)
|
||||
if (hostsig == SIGVTALRM)
|
||||
return TARGET_SIGNAL_VTALRM;
|
||||
#endif
|
||||
#if defined (SIGPROF)
|
||||
if (hostsig == SIGPROF)
|
||||
return TARGET_SIGNAL_PROF;
|
||||
#endif
|
||||
#if defined (SIGXCPU)
|
||||
if (hostsig == SIGXCPU)
|
||||
return TARGET_SIGNAL_XCPU;
|
||||
#endif
|
||||
#if defined (SIGXFSZ)
|
||||
if (hostsig == SIGXFSZ)
|
||||
return TARGET_SIGNAL_XFSZ;
|
||||
#endif
|
||||
#if defined (SIGWIND)
|
||||
if (hostsig == SIGWIND)
|
||||
return TARGET_SIGNAL_WIND;
|
||||
#endif
|
||||
#if defined (SIGPHONE)
|
||||
if (hostsig == SIGPHONE)
|
||||
return TARGET_SIGNAL_PHONE;
|
||||
#endif
|
||||
#if defined (SIGLOST)
|
||||
if (hostsig == SIGLOST)
|
||||
return TARGET_SIGNAL_LOST;
|
||||
#endif
|
||||
#if defined (SIGWAITING)
|
||||
if (hostsig == SIGWAITING)
|
||||
return TARGET_SIGNAL_WAITING;
|
||||
#endif
|
||||
#if defined (SIGCANCEL)
|
||||
if (hostsig == SIGCANCEL)
|
||||
return TARGET_SIGNAL_CANCEL;
|
||||
#endif
|
||||
#if defined (SIGLWP)
|
||||
if (hostsig == SIGLWP)
|
||||
return TARGET_SIGNAL_LWP;
|
||||
#endif
|
||||
#if defined (SIGDANGER)
|
||||
if (hostsig == SIGDANGER)
|
||||
return TARGET_SIGNAL_DANGER;
|
||||
#endif
|
||||
#if defined (SIGGRANT)
|
||||
if (hostsig == SIGGRANT)
|
||||
return TARGET_SIGNAL_GRANT;
|
||||
#endif
|
||||
#if defined (SIGRETRACT)
|
||||
if (hostsig == SIGRETRACT)
|
||||
return TARGET_SIGNAL_RETRACT;
|
||||
#endif
|
||||
#if defined (SIGMSG)
|
||||
if (hostsig == SIGMSG)
|
||||
return TARGET_SIGNAL_MSG;
|
||||
#endif
|
||||
#if defined (SIGSOUND)
|
||||
if (hostsig == SIGSOUND)
|
||||
return TARGET_SIGNAL_SOUND;
|
||||
#endif
|
||||
#if defined (SIGSAK)
|
||||
if (hostsig == SIGSAK)
|
||||
return TARGET_SIGNAL_SAK;
|
||||
#endif
|
||||
#if defined (SIGPRIO)
|
||||
if (hostsig == SIGPRIO)
|
||||
return TARGET_SIGNAL_PRIO;
|
||||
#endif
|
||||
|
||||
/* Mach exceptions. Assumes that the values for EXC_ are positive! */
|
||||
#if defined (EXC_BAD_ACCESS) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_BAD_ACCESS)
|
||||
return TARGET_EXC_BAD_ACCESS;
|
||||
#endif
|
||||
#if defined (EXC_BAD_INSTRUCTION) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_BAD_INSTRUCTION)
|
||||
return TARGET_EXC_BAD_INSTRUCTION;
|
||||
#endif
|
||||
#if defined (EXC_ARITHMETIC) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_ARITHMETIC)
|
||||
return TARGET_EXC_ARITHMETIC;
|
||||
#endif
|
||||
#if defined (EXC_EMULATION) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_EMULATION)
|
||||
return TARGET_EXC_EMULATION;
|
||||
#endif
|
||||
#if defined (EXC_SOFTWARE) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_SOFTWARE)
|
||||
return TARGET_EXC_SOFTWARE;
|
||||
#endif
|
||||
#if defined (EXC_BREAKPOINT) && defined (_NSIG)
|
||||
if (hostsig == _NSIG + EXC_BREAKPOINT)
|
||||
return TARGET_EXC_BREAKPOINT;
|
||||
#endif
|
||||
|
||||
#if defined (SIGINFO)
|
||||
if (hostsig == SIGINFO)
|
||||
return TARGET_SIGNAL_INFO;
|
||||
#endif
|
||||
|
||||
#if defined (REALTIME_LO)
|
||||
if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI)
|
||||
{
|
||||
/* This block of TARGET_SIGNAL_REALTIME value is in order. */
|
||||
if (33 <= hostsig && hostsig <= 63)
|
||||
return (enum target_signal)
|
||||
(hostsig - 33 + (int) TARGET_SIGNAL_REALTIME_33);
|
||||
else if (hostsig == 32)
|
||||
return TARGET_SIGNAL_REALTIME_32;
|
||||
else if (64 <= hostsig && hostsig <= 127)
|
||||
return (enum target_signal)
|
||||
(hostsig - 64 + (int) TARGET_SIGNAL_REALTIME_64);
|
||||
else
|
||||
error ("GDB bug: target.c (target_signal_from_host): unrecognized real-time signal");
|
||||
}
|
||||
#endif
|
||||
|
||||
return TARGET_SIGNAL_UNKNOWN;
|
||||
}
|
||||
|
||||
/* Convert a OURSIG (an enum target_signal) to the form used by the
|
||||
target operating system (refered to as the ``host'') or zero if the
|
||||
equivalent host signal is not available. Set/clear OURSIG_OK
|
||||
accordingly. */
|
||||
|
||||
static int
|
||||
do_target_signal_to_host (enum target_signal oursig,
|
||||
int *oursig_ok)
|
||||
{
|
||||
int retsig;
|
||||
/* Silence the 'not used' warning, for targets that
|
||||
do not support signals. */
|
||||
(void) retsig;
|
||||
|
||||
*oursig_ok = 1;
|
||||
switch (oursig)
|
||||
{
|
||||
case TARGET_SIGNAL_0:
|
||||
return 0;
|
||||
|
||||
#if defined (SIGHUP)
|
||||
case TARGET_SIGNAL_HUP:
|
||||
return SIGHUP;
|
||||
#endif
|
||||
#if defined (SIGINT)
|
||||
case TARGET_SIGNAL_INT:
|
||||
return SIGINT;
|
||||
#endif
|
||||
#if defined (SIGQUIT)
|
||||
case TARGET_SIGNAL_QUIT:
|
||||
return SIGQUIT;
|
||||
#endif
|
||||
#if defined (SIGILL)
|
||||
case TARGET_SIGNAL_ILL:
|
||||
return SIGILL;
|
||||
#endif
|
||||
#if defined (SIGTRAP)
|
||||
case TARGET_SIGNAL_TRAP:
|
||||
return SIGTRAP;
|
||||
#endif
|
||||
#if defined (SIGABRT)
|
||||
case TARGET_SIGNAL_ABRT:
|
||||
return SIGABRT;
|
||||
#endif
|
||||
#if defined (SIGEMT)
|
||||
case TARGET_SIGNAL_EMT:
|
||||
return SIGEMT;
|
||||
#endif
|
||||
#if defined (SIGFPE)
|
||||
case TARGET_SIGNAL_FPE:
|
||||
return SIGFPE;
|
||||
#endif
|
||||
#if defined (SIGKILL)
|
||||
case TARGET_SIGNAL_KILL:
|
||||
return SIGKILL;
|
||||
#endif
|
||||
#if defined (SIGBUS)
|
||||
case TARGET_SIGNAL_BUS:
|
||||
return SIGBUS;
|
||||
#endif
|
||||
#if defined (SIGSEGV)
|
||||
case TARGET_SIGNAL_SEGV:
|
||||
return SIGSEGV;
|
||||
#endif
|
||||
#if defined (SIGSYS)
|
||||
case TARGET_SIGNAL_SYS:
|
||||
return SIGSYS;
|
||||
#endif
|
||||
#if defined (SIGPIPE)
|
||||
case TARGET_SIGNAL_PIPE:
|
||||
return SIGPIPE;
|
||||
#endif
|
||||
#if defined (SIGALRM)
|
||||
case TARGET_SIGNAL_ALRM:
|
||||
return SIGALRM;
|
||||
#endif
|
||||
#if defined (SIGTERM)
|
||||
case TARGET_SIGNAL_TERM:
|
||||
return SIGTERM;
|
||||
#endif
|
||||
#if defined (SIGUSR1)
|
||||
case TARGET_SIGNAL_USR1:
|
||||
return SIGUSR1;
|
||||
#endif
|
||||
#if defined (SIGUSR2)
|
||||
case TARGET_SIGNAL_USR2:
|
||||
return SIGUSR2;
|
||||
#endif
|
||||
#if defined (SIGCHLD) || defined (SIGCLD)
|
||||
case TARGET_SIGNAL_CHLD:
|
||||
#if defined (SIGCHLD)
|
||||
return SIGCHLD;
|
||||
#else
|
||||
return SIGCLD;
|
||||
#endif
|
||||
#endif /* SIGCLD or SIGCHLD */
|
||||
#if defined (SIGPWR)
|
||||
case TARGET_SIGNAL_PWR:
|
||||
return SIGPWR;
|
||||
#endif
|
||||
#if defined (SIGWINCH)
|
||||
case TARGET_SIGNAL_WINCH:
|
||||
return SIGWINCH;
|
||||
#endif
|
||||
#if defined (SIGURG)
|
||||
case TARGET_SIGNAL_URG:
|
||||
return SIGURG;
|
||||
#endif
|
||||
#if defined (SIGIO)
|
||||
case TARGET_SIGNAL_IO:
|
||||
return SIGIO;
|
||||
#endif
|
||||
#if defined (SIGPOLL)
|
||||
case TARGET_SIGNAL_POLL:
|
||||
return SIGPOLL;
|
||||
#endif
|
||||
#if defined (SIGSTOP)
|
||||
case TARGET_SIGNAL_STOP:
|
||||
return SIGSTOP;
|
||||
#endif
|
||||
#if defined (SIGTSTP)
|
||||
case TARGET_SIGNAL_TSTP:
|
||||
return SIGTSTP;
|
||||
#endif
|
||||
#if defined (SIGCONT)
|
||||
case TARGET_SIGNAL_CONT:
|
||||
return SIGCONT;
|
||||
#endif
|
||||
#if defined (SIGTTIN)
|
||||
case TARGET_SIGNAL_TTIN:
|
||||
return SIGTTIN;
|
||||
#endif
|
||||
#if defined (SIGTTOU)
|
||||
case TARGET_SIGNAL_TTOU:
|
||||
return SIGTTOU;
|
||||
#endif
|
||||
#if defined (SIGVTALRM)
|
||||
case TARGET_SIGNAL_VTALRM:
|
||||
return SIGVTALRM;
|
||||
#endif
|
||||
#if defined (SIGPROF)
|
||||
case TARGET_SIGNAL_PROF:
|
||||
return SIGPROF;
|
||||
#endif
|
||||
#if defined (SIGXCPU)
|
||||
case TARGET_SIGNAL_XCPU:
|
||||
return SIGXCPU;
|
||||
#endif
|
||||
#if defined (SIGXFSZ)
|
||||
case TARGET_SIGNAL_XFSZ:
|
||||
return SIGXFSZ;
|
||||
#endif
|
||||
#if defined (SIGWIND)
|
||||
case TARGET_SIGNAL_WIND:
|
||||
return SIGWIND;
|
||||
#endif
|
||||
#if defined (SIGPHONE)
|
||||
case TARGET_SIGNAL_PHONE:
|
||||
return SIGPHONE;
|
||||
#endif
|
||||
#if defined (SIGLOST)
|
||||
case TARGET_SIGNAL_LOST:
|
||||
return SIGLOST;
|
||||
#endif
|
||||
#if defined (SIGWAITING)
|
||||
case TARGET_SIGNAL_WAITING:
|
||||
return SIGWAITING;
|
||||
#endif
|
||||
#if defined (SIGCANCEL)
|
||||
case TARGET_SIGNAL_CANCEL:
|
||||
return SIGCANCEL;
|
||||
#endif
|
||||
#if defined (SIGLWP)
|
||||
case TARGET_SIGNAL_LWP:
|
||||
return SIGLWP;
|
||||
#endif
|
||||
#if defined (SIGDANGER)
|
||||
case TARGET_SIGNAL_DANGER:
|
||||
return SIGDANGER;
|
||||
#endif
|
||||
#if defined (SIGGRANT)
|
||||
case TARGET_SIGNAL_GRANT:
|
||||
return SIGGRANT;
|
||||
#endif
|
||||
#if defined (SIGRETRACT)
|
||||
case TARGET_SIGNAL_RETRACT:
|
||||
return SIGRETRACT;
|
||||
#endif
|
||||
#if defined (SIGMSG)
|
||||
case TARGET_SIGNAL_MSG:
|
||||
return SIGMSG;
|
||||
#endif
|
||||
#if defined (SIGSOUND)
|
||||
case TARGET_SIGNAL_SOUND:
|
||||
return SIGSOUND;
|
||||
#endif
|
||||
#if defined (SIGSAK)
|
||||
case TARGET_SIGNAL_SAK:
|
||||
return SIGSAK;
|
||||
#endif
|
||||
#if defined (SIGPRIO)
|
||||
case TARGET_SIGNAL_PRIO:
|
||||
return SIGPRIO;
|
||||
#endif
|
||||
|
||||
/* Mach exceptions. Assumes that the values for EXC_ are positive! */
|
||||
#if defined (EXC_BAD_ACCESS) && defined (_NSIG)
|
||||
case TARGET_EXC_BAD_ACCESS:
|
||||
return _NSIG + EXC_BAD_ACCESS;
|
||||
#endif
|
||||
#if defined (EXC_BAD_INSTRUCTION) && defined (_NSIG)
|
||||
case TARGET_EXC_BAD_INSTRUCTION:
|
||||
return _NSIG + EXC_BAD_INSTRUCTION;
|
||||
#endif
|
||||
#if defined (EXC_ARITHMETIC) && defined (_NSIG)
|
||||
case TARGET_EXC_ARITHMETIC:
|
||||
return _NSIG + EXC_ARITHMETIC;
|
||||
#endif
|
||||
#if defined (EXC_EMULATION) && defined (_NSIG)
|
||||
case TARGET_EXC_EMULATION:
|
||||
return _NSIG + EXC_EMULATION;
|
||||
#endif
|
||||
#if defined (EXC_SOFTWARE) && defined (_NSIG)
|
||||
case TARGET_EXC_SOFTWARE:
|
||||
return _NSIG + EXC_SOFTWARE;
|
||||
#endif
|
||||
#if defined (EXC_BREAKPOINT) && defined (_NSIG)
|
||||
case TARGET_EXC_BREAKPOINT:
|
||||
return _NSIG + EXC_BREAKPOINT;
|
||||
#endif
|
||||
|
||||
#if defined (SIGINFO)
|
||||
case TARGET_SIGNAL_INFO:
|
||||
return SIGINFO;
|
||||
#endif
|
||||
|
||||
default:
|
||||
#if defined (REALTIME_LO)
|
||||
retsig = 0;
|
||||
|
||||
if (oursig >= TARGET_SIGNAL_REALTIME_33
|
||||
&& oursig <= TARGET_SIGNAL_REALTIME_63)
|
||||
{
|
||||
/* This block of signals is continuous, and
|
||||
TARGET_SIGNAL_REALTIME_33 is 33 by definition. */
|
||||
retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
|
||||
}
|
||||
else if (oursig == TARGET_SIGNAL_REALTIME_32)
|
||||
{
|
||||
/* TARGET_SIGNAL_REALTIME_32 isn't contiguous with
|
||||
TARGET_SIGNAL_REALTIME_33. It is 32 by definition. */
|
||||
retsig = 32;
|
||||
}
|
||||
else if (oursig >= TARGET_SIGNAL_REALTIME_64
|
||||
&& oursig <= TARGET_SIGNAL_REALTIME_127)
|
||||
{
|
||||
/* This block of signals is continuous, and
|
||||
TARGET_SIGNAL_REALTIME_64 is 64 by definition. */
|
||||
retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64;
|
||||
}
|
||||
|
||||
if (retsig >= REALTIME_LO && retsig < REALTIME_HI)
|
||||
return retsig;
|
||||
#endif
|
||||
|
||||
*oursig_ok = 0;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
target_signal_to_host_p (enum target_signal oursig)
|
||||
{
|
||||
int oursig_ok;
|
||||
do_target_signal_to_host (oursig, &oursig_ok);
|
||||
return oursig_ok;
|
||||
}
|
||||
|
||||
int
|
||||
target_signal_to_host (enum target_signal oursig)
|
||||
{
|
||||
int oursig_ok;
|
||||
int targ_signo = do_target_signal_to_host (oursig, &oursig_ok);
|
||||
if (!oursig_ok)
|
||||
{
|
||||
/* The user might be trying to do "signal SIGSAK" where this system
|
||||
doesn't have SIGSAK. */
|
||||
warning ("Signal %s does not exist on this system.\n",
|
||||
target_signal_to_name (oursig));
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
return targ_signo;
|
||||
}
|
||||
|
||||
/* In some circumstances we allow a command to specify a numeric
|
||||
signal. The idea is to keep these circumstances limited so that
|
||||
users (and scripts) develop portable habits. For comparison,
|
||||
POSIX.2 `kill' requires that 1,2,3,6,9,14, and 15 work (and using a
|
||||
numeric signal at all is obsolescent. We are slightly more
|
||||
lenient and allow 1-15 which should match host signal numbers on
|
||||
most systems. Use of symbolic signal names is strongly encouraged. */
|
||||
|
||||
enum target_signal
|
||||
target_signal_from_command (int num)
|
||||
{
|
||||
if (num >= 1 && num <= 15)
|
||||
return (enum target_signal) num;
|
||||
error ("Only signals 1-15 are valid as numeric signals.\n\
|
||||
Use \"info signals\" for a list of symbolic signals.");
|
||||
}
|
||||
|
||||
#ifndef GDBSERVER
|
||||
extern initialize_file_ftype _initialize_signals; /* -Wmissing-prototype */
|
||||
|
||||
void
|
||||
_initialize_signals (void)
|
||||
{
|
||||
if (strcmp (signals[TARGET_SIGNAL_LAST].string, "TARGET_SIGNAL_MAGIC") != 0)
|
||||
internal_error (__FILE__, __LINE__, "failed internal consistency check");
|
||||
}
|
||||
#endif
|
||||
11
m68k/gdbserver/sort-regs.xsl
Normal file
11
m68k/gdbserver/sort-regs.xsl
Normal file
@@ -0,0 +1,11 @@
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="/">
|
||||
<target>
|
||||
<xsl:for-each select="//reg">
|
||||
<xsl:sort select="@regnum" data-type="number"/>
|
||||
<xsl:copy-of select="."/>
|
||||
</xsl:for-each>
|
||||
</target>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
111
m68k/gdbserver/target.c
Normal file
111
m68k/gdbserver/target.c
Normal file
@@ -0,0 +1,111 @@
|
||||
/* Target operations for the remote server for GDB.
|
||||
Copyright (C) 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "server.h"
|
||||
|
||||
struct target_ops *the_target;
|
||||
|
||||
void
|
||||
set_desired_inferior (int use_general)
|
||||
{
|
||||
struct thread_info *found;
|
||||
|
||||
if (use_general == 1)
|
||||
{
|
||||
found = (struct thread_info *) find_inferior_id (&all_threads,
|
||||
general_thread);
|
||||
}
|
||||
else
|
||||
{
|
||||
found = NULL;
|
||||
|
||||
/* If we are continuing any (all) thread(s), use step_thread
|
||||
to decide which thread to step and/or send the specified
|
||||
signal to. */
|
||||
if ((step_thread != 0 && step_thread != -1)
|
||||
&& (cont_thread == 0 || cont_thread == -1))
|
||||
found = (struct thread_info *) find_inferior_id (&all_threads,
|
||||
step_thread);
|
||||
|
||||
if (found == NULL)
|
||||
found = (struct thread_info *) find_inferior_id (&all_threads,
|
||||
cont_thread);
|
||||
}
|
||||
|
||||
if (found == NULL)
|
||||
current_inferior = (struct thread_info *) all_threads.head;
|
||||
else
|
||||
current_inferior = found;
|
||||
}
|
||||
|
||||
int
|
||||
read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
|
||||
{
|
||||
int res;
|
||||
res = (*the_target->read_memory) (memaddr, myaddr, len);
|
||||
check_mem_read (memaddr, myaddr, len);
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr,
|
||||
int len)
|
||||
{
|
||||
/* Lacking cleanups, there is some potential for a memory leak if the
|
||||
write fails and we go through error(). Make sure that no more than
|
||||
one buffer is ever pending by making BUFFER static. */
|
||||
static unsigned char *buffer = 0;
|
||||
int res;
|
||||
|
||||
if (buffer != NULL)
|
||||
free (buffer);
|
||||
|
||||
buffer = malloc (len);
|
||||
memcpy (buffer, myaddr, len);
|
||||
check_mem_write (memaddr, buffer, len);
|
||||
res = (*the_target->write_memory) (memaddr, buffer, len);
|
||||
free (buffer);
|
||||
buffer = NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
unsigned char
|
||||
mywait (char *statusp, int connected_wait)
|
||||
{
|
||||
unsigned char ret;
|
||||
|
||||
if (connected_wait)
|
||||
server_waiting = 1;
|
||||
|
||||
ret = (*the_target->wait) (statusp);
|
||||
|
||||
if (connected_wait)
|
||||
server_waiting = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
set_target_ops (struct target_ops *target)
|
||||
{
|
||||
the_target = (struct target_ops *) malloc (sizeof (*the_target));
|
||||
memcpy (the_target, target, sizeof (*the_target));
|
||||
}
|
||||
237
m68k/gdbserver/target.h
Normal file
237
m68k/gdbserver/target.h
Normal file
@@ -0,0 +1,237 @@
|
||||
/* Target operations for the remote server for GDB.
|
||||
Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef TARGET_H
|
||||
#define TARGET_H
|
||||
|
||||
/* This structure describes how to resume a particular thread (or
|
||||
all threads) based on the client's request. If thread is -1, then
|
||||
this entry applies to all threads. These are generally passed around
|
||||
as an array, and terminated by a thread == -1 entry. */
|
||||
|
||||
struct thread_resume
|
||||
{
|
||||
unsigned long thread;
|
||||
|
||||
/* If non-zero, leave this thread stopped. */
|
||||
int leave_stopped;
|
||||
|
||||
/* If non-zero, we want to single-step. */
|
||||
int step;
|
||||
|
||||
/* If non-zero, send this signal when we resume. */
|
||||
int sig;
|
||||
};
|
||||
|
||||
struct target_ops
|
||||
{
|
||||
/* Start a new process.
|
||||
|
||||
PROGRAM is a path to the program to execute.
|
||||
ARGS is a standard NULL-terminated array of arguments,
|
||||
to be passed to the inferior as ``argv''.
|
||||
|
||||
Returns the new PID on success, -1 on failure. Registers the new
|
||||
process with the process list. */
|
||||
|
||||
int (*create_inferior) (char *program, char **args);
|
||||
|
||||
/* Attach to a running process.
|
||||
|
||||
PID is the process ID to attach to, specified by the user
|
||||
or a higher layer.
|
||||
|
||||
Returns -1 if attaching is unsupported, 0 on success, and calls
|
||||
error() otherwise. */
|
||||
|
||||
int (*attach) (unsigned long pid);
|
||||
|
||||
/* Kill all inferiors. */
|
||||
|
||||
void (*kill) (void);
|
||||
|
||||
/* Detach from all inferiors.
|
||||
Return -1 on failure, and 0 on success. */
|
||||
|
||||
int (*detach) (void);
|
||||
|
||||
/* Wait for inferiors to end. */
|
||||
|
||||
void (*join) (void);
|
||||
|
||||
/* Return 1 iff the thread with process ID PID is alive. */
|
||||
|
||||
int (*thread_alive) (unsigned long pid);
|
||||
|
||||
/* Resume the inferior process. */
|
||||
|
||||
void (*resume) (struct thread_resume *resume_info);
|
||||
|
||||
/* Wait for the inferior process to change state.
|
||||
|
||||
STATUS will be filled in with a response code to send to GDB.
|
||||
|
||||
Returns the signal which caused the process to stop, in the
|
||||
remote protocol numbering (e.g. TARGET_SIGNAL_STOP), or the
|
||||
exit code as an integer if *STATUS is 'W'. */
|
||||
|
||||
unsigned char (*wait) (char *status);
|
||||
|
||||
/* Fetch registers from the inferior process.
|
||||
|
||||
If REGNO is -1, fetch all registers; otherwise, fetch at least REGNO. */
|
||||
|
||||
void (*fetch_registers) (int regno);
|
||||
|
||||
/* Store registers to the inferior process.
|
||||
|
||||
If REGNO is -1, store all registers; otherwise, store at least REGNO. */
|
||||
|
||||
void (*store_registers) (int regno);
|
||||
|
||||
/* Read memory from the inferior process. This should generally be
|
||||
called through read_inferior_memory, which handles breakpoint shadowing.
|
||||
|
||||
Read LEN bytes at MEMADDR into a buffer at MYADDR.
|
||||
|
||||
Returns 0 on success and errno on failure. */
|
||||
|
||||
int (*read_memory) (CORE_ADDR memaddr, unsigned char *myaddr, int len);
|
||||
|
||||
/* Write memory to the inferior process. This should generally be
|
||||
called through write_inferior_memory, which handles breakpoint shadowing.
|
||||
|
||||
Write LEN bytes from the buffer at MYADDR to MEMADDR.
|
||||
|
||||
Returns 0 on success and errno on failure. */
|
||||
|
||||
int (*write_memory) (CORE_ADDR memaddr, const unsigned char *myaddr,
|
||||
int len);
|
||||
|
||||
/* Query GDB for the values of any symbols we're interested in.
|
||||
This function is called whenever we receive a "qSymbols::"
|
||||
query, which corresponds to every time more symbols (might)
|
||||
become available. NULL if we aren't interested in any
|
||||
symbols. */
|
||||
|
||||
void (*look_up_symbols) (void);
|
||||
|
||||
/* Send an interrupt request to the inferior process,
|
||||
however is appropriate. */
|
||||
|
||||
void (*request_interrupt) (void);
|
||||
|
||||
/* Read auxiliary vector data from the inferior process.
|
||||
|
||||
Read LEN bytes at OFFSET into a buffer at MYADDR. */
|
||||
|
||||
int (*read_auxv) (CORE_ADDR offset, unsigned char *myaddr,
|
||||
unsigned int len);
|
||||
|
||||
/* Insert and remove a hardware watchpoint.
|
||||
Returns 0 on success, -1 on failure and 1 on unsupported.
|
||||
The type is coded as follows:
|
||||
2 = write watchpoint
|
||||
3 = read watchpoint
|
||||
4 = access watchpoint
|
||||
*/
|
||||
|
||||
int (*insert_watchpoint) (char type, CORE_ADDR addr, int len);
|
||||
int (*remove_watchpoint) (char type, CORE_ADDR addr, int len);
|
||||
|
||||
/* Returns 1 if target was stopped due to a watchpoint hit, 0 otherwise. */
|
||||
|
||||
int (*stopped_by_watchpoint) (void);
|
||||
|
||||
/* Returns the address associated with the watchpoint that hit, if any;
|
||||
returns 0 otherwise. */
|
||||
|
||||
CORE_ADDR (*stopped_data_address) (void);
|
||||
|
||||
/* Reports the text, data offsets of the executable. This is
|
||||
needed for uclinux where the executable is relocated during load
|
||||
time. */
|
||||
|
||||
int (*read_offsets) (CORE_ADDR *text, CORE_ADDR *data);
|
||||
|
||||
/* Fetch the address associated with a specific thread local storage
|
||||
area, determined by the specified THREAD, OFFSET, and LOAD_MODULE.
|
||||
Stores it in *ADDRESS and returns zero on success; otherwise returns
|
||||
an error code. A return value of -1 means this system does not
|
||||
support the operation. */
|
||||
|
||||
int (*get_tls_address) (struct thread_info *thread, CORE_ADDR offset,
|
||||
CORE_ADDR load_module, CORE_ADDR *address);
|
||||
|
||||
/* Return a string identifying the current architecture, or NULL if
|
||||
this operation is not supported. */
|
||||
const char *(*arch_string) (void);
|
||||
|
||||
/* Read/Write from/to spufs using qXfer packets. */
|
||||
int (*qxfer_spu) (const char *annex, unsigned char *readbuf,
|
||||
unsigned const char *writebuf, CORE_ADDR offset, int len);
|
||||
|
||||
/* Return a pointer to the requested XML file, or NULL if the file was
|
||||
not found. */
|
||||
const char *(*xml_file) (const char *annex);
|
||||
|
||||
/* If set the target can accept monitor commands. Return false
|
||||
to return an error code. */
|
||||
int (*commands) (const char *cmd, int len);
|
||||
};
|
||||
|
||||
extern struct target_ops *the_target;
|
||||
|
||||
void set_target_ops (struct target_ops *);
|
||||
|
||||
#define create_inferior(program, args) \
|
||||
(*the_target->create_inferior) (program, args)
|
||||
|
||||
#define myattach(pid) \
|
||||
(*the_target->attach) (pid)
|
||||
|
||||
#define kill_inferior() \
|
||||
(*the_target->kill) ()
|
||||
|
||||
#define detach_inferior() \
|
||||
(*the_target->detach) ()
|
||||
|
||||
#define mythread_alive(pid) \
|
||||
(*the_target->thread_alive) (pid)
|
||||
|
||||
#define fetch_inferior_registers(regno) \
|
||||
(*the_target->fetch_registers) (regno)
|
||||
|
||||
#define store_inferior_registers(regno) \
|
||||
(*the_target->store_registers) (regno)
|
||||
|
||||
#define join_inferior() \
|
||||
(*the_target->join) ()
|
||||
|
||||
unsigned char mywait (char *statusp, int connected_wait);
|
||||
|
||||
int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len);
|
||||
|
||||
int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr,
|
||||
int len);
|
||||
|
||||
void set_desired_inferior (int id);
|
||||
|
||||
#endif /* TARGET_H */
|
||||
51
m68k/gdbserver/terminal.h
Normal file
51
m68k/gdbserver/terminal.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Terminal interface definitions for the GDB remote server.
|
||||
Copyright (C) 2002, Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if !defined (TERMINAL_H)
|
||||
#define TERMINAL_H 1
|
||||
|
||||
/* Autoconf will have defined HAVE_TERMIOS_H, HAVE_TERMIO_H,
|
||||
and HAVE_SGTTY_H for us as appropriate. */
|
||||
|
||||
#if defined(HAVE_TERMIOS_H)
|
||||
#define HAVE_TERMIOS
|
||||
#include <termios.h>
|
||||
#else /* ! HAVE_TERMIOS_H */
|
||||
#if defined(HAVE_TERMIO_H)
|
||||
#define HAVE_TERMIO
|
||||
#include <termio.h>
|
||||
|
||||
#undef TIOCGETP
|
||||
#define TIOCGETP TCGETA
|
||||
#undef TIOCSETN
|
||||
#define TIOCSETN TCSETA
|
||||
#undef TIOCSETP
|
||||
#define TIOCSETP TCSETAF
|
||||
#define TERMINAL struct termio
|
||||
#else /* ! HAVE_TERMIO_H */
|
||||
#ifdef HAVE_SGTTY_H
|
||||
#define HAVE_SGTTY
|
||||
#include <fcntl.h>
|
||||
#include <sgtty.h>
|
||||
#include <sys/ioctl.h>
|
||||
#define TERMINAL struct sgttyb
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* !defined (TERMINAL_H) */
|
||||
121
m68k/gdbserver/utils.c
Normal file
121
m68k/gdbserver/utils.c
Normal file
@@ -0,0 +1,121 @@
|
||||
/* General utility routines for the remote server for GDB.
|
||||
Copyright (C) 1986, 1989, 1993, 1995, 1996, 1997, 1999, 2000, 2002, 2003,
|
||||
2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "server.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#if HAVE_ERRNO_H
|
||||
#include <errno.h>
|
||||
#endif
|
||||
#if HAVE_MALLOC_H
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
FILE *my_stderr;
|
||||
FILE *my_stdout;
|
||||
const char* warning_prefix = "gdb";
|
||||
|
||||
/* Generally useful subroutines used throughout the program. */
|
||||
|
||||
/* Print via our stdout descriptor. This allows us to move
|
||||
the stdout to stderr when using the the gdb server via
|
||||
the gdb remote pipe target. */
|
||||
|
||||
int
|
||||
printf_filtered (const char *format,...)
|
||||
{
|
||||
int ret;
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
ret = vfprintf (my_stdout, format, args);
|
||||
fflush (my_stdout);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Print the system error message for errno, and also mention STRING
|
||||
as the file name for which the error was encountered.
|
||||
Then return to command level. */
|
||||
|
||||
void
|
||||
perror_with_name (char *string)
|
||||
{
|
||||
const char *err;
|
||||
char *combined;
|
||||
|
||||
err = strerror (errno);
|
||||
if (err == NULL)
|
||||
err = "unknown error";
|
||||
|
||||
combined = (char *) alloca (strlen (err) + strlen (string) + 3);
|
||||
strcpy (combined, string);
|
||||
strcat (combined, ": ");
|
||||
strcat (combined, err);
|
||||
|
||||
error ("%s.", combined);
|
||||
}
|
||||
|
||||
/* Print an error message and return to command level.
|
||||
STRING is the error message, used as a fprintf string,
|
||||
and ARG is passed as an argument to it. */
|
||||
|
||||
void
|
||||
error (const char *string,...)
|
||||
{
|
||||
extern jmp_buf toplevel;
|
||||
va_list args;
|
||||
va_start (args, string);
|
||||
fflush (my_stdout);
|
||||
vfprintf (my_stderr, string, args);
|
||||
fprintf (my_stderr, "\n");
|
||||
fflush (my_stderr);
|
||||
longjmp (toplevel, 1);
|
||||
}
|
||||
|
||||
/* Print an error message and exit reporting failure.
|
||||
This is for a error that we cannot continue from.
|
||||
STRING and ARG are passed to fprintf. */
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
fatal (const char *string,...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, string);
|
||||
fprintf (my_stderr, "gdb: ");
|
||||
vfprintf (my_stderr, string, args);
|
||||
fprintf (my_stderr, "\n");
|
||||
fflush (my_stderr);
|
||||
va_end (args);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
warning (const char *string,...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, string);
|
||||
fprintf (my_stderr, warning_prefix);
|
||||
fprintf (my_stderr, ": ");
|
||||
vfprintf (my_stderr, string, args);
|
||||
fprintf (my_stderr, "\n");
|
||||
fflush (my_stderr);
|
||||
va_end (args);
|
||||
}
|
||||
1
m68k/gdbserver/version.in
Normal file
1
m68k/gdbserver/version.in
Normal file
@@ -0,0 +1 @@
|
||||
6.7
|
||||
13
m68k/gdbserver/xinclude.dtd
Normal file
13
m68k/gdbserver/xinclude.dtd
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- GDB supports a subset of XInclude. Only whole documents can
|
||||
be included, and only as XML. -->
|
||||
|
||||
<!ELEMENT xi:include (EMPTY)>
|
||||
<!ATTLIST xi:include
|
||||
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
|
||||
href CDATA #REQUIRED>
|
||||
Reference in New Issue
Block a user