aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/m68k
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/config/m68k')
-rw-r--r--gdb/config/m68k/.Sanitize2
-rw-r--r--gdb/config/m68k/apollo68b.mt3
-rw-r--r--gdb/config/m68k/nm-apollo68b.h22
-rw-r--r--gdb/config/m68k/tm-apollo68b.h63
4 files changed, 90 insertions, 0 deletions
diff --git a/gdb/config/m68k/.Sanitize b/gdb/config/m68k/.Sanitize
index 9947f75..9ebd0b4 100644
--- a/gdb/config/m68k/.Sanitize
+++ b/gdb/config/m68k/.Sanitize
@@ -28,6 +28,7 @@ altos.mt
amix.mh
amix.mt
apollo68b.mh
+apollo68b.mt
apollo68v.mh
delta68.mh
delta68.mt
@@ -65,6 +66,7 @@ sun3os3.mt
sun3os4.mh
sun3os4.mt
tm-3b1.h
+tm-apollo68b.h
tm-delta68.h
tm-m68k-em.h
tm-m68k.h
diff --git a/gdb/config/m68k/apollo68b.mt b/gdb/config/m68k/apollo68b.mt
index e69de29..e1fb1dc 100644
--- a/gdb/config/m68k/apollo68b.mt
+++ b/gdb/config/m68k/apollo68b.mt
@@ -0,0 +1,3 @@
+# Target: Apollo m68k in BSD mode
+TDEPFILES= exec.o m68k-pinsn.o m68k-tdep.o dstread.o
+TM_FILE= tm-apollo68b.h
diff --git a/gdb/config/m68k/nm-apollo68b.h b/gdb/config/m68k/nm-apollo68b.h
index 6f28b62..c90dfac 100644
--- a/gdb/config/m68k/nm-apollo68b.h
+++ b/gdb/config/m68k/nm-apollo68b.h
@@ -21,3 +21,25 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FETCH_INFERIOR_REGISTERS
+/* Tell gdb that we can attach and detach other processes */
+#define ATTACH_DETACH
+
+#define U_REGS_OFFSET 6
+
+/* This is the amount to subtract from u.u_ar0
+ to get the offset in the core file of the register values. */
+
+#define KERNEL_U_ADDR 0
+
+#undef FLOAT_INFO /* No float info yet */
+
+#define REGISTER_U_ADDR(addr, blockend, regno) \
+ (addr) = (6 + 4 * (regno))
+
+/* Apollos don't really have a USER area,so trying to read it from the
+ * process address space will fail. It does support a read from a faked
+ * USER area using the "PEEKUSER" ptrace call.
+ */
+#define PT_READ_U 3
+
+#define MEM_FNS_DECLARED /* /usr/include/string.h can get it wrong */
diff --git a/gdb/config/m68k/tm-apollo68b.h b/gdb/config/m68k/tm-apollo68b.h
index e69de29..fd8fbfc 100644
--- a/gdb/config/m68k/tm-apollo68b.h
+++ b/gdb/config/m68k/tm-apollo68b.h
@@ -0,0 +1,63 @@
+/* Parameters for execution on Apollo 68k running BSD.
+ Copyright (C) 1986, 1987, 1989, 1991 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 2 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* Apollos use vector 0xb for the breakpoint vector */
+
+#define BPT_VECTOR 0xb
+
+/* Assume we have a coprocessor. If we don't, it still shouldn't hurt */
+
+#define HAVE_68881 1
+
+#include "m68k/tm-m68k.h"
+
+#define FRAME_CHAIN_VALID(chain, thisframe) (chain != 0)
+
+/* These are the jmp_buf registers I could guess. There are 13 registers
+ * in the buffer. There are 8 data registers, 6 general address registers,
+ * the Frame Pointer, the Stack Pointer, the PC and the SR in the chip. I would
+ * guess that 12 is the SR, but we don't need that anyway. 0 and 1 have
+ * me stumped. 4 appears to be a5 for some unknown reason. If you care
+ * about this, disassemble setjmp to find out. But don't do it with gdb :)
+ */
+
+#undef JB_SP
+#undef JB_FP
+#undef JB_PC
+#undef JB_D0
+#undef JB_D1
+#undef JB_D2
+#undef JB_D3
+#undef JB_D4
+#undef JB_D5
+
+#define JB_SP 2
+#define JB_FP 3
+#define JB_PC 5
+#define JB_D0 6
+#define JB_D1 7
+#define JB_D2 8
+#define JB_D3 9
+#define JB_D4 10
+#define JB_D5 11
+
+/* How to decide if we're in a shared library function. (Probably a wrong
+ definintion inherited from the VxWorks config file). */
+#define IN_SOLIB_TRAMPOLINE(pc, name) (name && strcmp(name, "<end_of_program>") == 0)