Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h
r321 r429 1 1 /* 2 * TOPPERS/ASP Kernel 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 * Advanced Standard Profile Kernel 2 * TOPPERS Software 3 * Toyohashi Open Platform for Embedded Real-Time Systems 5 4 * 6 5 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 7 6 * Toyohashi Univ. of Technology, JAPAN 8 * Copyright (C) 2004-201 4by Embedded and Real-Time Systems Laboratory7 * Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory 9 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 9 * … … 69 68 #include <t_stddef.h> 70 69 70 #ifndef TOPPERS_MACRO_ONLY 71 #include <stdarg.h> 72 #endif /* TOPPERS_MACRO_ONLY */ 73 71 74 /* 72 75 * ログ情報の種別の定義 … … 77 80 #define LOG_TYPE_INH UINT_C(0x11) /* 割込みハンドラ */ 78 81 #define LOG_TYPE_ISR UINT_C(0x12) /* 割込みサービスルーチン */ 79 #define LOG_TYPE_CYC UINT_C(0x13) /* 周期 ハンドラ*/80 #define LOG_TYPE_ALM UINT_C(0x14) /* アラーム ハンドラ*/82 #define LOG_TYPE_CYC UINT_C(0x13) /* 周期通知 */ 83 #define LOG_TYPE_ALM UINT_C(0x14) /* アラーム通知 */ 81 84 #define LOG_TYPE_OVR UINT_C(0x15) /* オーバランハンドラ */ 82 85 #define LOG_TYPE_EXC UINT_C(0x16) /* CPU例外ハンドラ */ … … 124 127 125 128 /* 126 * ログ情報の重要度のビットマップを作るためのマクロ 127 */ 128 #define LOG_MASK(prio) (1U << (prio)) 129 #define LOG_UPTO(prio) ((1U << ((prio) + 1)) - 1) 130 131 /* 132 * パケット形式の定義 133 */ 134 typedef struct t_syslog_rlog { 135 uint_t count; /* ログバッファ中のログの数 */ 136 uint_t lost; /* 失われたログの数 */ 137 uint_t logmask; /* ログバッファに記録すべき重要度 */ 138 uint_t lowmask; /* 低レベル出力すべき重要度 */ 139 } T_SYSLOG_RLOG; 129 * ログ情報の出力 130 * 131 * ログ情報の出力は,システムログ機能のアダプタ経由で行う. 132 */ 133 134 extern ER syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw(); 135 136 #define syslog_write(prio, p_syslog) \ 137 ((void) syslog_wri_log(prio, p_syslog)) 140 138 141 139 #ifndef TOPPERS_OMIT_SYSLOG 142 143 /* 144 * ログ情報を出力するためのライブラリ関数 145 * 146 * TECSで記述されたシステムログ機能を直接呼び出す. 147 */ 148 149 extern ER tSysLog_eSysLog_write(uint_t prio, const SYSLOG *p_syslog) throw(); 150 151 Inline void 152 _syslog_0(uint_t prio, uint_t type) 153 { 154 SYSLOG logbuf; 155 156 logbuf.logtype = type; 157 (void) tSysLog_eSysLog_write(prio, &logbuf); 158 } 159 160 Inline void 161 _syslog_1(uint_t prio, uint_t type, LOGPAR arg1) 162 { 163 SYSLOG logbuf; 164 165 logbuf.logtype = type; 166 logbuf.logpar[0] = arg1; 167 (void) tSysLog_eSysLog_write(prio, &logbuf); 168 } 169 170 Inline void 171 _syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2) 172 { 173 SYSLOG logbuf; 174 175 logbuf.logtype = type; 176 logbuf.logpar[0] = arg1; 177 logbuf.logpar[1] = arg2; 178 (void) tSysLog_eSysLog_write(prio, &logbuf); 179 } 180 181 Inline void 182 _syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3) 140 /* 141 * システムログ出力のための下位のライブラリ関数 142 */ 143 144 Inline void 145 t_syslog_0(uint_t prio, uint_t type) 146 { 147 SYSLOG logbuf; 148 149 logbuf.logtype = type; 150 syslog_write(prio, &logbuf); 151 } 152 153 Inline void 154 t_syslog_1(uint_t prio, uint_t type, LOGPAR arg1) 155 { 156 SYSLOG logbuf; 157 158 logbuf.logtype = type; 159 logbuf.logpar[0] = arg1; 160 syslog_write(prio, &logbuf); 161 } 162 163 Inline void 164 t_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2) 165 { 166 SYSLOG logbuf; 167 168 logbuf.logtype = type; 169 logbuf.logpar[0] = arg1; 170 logbuf.logpar[1] = arg2; 171 syslog_write(prio, &logbuf); 172 } 173 174 Inline void 175 t_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3) 183 176 { 184 177 SYSLOG logbuf; … … 188 181 logbuf.logpar[1] = arg2; 189 182 logbuf.logpar[2] = arg3; 190 (void) tSysLog_eSysLog_write(prio, &logbuf);191 } 192 193 Inline void 194 _syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,183 syslog_write(prio, &logbuf); 184 } 185 186 Inline void 187 t_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 195 188 LOGPAR arg3, LOGPAR arg4) 196 189 { … … 202 195 logbuf.logpar[2] = arg3; 203 196 logbuf.logpar[3] = arg4; 204 (void) tSysLog_eSysLog_write(prio, &logbuf);205 } 206 207 Inline void 208 _syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,197 syslog_write(prio, &logbuf); 198 } 199 200 Inline void 201 t_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 209 202 LOGPAR arg3, LOGPAR arg4, LOGPAR arg5) 210 203 { … … 217 210 logbuf.logpar[3] = arg4; 218 211 logbuf.logpar[4] = arg5; 219 (void) tSysLog_eSysLog_write(prio, &logbuf);220 } 221 222 Inline void 223 _syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,212 syslog_write(prio, &logbuf); 213 } 214 215 Inline void 216 t_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 224 217 LOGPAR arg3, LOGPAR arg4, LOGPAR arg5, LOGPAR arg6) 225 218 { … … 233 226 logbuf.logpar[4] = arg5; 234 227 logbuf.logpar[5] = arg6; 235 (void) tSysLog_eSysLog_write(prio, &logbuf);228 syslog_write(prio, &logbuf); 236 229 } 237 230 … … 239 232 * ログ情報(コメント)を出力するためのライブラリ関数(vasyslog.c) 240 233 */ 241 extern void syslog(uint_t prio, const char *format, ...) throw(); 234 extern void tt_syslog(SYSLOG *p_logbuf, const char *format, va_list ap); 235 236 Inline void 237 syslog(uint_t prio, const char *format, ...) 238 { 239 va_list ap; 240 SYSLOG logbuf; 241 242 va_start(ap, format); 243 tt_syslog(&logbuf, format, ap); 244 va_end(ap); 245 syslog_write(prio, &logbuf); 246 } 247 248 /* 249 * エラーメッセージを出力するためのライブラリ関数(t_perror.c) 250 */ 251 extern void tt_perror(SYSLOG *p_logbuf, const char *file, int_t line, 252 const char *expr, ER ercd); 253 254 Inline void 255 t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd) 256 { 257 SYSLOG logbuf; 258 259 tt_perror(&logbuf, file, line, expr, ercd); 260 syslog_write(prio, &logbuf); 261 } 242 262 243 263 #else /* TOPPERS_OMIT_SYSLOG */ 244 245 264 /* 246 265 * システムログ出力を抑止する場合 … … 248 267 249 268 Inline void 250 _syslog_0(uint_t prio, uint_t type)251 { 252 } 253 254 Inline void 255 _syslog_1(uint_t prio, uint_t type, LOGPAR arg1)256 { 257 } 258 259 Inline void 260 _syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2)261 { 262 } 263 264 Inline void 265 _syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)266 { 267 } 268 269 Inline void 270 _syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,269 t_syslog_0(uint_t prio, uint_t type) 270 { 271 } 272 273 Inline void 274 t_syslog_1(uint_t prio, uint_t type, LOGPAR arg1) 275 { 276 } 277 278 Inline void 279 t_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2) 280 { 281 } 282 283 Inline void 284 t_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3) 285 { 286 } 287 288 Inline void 289 t_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 271 290 LOGPAR arg3, LOGPAR arg4) 272 291 { … … 274 293 275 294 Inline void 276 _syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,295 t_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 277 296 LOGPAR arg3, LOGPAR arg4, LOGPAR arg5) 278 297 { … … 280 299 281 300 Inline void 282 _syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,301 t_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, 283 302 LOGPAR arg3, LOGPAR arg4, LOGPAR arg5, LOGPAR arg6) 284 303 { … … 289 308 { 290 309 } 310 311 Inline void 312 t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd) 313 { 314 } 291 315 292 316 #endif /* TOPPERS_OMIT_SYSLOG */ 293 317 294 318 /* 295 * ログ情報(コメント)を出力するためのマクロ319 * システムログ出力のためのライブラリ関数 296 320 * 297 321 * formatおよび後続の引数から作成したメッセージを,重大度prioでログ情 … … 301 325 302 326 #define syslog_0(prio, format) \ 303 _syslog_1(prio, LOG_TYPE_COMMENT, (LOGPAR)(format))327 t_syslog_1(prio, LOG_TYPE_COMMENT, (LOGPAR)(format)) 304 328 305 329 #define syslog_1(prio, format, arg1) \ 306 _syslog_2(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \330 t_syslog_2(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \ 307 331 (LOGPAR)(arg1)) 308 332 309 333 #define syslog_2(prio, format, arg1, arg2) \ 310 _syslog_3(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \334 t_syslog_3(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \ 311 335 (LOGPAR)(arg1), (LOGPAR)(arg2)) 312 336 313 337 #define syslog_3(prio, format, arg1, arg2, arg3) \ 314 _syslog_4(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \338 t_syslog_4(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \ 315 339 (LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3)) 316 340 317 341 #define syslog_4(prio, format, arg1, arg2, arg3, arg4) \ 318 _syslog_5(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \342 t_syslog_5(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \ 319 343 (LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3), \ 320 344 (LOGPAR)(arg4)) 321 345 322 346 #define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \ 323 _syslog_6(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \347 t_syslog_6(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \ 324 348 (LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3), \ 325 349 (LOGPAR)(arg4), (LOGPAR)(arg5)) … … 330 354 #ifndef TOPPERS_assert_fail 331 355 #define TOPPERS_assert_fail(exp, file, line) \ 332 _syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (LOGPAR)(file), \356 t_syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (LOGPAR)(file), \ 333 357 (LOGPAR)(line), (LOGPAR)(exp)) 334 358 #endif /* TOPPERS_assert_fail */
Note:
See TracChangeset
for help on using the changeset viewer.