initial push

This commit is contained in:
Bernd Mueller
2026-06-17 13:44:30 +02:00
commit adfd70813f
372 changed files with 146450 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
.deps
Makefile
Makefile.in
bdmgdbserver
bdmgdbserver.exe

87
m68k/gdbserver/Makefile.am Executable file
View 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
View 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
View 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

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

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

View 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 &lt; 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 &lt; $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
View 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);
}

File diff suppressed because it is too large Load Diff

View 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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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);

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

View 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
View 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);
}

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

View 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 &lt; $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
View 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 &reg_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 &reg_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
View 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
View 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 */

File diff suppressed because it is too large Load Diff

1297
m68k/gdbserver/server.c Executable file

File diff suppressed because it is too large Load Diff

246
m68k/gdbserver/server.h Executable file
View 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
View 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

View 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
View 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
View 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
View 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
View 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);
}

View File

@@ -0,0 +1 @@
6.7

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