X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FKernel%2Flogging.c;h=5149e021c2d24bab5ccfad989dc1bc0b18f2c706;hb=015f48988e0ff398409d71dfc692005ab439490a;hp=b419be3d695b28a4c0b1ecb8239dcd7da83f711c;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/logging.c b/KernelLand/Kernel/logging.c index b419be3d..5149e021 100644 --- a/KernelLand/Kernel/logging.c +++ b/KernelLand/Kernel/logging.c @@ -69,14 +69,16 @@ EXPORT(Log_Debug); // === GLOBALS === tShortSpinlock glLogOutput; -#if USE_RING_BUFFER +#if CACHE_MESSAGES +# if USE_RING_BUFFER Uint8 gaLog_RingBufferData[sizeof(tRingBuffer)+RING_BUFFER_SIZE]; tRingBuffer *gpLog_RingBuffer = (void*)gaLog_RingBufferData; -#else +# else tMutex glLog; tLogList gLog; tLogList gLog_Levels[NUM_LOG_LEVELS]; -#endif +# endif // USE_RING_BUFFER +#endif // CACHE_MESSAGES // === CODE === /** @@ -89,11 +91,9 @@ void Log_AddEvent(const char *Ident, int Level, const char *Format, va_list Args va_list args_tmp; if( Level >= NUM_LOG_LEVELS ) return; - + va_copy(args_tmp, Args); - len = vsnprintf(NULL, 256, Format, args_tmp); - - //Log("len = %i", len); + len = vsnprintf(NULL, 0, Format, args_tmp); #if USE_RING_BUFFER || !CACHE_MESSAGES { @@ -156,10 +156,14 @@ void Log_AddEvent(const char *Ident, int Level, const char *Format, va_list Args */ void Log_Int_PrintMessage(tLogEntry *Entry) { + if( CPU_HAS_LOCK(&glLogOutput) ) + return ; // TODO: Error? SHORTLOCK( &glLogOutput ); - LogF("%s%014lli%s [%-8s] %i - %s", + LogF("%s%014lli", csaLevelColours[Entry->Level], - Entry->Time, + Entry->Time + ); + LogF("%s [%-8s] %i - %s", csaLevelCodes[Entry->Level], Entry->Ident, Threads_GetTID(),