diff --git a/runtime/libcore/src/memory.c b/runtime/libcore/src/memory.c index ccc0e67..03471c5 100644 --- a/runtime/libcore/src/memory.c +++ b/runtime/libcore/src/memory.c @@ -222,81 +222,97 @@ int smcc_memcmp(const void *s1, const void *s2, usize n) { i = 15; break; } + /* fall through */ case 15: if (p1[14] != p2[14]) { i = 14; break; } + /* fall through */ case 14: if (p1[13] != p2[13]) { i = 13; break; } + /* fall through */ case 13: if (p1[12] != p2[12]) { i = 12; break; } + /* fall through */ case 12: if (p1[11] != p2[11]) { i = 11; break; } + /* fall through */ case 11: if (p1[10] != p2[10]) { i = 10; break; } + /* fall through */ case 10: if (p1[9] != p2[9]) { i = 9; break; } + /* fall through */ case 9: if (p1[8] != p2[8]) { i = 8; break; } + /* fall through */ case 8: if (p1[7] != p2[7]) { i = 7; break; } + /* fall through */ case 7: if (p1[6] != p2[6]) { i = 6; break; } + /* fall through */ case 6: if (p1[5] != p2[5]) { i = 5; break; } + /* fall through */ case 5: if (p1[4] != p2[4]) { i = 4; break; } + /* fall through */ case 4: if (p1[3] != p2[3]) { i = 3; break; } + /* fall through */ case 3: if (p1[2] != p2[2]) { i = 2; break; } + /* fall through */ case 2: if (p1[1] != p2[1]) { i = 1; break; } + /* fall through */ case 1: if (p1[0] != p2[0]) { i = 0; break; } + /* fall through */ default: break; } diff --git a/runtime/log/include/log.c b/runtime/log/include/log.c index d9cbd00..cf161ec 100644 --- a/runtime/log/include/log.c +++ b/runtime/log/include/log.c @@ -67,7 +67,7 @@ void log_default_handler(log_level_t level, const char *module, } } -logger_t logger_root = { +logger_t __default_logger_root = { .name = "root", .level = LOG_LEVEL_ALL, .handler = log_default_handler, @@ -79,20 +79,20 @@ void init_logger(logger_t *logger, const char *name) { log_set_level(logger, LOG_LEVEL_ALL); } -logger_t *log_get(const char *name) { return &logger_root; } +logger_t *log_get(const char *name) { return &__default_logger_root; } void log_set_level(logger_t *logger, int level) { if (logger) logger->level = level; else - logger_root.level = level; + __default_logger_root.level = level; } void log_set_handler(logger_t *logger, log_handler handler) { if (logger) logger->handler = handler; else - logger_root.handler = handler; + __default_logger_root.handler = handler; } void logger_destroy(logger_t *logger) { return; } diff --git a/runtime/log/include/log.h b/runtime/log/include/log.h index 456b7a1..1efa031 100644 --- a/runtime/log/include/log.h +++ b/runtime/log/include/log.h @@ -77,7 +77,7 @@ typedef struct logger { void log_default_handler(log_level_t level, const char *module, const char *file, int line, const char *message); -extern logger_t logger_root; +extern logger_t __default_logger_root; /** * @brief 初始化日志实例 其余参数设置为默认值 @@ -129,11 +129,7 @@ void logger_destroy(logger_t *logger); */ #define _LOG(_module_, _level_, _msg_, ...) \ do { \ - logger_t *_logger; \ - if (!_module_) { \ - _logger = log_get(NULL); \ - } else \ - _logger = _module_; \ + logger_t *_logger = _module_; \ if (_logger && _logger->handler && (_logger->level & (_level_))) { \ log_snprintf(_logger->buf, sizeof(_logger->buf), (_msg_), \ ##__VA_ARGS__); \ @@ -142,41 +138,29 @@ void logger_destroy(logger_t *logger); } \ } while (0) +/* clang-format off */ /// @name 模块日志宏 /// @{ -#define MLOG_NOTSET(module, ...) \ - _LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 -#define MLOG_DEBUG(module, ...) \ - _LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) -#define MLOG_INFO(module, ...) \ - _LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) -#define MLOG_WARN(module, ...) \ - _LOG(module, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题) -#define MLOG_ERROR(module, ...) \ - _LOG(module, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误) -#define MLOG_FATAL(module, ...) \ - _LOG(module, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前) -#define MLOG_TRACE(module, ...) \ - _LOG(module, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪) +#define MLOG_NOTSET(module, ...)_LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 +#define MLOG_DEBUG(module, ...) _LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) +#define MLOG_INFO(module, ...) _LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) +#define MLOG_WARN(module, ...) _LOG(module, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题) +#define MLOG_ERROR(module, ...) _LOG(module, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误) +#define MLOG_FATAL(module, ...) _LOG(module, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前) +#define MLOG_TRACE(module, ...) _LOG(module, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪) /// @} /// @name 快捷日志宏 /// @{ -#define LOG_NOTSET(...) \ - _LOG(NULL, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 -#define LOG_DEBUG(...) \ - _LOG(NULL, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) -#define LOG_INFO(...) \ - _LOG(NULL, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) -#define LOG_WARN(...) \ - _LOG(NULL, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题) -#define LOG_ERROR(...) \ - _LOG(NULL, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误) -#define LOG_FATAL(...) \ - _LOG(NULL, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前) -#define LOG_TRACE(...) \ - _LOG(NULL, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪) +#define LOG_NOTSET(...) _LOG(&__default_logger_root, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 +#define LOG_DEBUG(...) _LOG(&__default_logger_root, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) +#define LOG_INFO(...) _LOG(&__default_logger_root, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) +#define LOG_WARN(...) _LOG(&__default_logger_root, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题) +#define LOG_ERROR(...) _LOG(&__default_logger_root, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误) +#define LOG_FATAL(...) _LOG(&__default_logger_root, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前) +#define LOG_TRACE(...) _LOG(&__default_logger_root, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪) /// @} +/* clang-format on */ /** * @def _Assert