syslog.c

#include <sil.h>
#include <t_syslog.h>
#include <log_output.h>
#include "target_syssvc.h"
#include "syslog.h"

ソースコードを見る。

マクロ定義

#define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog)
#define LOG_SYSLOG_WRI_LOG_LEAVE(ercd)
#define LOG_SYSLOG_REA_LOG_ENTER(p_syslog)
#define LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog)
#define LOG_SYSLOG_MSK_LOG_ENTER(logmask, lowmask)
#define LOG_SYSLOG_MSK_LOG_LEAVE(ercd)
#define LOG_SYSLOG_REF_LOG_ENTER(pk_rlog)
#define LOG_SYSLOG_REF_LOG_LEAVE(pk_rlog)

関数

void syslog_initialize (intptr_t exinf)
ER syslog_wri_log (uint_t prio, SYSLOG *p_syslog)
ER_UINT syslog_rea_log (SYSLOG *p_syslog)
ER syslog_msk_log (uint_t logmask, uint_t lowmask)
ER_UINT syslog_ref_log (T_SYSLOG_RLOG *pk_rlog)

変数

ulong_t _kernel_current_time
static SYSLOG syslog_buffer [TCNT_SYSLOG_BUFFER]
static uint_t syslog_count
static uint_t syslog_head
static uint_t syslog_tail
static uint_t syslog_lost
static uint_t syslog_logmask
static uint_t syslog_lowmask


マクロ定義

#define LOG_SYSLOG_MSK_LOG_ENTER ( logmask,
lowmask   ) 

syslog.c74 行で定義されています。

参照元 syslog_msk_log().

#define LOG_SYSLOG_MSK_LOG_LEAVE ( ercd   ) 

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

参照元 syslog_msk_log().

#define LOG_SYSLOG_REA_LOG_ENTER ( p_syslog   ) 

syslog.c66 行で定義されています。

参照元 syslog_rea_log().

#define LOG_SYSLOG_REA_LOG_LEAVE ( ercd,
p_syslog   ) 

syslog.c70 行で定義されています。

参照元 syslog_rea_log().

#define LOG_SYSLOG_REF_LOG_ENTER ( pk_rlog   ) 

syslog.c82 行で定義されています。

参照元 syslog_ref_log().

#define LOG_SYSLOG_REF_LOG_LEAVE ( pk_rlog   ) 

syslog.c86 行で定義されています。

参照元 syslog_ref_log().

#define LOG_SYSLOG_WRI_LOG_ENTER ( prio,
p_syslog   ) 

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

#define LOG_SYSLOG_WRI_LOG_LEAVE ( ercd   ) 

syslog.c62 行で定義されています。

参照元 syslog_wri_log().


関数

void syslog_initialize ( intptr_t  exinf  ) 

syslog.c116 行で定義されています。

参照先 LOG_NOTICE, LOG_UPTO, syslog_count, syslog_head, syslog_logmask, syslog_lost, syslog_lowmask, と syslog_tail.

00117 {
00118     syslog_count = 0U;
00119     syslog_head = syslog_tail = 0U;
00120     syslog_lost = 0U;
00121 
00122     syslog_logmask = 0U;
00123     syslog_lowmask = LOG_UPTO(LOG_NOTICE);
00124 }     

ER syslog_msk_log ( uint_t  logmask,
uint_t  lowmask 
)

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

参照先 E_OK, LOG_SYSLOG_MSK_LOG_ENTER, LOG_SYSLOG_MSK_LOG_LEAVE, syslog_logmask, と syslog_lowmask.

参照元 logtask_main(), と main_task().

00216 {
00217     LOG_SYSLOG_MSK_LOG_ENTER(logmask, lowmask);
00218     syslog_logmask = logmask;
00219     syslog_lowmask = lowmask;
00220     LOG_SYSLOG_MSK_LOG_LEAVE(E_OK);
00221     return(E_OK);
00222 }

ER_UINT syslog_rea_log ( SYSLOG p_syslog  ) 

syslog.c181 行で定義されています。

参照先 E_OBJ, LOG_SYSLOG_REA_LOG_ENTER, LOG_SYSLOG_REA_LOG_LEAVE, SIL_LOC_INT, SIL_PRE_LOC, SIL_UNL_INT, syslog_count, syslog_head, syslog_lost, と TCNT_SYSLOG_BUFFER.

参照元 logtask_main(), と logtask_terminate().

00182 {
00183     ER_UINT ercd;
00184     SIL_PRE_LOC;
00185 
00186     LOG_SYSLOG_REA_LOG_ENTER(p_syslog);
00187     SIL_LOC_INT();
00188 
00189     /*
00190      *  ログバッファからの取出し
00191      */
00192     if (syslog_count > 0U) {
00193         *p_syslog = syslog_buffer[syslog_head];
00194         syslog_count--;
00195         syslog_head++;
00196         if (syslog_head >= TCNT_SYSLOG_BUFFER) {
00197             syslog_head = 0U;
00198         }
00199         ercd = (ER_UINT) syslog_lost;
00200         syslog_lost = 0U;
00201     }
00202     else {
00203         ercd = E_OBJ;
00204     }
00205 
00206     SIL_UNL_INT();
00207     LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog);
00208     return(ercd);
00209 }

ER_UINT syslog_ref_log ( T_SYSLOG_RLOG pk_rlog  ) 

syslog.c228 行で定義されています。

参照先 t_syslog_rlog::count, E_OK, LOG_SYSLOG_REF_LOG_ENTER, LOG_SYSLOG_REF_LOG_LEAVE, t_syslog_rlog::logmask, t_syslog_rlog::lost, t_syslog_rlog::lowmask, SIL_LOC_INT, SIL_PRE_LOC, SIL_UNL_INT, syslog_count, syslog_logmask, syslog_lost, と syslog_lowmask.

参照元 logtask_flush().

00229 {
00230     SIL_PRE_LOC;
00231 
00232     LOG_SYSLOG_REF_LOG_ENTER(pk_rlog);
00233     SIL_LOC_INT();
00234 
00235     pk_rlog->count = syslog_count;
00236     pk_rlog->lost = syslog_lost;
00237     pk_rlog->logmask = syslog_logmask;
00238     pk_rlog->lowmask = syslog_lowmask;
00239 
00240     SIL_UNL_INT();
00241     LOG_SYSLOG_REF_LOG_LEAVE(pk_rlog);
00242     return(E_OK);
00243 }

ER syslog_wri_log ( uint_t  prio,
SYSLOG p_syslog 
)

syslog.c132 行で定義されています。

参照先 _kernel_current_time, E_OK, LOG_MASK, LOG_SYSLOG_WRI_LOG_ENTER, LOG_SYSLOG_WRI_LOG_LEAVE, SYSLOG::logtim, SIL_LOC_INT, SIL_PRE_LOC, SIL_UNL_INT, syslog_count, syslog_head, syslog_logmask, syslog_lost, syslog_lowmask, syslog_print(), syslog_tail, target_fput_log(), と TCNT_SYSLOG_BUFFER.

参照元 _syslog_0(), _syslog_1(), _syslog_2(), _syslog_3(), _syslog_4(), _syslog_5(), _syslog_6(), と syslog().

00133 {
00134     SIL_PRE_LOC;
00135 
00136     LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog);
00137     SIL_LOC_INT();
00138 
00139     /*
00140      *  ログ時刻の設定
00141      */
00142     p_syslog->logtim = _kernel_current_time;
00143 
00144     /*
00145      *  ログバッファに記録
00146      */
00147     if ((syslog_logmask & LOG_MASK(prio)) != 0U) {
00148         syslog_buffer[syslog_tail] = *p_syslog;
00149         syslog_tail++;
00150         if (syslog_tail >= TCNT_SYSLOG_BUFFER) {
00151             syslog_tail = 0U;
00152         }
00153         if (syslog_count < TCNT_SYSLOG_BUFFER) {
00154             syslog_count++;
00155         }
00156         else {
00157             syslog_head = syslog_tail;
00158             syslog_lost++;
00159         }
00160     }
00161 
00162     /*
00163      *  低レベル出力
00164      */
00165     if ((syslog_lowmask & LOG_MASK(prio)) != 0U) {
00166         syslog_print(p_syslog, target_fput_log);
00167         (*target_fput_log)('\n');
00168     }
00169 
00170     SIL_UNL_INT();
00171     LOG_SYSLOG_WRI_LOG_LEAVE(E_OK);
00172     return(E_OK);
00173 }


変数

参照元 syslog_wri_log().

SYSLOG syslog_buffer[TCNT_SYSLOG_BUFFER] [static]

syslog.c100 行で定義されています。

uint_t syslog_count [static]

syslog.c101 行で定義されています。

参照元 syslog_initialize(), syslog_rea_log(), syslog_ref_log(), と syslog_wri_log().

uint_t syslog_head [static]

syslog.c102 行で定義されています。

参照元 syslog_initialize(), syslog_rea_log(), と syslog_wri_log().

syslog.c109 行で定義されています。

参照元 syslog_initialize(), syslog_msk_log(), syslog_ref_log(), と syslog_wri_log().

uint_t syslog_lost [static]

syslog.c104 行で定義されています。

参照元 syslog_initialize(), syslog_rea_log(), syslog_ref_log(), と syslog_wri_log().

syslog.c110 行で定義されています。

参照元 syslog_initialize(), syslog_msk_log(), syslog_ref_log(), と syslog_wri_log().

uint_t syslog_tail [static]

syslog.c103 行で定義されています。

参照元 syslog_initialize(), と syslog_wri_log().


Copyright © 2008 by Kijineko Inc.

ホームページ制作