patch-2.1.113 linux/include/asm-m68k/kgdb.h
Next file: linux/include/asm-m68k/machdep.h
Previous file: linux/include/asm-m68k/entry.h
Back to the patch index
Back to the overall index
- Lines: 84
- Date:
Thu Jul 30 11:08:20 1998
- Orig file:
v2.1.112/linux/include/asm-m68k/kgdb.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.112/linux/include/asm-m68k/kgdb.h linux/include/asm-m68k/kgdb.h
@@ -0,0 +1,83 @@
+/*
+ * include/asm-m68k/kgdb.h
+ *
+ * Copyright (C) 1996 Roman Hodek
+ */
+
+#ifndef __ASM_M68k_KGDB_H
+#define __ASM_M68k_KGDB_H
+
+/*
+ * Structure to save all register values in, already in the order gdb wants
+ * it. Note that the upper half of the SR field is recycled for the FORMAT and
+ * VECTOR fields. Hope that doesn't confuse gdb... That upper half is ignored
+ * on exiting the stub, so gdb can modify it as it likes.
+ */
+
+#define GDBREG_A6 14
+#define GDBREG_A7 15
+#define GDBREG_SP 15
+#define GDBREG_SR 16
+#define GDBREG_PC 17
+#define GDBREG_FP0 18
+#define GDBREG_FP7 25
+#define GDBREG_FPCR 26
+#define GDBREG_FPIAR 28
+
+#define GDBOFFA_D6 (6*4)
+#define GDBOFFA_A3 (11*4)
+
+#define NUMREGSBYTES 180
+
+#ifndef __ASSEMBLY__
+
+struct gdb_regs {
+ long regs[16]; /* d0-a7 */
+ unsigned format : 4; /* frame format specifier */
+ unsigned vector : 12; /* vector offset */
+ unsigned short sr; /* status register */
+ unsigned long pc; /* program counter */
+ unsigned long fpregs[8*3]; /* fp0-fp7 */
+ unsigned long fpcntl[3]; /* fpcr, fpsr, fpiar */
+};
+
+extern struct gdb_regs kgdb_registers;
+extern void kgdb_init( void );
+struct frame;
+extern asmlinkage void enter_kgdb( struct pt_regs *fp );
+
+extern int kgdb_initialized;
+
+/*
+ * This function will generate a breakpoint exception. It is used at the
+ * beginning of a program to sync up with a debugger and can be used
+ * otherwise as a quick means to stop program execution and "break" into
+ * the debugger.
+ */
+extern inline void breakpoint( void )
+{
+ if (!kgdb_initialized)
+ /* if kgdb not inited, do nothing */
+ return;
+
+ /* breakpoint instruction is TRAP #15 */
+ __asm__ __volatile__ ( "trap #15" );
+}
+
+/*
+ * This function will report a SIGABORT to gdb.
+ */
+extern inline void kgdb_abort( void )
+{
+ if (!kgdb_initialized)
+ /* if kgdb not inited, do nothing */
+ return;
+
+ /* TRAP #14 is reported as SIGABORT */
+ __asm__ __volatile__ ( "trap #14" );
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ASM_M68k_KGDB_H */
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov