aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/debugger.h
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-09-27 14:28:26 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-09-27 14:28:26 +0100
commit7031746224c2c274548596b5ee1e856360d860c5 (patch)
tree7da21669bb7b34b55b4705735febf9b73fa04ab0 /xen/include/asm-x86/debugger.h
parenta301105b5b9177c9750ded2cba138f9be695fb4a (diff)
downloadxen-7031746224c2c274548596b5ee1e856360d860c5.tar.gz
xen-7031746224c2c274548596b5ee1e856360d860c5.tar.bz2
xen-7031746224c2c274548596b5ee1e856360d860c5.zip
[XEN] gdbstub return value is used to determine whether or not
to continue execution. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/debugger.h')
-rw-r--r--xen/include/asm-x86/debugger.h43
1 files changed, 7 insertions, 36 deletions
diff --git a/xen/include/asm-x86/debugger.h b/xen/include/asm-x86/debugger.h
index 3e5debebd8..743dc2d8e5 100644
--- a/xen/include/asm-x86/debugger.h
+++ b/xen/include/asm-x86/debugger.h
@@ -15,14 +15,13 @@
* 2. debugger_trap_fatal():
* Called when Xen is about to give up and crash. Typically you will use this
* hook to drop into a debug session. It can also be used to hook off
- * deliberately caused traps (which you then handle and return non-zero)
- * but really these should be hooked off 'debugger_trap_entry'.
+ * deliberately caused traps (which you then handle and return non-zero).
*
* 3. debugger_trap_immediate():
* Called if we want to drop into a debugger now. This is essentially the
* same as debugger_trap_fatal, except that we use the current register state
* rather than the state which was in effect when we took the trap.
- * Essentially, if we're dying because of an unhandled exception, we call
+ * For example: if we're dying because of an unhandled exception, we call
* debugger_trap_fatal; if we're dying because of a panic() we call
* debugger_trap_immediate().
*/
@@ -44,42 +43,19 @@
#include <xen/gdbstub.h>
-#define __debugger_trap_entry(_v, _r) (0)
-
-static inline int __debugger_trap_fatal(
+static inline int debugger_trap_fatal(
unsigned int vector, struct cpu_user_regs *regs)
{
- (void)__trap_to_gdb(regs, vector);
- return (vector == TRAP_int3); /* int3 is harmless */
+ return (__trap_to_gdb(regs, vector) == 0);
}
/* Int3 is a trivial way to gather cpu_user_regs context. */
#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" );
-#elif 0
-
-extern int kdb_trap(int, int, struct cpu_user_regs *);
-
-static inline int __debugger_trap_entry(
- unsigned int vector, struct cpu_user_regs *regs)
-{
- return 0;
-}
-
-static inline int __debugger_trap_fatal(
- unsigned int vector, struct cpu_user_regs *regs)
-{
- return kdb_trap(vector, 0, regs);
-}
-
-/* Int3 is a trivial way to gather cpu_user_regs context. */
-#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" )
-
#else
-#define __debugger_trap_entry(_v, _r) (0)
-#define __debugger_trap_fatal(_v, _r) (0)
-#define __debugger_trap_immediate() ((void)0)
+#define debugger_trap_fatal(v, r) (0)
+#define debugger_trap_immediate() ((void)0)
#endif
@@ -96,12 +72,7 @@ static inline int debugger_trap_entry(
return 1;
}
- return __debugger_trap_entry(vector, regs);
+ return 0;
}
-#define debugger_trap_fatal(v, r) (__debugger_trap_fatal(v, r))
-#ifndef debugger_trap_immediate
-#define debugger_trap_immediate() (__debugger_trap_immediate())
-#endif
-
#endif /* __X86_DEBUGGER_H__ */