trace_config.h

説明を見る。
00001 /*
00002  *  TOPPERS/ASP Kernel
00003  *      Toyohashi Open Platform for Embedded Real-Time Systems/
00004  *      Advanced Standard Profile Kernel
00005  * 
00006  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
00007  *                              Toyohashi Univ. of Technology, JAPAN
00008  *  Copyright (C) 2004-2007 by Embedded and Real-Time Systems Laboratory
00009  *              Graduate School of Information Science, Nagoya Univ., JAPAN
00010  * 
00011  *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
00012  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
00013  *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
00014  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
00015  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
00016  *      スコード中に含まれていること.
00017  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
00018  *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
00019  *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
00020  *      の無保証規定を掲載すること.
00021  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
00022  *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
00023  *      と.
00024  *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
00025  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
00026  *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
00027  *        報告すること.
00028  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
00029  *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
00030  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
00031  *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
00032  *      免責すること.
00033  * 
00034  *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
00035  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
00036  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
00037  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
00038  *  の責任を負わない.
00039  * 
00040  *  @(#) $Id: trace_config.h 264 2007-07-12 08:23:10Z hiro $
00041  */
00042 
00043 /*
00044  *      トレースログに関する設定
00045  *
00046  *  このインクルードファイルは,target_config.hおよびtarget_syssvc.hの
00047  *  みからインクルードされる.他のファイルから直接インクルードしてはな
00048  *  らない.
00049  */
00050 
00051 #ifndef TOPPERS_TRACE_CONFIG_H
00052 #define TOPPERS_TRACE_CONFIG_H
00053 
00054 /*
00055  *  トレースログバッファのサイズ
00056  */
00057 #ifndef TCNT_TRACE_BUFFER
00058 #define TCNT_TRACE_BUFFER   1024
00059 #endif /* TCNT_TRACE_BUFFER */
00060 
00061 /*
00062  *  トレース時刻の取得方法
00063  */
00064 #ifndef TRACE_GET_TIM
00065 #define TRACE_GET_TIM()     (current_time)
00066 #endif /* TRACE_GET_TIM */
00067 
00068 #ifndef TOPPERS_MACRO_ONLY
00069 
00070 /*
00071  *  トレースログのデータ構造
00072  *
00073  *  システムログ機能のログ情報のデータ構造と同じものを用いる.
00074  */
00075 #include <t_syslog.h>
00076 typedef SYSLOG  TRACE;
00077 
00078 /*
00079  *  トレースログバッファとそれにアクセスするためのポインタ
00080  */
00081 extern TRACE    trace_buffer[];     /* トレースログバッファ */
00082 extern uint_t   trace_count;        /* トレースログバッファ中のログの数 */
00083 extern uint_t   trace_head;         /* 先頭のトレースログの格納位置 */
00084 extern uint_t   trace_tail;         /* 次のトレースログの格納位置 */
00085 extern uint_t   trace_lost;         /* 失われたトレースの数 */
00086 
00087 #endif /* TOPPERS_MACRO_ONLY */
00088 
00089 /*
00090  *  トレースモードの定義
00091  */
00092 #define TRACE_STOP          UINT_C(0x00)    /* トレース停止 */
00093 #define TRACE_RINGBUF       UINT_C(0x01)    /* リングバッファモード */
00094 #define TRACE_AUTOSTOP      UINT_C(0x02)    /* 自動停止モード */
00095 #define TRACE_CLEAR         UINT_C(0x04)    /* トレースログのクリア */
00096 
00097 #ifndef TOPPERS_MACRO_ONLY
00098 
00099 /*
00100  *  トレースログ機能の初期化
00101  *
00102  *  トレースログ機能を初期化する.初期化ルーチンとして登録することを想
00103  *  定している.引数により次の動作を行う.
00104  *
00105  *  TRACE_STOP:初期化のみでトレースは開始しない.
00106  *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
00107  *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
00108  */
00109 extern void trace_initialize(intptr_t exinf);
00110 
00111 /*
00112  *  トレースログの開始
00113  *
00114  *  トレースログの記録を開始/停止する.引数により次の動作を行う.
00115  *
00116  *  TRACE_STOP:トレースを停止.
00117  *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
00118  *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
00119  *  TRACE_CLEAR:トレースログをクリア.
00120  */
00121 extern ER   trace_sta_log(MODE mode);
00122 
00123 /*
00124  *  トレースログの書込み
00125  */
00126 extern ER   trace_wri_log(TRACE *p_trace);
00127 
00128 /*
00129  *  トレースログの読出し
00130  */
00131 extern ER   trace_rea_log(TRACE *p_trace);
00132 
00133 /* 
00134  *  トレースログのダンプ(trace_dump.c)
00135  *
00136  *  トレースログをダンプする.終了処理ルーチンとして登録することも想定
00137  *  している.引数として,ダンプ先となる文字出力関数へのポインタを渡す.
00138  *  ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
00139  *  す.
00140  */
00141 extern void trace_dump(intptr_t exinf);
00142 
00143 /*
00144  *  トレースログを出力するためのライブラリ関数
00145  */
00146 extern void trace_write_0(uint_t type);
00147 extern void trace_write_1(uint_t type, intptr_t arg1);
00148 extern void trace_write_2(uint_t type, intptr_t arg1, intptr_t arg2);
00149 extern void trace_write_3(uint_t type, intptr_t arg1, intptr_t arg2,
00150                                                         intptr_t arg3);
00151 
00152 /*
00153  *  トレースログを出力するためのマクロ
00154  */
00155 
00156 #define trace_0(type) \
00157                 trace_write_0(type)
00158 
00159 #define trace_1(type, arg1) \
00160                 trace_write_1(type, (intptr_t)(arg1))
00161 
00162 #define trace_2(type, arg1, arg2) \
00163                 trace_write_2(type, (intptr_t)(arg1), (intptr_t)(arg2))
00164 
00165 #define trace_3(type, arg1, arg2, arg3) \
00166                 trace_write_3(type, (intptr_t)(arg1), (intptr_t)(arg2), \
00167                         (intptr_t)(arg3))
00168 
00169 #endif /* TOPPERS_MACRO_ONLY */
00170 
00171 /*
00172  *  トレースログ方法の設定
00173  */
00174 #define LOG_TSKSTAT(p_tcb)      trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
00175 
00176 #define LOG_DSP_LEAVE(p_tcb)    trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb)
00177 
00178 #define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog) \
00179                                 trace_wri_log((TRACE *) p_syslog)
00180 
00181 #endif /* TOPPERS_TRACE_CONFIG_H */

Copyright © 2008 by Kijineko Inc.

ホームページ制作