aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/kernel.c
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-10-06 18:17:03 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-10-06 18:17:03 +0000
commitd5d4e6ed04a28dd9d7ba2b15f187214f2bd36ce1 (patch)
treec45cdbbf259a9ed92485613a455e1c3df6f6c545 /extras/mini-os/kernel.c
parent550718896b662801261d4679543ce2d5a8fa2bfb (diff)
parent29efcc54240ec2669b950798c8fee1ecf65813d4 (diff)
downloadxen-d5d4e6ed04a28dd9d7ba2b15f187214f2bd36ce1.tar.gz
xen-d5d4e6ed04a28dd9d7ba2b15f187214f2bd36ce1.tar.bz2
xen-d5d4e6ed04a28dd9d7ba2b15f187214f2bd36ce1.zip
bitkeeper revision 1.485 (3f81b19fL5Y4lVlRaEpJI9r_IZlDcw)
Merge labyrinth.cl.cam.ac.uk:/auto/groups/xeno/users/rn212/xeno.mini into labyrinth.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
Diffstat (limited to 'extras/mini-os/kernel.c')
-rw-r--r--extras/mini-os/kernel.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c
index 6486fac119..196d8612c3 100644
--- a/extras/mini-os/kernel.c
+++ b/extras/mini-os/kernel.c
@@ -36,10 +36,10 @@ char stack[8192];
void hypervisor_callback(void);
void failsafe_callback(void);
-/* default exit event handler */
+/* default event handlers */
static void exit_handler(int ev, struct pt_regs *regs);
+static void debug_handler(int ev, struct pt_regs *regs);
-extern void trap_init(void);
/*
* INITIAL C ENTRY POINT.
@@ -100,6 +100,10 @@ void start_kernel(start_info_t *si)
enable_ev_action(EV_DIE);
enable_hypervisor_event(EV_DIE);
+ add_ev_action(EV_DEBUG, &debug_handler);
+ enable_ev_action(EV_DEBUG);
+ enable_hypervisor_event(EV_DEBUG);
+
/* init time and timers */
init_time();
@@ -124,3 +128,9 @@ static void exit_handler(int ev, struct pt_regs *regs) {
do_exit();
}
+/*
+ * a debug handler to print out some state from the guest
+ */
+static void debug_handler(int ev, struct pt_regs *regs) {
+ dump_regs(regs);
+}