GBA: Move logging construct into GBA struct
Jeffrey Pfau jeffrey@endrift.com
Thu, 05 Mar 2015 20:42:37 -0800
4 files changed,
11 insertions(+),
7 deletions(-)
M
src/gba/gba.c
→
src/gba/gba.c
@@ -547,10 +547,10 @@ MutexLock(&threadContext->stateMutex);
threadContext->state = THREAD_CRASHED; MutexUnlock(&threadContext->stateMutex); } - if (threadContext->logHandler) { - threadContext->logHandler(threadContext, level, format, args); - return; - } + } + if (gba->logHandler) { + gba->logHandler(threadContext, level, format, args); + return; } vprintf(format, args);
M
src/gba/gba.h
→
src/gba/gba.h
@@ -90,8 +90,11 @@ };
struct GBA; struct GBARotationSource; +struct GBAThread; struct Patch; struct VFile; + +typedef void (*GBALogHandler)(struct GBAThread*, enum GBALogLevel, const char* format, va_list args); struct GBATimer { uint16_t reload;@@ -141,7 +144,8 @@ struct VFile* biosVf;
const char* activeFile; - int logLevel; + GBALogHandler logHandler; + enum GBALogLevel logLevel; enum GBAIdleLoopOptimization idleOptimization; uint32_t idleLoop;
M
src/gba/supervisor/thread.c
→
src/gba/supervisor/thread.c
@@ -134,6 +134,7 @@ ARMInit(&cpu);
gba.sync = &threadContext->sync; threadContext->gba = &gba; gba.logLevel = threadContext->logLevel; + gba.logHandler = threadContext->logHandler; gba.idleOptimization = threadContext->idleOptimization; #ifdef USE_PTHREADS pthread_setspecific(_contextKey, threadContext);
M
src/gba/supervisor/thread.h
→
src/gba/supervisor/thread.h
@@ -20,7 +20,6 @@ struct GBACheatSet;
struct GBAOptions; typedef void (*ThreadCallback)(struct GBAThread* threadContext); -typedef void (*LogHandler)(struct GBAThread*, enum GBALogLevel, const char* format, va_list args); enum ThreadState { THREAD_INITIALIZED = -1,@@ -95,7 +94,7 @@ Condition stateCond;
enum ThreadState savedState; int interruptDepth; - LogHandler logHandler; + GBALogHandler logHandler; int logLevel; ThreadCallback startCallback; ThreadCallback cleanCallback;