+ 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.