#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 | ) |
#define LOG_SYSLOG_MSK_LOG_LEAVE | ( | ercd | ) |
#define LOG_SYSLOG_REA_LOG_ENTER | ( | p_syslog | ) |
#define LOG_SYSLOG_REA_LOG_LEAVE | ( | ercd, | |||
p_syslog | ) |
#define LOG_SYSLOG_REF_LOG_ENTER | ( | pk_rlog | ) |
#define LOG_SYSLOG_REF_LOG_LEAVE | ( | pk_rlog | ) |
#define LOG_SYSLOG_WRI_LOG_LEAVE | ( | ercd | ) |
void syslog_initialize | ( | intptr_t | exinf | ) |
参照先 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 }
参照先 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 }
参照先 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 | ) |
参照先 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 }
参照先 _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 syslog_buffer[TCNT_SYSLOG_BUFFER] [static] |
uint_t syslog_count [static] |
uint_t syslog_head [static] |
uint_t syslog_logmask [static] |
uint_t syslog_lost [static] |
uint_t syslog_lowmask [static] |
uint_t syslog_tail [static] |
Copyright © 2008 by Kijineko Inc.