summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i386/i386/locore.S4
-rw-r--r--xen/console.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index 51a65c9..c640191 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -802,7 +802,11 @@ ast_from_interrupt:
* Call kdb, passing it that register save area.
*/
+#ifdef MACH_XEN
+#define RET_OFFSET 8
+#else /* MACH_XEN */
#define RET_OFFSET 16
+#endif /* MACH_XEN */
ENTRY(kdb_kintr)
movl %ebp,%eax /* save caller`s frame pointer */
diff --git a/xen/console.c b/xen/console.c
index c65e6d2..a289b8e 100644
--- a/xen/console.c
+++ b/xen/console.c
@@ -112,8 +112,11 @@ static void hypcnintr(int unit, spl_t spl, void *ret_addr, void *regs) {
mb();
console->in_cons++;
#ifdef MACH_KDB
- if (c == (char)'£')
- panic("£ pressed");
+ if (c == (char)'£') {
+ printf("£ pressed\n");
+ kdb_kintr();
+ continue;
+ }
#endif /* MACH_KDB */
if ((tp->t_state & (TS_ISOPEN|TS_WOPEN)))
(*linesw[tp->t_line].l_rint)(c, tp);