source: atk2-sc3-1.4.0-ntisr/arch/logtrace/trace_config.h@ 172

Last change on this file since 172 was 172, checked in by ertl-ishikawa, 8 years ago

ATK2-SC3 1.4.0 RH850依存部 非信頼C2ISR対応を追加

  • Property svn:executable set to *
File size: 23.4 KB
Line 
1/*
2 * TOPPERS ATK2
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 * Automotive Kernel Version 2
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2004-2015 by Center for Embedded Computing Systems
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 * Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
11 * Copyright (C) 2011-2013 by Spansion LLC, USA
12 * Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
13 * Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
14 * Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
15 * Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
16 * Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
17 * Copyright (C) 2011-2015 by Witz Corporation
18 * Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
19 * Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
20 * Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
21 * Copyright (C) 2015 by SUZUKI MOTOR CORPORATION
22 *
23 * 上記著作権者
24は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
25 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
26 * 変・再é…
27å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
28 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
29 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
30 * スコード中に含まれていること.
31 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
32 * 用できる形で再é…
33å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
35 * 者
36マニュアルなど)に,上記の著作権表示,この利用条件および下記
37 * の無保証規定を掲載すること.
38 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
39 * 用できない形で再é…
40å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
41 * と.
42 * (a) 再é…
43å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
44マニュアルなど)に,上記の著
45 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
46 * (b) 再é…
47å¸ƒã®å½¢æ…
48‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
49 * 報告すること.
50 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
51 * 害からも,上記著作権者
52およびTOPPERSプロジェクトをå…
53è²¬ã™ã‚‹ã“と.
54 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
55 * 由に基づく請求からも,上記著作権者
56およびTOPPERSプロジェクトを
57 * å…
58è²¬ã™ã‚‹ã“と.
59 *
60 * 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
61 * 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
62 * はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
63 * 用する者
64に対して,AUTOSARパートナーになることを求めている.
65 *
66 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
67お
68 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
69 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
70 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
71 * の責任を負わない.
72 *
73 * $Id: trace_config.h 439 2015-12-09 12:33:41Z aisincom-nishioka $
74 */
75
76/*
77 * トレースログに関する設定
78 */
79
80#ifndef TOPPERS_TRACE_CONFIG_H
81#define TOPPERS_TRACE_CONFIG_H
82
83#ifdef TOPPERS_ENABLE_TRACE
84
85/*
86 * トレースログバッファのサイズ
87 */
88#ifndef TCNT_TRACE_BUFFER
89#define TCNT_TRACE_BUFFER UINT_C(8192)
90
91#endif /* TCNT_TRACE_BUFFER */
92
93/*
94 * トレース時刻の取得方法
95 */
96#ifndef GET_UTIM
97#define GET_UTIM() (get_tim_utime())
98#endif /* GET_UTIM */
99
100#ifndef TOPPERS_MACRO_ONLY
101
102/*
103 * トレースログのデータ構造
104 *
105 * システムログ機能のログ情
106報のデータ構造と同じものを用いる
107 */
108#include "t_syslog.h"
109typedef SYSLOG TRACE;
110
111typedef uint32 TraceModeType; /* サービスコールの動作モード */
112
113#endif /* TOPPERS_MACRO_ONLY */
114
115/*
116 * トレースモードの定義
117 */
118#define TRACE_STOP UINT_C(0x00) /* トレース停止 */
119#define TRACE_RINGBUF UINT_C(0x01) /* リングバッファモード */
120#define TRACE_AUTOSTOP UINT_C(0x02) /* 自動停止モード */
121#define TRACE_CLEAR UINT_C(0x04) /* トレースログのクリア */
122
123#ifndef TOPPERS_MACRO_ONLY
124
125/*
126 * トレースログ機能の初期化
127 *
128 * トレースログ機能を初期化する.初期化ルーチンとして登録することを想
129 * 定している.引数により次の動作を行う
130 *
131 * TRACE_STOP:初期化のみでトレースは開始しない
132 * TRACE_RINGBUF:リングバッファモードでトレースを開始
133 * TRACE_AUTOSTOP:自動停止モードでトレースを開始
134 */
135extern void trace_initialize(uintptr exinf);
136
137/*
138 * トレースログの開始
139 *
140 * トレースログの記録を開始/停止する.引数により次の動作を行う
141 *
142 * TRACE_STOP:トレースを停止
143 * TRACE_RINGBUF:リングバッファモードでトレースを開始
144 * TRACE_AUTOSTOP:自動停止モードでトレースを開始
145 * TRACE_CLEAR:トレースログをクリア
146 */
147extern StatusType trace_sta_log(TraceModeType mode);
148
149/*
150 * トレースログの読出し
151 */
152extern StatusType trace_rea_log(TRACE *p_trace);
153
154/*
155 * トレースログのダンプ(trace_dump.c)
156 *
157 * トレースログをダンプする.終了処理ルーチンとして登録することも想定
158 * している.引数として,ダンプå…
159ˆã¨ãªã‚‹æ–‡å­—出力関数へのポインタを渡す
160 * ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
161 * す
162 */
163extern void trace_dump(void (*exinf)(char8 c));
164
165/*
166 * トレースログを出力するためのライブラリ関数
167 */
168extern void trace_write_0(uint32 type);
169extern void trace_write_1(uint32 type, const uintptr arg1);
170extern void trace_write_2(uint32 type, uintptr arg1, uintptr arg2);
171extern void trace_write_3(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3);
172extern void trace_write_4(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3, uintptr arg4);
173extern void trace_write_5(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3, uintptr arg4, uintptr arg5);
174
175/*
176 * トレースログを出力するためのマクロ
177 */
178
179#define trace_0(type) trace_write_0((type))
180#define trace_1(type, arg1) trace_write_1((type), (arg1))
181#define trace_2(type, arg1, arg2) trace_write_2((type), (arg1), (arg2))
182#define trace_3(type, arg1, arg2, arg3) trace_write_3((type), (arg1), (arg2), (arg3))
183#define trace_4(type, arg1, arg2, arg3, arg4) trace_write_4((type), (arg1), (arg2), (arg3), (arg4))
184#define trace_5(type, arg1, arg2, arg3, arg4, arg5) trace_write_5((type), (arg1), (arg2), (arg3), (arg4), (arg5))
185
186#endif /* TOPPERS_MACRO_ONLY */
187
188/*
189 * トレースログ方法の設定
190 */
191
192/*
193 * 割込みサービスルーチンの前後
194 */
195#define LOG_ISR_ENTER(isrid) trace_1(LOG_TYPE_ISR | LOG_ENTER, (isrid))
196#define LOG_ISR_LEAVE(isrid) trace_1(LOG_TYPE_ISR | LOG_LEAVE, (isrid))
197
198/*
199 * アラームハンドラの前後
200 */
201#define LOG_ALM_ENTER(p_almcb) trace_1(LOG_TYPE_ALM | LOG_ENTER, (uintptr) (p_almcb))
202#define LOG_ALM_LEAVE(p_almcb) trace_1(LOG_TYPE_ALM | LOG_LEAVE, (uintptr) (p_almcb))
203
204/*
205 * スケジュールテーブル満了処理の前後
206 */
207#define LOG_SCHTBL_ENTER(p_schtblcb) trace_1(LOG_TYPE_SCHTBL | LOG_ENTER, (uintptr) (p_schtblcb))
208#define LOG_SCHTBL_LEAVE(p_schtblcb) trace_1(LOG_TYPE_SCHTBL | LOG_LEAVE, (uintptr) (p_schtblcb))
209
210/*
211 * タスクの状æ…
212‹å¤‰æ›´
213 */
214#define LOG_TSKSTAT(p_tcb) trace_2(LOG_TYPE_TSKSTAT, (uintptr) (p_tcb), (uintptr) (p_tcb)->tstat)
215
216/*
217 * ディスパッチャの前後
218 */
219#define LOG_DSP_ENTER(p_tcb) trace_1(LOG_TYPE_DSP | LOG_ENTER, (p_tcb))
220#define LOG_DSP_LEAVE(p_tcb) trace_1(LOG_TYPE_DSP | LOG_LEAVE, (p_tcb))
221
222/*
223 * ユーザーマーク
224 */
225#define LOG_TYPE_USER_MARK UINT_C(0x100)
226#define LOG_USER_MARK(str) trace_1(LOG_TYPE_USER_MARK, &(str))
227
228
229/*
230 * システムコール
231 */
232
233/*
234 * タスク管理機能
235 */
236
237#define LOG_ACTTSK_ENTER(tskid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_ACTIVATETASK, (uintptr) (tskid))
238#define LOG_ACTTSK_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_ACTIVATETASK, (uintptr) (ercd))
239#define LOG_TERTSK_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_TERMINATETASK)
240#define LOG_TERTSK_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_TERMINATETASK, (uintptr) (ercd))
241#define LOG_CHNTSK_ENTER(tskid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHAINTASK, (uintptr) (tskid))
242#define LOG_CHNTSK_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHAINTASK, (uintptr) (ercd))
243#define LOG_SCHED_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SCHEDULE)
244#define LOG_SCHED_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SCHEDULE, (uintptr) (ercd))
245#define LOG_GETTID_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETTASKID)
246#define LOG_GETTID_LEAVE(ercd, p_tskid) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETTASKID, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_tskid)) : (0U)))
247#define LOG_GETTST_ENTER(tskid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETTASKSTATE, (uintptr) (tskid))
248#define LOG_GETTST_LEAVE(ercd, p_state) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETTASKSTATE, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_state)) : (0U)))
249
250/*
251 * イベント機能
252 */
253#define LOG_SETEVT_ENTER(tskid, mask) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_SETEVENT, (uintptr) (tskid), (uintptr) (mask))
254#define LOG_SETEVT_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETEVENT, (uintptr) (ercd))
255#define LOG_CLREVT_ENTER(p_runtsk, mask) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CLEAREVENT, (uintptr) (p_runtsk), (uintptr) (mask))
256#define LOG_CLREVT_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CLEAREVENT, (uintptr) (ercd))
257#define LOG_GETEVT_ENTER(tskid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETEVENT, (uintptr) (tskid))
258#define LOG_GETEVT_LEAVE(ercd, tskid, p_mask) trace_4(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETEVENT, (uintptr) (ercd), (uintptr) (tskid), (((ercd) == E_OK) ? (uintptr) (*(p_mask)) : (0U)))
259#define LOG_WAIEVT_ENTER(p_runtsk, mask) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_WAITEVENT, (uintptr) (p_runtsk), (uintptr) (mask))
260#define LOG_WAIEVT_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_WAITEVENT, (uintptr) (ercd))
261
262/*
263 * リソース機能
264 */
265#define LOG_GETRES_ENTER(resid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETRESOURCE, (uintptr) (resid))
266#define LOG_GETRES_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETRESOURCE, (uintptr) (ercd))
267#define LOG_RELRES_ENTER(resid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_RELEASERESOURCE, (uintptr) (resid))
268#define LOG_RELRES_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_RELEASERESOURCE, (uintptr) (ercd))
269
270/*
271 * アラーム機能
272 */
273#define LOG_GETALB_ENTER(almid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETALARMBASE, (uintptr) (almid))
274#define LOG_GETALB_LEAVE(ercd, info) trace_5(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETALARMBASE, (uintptr) (ercd), (((ercd) == E_OK) ? ((info)->maxallowedvalue) : (0U)), (((ercd) == E_OK) ? ((info)->ticksperbase) : (0U)), (((ercd) == E_OK) ? ((info)->mincycle) : (0U)))
275#define LOG_GETALM_ENTER(almid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETALARM, (uintptr) (almid))
276#define LOG_GETALM_LEAVE(ercd, p_tick) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETALARM, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_tick)) : (0U)))
277#define LOG_SETREL_ENTER(almid, incr, cycle) trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_SETRELALARM, (uintptr) (almid), (uintptr) (incr), (uintptr) (cycle))
278#define LOG_SETREL_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETRELALARM, (uintptr) (ercd))
279#define LOG_SETABS_ENTER(almid, start, cycle) trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_SETABSALARM, (uintptr) (almid), (uintptr) (start), (uintptr) (cycle))
280#define LOG_SETABS_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETABSALARM, (uintptr) (ercd))
281#define LOG_CANALM_ENTER(almid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CANCELALARM, (uintptr) (almid))
282#define LOG_CANALM_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CANCELALARM, (uintptr) (ercd))
283
284/*
285 * カウンタ機能
286 */
287#define LOG_INCCNT_ENTER(cntid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_INCREMENTCOUNTER, (uintptr) (cntid))
288#define LOG_INCCNT_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_INCREMENTCOUNTER, (uintptr) (ercd))
289#define LOG_GETCNT_ENTER(cntid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETCOUNTERVALUE, (uintptr) (cntid))
290#define LOG_GETCNT_LEAVE(ercd, p_val) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETCOUNTERVALUE, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_val)) : (0U)))
291#define LOG_GETEPS_ENTER(cntid, p_val) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_GETELAPSEDVALUE, (uintptr) (cntid), (((p_val) == NULL) ? (0U) : *(p_val)))
292#define LOG_GETEPS_LEAVE(ercd, p_val, p_eval) trace_4(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETELAPSEDVALUE, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_val)) : (0U)), (((ercd) == E_OK) ? (uintptr) (*(p_eval)) : (0U)))
293
294/*
295 * スケジュールテーブル機能
296 */
297#define LOG_STASCHTBLREL_ENTER(schtblid, offset) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_STARTSCHEDULETABLEREL, (uintptr) (schtblid), (uintptr) (offset))
298#define LOG_STASCHTBLREL_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STARTSCHEDULETABLEREL, (uintptr) (ercd))
299#define LOG_STASCHTBLABS_ENTER(schtblid, start) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_STARTSCHEDULETABLEABS, (uintptr) (schtblid), (uintptr) (start))
300#define LOG_STASCHTBLABS_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STARTSCHEDULETABLEABS, (uintptr) (ercd))
301#define LOG_STPSCHTBL_ENTER(schtblid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_STOPSCHEDULETABLE, (uintptr) (schtblid))
302#define LOG_STPSCHTBL_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STOPSCHEDULETABLE, (uintptr) (ercd))
303#define LOG_NXTSCHTBL_ENTER(from, to) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_NEXTSCHEDULETABLE, (uintptr) (from), (uintptr) (to))
304#define LOG_NXTSCHTBL_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_NEXTSCHEDULETABLE, (uintptr) (ercd))
305#define LOG_GETSCHTBLST_ENTER(schtblid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETSCHEDULETABLESTATUS, (uintptr) (schtblid))
306#define LOG_GETSCHTBLST_LEAVE(ercd, p_status) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETSCHEDULETABLESTATUS, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_status)) : (0U)))
307
308/*
309 * 割込み管理機能
310 */
311#define LOG_DISINT_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_DISABLEALLINTERRUPTS)
312#define LOG_DISINT_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_DISABLEALLINTERRUPTS)
313#define LOG_ENAINT_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_ENABLEALLINTERRUPTS)
314#define LOG_ENAINT_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_ENABLEALLINTERRUPTS)
315#define LOG_SUSALL_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SUSPENDALLINTERRUPTS)
316#define LOG_SUSALL_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_SUSPENDALLINTERRUPTS)
317#define LOG_RSMALL_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_RESUMEALLINTERRUPTS)
318#define LOG_RSMALL_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_RESUMEALLINTERRUPTS)
319#define LOG_SUSOSI_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SUSPENDOSINTERRUPTS)
320#define LOG_SUSOSI_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_SUSPENDOSINTERRUPTS)
321#define LOG_RSMOSI_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_RESUMEOSINTERRUPTS)
322#define LOG_RSMOSI_LEAVE() trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_RESUMEOSINTERRUPTS)
323#define LOG_GETISRID_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETISRID)
324#define LOG_GETISRID_LEAVE(isrid) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETISRID, (uintptr) (isrid))
325#define LOG_DISINTSRC_ENTER(isrid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_DISABLEINTERRUPTSOURCE, (uintptr) (isrid))
326#define LOG_DISINTSRC_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_DISABLEINTERRUPTSOURCE, (uintptr) (ercd))
327#define LOG_ENAINTSRC_ENTER(isrid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_ENABLEINTERRUPTSOURCE, (uintptr) (isrid))
328#define LOG_ENAINTSRC_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_ENABLEINTERRUPTSOURCE, (uintptr) (ercd))
329
330/*
331 * カーネルの初期化と終了処理
332 */
333#define LOG_STAOS_ENTER(mode)
334#define LOG_STAOS_LEAVE()
335#define LOG_STUTOS_ENTER(ercd) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_SHUTDOWNOS, (uintptr) (ercd))
336#define LOG_STUTOS_LEAVE()
337#define LOG_GETAAM_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETACTIVEAPPLICATIONMODE)
338#define LOG_GETAAM_LEAVE(mode) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETACTIVEAPPLICATIONMODE, (uintptr) (mode))
339#define LOG_STAHOOK_ENTER() trace_0(LOG_TYPE_STAHOOK | LOG_ENTER)
340#define LOG_STAHOOK_LEAVE() trace_0(LOG_TYPE_STAHOOK | LOG_LEAVE)
341#define LOG_ERRHOOK_ENTER(ercd) trace_1(LOG_TYPE_ERRHOOK | LOG_ENTER, (uintptr) (ercd))
342#define LOG_ERRHOOK_LEAVE() trace_0(LOG_TYPE_ERRHOOK | LOG_LEAVE)
343#define LOG_PROHOOK_ENTER(ercd) trace_1(LOG_TYPE_PROHOOK | LOG_ENTER, (uintptr) (ercd))
344#define LOG_PROHOOK_LEAVE(pret) trace_1(LOG_TYPE_PROHOOK | LOG_LEAVE, (uintptr) (pret))
345#define LOG_SHUTHOOK_ENTER(ercd) trace_1(LOG_TYPE_SHUTHOOK | LOG_ENTER, (uintptr) (ercd))
346#define LOG_SHUTHOOK_LEAVE() trace_0(LOG_TYPE_SHUTHOOK | LOG_LEAVE)
347
348/*
349 * システムログ機能
350 */
351#define LOG_SYSLOG_WRI_LOG_LEAVE(ercd)
352#define LOG_SYSLOG_REA_LOG_ENTER(p_syslog)
353#define LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog)
354#define LOG_SYSLOG_MSK_LOG_ENTER(lowmask)
355#define LOG_SYSLOG_MSK_LOG_LEAVE(ercd)
356#define LOG_SYSLOG_REF_LOG_ENTER(pk_rlog)
357#define LOG_SYSLOG_REF_LOG_LEAVE(pk_rlog)
358
359/*
360 * OSAP機能
361 */
362#define LOG_GETOSAPID_ENTER() trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETAPPLICATIONID)
363#define LOG_GETOSAPID_LEAVE(id) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETAPPLICATIONID, (uintptr) (id))
364#define LOG_GETAST_ENTER(id) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETAPPLICATIONSTATE, (uintptr) (id))
365#define LOG_GETAST_LEAVE(ercd, p_value) trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETAPPLICATIONSTATE, (uintptr) (ercd), (((ercd) == E_OK) ? (uintptr) (*(p_value)) : (0U)))
366#define LOG_CALTFN_ENTER(index) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CALLTRUSTEDFUNCTION, (uintptr) (index))
367#define LOG_CALTFN_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CALLTRUSTEDFUNCTION, (uintptr) (ercd))
368#define LOG_TFN_ENTER(index) trace_1(LOG_TYPE_TFN | LOG_ENTER, (uintptr) (index))
369#define LOG_TFN_LEAVE(index, ercd) trace_2(LOG_TYPE_TFN | LOG_LEAVE, (uintptr) (index), (uintptr) (ercd))
370#define LOG_CHKTSKACS_ENTER(ApplID, TaskID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKACCESS, (uintptr) (ApplID), (uintptr) (TaskID))
371#define LOG_CHKTSKACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKACCESS, (uintptr) (access))
372#define LOG_CHKISRACS_ENTER(ApplID, ISRID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISRACCESS, (uintptr) (ApplID), (uintptr) (ISRID))
373#define LOG_CHKISRACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISRACCESS, (uintptr) (access))
374#define LOG_CHKALMACS_ENTER(ApplID, AlarmID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKALARMACCESS, (uintptr) (ApplID), (uintptr) (AlarmID))
375#define LOG_CHKALMACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKALARMACCESS, (uintptr) (access))
376#define LOG_CHKRESACS_ENTER(ApplID, ResID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKRESOURCEACCESS, (uintptr) (ApplID), (uintptr) (ResID))
377#define LOG_CHKRESACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKRESOURCEACCESS, (uintptr) (access))
378#define LOG_CHKCNTACS_ENTER(ApplID, CounterID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKCOUNTERACCESS, (uintptr) (ApplID), (uintptr) (CounterID))
379#define LOG_CHKCNTACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKCOUNTERACCESS, (uintptr) (access))
380#define LOG_CHKSCHTBLACS_ENTER(ApplID, ScheduleTableID) trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKSCHEDULETABLEACCESS, (uintptr) (ApplID), (uintptr) (ScheduleTableID))
381#define LOG_CHKSCHTBLACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKSCHEDULETABLEACCESS, (uintptr) (access))
382#define LOG_CHKTSKOWN_ENTER(TaskID) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKOWNERSHIP, (uintptr) (TaskID))
383#define LOG_CHKTSKOWN_LEAVE(owner) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKOWNERSHIP, (uintptr) (owner))
384#define LOG_CHKISROWN_ENTER(ISRID) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISROWNERSHIP, (uintptr) (ISRID))
385#define LOG_CHKISROWN_LEAVE(owner) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISROWNERSHIP, (uintptr) (owner))
386#define LOG_CHKALMOWN_ENTER(AlarmID) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKALARMOWNERSHIP, (uintptr) (AlarmID))
387#define LOG_CHKALMOWN_LEAVE(owner) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKALARMOWNERSHIP, (uintptr) (owner))
388#define LOG_CHKCNTOWN_ENTER(CounterID) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKCOUNTEROWNERSHIP, (uintptr) (CounterID))
389#define LOG_CHKCNTOWN_LEAVE(owner) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKCOUNTEROWNERSHIP, (uintptr) (owner))
390#define LOG_CHKSCHTBLOWN_ENTER(ScheduleTableID) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKSCHEDULETABLEOWNERSHIP, (uintptr) (ScheduleTableID))
391#define LOG_CHKSCHTBLOWN_LEAVE(owner) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKSCHEDULETABLEOWNERSHIP, (uintptr) (owner))
392
393/*
394 * IOC機能
395 */
396#define LOG_IOCSEND_ENTER(senderid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_SEND_GENERIC, (uintptr) (senderid))
397#define LOG_IOCSEND_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_SEND_GENERIC, (uintptr) (ercd))
398#define LOG_IOCWRITE_ENTER(senderid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_WRITE_GENERIC, (uintptr) (senderid))
399#define LOG_IOCWRITE_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_WRITE_GENERIC, (uintptr) (ercd))
400#define LOG_IOCRECEIVE_ENTER(iocid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_RECEIVE_GENERIC, (uintptr) (iocid))
401#define LOG_IOCRECEIVE_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_RECEIVE_GENERIC, (uintptr) (ercd))
402#define LOG_IOCREAD_ENTER(iocid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_READ_GENERIC, (uintptr) (iocid))
403#define LOG_IOCREAD_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_READ_GENERIC, (uintptr) (ercd))
404#define LOG_IOCEMPTYQUEUE_ENTER(iocid) trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_EMPTY_QUEUE_GENERIC, (uintptr) (iocid))
405#define LOG_IOCEMPTUQUEUE_LEAVE(ercd) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_EMPTY_QUEUE_GENERIC, (uintptr) (ercd))
406
407/*
408 * メモリアクセス関連機能
409 */
410#define LOG_CHKISRMEMACS_ENTER(ISRID, Address, Size) trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISRMEMORYACCESS, (uintptr) (ISRID), (uintptr) (Address), (uintptr) (Size))
411#define LOG_CHKISRMEMACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISRMEMORYACCESS, (uintptr) (access))
412#define LOG_CHKTSKMEMACS_ENTER(TaskID, Address, Size) trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKMEMORYACCESS, (uintptr) (TaskID), (uintptr) (Address), (uintptr) (Size))
413#define LOG_CHKTSKMEMACS_LEAVE(access) trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKMEMORYACCESS, (uintptr) (access))
414
415#endif /* TOPPERS_ENABLE_TRACE */
416
417#endif /* TOPPERS_TRACE_CONFIG_H */
Note: See TracBrowser for help on using the repository browser.