Removes shift-G from the escape codes
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 12 Mar 2014 03:36:23 +0000 (20:36 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Sat, 29 Mar 2014 01:16:10 +0000 (18:16 -0700)
You can type G now, and have devices like #G.  Crazy!

kern/arch/riscv/trap.c
kern/arch/x86/init.c
kern/src/manager.c

index 78efb30..d87abec 100644 (file)
@@ -130,7 +130,9 @@ static void exit_halt_loop(struct hw_trapframe *hw_tf)
 
 static void handle_keypress(char c)
 {
-       amr_t handler = c == 'G' ? __run_mon : __cons_add_char;
+       /* brho: not sure if this will work on riscv or not... */
+       #define capchar2ctl(x) ((x) - '@')
+       amr_t handler = c == capchar2ctl('G') ? __run_mon : __cons_add_char;
        send_kernel_message(core_id(), handler, (long)&cons_buf, (long)c, 0,
                            KMSG_ROUTINE);
        cons_init();
index ad912bc..fc5dac5 100644 (file)
@@ -29,7 +29,7 @@ static void irq_console(struct hw_trapframe *hw_tf, void *data)
        /* Control code intercepts */
        switch (c) {
                case capchar2ctl('G'):
-                       /* traditional 'shift-g', will put you in the monitor gracefully */
+                       /* traditional 'ctrl-g', will put you in the monitor gracefully */
                        send_kernel_message(core_id(), __run_mon, 0, 0, 0, KMSG_ROUTINE);
                        return;
                case capchar2ctl('Q'):
@@ -46,11 +46,8 @@ static void irq_console(struct hw_trapframe *hw_tf, void *data)
        }
        /* Do our work in an RKM, instead of interrupt context.  Note the RKM will
         * cast 'c' to a char. */
-       if (c == 'G')
-               send_kernel_message(core_id(), __run_mon, 0, 0, 0, KMSG_ROUTINE);
-       else
-               send_kernel_message(core_id(), __cons_add_char, (long)&cons_buf,
-                                   (long)c, 0, KMSG_ROUTINE);
+       send_kernel_message(core_id(), __cons_add_char, (long)&cons_buf, (long)c,
+                           0, KMSG_ROUTINE);
 }
 
 static void cons_irq_init(void)
index 20111b9..62b917a 100644 (file)
@@ -115,11 +115,12 @@ void manager_brho(void)
        if (first) {    
                printk("*** IRQs must be enabled for input emergency codes ***\n");
                #ifdef CONFIG_X86
-               printk("*** Hit ctrl-g or shift-g to enter the monitor. ***\n");
+               printk("*** Hit ctrl-g to enter the monitor. ***\n");
                printk("*** Hit ctrl-q to force-enter the monitor. ***\n");
                printk("*** Hit ctrl-b for a backtrace of core 0 ***\n");
                #else
-               printk("*** Hit shift-g to enter the monitor. ***\n");
+               printk("*** Hit ctrl-g to enter the monitor. ***\n");
+               #warning "***** ctrl-g untested on riscv, check k/a/r/trap.c *****"
                #endif
                first = FALSE;
        }