From 46590f98d83da55b3820a35b8cc948d3c0605a86 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Tue, 2 Feb 2016 20:56:08 -0800 Subject: [PATCH] Core: Add category names --- src/core/log.c | 22 ++++++++++++++++++---- src/core/log.h | 8 +++++--- src/gb/gb.c | 2 +- src/gb/io.c | 2 +- src/gb/memory.c | 4 ++-- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/core/log.c b/src/core/log.c index b76134958..0795dd968 100644 --- a/src/core/log.c +++ b/src/core/log.c @@ -5,12 +5,26 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "log.h" +#define MAX_CATEGORY 64 + struct mLogger* mLogGetContext(void) { return NULL; // TODO } -int mLogGenerateCategory(void) { - static int category = 0; - ++category; - return category; +static int _category = 0; +static const char* _categoryNames[MAX_CATEGORY]; + +int mLogGenerateCategory(const char* name) { + ++_category; + if (_category < MAX_CATEGORY) { + _categoryNames[_category] = name; + } + return _category; +} + +const char* mLogCategoryName(int category) { + if (category < MAX_CATEGORY) { + return _categoryNames[category]; + } + return 0; } diff --git a/src/core/log.h b/src/core/log.h index 992d4977a..b47ce5eef 100644 --- a/src/core/log.h +++ b/src/core/log.h @@ -24,7 +24,8 @@ struct mLogger { }; struct mLogger* mLogGetContext(void); -int mLogGenerateCategory(void); +int mLogGenerateCategory(const char*); +const char* mLogCategoryName(int); ATTRIBUTE_FORMAT(printf, 3, 4) static inline void _mLog(int (*category)(void), enum mLogLevel level, const char* format, ...) { @@ -34,6 +35,7 @@ static inline void _mLog(int (*category)(void), enum mLogLevel level, const char if (context) { context->log(context, category(), level, format, args); } else { + printf("%s: ", mLogCategoryName(category())); vprintf(format, args); printf("\n"); } @@ -43,11 +45,11 @@ static inline void _mLog(int (*category)(void), enum mLogLevel level, const char #define mLOG(CATEGORY, LEVEL, ...) _mLog(_mLOG_CAT_ ## CATEGORY, mLOG_ ## LEVEL, __VA_ARGS__) #define mLOG_DECLARE_CATEGORY(CATEGORY) int _mLOG_CAT_ ## CATEGORY (void); -#define mLOG_DEFINE_CATEGORY(CATEGORY) \ +#define mLOG_DEFINE_CATEGORY(CATEGORY, NAME) \ int _mLOG_CAT_ ## CATEGORY (void) { \ static int category = 0; \ if (!category) { \ - category = mLogGenerateCategory(); \ + category = mLogGenerateCategory(NAME); \ } \ return category; \ } diff --git a/src/gb/gb.c b/src/gb/gb.c index 63841f7b2..8286d6029 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -20,7 +20,7 @@ const uint32_t SGB_LR35902_FREQUENCY = 0x418B1E; const uint32_t GB_COMPONENT_MAGIC = 0x400000; -mLOG_DEFINE_CATEGORY(GB); +mLOG_DEFINE_CATEGORY(GB, "GB"); static void GBInit(struct LR35902Core* cpu, struct LR35902Component* component); static void GBInterruptHandlerInit(struct LR35902InterruptHandler* irqh); diff --git a/src/gb/io.c b/src/gb/io.c index 9dad76e4a..8fcedde0a 100644 --- a/src/gb/io.c +++ b/src/gb/io.c @@ -7,7 +7,7 @@ #include "gb/gb.h" -mLOG_DEFINE_CATEGORY(GB_IO); +mLOG_DEFINE_CATEGORY(GB_IO, "GB I/O"); void GBIOInit(struct GB* gb) { memset(gb->memory.io, 0, sizeof(gb->memory.io)); diff --git a/src/gb/memory.c b/src/gb/memory.c index 121172d3f..e85062663 100644 --- a/src/gb/memory.c +++ b/src/gb/memory.c @@ -13,8 +13,8 @@ #include -mLOG_DEFINE_CATEGORY(GB_MBC); -mLOG_DEFINE_CATEGORY(GB_MEM); +mLOG_DEFINE_CATEGORY(GB_MBC, "GB MBC"); +mLOG_DEFINE_CATEGORY(GB_MEM, "GB Memory"); static void _GBMBCNone(struct GBMemory* memory, uint16_t address, uint8_t value) { UNUSED(memory);