From 12728bcdff4c983215c6ac26f1bbdd2e9512f64b Mon Sep 17 00:00:00 2001 From: Grissiom Date: Thu, 10 Apr 2014 21:10:27 +0800 Subject: [PATCH] logtrace: add const modifier to the APIs Compiler may do more optimization when the parameter is const. --- components/utilities/logtrace/log_trace.c | 16 ++++++++-------- components/utilities/logtrace/log_trace.h | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/components/utilities/logtrace/log_trace.c b/components/utilities/logtrace/log_trace.c index 1d0a42725e..fa9cb8d34d 100644 --- a/components/utilities/logtrace/log_trace.c +++ b/components/utilities/logtrace/log_trace.c @@ -42,7 +42,7 @@ static rt_device_t _traceout_device = RT_NULL; /* define a default lg session. The name is empty. */ static struct log_trace_session _def_session = {{"\0"}, LOG_TRACE_LEVEL_INFO}; -static struct log_trace_session *_the_sessions[LOG_TRACE_MAX_SESSION] = {&_def_session}; +static const struct log_trace_session *_the_sessions[LOG_TRACE_MAX_SESSION] = {&_def_session}; /* there is a default session at least */ static rt_uint16_t _the_sess_nr = 1; @@ -83,11 +83,11 @@ rt_inline int _idname_len(log_trace_idnum_t id) */ static struct log_trace_session* _lg_lookup_session(log_trace_idnum_t num) { - static struct log_trace_session *_cache = &_def_session; + static const struct log_trace_session *_cache = &_def_session; rt_uint16_t first, last; if (_cache->id.num == num) - return _cache; + return (struct log_trace_session *)_cache; first = 0; last = _the_sess_nr; @@ -104,7 +104,7 @@ static struct log_trace_session* _lg_lookup_session(log_trace_idnum_t num) * process and we wrote the old one to _cache. But it doesn't harm * a lot because it will be flushed in the next time. */ _cache = _the_sessions[i]; - return _the_sessions[i]; + return (struct log_trace_session *)_the_sessions[i]; } else if (_the_sessions[i]->id.num > num) { @@ -119,7 +119,7 @@ static struct log_trace_session* _lg_lookup_session(log_trace_idnum_t num) return RT_NULL; } -rt_err_t log_trace_register_session(struct log_trace_session *session) +rt_err_t log_trace_register_session(const struct log_trace_session *session) { unsigned int lvl, i; @@ -255,8 +255,8 @@ static rt_size_t _lg_parse_session( return 0; } -static void _lg_fmtout( - struct log_trace_session *session, const char *fmt, va_list argptr) +void _lg_fmtout( + const struct log_trace_session *session, const char *fmt, va_list argptr) { /* 1 for ']' */ static char _trace_buf[1+LOG_TRACE_BUFSZ]; @@ -308,7 +308,7 @@ void log_trace(const char *fmt, ...) } FINSH_FUNCTION_EXPORT(log_trace, log trace); -void log_session(struct log_trace_session *session, const char *fmt, ...) +void log_session(const struct log_trace_session *session, const char *fmt, ...) { va_list args; int level; diff --git a/components/utilities/logtrace/log_trace.h b/components/utilities/logtrace/log_trace.h index 77e1f08b6c..04f89ac841 100644 --- a/components/utilities/logtrace/log_trace.h +++ b/components/utilities/logtrace/log_trace.h @@ -1,7 +1,7 @@ /* * File : log_trace.h * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * COPYRIGHT (C) 2013-2014, RT-Thread Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -95,7 +95,7 @@ void log_trace_init(void); * * @return RT_EOK on success. -RT_EFULL if there is no space for registration. */ -rt_err_t log_trace_register_session(struct log_trace_session *session); +rt_err_t log_trace_register_session(const struct log_trace_session *session); /** find a session with name * @@ -130,7 +130,7 @@ void log_trace(const char *fmt, ...); * "[systick][name]log messages". The name is the name of the session. It is * faster than bare log_trace. */ -void log_session(struct log_trace_session *session, const char *fmt, ...); +void log_session(const struct log_trace_session *session, const char *fmt, ...); /* here comes the global part. All sessions share the some output backend. */ -- GitLab