[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lost] [Patch] kernel - Ausgaben auf Bildschirm bei Bedarf deaktivieren



+ kernel: Debugswitch n, der die Ausgabe von Text auf den Bildschirm 
unterbindet.

Sowas braucht man, wenn man nano oder ncurses allgemein debuggen will. ;-) Die 
Ausgaben landen damit nur noch auf der seriellen Schnittstelle.
Index: trunk/src/kernel/include/debug.h
===================================================================
--- trunk.orig/src/kernel/include/debug.h
+++ trunk/src/kernel/include/debug.h
@@ -4,6 +4,7 @@
 #define DEBUG_FLAG_STACK_BACKTRACE 2
 #define DEBUG_FLAG_PEDANTIC 4
 #define DEBUG_FLAG_SYSCALL 8
+#define DEBUG_FLAG_NO_KCONSOLE 16
 
 /* Int2Str , Wandelt signed ints in Strings um */
 char* int2str(signed int value,char *result);
Index: trunk/src/kernel/src/console.c
===================================================================
--- trunk.orig/src/kernel/src/console.c
+++ trunk/src/kernel/src/console.c
@@ -35,6 +35,7 @@
 
 #include "string.h"
 #include "ports.h"
+#include <debug.h>
 
 /*
  * Das hier ist eine sehr beschr�te Untermenge der ANSI Escape Codes. Alle
@@ -429,6 +430,10 @@ void con_putc(const char c)
     outb(0x3f8, c);
     while ((inb(0x3fd) & 0x20) == 0) asm("nop");
     
+    if (debug_test_flag(DEBUG_FLAG_NO_KCONSOLE)) {
+        return;
+    }
+
     switch(c)
     {
         case '\n':
Index: trunk/src/kernel/src/debug.c
===================================================================
--- trunk.orig/src/kernel/src/debug.c
+++ trunk/src/kernel/src/debug.c
@@ -197,6 +197,11 @@ void debug_parse_cmdline(char* cmdline)
 
             case 'c':
                 debug_flags |= DEBUG_FLAG_SYSCALL;
+                break;
+
+            case 'n':
+                debug_flags |= DEBUG_FLAG_NO_KCONSOLE;
+                break;
         }
         pos++;
     }

Attachment: signature.asc
Description: This is a digitally signed message part.