📄 syslog.h
字号:
/* * TOPPERS/JSP Kernel * Toyohashi Open Platform for Embedded Real-Time Systems/ * Just Standard Profile Kernel * * Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory * Toyohashi Univ. of Technology, JAPAN * * 惧淡螟侯涪荚は·Free Software Foundation によって给山されている * GNU General Public License の Version 2 に淡揭されている掘凤か·笆 * 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ * アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· * 网脱と钙ぶ∷することを痰浸で钓满するˉ * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 * スコ〖ド面に崔まれていることˉ * (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ * ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 * に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· * この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 * み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ * (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する * ことˉ * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 * 巢からも·惧淡螟侯涪荚を倘勒することˉ * * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· * 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ * ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい * かなる禄巢に簇しても·その勒扦を砷わないˉ * * @(#) $Id: syslog.h,v 1.7 2002/04/08 05:29:20 hiro Exp $ *//* * システムログ怠墙 * * システムログサ〖ビスは·システムのログ攫鼠を叫蜗するためのサ〖ビス * であるˉカ〖ネルからのログ攫鼠の叫蜗にも脱いるため·柒婶で略ち觉轮 * にはいることはないˉ * ログ攫鼠は·カ〖ネル柒のログバッファに今き哈むか·你レベルの矢机叫 * 蜗簇眶を脱いて叫蜗するˉどちらを蝗うかは·橙磨サ〖ビスコ〖ルで磊り * 垂えることができるˉ * ログバッファ挝拌がオ〖バフロ〖した眷圭には·概いログ攫鼠を久して惧 * 今きするˉ */#ifndef _SYSLOG_H_#define _SYSLOG_H_#include <jsp_stddef.h>#include <itron.h>/* * ログ攫鼠のデ〖タ菇陇 */#define TMAX_LOGINFO 6typedef struct { UINT logtype; /* ログ攫鼠の硷侍 */ SYSTIM logtim; /* ログ箕癸 */ VP_INT loginfo[TMAX_LOGINFO]; /* その戮のログ攫鼠 */ } SYSLOG;/* * ログ攫鼠の脚妥刨の年盗 */#define LOG_EMERG 0 /* シャットダウンに猛するエラ〖 */#define LOG_ALERT 1#define LOG_CRIT 2#define LOG_ERR 3 /* システムエラ〖 */#define LOG_WARNING 4 /* 焚桂メッセ〖ジ */#define LOG_NOTICE 5#define LOG_INFO 6#define LOG_DEBUG 7 /* デバッグ脱メッセ〖ジ *//* * ログ攫鼠の脚妥刨のビットマップを侯るためのマクロ */#define LOG_MASK(prio) (1 << (prio))#define LOG_UPTO(prio) ((1 << ((prio) + 1)) - 1)/* * ログ攫鼠の硷侍の年盗 */#define LOG_TYP_INTERRUPT 0x01 /* 充哈みハンドラ */#define LOG_TYP_ISR 0x02 /* 充哈みサ〖ビスハンドラ */#define LOG_TYP_TIMERHDR 0x03 /* タイムイベントハンドラ */#define LOG_TYP_CPUEXC 0x04 /* CPU毋嘲ハンドラ */#define LOG_TYP_TSKEXC 0x05 /* タスク毋嘲借妄ル〖チン */#define LOG_TYP_TSKSTAT 0x06 /* タスク觉轮恃步 */#define LOG_TYP_DISPATCH 0x07 /* ディスパッチャ */#define LOG_TYP_SVC 0x08 /* サ〖ビスコ〖ル */#define LOG_TYP_COMMENT 0x09 /* コメント∈矢机误のみのログ∷ */#define LOG_ENTER 0x00 /* 掐庚】倡幌 */#define LOG_LEAVE 0x80 /* 叫庚】姜位 *//* * ログ攫鼠の叫蜗 */extern ER syslog_write(UINT prio, SYSLOG *p_syslog);/* * ログバッファからのログ攫鼠の粕叫し */extern ER_UINT syslog_read(SYSLOG *p_syslog);/* * 叫蜗すべきログ攫鼠の脚妥刨の肋年 */extern ER syslog_setmask(UINT logmask, UINT lowmask);/* * ログ攫鼠を叫蜗するためのマクロ * * format および稿鲁の苞眶から侯喇したメッセ〖ジを·脚络刨 prio で * ログ攫鼠として叫蜗するためのマクロˉarg1×argn は VP_INT房にキャ * ストするため·VP_INT房に房恃垂できる扦罢の房でよいˉ */#define syslog_0(prio, format) _syslog_0(prio, format)#define syslog_1(prio, format, arg1) \ _syslog_1(prio, format, (VP_INT)(arg1))#define syslog_2(prio, format, arg1, arg2) \ _syslog_2(prio, format, (VP_INT)(arg1), (VP_INT)(arg2))#define syslog_3(prio, format, arg1, arg2, arg3) \ _syslog_3(prio, format, (VP_INT)(arg1), (VP_INT)(arg2), \ (VP_INT)(arg3))#define syslog_4(prio, format, arg1, arg2, arg3, arg4) \ _syslog_4(prio, format, (VP_INT)(arg1), (VP_INT)(arg2), \ (VP_INT)(arg3), (VP_INT)(arg4))#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \ _syslog_5(prio, format, (VP_INT)(arg1), (VP_INT)(arg2), \ (VP_INT)(arg3), (VP_INT)(arg4), (VP_INT)(arg5))/* * ログ攫鼠を叫蜗するためのライブラリ簇眶 */Inline ER_syslog_0(UINT prio, const char *format){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; return(syslog_write(prio, &syslog));}Inline ER_syslog_1(UINT prio, const char *format, VP_INT arg1){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; syslog.loginfo[1] = arg1; return(syslog_write(prio, &syslog));}Inline ER_syslog_2(UINT prio, const char *format, VP_INT arg1, VP_INT arg2){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; syslog.loginfo[1] = arg1; syslog.loginfo[2] = arg2; return(syslog_write(prio, &syslog));}Inline ER_syslog_3(UINT prio, const char *format, VP_INT arg1, VP_INT arg2, VP_INT arg3){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; syslog.loginfo[1] = arg1; syslog.loginfo[2] = arg2; syslog.loginfo[3] = arg3; return(syslog_write(prio, &syslog));}Inline ER_syslog_4(UINT prio, const char *format, VP_INT arg1, VP_INT arg2, VP_INT arg3, VP_INT arg4){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; syslog.loginfo[1] = arg1; syslog.loginfo[2] = arg2; syslog.loginfo[3] = arg3; syslog.loginfo[4] = arg4; return(syslog_write(prio, &syslog));}Inline ER_syslog_5(UINT prio, const char *format, VP_INT arg1, VP_INT arg2, VP_INT arg3, VP_INT arg4, VP_INT arg5){ SYSLOG syslog; syslog.logtype = LOG_TYP_COMMENT; syslog.loginfo[0] = (VP_INT) format; syslog.loginfo[1] = arg1; syslog.loginfo[2] = arg2; syslog.loginfo[3] = arg3; syslog.loginfo[4] = arg4; syslog.loginfo[5] = arg5; return(syslog_write(prio, &syslog));}/* * ログ攫鼠を叫蜗するためのライブラリ簇眶∈材恃眶苞眶惹∷ */extern ER syslog(UINT prio, const char *format, ...);/* * ログ攫鼠のフォ〖マット叫蜗 */extern void syslog_printf(SYSLOG *p_syslog, void (*putc)(char));#endif /* _SYSLOG_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -