⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t_syslog.h

📁 基于ADI BLACKFIN的jbig压缩和解压缩程序
💻 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 + -