X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fdebug.c;h=1fe332ccde72d4e26c437fd7c0cde9ab79826e02;hb=30e30d7bc325852a8677819d11a47373b08d6271;hp=3a03842466aa97f2442c9c9e62ace9d1272be0d8;hpb=dea6bcf35a3f52396724d74e47f71cb3afade37c;p=tpg%2Facess2.git diff --git a/Kernel/debug.c b/Kernel/debug.c index 3a038424..1fe332cc 100644 --- a/Kernel/debug.c +++ b/Kernel/debug.c @@ -1,6 +1,8 @@ /* * AcessOS Microkernel Version * debug.c + * + * TODO: Move the Debug_putchar methods out to the arch/ tree */ #include #include @@ -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 @@ -260,14 +261,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(' ');