source: ssp_qb_r5f100le_cs/trunk/include/t_syslog.h@ 93

Last change on this file since 93 was 93, checked in by nmir-saito, 9 years ago

add Combined package of SSP kernel for QB-R5F100LE-TB(RL78 processor)

File size: 9.4 KB
RevLine 
[93]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-2008 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
12 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
13 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
14 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
15 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
16 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
17 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
18 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
19ƒƒ“ƒgi—˜—p
20 * ŽÒƒ}ƒjƒ…
21ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
22 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
23 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
24 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
25 * ‚ƁD
26 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
27ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
28ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
29 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
30 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
31 * •ñ‚·‚邱‚ƁD
32 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
33 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
34 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
35 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
36 * –Ɛӂ·‚邱‚ƁD
37 *
38 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
39 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
40 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
41 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
42 * ‚̐ӔC‚𕉂í‚È‚¢D
43 *
44 * @(#) $Id: t_syslog.h 1900 2010-08-14 02:31:44Z ertl-hiro $
45 */
46
47/*
48 * ƒVƒXƒeƒ€ƒƒOo—Í‚ðs‚¤‚½‚ß‚Ì’è‹`
49 *
50 * ƒVƒXƒeƒ€ƒƒOƒT[ƒrƒX‚́CƒVƒXƒeƒ€‚̃ƒOî•ñ‚ðo—Í‚·‚邽‚߂̃T[ƒrƒX
51 * ‚Å‚ ‚éDƒJ[ƒlƒ‹‚©‚ç‚̃ƒOî•ñ‚̏o—Í‚É‚à—p‚¢‚邽‚߁C“à•”‚Å‘Ò‚¿ó‘Ô
52 * ‚É‚Í‚¢‚邱‚Æ‚Í‚È‚¢D
53 *
54 * ƒƒOî•ñ‚́CƒJ[ƒlƒ‹“à‚̃ƒOƒoƒbƒtƒ@‚ɏ‘‚«ž‚Þ‚©C’჌ƒxƒ‹‚Ì•¶Žšo
55 * —͊֐”‚ð—p‚¢‚ďo—Í‚·‚éD‚Ç‚¿‚ç‚ðŽg‚¤‚©‚́CŠg’£ƒT[ƒrƒXƒR[ƒ‹‚Ő؂è
56 * Š·‚¦‚邱‚Æ‚ª‚Å‚«‚éD
57 *
58 * ƒƒOƒoƒbƒtƒ@—̈悪ƒI[ƒoƒtƒ[‚µ‚½ê‡‚ɂ́CŒÃ‚¢ƒƒOî•ñ‚ðÁ‚µ‚ďã
59 * ‘‚«‚·‚éD
60 *
61 * ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
62 * ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­‚±‚ƂŁCƒ}ƒNƒ’è‹`ˆÈŠO‚Ì‹Lq‚ð
63 * œ‚­‚±‚Æ‚ª‚Å‚«‚éD
64 *
65 * ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɁCt_stddef.h‚ðƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨
66 * ‚­‚±‚Æ‚ª•K—v‚Å‚ ‚éD
67 */
68
69#ifndef TOPPERS_T_SYSLOG_H
70#define TOPPERS_T_SYSLOG_H
71
72#ifdef __cplusplus
73extern "C" {
74#endif
75
76/*
77 * ƒƒOî•ñ‚ÌŽí•Ê‚Ì’è‹`
78 */
79#define LOG_TYPE_COMMENT UINT_C(0x01) /* ƒRƒƒ“ƒg */
80#define LOG_TYPE_ASSERT UINT_C(0x02) /* ƒAƒT[ƒVƒ‡ƒ“‚ÌŽ¸”s */
81
82#define LOG_TYPE_INH UINT_C(0x11) /* Š„ž‚݃nƒ“ƒhƒ‰ */
83#define LOG_TYPE_ISR UINT_C(0x12) /* Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“ */
84#define LOG_TYPE_CYC UINT_C(0x13) /* ŽüŠúƒnƒ“ƒhƒ‰ */
85#define LOG_TYPE_ALM UINT_C(0x14) /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ */
86#define LOG_TYPE_OVR UINT_C(0x15) /* ƒI[ƒoƒ‰ƒ“ƒnƒ“ƒhƒ‰ */
87#define LOG_TYPE_EXC UINT_C(0x16) /* CPU—áŠOƒnƒ“ƒhƒ‰ */
88#define LOG_TYPE_TEX UINT_C(0x17) /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“ */
89#define LOG_TYPE_TSKSTAT UINT_C(0x18) /* ƒ^ƒXƒNó‘ԕω» */
90#define LOG_TYPE_DSP UINT_C(0x19) /* ƒfƒBƒXƒpƒbƒ`ƒƒ */
91#define LOG_TYPE_SVC UINT_C(0x1a) /* ƒT[ƒrƒXƒR[ƒ‹ */
92
93#define LOG_ENTER UINT_C(0x00) /* “üŒû^ŠJŽn */
94#define LOG_LEAVE UINT_C(0x80) /* oŒû^I—¹ */
95
96/*
97 * ƒƒOî•ñ‚̏d—v“x‚Ì’è‹`
98 */
99#define LOG_EMERG UINT_C(0) /* ƒVƒƒƒbƒgƒ_ƒEƒ“‚É’l‚·‚éƒGƒ‰[ */
100#define LOG_ALERT UINT_C(1)
101#define LOG_CRIT UINT_C(2)
102#define LOG_ERROR UINT_C(3) /* ƒVƒXƒeƒ€ƒGƒ‰[ */
103#define LOG_WARNING UINT_C(4) /* ŒxƒƒbƒZ[ƒW */
104#define LOG_NOTICE UINT_C(5)
105#define LOG_INFO UINT_C(6)
106#define LOG_DEBUG UINT_C(7) /* ƒfƒoƒbƒO—pƒƒbƒZ[ƒW */
107
108#ifndef TOPPERS_MACRO_ONLY
109
110/*
111 * ƒƒOî•ñ‚̃f[ƒ^\‘¢
112 */
113
114#define TMAX_LOGINFO 6
115
116typedef struct {
117 uint_t logtype; /* ƒƒOî•ñ‚ÌŽí•Ê */
118 SYSTIM logtim; /* ƒƒOŽž */
119 intptr_t loginfo[TMAX_LOGINFO]; /* ‚»‚Ì‘¼‚̃ƒOî•ñ */
120} SYSLOG;
121
122/*
123 * ƒƒOî•ñ‚̏d—v“x‚̃rƒbƒgƒ}ƒbƒv‚ðì‚邽‚߂̃}ƒNƒ
124 */
125#define LOG_MASK(prio) (1U << (prio))
126#define LOG_UPTO(prio) ((1U << ((prio) + 1)) - 1)
127
128/*
129 * ƒƒOî•ñ‚ðo—Í‚·‚邽‚߂̃‰ƒCƒuƒ‰ƒŠŠÖ”
130 */
131
132#ifndef TOPPERS_OMIT_SYSLOG
133
134extern ER syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
135
136Inline void
137_syslog_0(uint_t prio, uint_t type)
138{
139 SYSLOG syslog;
140
141 syslog.logtype = type;
142 (void) syslog_wri_log(prio, &syslog);
143}
144
145Inline void
146_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
147{
148 SYSLOG syslog;
149
150 syslog.logtype = type;
151 syslog.loginfo[0] = arg1;
152 (void) syslog_wri_log(prio, &syslog);
153}
154
155Inline void
156_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
157{
158 SYSLOG syslog;
159
160 syslog.logtype = type;
161 syslog.loginfo[0] = arg1;
162 syslog.loginfo[1] = arg2;
163 (void) syslog_wri_log(prio, &syslog);
164}
165
166Inline void
167_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
168 intptr_t arg3)
169{
170 SYSLOG syslog;
171
172 syslog.logtype = type;
173 syslog.loginfo[0] = arg1;
174 syslog.loginfo[1] = arg2;
175 syslog.loginfo[2] = arg3;
176 (void) syslog_wri_log(prio, &syslog);
177}
178
179Inline void
180_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
181 intptr_t arg3, intptr_t arg4)
182{
183 SYSLOG syslog;
184
185 syslog.logtype = type;
186 syslog.loginfo[0] = arg1;
187 syslog.loginfo[1] = arg2;
188 syslog.loginfo[2] = arg3;
189 syslog.loginfo[3] = arg4;
190 (void) syslog_wri_log(prio, &syslog);
191}
192
193Inline void
194_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
195 intptr_t arg3, intptr_t arg4, intptr_t arg5)
196{
197 SYSLOG syslog;
198
199 syslog.logtype = type;
200 syslog.loginfo[0] = arg1;
201 syslog.loginfo[1] = arg2;
202 syslog.loginfo[2] = arg3;
203 syslog.loginfo[3] = arg4;
204 syslog.loginfo[4] = arg5;
205 (void) syslog_wri_log(prio, &syslog);
206}
207
208Inline void
209_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
210 intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
211{
212 SYSLOG syslog;
213
214 syslog.logtype = type;
215 syslog.loginfo[0] = arg1;
216 syslog.loginfo[1] = arg2;
217 syslog.loginfo[2] = arg3;
218 syslog.loginfo[3] = arg4;
219 syslog.loginfo[4] = arg5;
220 syslog.loginfo[5] = arg6;
221 (void) syslog_wri_log(prio, &syslog);
222}
223
224/*
225 * ƒƒOî•ñiƒRƒƒ“ƒgj‚ðo—Í‚·‚邽‚߂̃‰ƒCƒuƒ‰ƒŠŠÖ”ivasyslog.cj
226 */
227extern void syslog(uint_t prio, const char *format, ...) throw();
228
229#else /* TOPPERS_OMIT_SYSLOG */
230
231/*
232 * ƒVƒXƒeƒ€ƒƒOo—Í‚ð—}Ž~‚·‚éê‡
233 */
234
235Inline void
236_syslog_0(uint_t prio, uint_t type)
237{
238}
239
240Inline void
241_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
242{
243}
244
245Inline void
246_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
247{
248}
249
250Inline void
251_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
252 intptr_t arg3)
253{
254}
255
256Inline void
257_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
258 intptr_t arg3, intptr_t arg4)
259{
260}
261
262Inline void
263_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
264 intptr_t arg3, intptr_t arg4, intptr_t arg5)
265{
266}
267
268Inline void
269_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
270 intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
271{
272}
273
274Inline void
275syslog(uint_t prio, const char *format, ...)
276{
277}
278
279#endif /* TOPPERS_OMIT_SYSLOG */
280
281/*
282 * ƒƒOî•ñiƒRƒƒ“ƒgj‚ðo—Í‚·‚邽‚߂̃}ƒNƒ
283 *
284 * format‚¨‚æ‚ь㑱‚̈ø”‚©‚çì¬‚µ‚½ƒƒbƒZ[ƒW‚ðCd‘å“xprio‚эƒOî
285 * •ñ‚Æ‚µ‚ďo—Í‚·‚邽‚߂̃}ƒNƒDarg1`argn‚Íintptr_tŒ^‚ɃLƒƒƒXƒg‚·‚é
286 * ‚½‚߁Cintptr_tŒ^‚ÉŒ^•ÏŠ·‚Å‚«‚é”CˆÓ‚ÌŒ^‚Å‚æ‚¢D
287 */
288
289#define syslog_0(prio, format) \
290 _syslog_1(prio, LOG_TYPE_COMMENT, (intptr_t) format)
291
292#define syslog_1(prio, format, arg1) \
293 _syslog_2(prio, LOG_TYPE_COMMENT, (intptr_t) format, \
294 (intptr_t)(arg1))
295
296#define syslog_2(prio, format, arg1, arg2) \
297 _syslog_3(prio, LOG_TYPE_COMMENT, (intptr_t) format, \
298 (intptr_t)(arg1), (intptr_t)(arg2))
299
300#define syslog_3(prio, format, arg1, arg2, arg3) \
301 _syslog_4(prio, LOG_TYPE_COMMENT, (intptr_t) format, \
302 (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3))
303
304#define syslog_4(prio, format, arg1, arg2, arg3, arg4) \
305 _syslog_5(prio, LOG_TYPE_COMMENT, (intptr_t) format, \
306 (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
307 (intptr_t)(arg4))
308
309#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \
310 _syslog_6(prio, LOG_TYPE_COMMENT, (intptr_t) format, \
311 (intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
312 (intptr_t)(arg4), (intptr_t)(arg5))
313
314/*
315 * ƒƒOî•ñiƒAƒT[ƒVƒ‡ƒ“‚ÌŽ¸”sj‚ðo—Í‚·‚邽‚߂̃}ƒNƒ
316 */
317#ifndef TOPPERS_assert_fail
318#define TOPPERS_assert_fail(exp, file, line) \
319 _syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (intptr_t)(file), \
320 (intptr_t)(line), (intptr_t)(exp))
321#endif /* TOPPERS_assert_fail */
322
323#endif /* TOPPERS_MACRO_ONLY */
324
325#ifdef __cplusplus
326}
327#endif
328
329#endif /* TOPPERS_T_SYSLOG_H */
Note: See TracBrowser for help on using the repository browser.