diff options
-rw-r--r-- | i386/i386/locore.S | 4 | ||||
-rw-r--r-- | xen/console.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/i386/i386/locore.S b/i386/i386/locore.S index 663db43..e8f7740 100644 --- a/i386/i386/locore.S +++ b/i386/i386/locore.S @@ -798,7 +798,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); |