#include <t_syslog.h>
マクロ定義 | |
#define | TCNT_SYSLOG_BUFFER 32 |
関数 | |
void | syslog_initialize (intptr_t exinf) throw () |
ER | syslog_wri_log (uint_t prio, SYSLOG *p_syslog) throw () |
ER_UINT | syslog_rea_log (SYSLOG *p_syslog) throw () |
ER | syslog_msk_log (uint_t logmask, uint_t lowmask) throw () |
ER | syslog_ref_log (T_SYSLOG_RLOG *pk_rlog) throw () |
#define TCNT_SYSLOG_BUFFER 32 |
void syslog_initialize | ( | intptr_t | exinf | ) | throw () |
参照先 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 syslog_ref_log | ( | T_SYSLOG_RLOG * | pk_rlog | ) | throw () |
参照先 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.
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 }
Copyright © 2008 by Kijineko Inc.