source: mypx/include/t_syslog.h

このファイルの最終更新内容7 で kominami が 2015/09/12 9:22:12 に更新しました

TOPPERS/ASP 1.9.1

ファイルサイズ: 9.3 KB
Rev 
[7]1/*
2 *  TOPPERS/ASP Kernel
3 *      Toyohashi Open Platform for Embedded Real-Time Systems/
4 *      Advanced Standard Profile Kernel
5 *
6 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 *                              Toyohashi Univ. of Technology, JAPAN
8 *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
9 *              Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 *  Ÿåµ­Ãøºîž¢ŒÔ€Ï¡€°Ê²Œ€Î(1)¡Á(4)€ÎŸò·ï€òËþ€¿€¹Ÿì¹ç€ËžÂ€ê¡€ËÜ¥œ¥Õ¥È¥Š¥§
12 *  ¥¢¡ÊËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò²þÊÑ€·€¿€â€Î€òŽÞ€à¡¥°Ê²ŒÆ±€ž¡Ë€ò»ÈÍÑ¡ŠÊ£Àœ¡Š²þ
13 *  ÊÑ¡ŠºÆÇÛÉۡʰʲŒ¡€ÍøÍрȞƀ֡ˀ¹€ë€³€È€ò̵œþ€ÇµöÂú€¹€ë¡¥
14 *  (1) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¥œ¡Œ¥¹¥³¡Œ¥É€Î·Á€ÇÍøÍÑ€¹€ëŸì¹ç€Ë€Ï¡€Ÿåµ­€ÎÃøºî
15 *      ž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äꀬ¡€€œ€Î€Þ€Þ€Î·Á€Ç¥œ¡Œ
16 *      ¥¹¥³¡Œ¥ÉÃæ€ËŽÞ€Þ€ì€Æ€€€ë€³€È¡¥
17 *  (2) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€¥é¥€¥Ö¥é¥ê·ÁŒ°€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
18 *      Íрǀ­€ë·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
19 *      ŒÔ¥Þ¥Ë¥å¥¢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃøºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­
20 *      €Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
21 *  (3) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€µ¡Žï€ËÁȀ߹þ€à€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
22 *      Íрǀ­€Ê€€·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€Œ¡€Î€€€º€ì€«€ÎŸò·ï€òËþ€¿€¹€³
23 *      €È¡¥
24 *    (a) ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍьԥޥ˥奢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃø
25 *        ºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
26 *    (b) ºÆÇÛÉۀηÁÂÖ€ò¡€ÊÌ€ËÄê€á€ëÊýË¡€Ë€è€Ã€Æ¡€TOPPERS¥×¥í¥ž¥§¥¯¥È€Ë
27 *        Êó¹ð€¹€ë€³€È¡¥
28 *  (4) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€ë€€€«€Ê€ë»
29 *      ³²€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€òÌÈÀÕ€¹€ë€³€È¡¥
30 *      €Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Î¥æ¡Œ¥¶€Þ€¿€Ï¥š¥ó¥É¥æ¡Œ¥¶€«€é€Î€€€«€Ê€ëÍý
31 *      ͳ€ËŽð€Å€¯ÀÁµá€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€ò
32 *      ÌÈÀÕ€¹€ë€³€È¡¥
33 *
34 *  ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Ï¡€ÌµÊÝŸÚ€ÇÄó¶¡€µ€ì€Æ€€€ë€â€Î€Ç€¢€ë¡¥Ÿåµ­Ãøºîž¢ŒÔ€ª
35 *  €è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€Ï¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ËŽØ€·€Æ¡€ÆÃÄê€Î»ÈÍÑÌÜŪ
36 *  €ËÂЀ¹€ëŬ¹çÀ­€âŽÞ€á€Æ¡€€€€«€Ê€ëÊÝŸÚ€â¹Ô€ï€Ê€€¡¥€Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§
37 *  ¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€¿€€€«€Ê€ë»³²€ËŽØ€·€Æ€â¡€€œ
38 *  €ÎÀÕÇ€€òÉé€ï€Ê€€¡¥
39 *
40 *  @(#) $Id$
41 */
42
43/*
44 *              ¥·¥¹¥Æ¥à¥í¥°œÐÎÏ€ò¹Ô€Š€¿€á€ÎÄêµÁ
45 *
46 *  ¥·¥¹¥Æ¥à¥í¥°¥µ¡Œ¥Ó¥¹€Ï¡€¥·¥¹¥Æ¥à€Î¥í¥°ŸðÊó€òœÐÎÏ€¹€ë€¿€á€Î¥µ¡Œ¥Ó¥¹
47 *  €Ç€¢€ë¡¥¥«¡Œ¥Í¥ë€«€é€Î¥í¥°ŸðÊó€ÎœÐÎπˀâÍÑ€€€ë€¿€á¡€ÆâÉô€ÇÂÔ€ÁŸõÂÖ
48 *  €Ë€Ï€€€ë€³€È€Ï€Ê€€¡¥
49 *
50 *  ¥í¥°ŸðÊó€Ï¡€¥«¡Œ¥Í¥ëÆâ€Î¥í¥°¥Ð¥Ã¥Õ¥¡€Ëœñ€­¹þ€à€«¡€Äã¥ì¥Ù¥ë€ÎÊž»úœÐ
51 *  ÎÏŽØ¿ô€òÍÑ€€€ÆœÐÎÏ€¹€ë¡¥€É€Á€é€ò»È€Š€«€Ï¡€³ÈÄ¥¥µ¡Œ¥Ó¥¹¥³¡Œ¥ë€ÇÀÚ€ê
52 *  ޹€š€ë€³€È€¬€Ç€­€ë¡¥
53 *
54 *  ¥í¥°¥Ð¥Ã¥Õ¥¡Îΰ耬¥ª¡Œ¥Ð¥Õ¥í¡Œ€·€¿Ÿì¹ç€Ë€Ï¡€žÅ€€¥í¥°ŸðÊó€òŸÃ€·€ÆŸå
55 *  œñ€­€¹€ë¡¥
56 *
57 *  ¥¢¥»¥ó¥Ö¥êžÀžì€Î¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€«€é€³€Î¥Õ¥¡¥€¥ë€ò¥€¥ó¥¯¥ë¡Œ¥É€¹€ë»þ
58 *  €Ï¡€TOPPERS_MACRO_ONLY€òÄêµÁ€·€Æ€ª€¯€³€È€Ç¡€¥Þ¥¯¥íÄêµÁ°Ê³°€Îµ­œÒ€ò
59 *  œü€¯€³€È€¬€Ç€­€ë¡¥
60 *
61 *  €³€Î¥Õ¥¡¥€¥ë€ò¥€¥ó¥¯¥ë¡Œ¥É€¹€ëÁ°€Ë¡€t_stddef.h€ò¥€¥ó¥¯¥ë¡Œ¥É€·€Æ€ª
62 *  €¯€³€È€¬É¬Í׀ǀ¢€ë¡¥
63 */
64
65#ifndef TOPPERS_T_SYSLOG_H
66#define TOPPERS_T_SYSLOG_H
67
68#ifdef __cplusplus
69extern "C" {
70#endif
71
72/*
73 *  ¥í¥°ŸðÊó€ÎŒïÊÌ€ÎÄêµÁ
74 */
75#define LOG_TYPE_COMMENT        UINT_C(0x01)    /* ¥³¥á¥ó¥È */
76#define LOG_TYPE_ASSERT         UINT_C(0x02)    /* ¥¢¥µ¡Œ¥·¥ç¥ó€ÎŒºÇÔ */
77
78#define LOG_TYPE_INH            UINT_C(0x11)    /* ³ä¹þ€ß¥Ï¥ó¥É¥é */
79#define LOG_TYPE_ISR            UINT_C(0x12)    /* ³ä¹þ€ß¥µ¡Œ¥Ó¥¹¥ë¡Œ¥Á¥ó */
80#define LOG_TYPE_CYC            UINT_C(0x13)    /* ŒþŽü¥Ï¥ó¥É¥é */
81#define LOG_TYPE_ALM            UINT_C(0x14)    /* ¥¢¥é¡Œ¥à¥Ï¥ó¥É¥é */
82#define LOG_TYPE_OVR            UINT_C(0x15)    /* ¥ª¡Œ¥Ð¥é¥ó¥Ï¥ó¥É¥é */
83#define LOG_TYPE_EXC            UINT_C(0x16)    /* CPUÎã³°¥Ï¥ó¥É¥é */
84#define LOG_TYPE_TEX            UINT_C(0x17)    /* ¥¿¥¹¥¯Îã³°œèÍý¥ë¡Œ¥Á¥ó */
85#define LOG_TYPE_TSKSTAT        UINT_C(0x18)    /* ¥¿¥¹¥¯ŸõÂÖÊѲœ */
86#define LOG_TYPE_DSP            UINT_C(0x19)    /* ¥Ç¥£¥¹¥Ñ¥Ã¥Á¥ã */
87#define LOG_TYPE_SVC            UINT_C(0x1a)    /* ¥µ¡Œ¥Ó¥¹¥³¡Œ¥ë */
88
89#define LOG_ENTER                       UINT_C(0x00)    /* Æþžý¡¿³«»Ï */
90#define LOG_LEAVE                       UINT_C(0x80)    /* œÐžý¡¿œªÎ» */
91
92/*
93 *  ¥í¥°ŸðÊó€ÎœÅÍ×ÅÙ€ÎÄêµÁ
94 */
95#define LOG_EMERG                       UINT_C(0)               /* ¥·¥ã¥Ã¥È¥À¥Š¥ó€ËÃÍ€¹€ë¥š¥é¡Œ */
96#define LOG_ALERT                       UINT_C(1)
97#define LOG_CRIT                        UINT_C(2)
98#define LOG_ERROR                       UINT_C(3)               /* ¥·¥¹¥Æ¥à¥š¥é¡Œ */
99#define LOG_WARNING                     UINT_C(4)               /* ·Ù¹ð¥á¥Ã¥»¡Œ¥ž */
100#define LOG_NOTICE                      UINT_C(5)
101#define LOG_INFO                        UINT_C(6)
102#define LOG_DEBUG                       UINT_C(7)               /* ¥Ç¥Ð¥Ã¥°ÍÑ¥á¥Ã¥»¡Œ¥ž */
103
104#ifndef TOPPERS_MACRO_ONLY
105
106/*
107 *  ¥í¥°ŸðÊó€Î¥Ç¡Œ¥¿¹œÂ€
108 */
109
110#define TMAX_LOGINFO    6
111
112typedef struct {
113        uint_t          logtype;                                /* ¥í¥°ŸðÊó€ÎŒïÊÌ */
114        SYSTIM          logtim;                                 /* ¥í¥°»þ¹ï */
115        intptr_t        loginfo[TMAX_LOGINFO];  /* €œ€ÎŸ€Î¥í¥°ŸðÊó */
116} SYSLOG;
117
118/*
119 *  ¥í¥°ŸðÊó€ÎœÅÍ×ÅـΥӥåȥޥå׀òºî€ë€¿€á€Î¥Þ¥¯¥í
120 */
121#define LOG_MASK(prio)          (1U << (prio))
122#define LOG_UPTO(prio)          ((1U << ((prio) + 1)) - 1)
123
124/*
125 *  ¥Ñ¥±¥Ã¥È·ÁŒ°€ÎÄêµÁ
126 */
127typedef struct t_syslog_rlog {
128        uint_t  count;          /* ¥í¥°¥Ð¥Ã¥Õ¥¡Ãæ€Î¥í¥°€Î¿ô */
129        uint_t  lost;           /* Œº€ï€ì€¿¥í¥°€Î¿ô */
130        uint_t  logmask;        /* ¥í¥°¥Ð¥Ã¥Õ¥¡€Ëµ­Ï¿€¹€Ù€­œÅÍ×ÅÙ */
131        uint_t  lowmask;        /* Äã¥ì¥Ù¥ëœÐÎÏ€¹€Ù€­œÅÍ×ÅÙ */
132} T_SYSLOG_RLOG;
133
134/*
135 *  ¥í¥°ŸðÊó€òœÐÎÏ€¹€ë€¿€á€Î¥é¥€¥Ö¥é¥êŽØ¿ô
136 */
137
138#ifndef TOPPERS_OMIT_SYSLOG
139
140extern ER       syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
141
142Inline void
143_syslog_0(uint_t prio, uint_t type)
144{
145        SYSLOG  logbuf;
146
147        logbuf.logtype = type;
148        (void) syslog_wri_log(prio, &logbuf);
149}
150
151Inline void
152_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
153{
154        SYSLOG  logbuf;
155
156        logbuf.logtype = type;
157        logbuf.loginfo[0] = arg1;
158        (void) syslog_wri_log(prio, &logbuf);
159}
160
161Inline void
162_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
163{
164        SYSLOG  logbuf;
165
166        logbuf.logtype = type;
167        logbuf.loginfo[0] = arg1;
168        logbuf.loginfo[1] = arg2;
169        (void) syslog_wri_log(prio, &logbuf);
170}
171
172Inline void
173_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
174                                                                                                                intptr_t arg3)
175{
176        SYSLOG  logbuf;
177
178        logbuf.logtype = type;
179        logbuf.loginfo[0] = arg1;
180        logbuf.loginfo[1] = arg2;
181        logbuf.loginfo[2] = arg3;
182        (void) syslog_wri_log(prio, &logbuf);
183}
184
185Inline void
186_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
187                                                                                intptr_t arg3, intptr_t arg4)
188{
189        SYSLOG  logbuf;
190
191        logbuf.logtype = type;
192        logbuf.loginfo[0] = arg1;
193        logbuf.loginfo[1] = arg2;
194        logbuf.loginfo[2] = arg3;
195        logbuf.loginfo[3] = arg4;
196        (void) syslog_wri_log(prio, &logbuf);
197}
198
199Inline void
200_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
201                                                        intptr_t arg3, intptr_t arg4, intptr_t arg5)
202{
203        SYSLOG  logbuf;
204
205        logbuf.logtype = type;
206        logbuf.loginfo[0] = arg1;
207        logbuf.loginfo[1] = arg2;
208        logbuf.loginfo[2] = arg3;
209        logbuf.loginfo[3] = arg4;
210        logbuf.loginfo[4] = arg5;
211        (void) syslog_wri_log(prio, &logbuf);
212}
213
214Inline void
215_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
216                                intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
217{
218        SYSLOG  logbuf;
219
220        logbuf.logtype = type;
221        logbuf.loginfo[0] = arg1;
222        logbuf.loginfo[1] = arg2;
223        logbuf.loginfo[2] = arg3;
224        logbuf.loginfo[3] = arg4;
225        logbuf.loginfo[4] = arg5;
226        logbuf.loginfo[5] = arg6;
227        (void) syslog_wri_log(prio, &logbuf);
228}
229
230/*
231 *  ¥í¥°ŸðÊó¡Ê¥³¥á¥ó¥È¡Ë€òœÐÎÏ€¹€ë€¿€á€Î¥é¥€¥Ö¥é¥êŽØ¿ô¡Êvasyslog.c¡Ë
232 */
233extern void     syslog(uint_t prio, const char *format, ...) throw();
234
235#else /* TOPPERS_OMIT_SYSLOG */
236
237/*
238 *  ¥·¥¹¥Æ¥à¥í¥°œÐÎÏ€òÍ޻߀¹€ëŸì¹ç
239 */
240
241Inline void
242_syslog_0(uint_t prio, uint_t type)
243{
244}
245
246Inline void
247_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
248{
249}
250
251Inline void
252_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
253{
254}
255
256Inline void
257_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
258                                                                                                                intptr_t arg3)
259{
260}
261
262Inline void
263_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
264                                                                                intptr_t arg3, intptr_t arg4)
265{
266}
267
268Inline void
269_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
270                                                        intptr_t arg3, intptr_t arg4, intptr_t arg5)
271{
272}
273
274Inline void
275_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
276                                intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
277{
278}
279
280Inline void
281syslog(uint_t prio, const char *format, ...)
282{
283}
284
285#endif /* TOPPERS_OMIT_SYSLOG */
286
287/*
288 *  ¥í¥°ŸðÊó¡Ê¥³¥á¥ó¥È¡Ë€òœÐÎÏ€¹€ë€¿€á€Î¥Þ¥¯¥í
289 *
290 *  format€ª€è€Óžå³€Î°ú¿ô€«€éºîÀ®€·€¿¥á¥Ã¥»¡Œ¥ž€ò¡€œÅÂçÅÙprio€Ç¥í¥°Ÿð
291 *  Êó€È€·€ÆœÐÎÏ€¹€ë€¿€á€Î¥Þ¥¯¥í¡¥arg1¡Áargn€Ïintptr_t·¿€Ë¥­¥ã¥¹¥È€¹€ë
292 *  €¿€á¡€intptr_t·¿€Ë·¿ÊÑŽ¹€Ç€­€ëÇ€°Õ€Î·¿€Ç€è€€¡¥
293 */
294
295#define syslog_0(prio, format) \
296                                _syslog_1(prio, LOG_TYPE_COMMENT, (intptr_t)(format))
297
298#define syslog_1(prio, format, arg1) \
299                                _syslog_2(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
300                                                                                                                (intptr_t)(arg1))
301
302#define syslog_2(prio, format, arg1, arg2) \
303                                _syslog_3(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
304                                                                                (intptr_t)(arg1), (intptr_t)(arg2))
305
306#define syslog_3(prio, format, arg1, arg2, arg3) \
307                                _syslog_4(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
308                                                (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3))
309
310#define syslog_4(prio, format, arg1, arg2, arg3, arg4) \
311                                _syslog_5(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
312                                                (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
313                                                                                                                (intptr_t)(arg4))
314
315#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \
316                                _syslog_6(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
317                                                (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
318                                                                                (intptr_t)(arg4), (intptr_t)(arg5))
319
320/*
321 *  ¥í¥°ŸðÊó¡Ê¥¢¥µ¡Œ¥·¥ç¥ó€ÎŒºÇÔ¡Ë€òœÐÎÏ€¹€ë€¿€á€Î¥Þ¥¯¥í
322 */
323#ifndef TOPPERS_assert_fail
324#define TOPPERS_assert_fail(exp, file, line) \
325                                _syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (intptr_t)(file), \
326                                                                                (intptr_t)(line), (intptr_t)(exp))
327#endif /* TOPPERS_assert_fail */
328
329#endif /* TOPPERS_MACRO_ONLY */
330
331#ifdef __cplusplus
332}
333#endif
334
335#endif /* TOPPERS_T_SYSLOG_H */
詳しい使い方は TracBrowser を参照してください。