Rename do_power_off to power_off_when_done.
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 9 Dec 2004 19:50:39 +0000 (19:50 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 9 Dec 2004 19:50:39 +0000 (19:50 +0000)
Only power off on kernel panic if power_off_when_done set.

src/lib/debug.c
src/threads/init.c
src/threads/init.h

index 7d520638c8cd9a9e8e60a3874b5ce5ae1dee7845..6d75e7a34c47bf25332d5a9cc24ac9cc153c217b 100644 (file)
@@ -5,6 +5,7 @@
 #include <stdio.h>
 #include <string.h>
 #ifdef KERNEL
+#include "threads/init.h"
 #include "threads/interrupt.h"
 #include "devices/serial.h"
 #else
@@ -89,7 +90,9 @@ debug_panic (const char *file, int line, const char *function,
 
 #ifdef KERNEL
   serial_flush ();
-  power_off ();
+  if (power_off_when_done)
+    power_off ();
+  for (;;);
 #else
   exit (1);
 #endif
index ef67071aec53daceb476b02faf3af4fe48fd7824..741f0e42e4339b8824f16646aae237de0f365dc0 100644 (file)
@@ -49,8 +49,8 @@ static bool format_filesys;
 static char *initial_program;
 #endif
 
-/* -q: Power off after running requested actions? */
-static bool do_power_off;
+/* -q: Power off after kernel tasks complete? */
+bool power_off_when_done;
 
 static void ram_init (void);
 static void paging_init (void);
@@ -133,7 +133,7 @@ main (void)
 #endif
 
   /* Finish up. */
-  if (do_power_off
+  if (power_off_when_done
     power_off ();
   else 
     thread_exit ();
@@ -225,7 +225,7 @@ argv_init (void)
     else if (!strcmp (argv[i], "-d")) 
       debug_enable (argv[++i]);
     else if (!strcmp (argv[i], "-q"))
-      do_power_off = true;
+      power_off_when_done = true;
 #ifdef USERPROG
     else if (!strcmp (argv[i], "-ex")) 
       initial_program = argv[++i];
index 555804a4efddff75b72c5d2a89aaec880440317e..a6fec055d0b66067fd590441b06c2d2a141492ea 100644 (file)
@@ -2,6 +2,7 @@
 #define THREADS_INIT_H
 
 #include <debug.h>
+#include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
 
@@ -11,6 +12,9 @@ extern size_t ram_pages;
 /* Page directory with kernel mappings only. */
 extern uint32_t *base_page_dir;
 
+/* -q: Power off when kernel tasks complete? */
+extern bool power_off_when_done;
+
 void power_off (void) NO_RETURN;
 
 #endif /* threads/init.h */