📄 t_syslog.h
字号:
/*
* TOPPERS/JSP Kernel
* Toyohashi Open Platform for Embedded Real-Time Systems/
* Just Standard Profile Kernel
*
* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
* Toyohashi Univ. of Technology, JAPAN
* Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
* Graduate School of Information Science, Nagoya Univ., JAPAN
*
* 忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
* 偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
* 弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
* 傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
* 棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
* (1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
* 尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
* 僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
* (2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
* 梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
* 幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
* 偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
* (3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
* 梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
* 偲丏
* (a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
* 嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
* (b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
* 曬崘偡傞偙偲丏
* (4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
* 奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
*
* 杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
* 傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
* 娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
* 愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
*
* @(#) $Id: t_syslog.h,v 1.4 2004/01/05 05:15:01 hiro Exp $
*/
/*
* 僔僗僥儉儘僌婡擻
*
* 僔僗僥儉儘僌僒乕價僗偼丆僔僗僥儉偺儘僌忣曬傪弌椡偡傞偨傔偺僒乕價僗
* 偱偁傞丏僇乕僱儖偐傜偺儘僌忣曬偺弌椡偵傕梡偄傞偨傔丆撪晹偱懸偪忬懺
* 偵偼偄傞偙偲偼側偄丏
*
* 儘僌忣曬偼丆僇乕僱儖撪偺儘僌僶僢僼傽偵彂偒崬傓偐丆掅儗儀儖偺暥帤弌
* 椡娭悢傪梡偄偰弌椡偡傞丏偳偪傜傪巊偆偐偼丆奼挘僒乕價僗僐乕儖偱愗傝
* 姺偊傞偙偲偑偱偒傞丏
*
* 儘僌僶僢僼傽椞堟偑僆乕僶僼儘乕偟偨応崌偵偼丆屆偄儘僌忣曬傪徚偟偰忋
* 彂偒偡傞丏
*
* 傾僙儞僽儕尵岅偺僜乕僗僼傽僀儖傗僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽
* 僀儖偐傜偙偺僼傽僀儖傪僀儞僋儖乕僪偡傞帪偼丆_MACRO_ONLY 傪掕媊偟偰
* 偍偔偙偲偱丆儅僋儘掕媊埲奜偺婰弎傪彍偔偙偲偑偱偒傞丏
*
* 偙偺僀儞僋儖乕僪僼傽僀儖偼丆kernel.h 偲 sil.h 偱僀儞僋儖乕僪偝傟傞丏
* 懠偺僼傽僀儖偐傜捈愙僀儞僋儖乕僪偝傟傞偙偲偼側偄丏
*
* 偙偺僼傽僀儖傪僀儞僋儖乕僪偡傞慜偵丆t_stddef.h 偲 itron.h 傪僀儞僋
* 儖乕僪偟偰偍偔偙偲偑昁梫偱偁傞丏
*/
#ifndef _T_SYSLOG_H_
#define _T_SYSLOG_H_
/*
* 儘僌忣曬偺庬暿偺掕媊
*
* LOG_TYPE_CYC丆LOG_TYPE_ASSERT 埲奜偼丆僨僶僢僊儞僌僀儞僞僼僃乕僗巇
* 條偲崌抳偟偰偄傞丏
*/
#define LOG_TYPE_INH 0x01u /* 妱崬傒僴儞僪儔 */
#define LOG_TYPE_ISR 0x02u /* 妱崬傒僒乕價僗儖乕僠儞 */
#define LOG_TYPE_CYC 0x03u /* 廃婜僴儞僪儔 */
#define LOG_TYPE_EXC 0x04u /* CPU椺奜僴儞僪儔 */
#define LOG_TYPE_TEX 0x05u /* 僞僗僋椺奜張棟儖乕僠儞 */
#define LOG_TYPE_TSKSTAT 0x06u /* 僞僗僋忬懺曄壔 */
#define LOG_TYPE_DSP 0x07u /* 僨傿僗僷僢僠儍 */
#define LOG_TYPE_SVC 0x08u /* 僒乕價僗僐乕儖 */
#define LOG_TYPE_COMMENT 0x09u /* 僐儊儞僩 */
#define LOG_TYPE_ASSERT 0x0au /* 傾僒乕僔儑儞偺幐攕 */
#define LOG_ENTER 0x00u /* 擖岥乛奐巒 */
#define LOG_LEAVE 0x80u /* 弌岥乛廔椆 */
/*
* 儘僌忣曬偺廳梫搙偺掕媊
*/
#define LOG_EMERG 0u /* 僔儍僢僩僟僂儞偵抣偡傞僄儔乕 */
#define LOG_ALERT 1u
#define LOG_CRIT 2u
#define LOG_ERROR 3u /* 僔僗僥儉僄儔乕 */
#define LOG_WARNING 4u /* 寈崘儊僢僙乕僕 */
#define LOG_NOTICE 5u
#define LOG_INFO 6u
#define LOG_DEBUG 7u /* 僨僶僢僌梡儊僢僙乕僕 */
#ifndef _MACRO_ONLY
/*
* 儘僌忣曬偺僨乕僞峔憿
*/
#define TMAX_LOGINFO 6
typedef struct {
UINT logtype; /* 儘僌忣曬偺庬暿 */
SYSTIM logtim; /* 儘僌帪崗 */
VP_INT loginfo[TMAX_LOGINFO]; /* 偦偺懠偺儘僌忣曬 */
} SYSLOG;
/*
* 儘僌忣曬偺廳梫搙偺價僢僩儅僢僾傪嶌傞偨傔偺儅僋儘
*/
#define LOG_MASK(prio) (1u << (prio))
#define LOG_UPTO(prio) ((1u << ((prio) + 1)) - 1)
#ifndef OMIT_SYSLOG
/*
* 儘僌忣曬偺弌椡
*/
extern ER vwri_log(UINT prio, SYSLOG *p_log) throw();
/*
* 儘僌僶僢僼傽偐傜偺儘僌忣曬偺撉弌偟
*/
extern ER_UINT vrea_log(SYSLOG *p_log) throw();
/*
* 弌椡偡傋偒儘僌忣曬偺廳梫搙偺愝掕
*/
extern ER vmsk_log(UINT logmask, UINT lowmask) throw();
/*
* 儘僌忣曬傪弌椡偡傞偨傔偺儔僀僽儔儕娭悢
*/
Inline ER
_syslog_0(UINT prio, UINT type)
{
SYSLOG log;
log.logtype = type;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_1(UINT prio, UINT type, VP_INT arg1)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_2(UINT prio, UINT type, VP_INT arg1, VP_INT arg2)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
log.loginfo[1] = arg2;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_3(UINT prio, UINT type, VP_INT arg1, VP_INT arg2, VP_INT arg3)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
log.loginfo[1] = arg2;
log.loginfo[2] = arg3;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_4(UINT prio, UINT type, VP_INT arg1, VP_INT arg2,
VP_INT arg3, VP_INT arg4)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
log.loginfo[1] = arg2;
log.loginfo[2] = arg3;
log.loginfo[3] = arg4;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_5(UINT prio, UINT type, VP_INT arg1, VP_INT arg2,
VP_INT arg3, VP_INT arg4, VP_INT arg5)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
log.loginfo[1] = arg2;
log.loginfo[2] = arg3;
log.loginfo[3] = arg4;
log.loginfo[4] = arg5;
return(vwri_log(prio, &log));
}
Inline ER
_syslog_6(UINT prio, UINT type, VP_INT arg1, VP_INT arg2, VP_INT arg3,
VP_INT arg4, VP_INT arg5, VP_INT arg6)
{
SYSLOG log;
log.logtype = type;
log.loginfo[0] = arg1;
log.loginfo[1] = arg2;
log.loginfo[2] = arg3;
log.loginfo[3] = arg4;
log.loginfo[4] = arg5;
log.loginfo[5] = arg6;
return(vwri_log(prio, &log));
}
#else /* OMIT_SYSLOG */
#define vwri_log(prio, p_log) E_OK
#define vrea_log(p_log) E_OK
#define vmsk_log(logmask, lowmask) E_OK
#define _syslog_0(prio, type) E_OK
#define _syslog_1(prio, type, arg1) E_OK
#define _syslog_2(prio, type, arg1, arg2) E_OK
#define _syslog_3(prio, type, arg1, arg2, arg3) E_OK
#define _syslog_4(prio, type, arg1, arg2, arg3, arg4) E_OK
#define _syslog_5(prio, type, arg1, arg2, arg3, arg4, arg5) E_OK
#define _syslog_6(prio, type, arg1, arg2, arg3, arg4, arg5, arg6) E_OK
#endif /* OMIT_SYSLOG */
/*
* 儘僌忣曬乮僐儊儞僩乯傪弌椡偡傞偨傔偺儅僋儘
*
* format 偍傛傃屻懕偺堷悢偐傜嶌惉偟偨儊僢僙乕僕傪丆廳戝搙 prio 偱
* 儘僌忣曬偲偟偰弌椡偡傞偨傔偺儅僋儘丏arg1乣argn 偼 VP_INT宆偵僉儍
* 僗僩偡傞偨傔丆VP_INT宆偵宆曄姺偱偒傞擟堄偺宆偱傛偄丏
*/
#define syslog_0(prio, format) \
_syslog_1(prio, LOG_TYPE_COMMENT, (VP_INT) format)
#define syslog_1(prio, format, arg1) \
_syslog_2(prio, LOG_TYPE_COMMENT, (VP_INT) format, \
(VP_INT)(arg1))
#define syslog_2(prio, format, arg1, arg2) \
_syslog_3(prio, LOG_TYPE_COMMENT, (VP_INT) format, \
(VP_INT)(arg1), (VP_INT)(arg2))
#define syslog_3(prio, format, arg1, arg2, arg3) \
_syslog_4(prio, LOG_TYPE_COMMENT, (VP_INT) format, \
(VP_INT)(arg1), (VP_INT)(arg2), (VP_INT)(arg3))
#define syslog_4(prio, format, arg1, arg2, arg3, arg4) \
_syslog_5(prio, LOG_TYPE_COMMENT, (VP_INT) format, \
(VP_INT)(arg1), (VP_INT)(arg2), (VP_INT)(arg3), \
(VP_INT)(arg4))
#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \
_syslog_6(prio, LOG_TYPE_COMMENT, (VP_INT) format, \
(VP_INT)(arg1), (VP_INT)(arg2), (VP_INT)(arg3), \
(VP_INT)(arg4), (VP_INT)(arg5))
/*
* 儘僌忣曬乮僐儊儞僩乯傪弌椡偡傞偨傔偺儔僀僽儔儕娭悢乮vasyslog.c乯
*/
extern ER syslog(UINT prio, const char *format, ...) throw();
/*
* 儘僌忣曬偺僼僅乕儅僢僩弌椡乮log_output.c乯
*/
extern void syslog_printf(const char *format, VP_INT *args,
void (*putc)(char)) throw();
extern void syslog_print(SYSLOG *p_log, void (*putc)(char)) throw();
extern void syslog_output(void (*putc)(char)) throw();
#endif /* _MACRO_ONLY */
#endif /* _T_SYSLOG_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -