source: atk2-sc3_fl850f1l/arch/logtrace/trace_config.h@ 117

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

ATK2-SC3 1.3.2 FL850F1L(RH850F1L)依存部(GCC/GHS/CCRH)を追加

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