Major revamp to FAT code, fixing LFN issues and other bugs
[tpg/acess2.git] / Kernel / debug.c
index 3a03842..66c2059 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * AcessOS Microkernel Version
  * debug.c
+ * 
+ * TODO: Move the Debug_putchar methods out to the arch/ tree
  */
 #include <acess.h>
 #include <stdarg.h>
@@ -9,7 +11,6 @@
 #define DEBUG_TO_SERIAL        1
 #define        SERIAL_PORT     0x3F8
 #define        GDB_SERIAL_PORT 0x2F8
-#define DEBUG_USE_VSNPRINTF    0
 #define        DEBUG_MAX_LINE_LEN      256
 
 // === IMPORTS ===
@@ -38,9 +39,9 @@ int putDebugChar(char ch)
        if(!gbGDB_SerialSetup) {
                outb(GDB_SERIAL_PORT + 1, 0x00);    // Disable all interrupts
                outb(GDB_SERIAL_PORT + 3, 0x80);    // Enable DLAB (set baud rate divisor)
-               outb(GDB_SERIAL_PORT + 0, 0x03);    // Set divisor to 3 (lo byte) 38400 baud
-               outb(GDB_SERIAL_PORT + 1, 0x00);    //                  (hi byte)
-               outb(GDB_SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit
+               outb(GDB_SERIAL_PORT + 0, 0x0C);    // Set divisor to 12 (lo byte) 9600 baud
+               outb(GDB_SERIAL_PORT + 1, 0x00);    //  (base is         (hi byte)
+               outb(GDB_SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit (8N1)
                outb(GDB_SERIAL_PORT + 2, 0xC7);    // Enable FIFO with 14-byte threshold and clear it
                outb(GDB_SERIAL_PORT + 4, 0x0B);    // IRQs enabled, RTS/DSR set
                gbDebug_SerialSetup = 1;
@@ -54,8 +55,8 @@ int getDebugChar(void)
        if(!gbGDB_SerialSetup) {
                outb(GDB_SERIAL_PORT + 1, 0x00);    // Disable all interrupts
                outb(GDB_SERIAL_PORT + 3, 0x80);    // Enable DLAB (set baud rate divisor)
-               outb(GDB_SERIAL_PORT + 0, 0x03);    // Set divisor to 3 (lo byte) 38400 baud
-               outb(GDB_SERIAL_PORT + 1, 0x00);    //                  (hi byte)
+               outb(GDB_SERIAL_PORT + 0, 0x0C);    // Set divisor to 12 (lo byte) 9600 baud
+               outb(GDB_SERIAL_PORT + 1, 0x00);    //                   (hi byte)
                outb(GDB_SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit
                outb(GDB_SERIAL_PORT + 2, 0xC7);    // Enable FIFO with 14-byte threshold and clear it
                outb(GDB_SERIAL_PORT + 4, 0x0B);    // IRQs enabled, RTS/DSR set
@@ -75,8 +76,8 @@ static void Debug_PutCharDebug(char ch)
        if(!gbDebug_SerialSetup) {
                outb(SERIAL_PORT + 1, 0x00);    // Disable all interrupts
                outb(SERIAL_PORT + 3, 0x80);    // Enable DLAB (set baud rate divisor)
-               outb(SERIAL_PORT + 0, 0x03);    // Set divisor to 3 (lo byte) 38400 baud
-               outb(SERIAL_PORT + 1, 0x00);    //                  (hi byte)
+               outb(SERIAL_PORT + 0, 0x0C);    // Set divisor to 12 (lo byte) 9600 baud
+               outb(SERIAL_PORT + 1, 0x00);    //                   (hi byte)
                outb(SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit
                outb(SERIAL_PORT + 2, 0xC7);    // Enable FIFO with 14-byte threshold and clear it
                outb(SERIAL_PORT + 4, 0x0B);    // IRQs enabled, RTS/DSR set
@@ -180,6 +181,7 @@ void Debug(char *Fmt, ...)
        va_start(args, Fmt);
        Debug_DbgOnlyFmt(Fmt, args);
        va_end(args);
+       Debug_PutCharDebug('\r');
        Debug_PutCharDebug('\n');
 }
 /**
@@ -193,6 +195,7 @@ void Log(char *Fmt, ...)
        va_start(args, Fmt);
        Debug_Fmt(Fmt, args);
        va_end(args);
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 }
 void Warning(char *Fmt, ...)
@@ -202,6 +205,7 @@ void Warning(char *Fmt, ...)
        va_start(args, Fmt);
        Debug_Fmt(Fmt, args);
        va_end(args);
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 }
 void Panic(char *Fmt, ...)
@@ -214,6 +218,7 @@ void Panic(char *Fmt, ...)
        va_start(args, Fmt);
        Debug_Fmt(Fmt, args);
        va_end(args);
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 
        Threads_Dump();
@@ -260,14 +265,14 @@ void Debug_Enter(char *FuncName, char *ArgTypes, ...)
                if(pos != -1)   ArgTypes[pos] = ' ';
                switch(*ArgTypes)
                {
-               case 'p':       Debug_Fmt("%p", args);  break;
-               case 's':       Debug_Fmt("'%s'", args);        break;
-               case 'i':       Debug_Fmt("%i", args);  break;
-               case 'u':       Debug_Fmt("%u", args);  break;
-               case 'x':       Debug_Fmt("0x%x", args);        break;
-               case 'b':       Debug_Fmt("0b%b", args);        break;
-               case 'X':       Debug_Fmt("0x%llx", args);      break;  // Extended (64-Bit)
-               case 'B':       Debug_Fmt("0b%llb", args);      break;  // Extended (64-Bit)
+               case 'p':       LogF("%p", va_arg(args, void*));        break;
+               case 's':       LogF("'%s'", va_arg(args, char*));      break;
+               case 'i':       LogF("%i", va_arg(args, int));  break;
+               case 'u':       LogF("%u", va_arg(args, Uint)); break;
+               case 'x':       LogF("0x%x", va_arg(args, Uint));       break;
+               case 'b':       LogF("0b%b", va_arg(args, Uint));       break;
+               case 'X':       LogF("0x%llx", va_arg(args, Uint64));   break;  // Extended (64-Bit)
+               case 'B':       LogF("0b%llb", va_arg(args, Uint64));   break;  // Extended (64-Bit)
                }
                if(pos != -1) {
                        Debug_Putchar(',');     Debug_Putchar(' ');
@@ -278,7 +283,7 @@ void Debug_Enter(char *FuncName, char *ArgTypes, ...)
        }
 
        va_end(args);
-       Debug_Putchar(')');     Debug_Putchar('\n');
+       Debug_Putchar(')');     Debug_Putchar('\r');    Debug_Putchar('\n');
 }
 
 void Debug_Log(char *FuncName, char *Fmt, ...)
@@ -294,6 +299,7 @@ void Debug_Log(char *FuncName, char *Fmt, ...)
        Debug_Fmt(Fmt, args);
 
        va_end(args);
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 }
 
@@ -315,6 +321,7 @@ void Debug_Leave(char *FuncName, char RetType, ...)
 
        // No Return
        if(RetType == '-') {
+               Debug_Putchar('\r');
                Debug_Putchar('\n');
                return;
        }
@@ -331,6 +338,7 @@ void Debug_Leave(char *FuncName, char RetType, ...)
        // Extended (64-Bit)
        case 'X':       Debug_Fmt("0x%llx", args);      break;
        }
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 
        va_end(args);
@@ -341,7 +349,7 @@ void Debug_HexDump(char *Header, void *Data, Uint Length)
        Uint8   *cdat = Data;
        Uint    pos = 0;
        Debug_Puts(1, Header);
-       LogF(" (Hexdump of %p)\n", Data);
+       LogF(" (Hexdump of %p)\r\n", Data);
 
        while(Length >= 16)
        {
@@ -368,6 +376,7 @@ void Debug_HexDump(char *Header, void *Data, Uint Length)
                Length--;
                cdat ++;
        }
+       Debug_Putchar('\r');
        Debug_Putchar('\n');
 }
 

UCC git Repository :: git.ucc.asn.au