提交 12728bcd 编写于 作者: G Grissiom

logtrace: add const modifier to the APIs

Compiler may do more optimization when the parameter is const.
上级 abcef00c
......@@ -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;
......
/*
* 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. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册