Print statistics at power off.
[pintos-anon] / src / lib / kernel / console.c
index 14c707a63681129a66463677d6e7916d80199855..d09801d984a6f2250b18f15d819dc781c521f741 100644 (file)
@@ -42,6 +42,9 @@ static struct lock console_lock;
    counter. */
 static int console_lock_depth;
 
+/* Number of characters written to console. */
+static int64_t write_cnt;
+
 /* Initializes the console. */
 void
 console_init (void) 
@@ -49,6 +52,13 @@ console_init (void)
   lock_init (&console_lock, "console");
 }
 
+/* Prints console statistics. */
+void
+console_print_stats (void) 
+{
+  printf ("Console: %lld characters output\n", write_cnt);
+}
+
 /* Acquires the console lock. */
 static void
 acquire_console (void) 
@@ -140,6 +150,7 @@ vprintf_helper (char c, void *char_cnt_)
 static void
 putchar_unlocked (uint8_t c) 
 {
+  write_cnt++;
   serial_putc (c);
   vga_putc (c);
 }