trace_config.c

#include "kernel_impl.h"
#include "task.h"
#include "time_event.h"
#include <sil.h>

ソースコードを見る。

関数

void trace_initialize (intptr_t exinf)
ER trace_sta_log (MODE mode)
ER trace_wri_log (TRACE *p_trace)
ER trace_rea_log (TRACE *p_trace)
void trace_write_0 (uint_t type)
void trace_write_1 (uint_t type, intptr_t arg1)
void trace_write_2 (uint_t type, intptr_t arg1, intptr_t arg2)
void trace_write_3 (uint_t type, intptr_t arg1, intptr_t arg2, intptr_t arg3)
void log_dsp_enter (TCB *p_tcb)
void log_dsp_leave (TCB *p_tcb)
void log_inh_enter (INHNO inhno)
void log_inh_leave (INHNO inhno)
void log_exc_enter (EXCNO excno)
void log_exc_leave (EXCNO excno)

変数

SYSLOG trace_buffer [TCNT_TRACE_BUFFER]
uint_t trace_count
uint_t trace_head
uint_t trace_tail
MODE trace_mode


関数

void log_dsp_enter ( TCB p_tcb  ) 

trace_config.c215 行で定義されています。

参照先 LOG_ENTER, LOG_TYPE_DSP, と trace_1.

00216 {
00217     trace_1(LOG_TYPE_DSP|LOG_ENTER, p_tcb);
00218 }

void log_dsp_leave ( TCB p_tcb  ) 

trace_config.c221 行で定義されています。

参照先 LOG_LEAVE, LOG_TYPE_DSP, と trace_1.

00222 {
00223     trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb);
00224 }

void log_exc_enter ( EXCNO  excno  ) 

trace_config.c239 行で定義されています。

参照先 LOG_ENTER, LOG_TYPE_EXC, と trace_1.

00240 {
00241     trace_1(LOG_TYPE_EXC|LOG_ENTER, excno);
00242 }

void log_exc_leave ( EXCNO  excno  ) 

trace_config.c245 行で定義されています。

参照先 LOG_LEAVE, LOG_TYPE_EXC, と trace_1.

00246 {
00247     trace_1(LOG_TYPE_EXC|LOG_LEAVE, excno);
00248 }

void log_inh_enter ( INHNO  inhno  ) 

trace_config.c227 行で定義されています。

参照先 LOG_ENTER, LOG_TYPE_INH, と trace_1.

00228 {
00229     trace_1(LOG_TYPE_INH|LOG_ENTER, inhno);
00230 }

void log_inh_leave ( INHNO  inhno  ) 

trace_config.c233 行で定義されています。

参照先 LOG_LEAVE, LOG_TYPE_INH, と trace_1.

00234 {
00235     trace_1(LOG_TYPE_INH|LOG_LEAVE, inhno);
00236 }

void trace_initialize ( intptr_t  exinf  ) 

trace_config.c65 行で定義されています。

参照先 trace_count, trace_head, trace_mode, と trace_tail.

00066 {
00067     MODE    mode = ((MODE) exinf);
00068 
00069     trace_count = 0U;
00070     trace_head = trace_tail = 0U;
00071     trace_mode = mode;
00072 }     

ER trace_rea_log ( TRACE p_trace  ) 

trace_config.c136 行で定義されています。

参照先 E_OBJ, E_OK, SIL_LOC_INT, SIL_PRE_LOC, SIL_UNL_INT, TCNT_TRACE_BUFFER, trace_count, と trace_head.

参照元 trace_dump().

00137 {
00138     ER_UINT ercd;
00139     SIL_PRE_LOC;
00140 
00141     SIL_LOC_INT();
00142 
00143     /*
00144      *  トレースログバッファからの取出し
00145      */
00146     if (trace_count > 0U) {
00147         *p_trace = trace_buffer[trace_head];
00148         trace_count--;
00149         trace_head++;
00150         if (trace_head >= TCNT_TRACE_BUFFER) {
00151             trace_head = 0U;
00152         }
00153         ercd = E_OK;
00154     }
00155     else {
00156         ercd = E_OBJ;
00157     }
00158 
00159     SIL_UNL_INT();
00160     return(ercd);
00161 }

ER trace_sta_log ( MODE  mode  ) 

trace_config.c78 行で定義されています。

参照先 E_OK, TRACE_CLEAR, trace_count, trace_head, trace_mode, と trace_tail.

00079 {
00080     if ((mode & TRACE_CLEAR) != 0U) {
00081         trace_count = 0U;
00082         trace_head = trace_tail = 0U;
00083     }
00084     trace_mode = mode;
00085     return(E_OK);
00086 }     

ER trace_wri_log ( TRACE p_trace  ) 

trace_config.c92 行で定義されています。

参照先 E_OK, SYSLOG::logtim, SIL_LOC_INT, SIL_PRE_LOC, SIL_UNL_INT, TCNT_TRACE_BUFFER, TRACE_AUTOSTOP, trace_count, TRACE_GET_TIM, trace_head, trace_mode, TRACE_STOP, と trace_tail.

参照元 trace_write_0(), trace_write_1(), trace_write_2(), と trace_write_3().

00093 {
00094     SIL_PRE_LOC;
00095 
00096     if (trace_mode != TRACE_STOP) {
00097         SIL_LOC_INT();
00098 
00099         /*
00100          *  トレース時刻の設定
00101          *
00102          *  LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換
00103          *  えてしまうのは気持ちが悪いが,wri_logの方で上書きするため問
00104          *  題はない.
00105          */
00106         p_trace->logtim = TRACE_GET_TIM();
00107 
00108         /*
00109          *  トレースバッファに記録
00110          */
00111         trace_buffer[trace_tail] = *p_trace;
00112         trace_tail++;
00113         if (trace_tail >= TCNT_TRACE_BUFFER) {
00114             trace_tail = 0U;
00115         }
00116         if (trace_count < TCNT_TRACE_BUFFER) {
00117             trace_count++;
00118             if (trace_count >= TCNT_TRACE_BUFFER
00119                         && (trace_mode & TRACE_AUTOSTOP) != 0U) {
00120                 trace_mode = TRACE_STOP;
00121             }
00122         }
00123         else {
00124             trace_head = trace_tail;
00125         }
00126 
00127         SIL_UNL_INT();
00128     }
00129     return(E_OK);
00130 }

void trace_write_0 ( uint_t  type  ) 

trace_config.c168 行で定義されています。

参照先 SYSLOG::logtype, と trace_wri_log().

00169 {
00170     TRACE   trace;
00171 
00172     trace.logtype = type;
00173     (void) trace_wri_log(&trace);
00174 }

void trace_write_1 ( uint_t  type,
intptr_t  arg1 
)

trace_config.c177 行で定義されています。

参照先 SYSLOG::loginfo, SYSLOG::logtype, と trace_wri_log().

00178 {
00179     TRACE   trace;
00180 
00181     trace.logtype = type;
00182     trace.loginfo[0] = arg1;
00183     (void) trace_wri_log(&trace);
00184 }

void trace_write_2 ( uint_t  type,
intptr_t  arg1,
intptr_t  arg2 
)

trace_config.c187 行で定義されています。

参照先 SYSLOG::loginfo, SYSLOG::logtype, と trace_wri_log().

00188 {
00189     TRACE   trace;
00190 
00191     trace.logtype = type;
00192     trace.loginfo[0] = arg1;
00193     trace.loginfo[1] = arg2;
00194     (void) trace_wri_log(&trace);
00195 }

void trace_write_3 ( uint_t  type,
intptr_t  arg1,
intptr_t  arg2,
intptr_t  arg3 
)

trace_config.c198 行で定義されています。

参照先 SYSLOG::loginfo, SYSLOG::logtype, と trace_wri_log().

00199 {
00200     TRACE   trace;
00201 
00202     trace.logtype = type;
00203     trace.loginfo[0] = arg1;
00204     trace.loginfo[1] = arg2;
00205     trace.loginfo[2] = arg3;
00206     (void) trace_wri_log(&trace);
00207 }


変数

SYSLOG trace_buffer[TCNT_TRACE_BUFFER]

trace_config.c55 行で定義されています。

trace_config.c56 行で定義されています。

参照元 trace_initialize(), trace_rea_log(), trace_sta_log(), と trace_wri_log().

trace_config.c57 行で定義されています。

参照元 trace_initialize(), trace_rea_log(), trace_sta_log(), と trace_wri_log().

trace_config.c59 行で定義されています。

参照元 trace_initialize(), trace_sta_log(), と trace_wri_log().

trace_config.c58 行で定義されています。

参照元 trace_initialize(), trace_sta_log(), と trace_wri_log().


Copyright © 2008 by Kijineko Inc.

ホームページ制作