#define GDB_SERIAL_PORT 0x2F8
#define DEBUG_MAX_LINE_LEN 256
+#define LOCK_DEBUG_OUTPUT 0
+
// === IMPORTS ===
extern void Threads_Dump(void);
extern void KernelPanic_SetMode(void);
int gbGDB_SerialSetup = 0;
int gbDebug_IsKPanic = 0;
volatile int gbInPutChar = 0;
+#if LOCK_DEBUG_OUTPUT
+tSpinlock glDebug_Lock;
+#endif
// === CODE ===
int putDebugChar(char ch)
{
va_list args;
+ #if LOCK_DEBUG_OUTPUT
+ VTIGHTLOCK(&glDebug_Lock);
+ #endif
+
va_start(args, Fmt);
Debug_Fmt(Fmt, args);
va_end(args);
+
+ #if LOCK_DEBUG_OUTPUT
+ RELEASE(&glDebug_Lock);
+ #endif
}
/**
* \fn void Debug(char *Msg, ...)
void Debug(char *Fmt, ...)
{
va_list args;
+
+ #if LOCK_DEBUG_OUTPUT
+ LOCK(&glDebug_Lock);
+ #endif
Debug_Puts(0, "Debug: ");
va_start(args, Fmt);
va_end(args);
Debug_PutCharDebug('\r');
Debug_PutCharDebug('\n');
+ #if LOCK_DEBUG_OUTPUT
+ RELEASE(&glDebug_Lock);
+ #endif
}
/**
* \fn void Log(char *Msg, ...)
void Log(char *Fmt, ...)
{
va_list args;
+
+ #if LOCK_DEBUG_OUTPUT
+ LOCK(&glDebug_Lock);
+ #endif
Debug_Puts(1, "Log: ");
va_start(args, Fmt);
va_end(args);
Debug_Putchar('\r');
Debug_Putchar('\n');
+
+ #if LOCK_DEBUG_OUTPUT
+ RELEASE(&glDebug_Lock);
+ #endif
}
void Warning(char *Fmt, ...)
{
va_list args;
+
+ #if LOCK_DEBUG_OUTPUT
+ LOCK(&glDebug_Lock);
+ #endif
+
Debug_Puts(1, "Warning: ");
va_start(args, Fmt);
Debug_Fmt(Fmt, args);
va_end(args);
Debug_Putchar('\r');
Debug_Putchar('\n');
+
+ #if LOCK_DEBUG_OUTPUT
+ RELEASE(&glDebug_Lock);
+ #endif
}
void Panic(char *Fmt, ...)
{
va_list args;
+ #if LOCK_DEBUG_OUTPUT
+ LOCK(&glDebug_Lock);
+ #endif
+ // And never release
+
Debug_KernelPanic();
Debug_Puts(1, "Panic: ");
va_list args;
int i = --gDebug_Level;
+ #if LOCK_DEBUG_OUTPUT
+ LOCK(&glDebug_Lock);
+ #endif
+
va_start(args, RetType);
if( i == -1 ) {
*/
void Log_Int_PrintMessage(tLogEntry *Entry)
{
- //LOCK( &glLogOutput );
+ LOCK( &glLogOutput );
LogF("%s%014lli%s [%+8s] %s\x1B[0m\r\n",
csaLevelColours[Entry->Level],
Entry->Time,
Entry->Ident,
Entry->Data
);
- //RELEASE( &glLogOutput );
+ RELEASE( &glLogOutput );
}
/**