]> Zhao Yanbai Git Server - minix.git/commitdiff
Killing Minix by typing Q on serial console
authorTomas Hruby <tom@minix3.org>
Thu, 14 Jan 2010 09:46:16 +0000 (09:46 +0000)
committerTomas Hruby <tom@minix3.org>
Thu, 14 Jan 2010 09:46:16 +0000 (09:46 +0000)
- if debugging on serial console is enabled typing Q kills the system. It is
  handy if the system gets locked up and the timer interrupts still work. Good
  for remote debugging.

- NOT_REACHABLE reintroduced and fixed. It should be used for marking code which
  is not reachable because the previous code _should_ not return. Such places
  are not always obvious

kernel/arch/i386/system.c
kernel/debug.h
kernel/main.c

index d69b2af109795c3373bcdb68d5774a598c08f098..4a1a1979c96a0a2b42fdf5bf328ca92fbb4fab45 100644 (file)
@@ -286,6 +286,9 @@ PRIVATE void ser_debug(int c)
 
        switch(c)
        {
+       case 'Q':
+               minix_shutdown(NULL);
+               NOT_REACHABLE;
        case '1':
                ser_dump_proc();
                break;
index b59e738a793f1cfa1fcfe0e1127bbd582981e972..3b1863155f60f3630dc1cad3c7a46db3c735ee53 100644 (file)
@@ -69,7 +69,7 @@
 #define vmassert(t) { }
 #endif
 
-#define NOT_REACHABLE(__x) do {                                                \
+#define NOT_REACHABLE  do {                                            \
        kprintf("NOT_REACHABLE at %s:%d\n", __FILE__, __LINE__);        \
        minix_panic("execution at an unexpected location\n", NO_NUM);   \
        for(;;);                                                        \
index 8a76110f73617c826243f94a83666f4f6445b725..988fb1f71213a2ae7b3dd3333dad700a1a4c49f2 100644 (file)
@@ -251,6 +251,7 @@ PUBLIC void main()
 #endif
 
   restart();
+  NOT_REACHABLE;
 }
 
 /*===========================================================================*