3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
11 * 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
12 * によって公表されている GNU General Public License の Version 2 に記
13 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
14 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
27 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
35 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
36 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
38 * @(#) $Id: t_services.h,v 1.1 2009/01/31 05:27:37 suikan Exp $
42 * アプリケーション用 標準インクルードファイル
44 * このインクルードファイルは,カーネル上で動作するプログラムのソース
45 * ファイルでインクルードする標準インクルードファイルである.この中で,
46 * kernel.h(さらにここから,t_stddef.h,itron.h,tool_defs.h,
47 * sys_defs.h,cpu_defs.h,t_syslog.h)とserial.hをインクルードしてい
48 * る.また,アプリケーションに有益と思われる定義をいくつか含んでいる.
50 * アセンブリ言語のソースファイルやシステムコンフィギュレーションファ
51 * イルからこのファイルをインクルードする時は,_MACRO_ONLY を定義して
52 * おくことで,マクロ定義以外の記述を除くことができる.
55 #ifndef _T_SERVICES_H_
56 #define _T_SERVICES_H_
63 * カーネルを呼び出すために必要なインクルードファイル
77 extern void kernel_exit(void) throw();
80 * syscallマクロ,_syscall マクロの定義
83 extern void t_perror(UINT prio, const char *file, int line,
84 const char *expr, ER ercd) throw();
87 _t_perror(const char *file, int line, const char *expr, ER ercd)
90 t_perror(LOG_ERROR, file, line, expr, ercd);
96 _t_panic(const char *file, int line, const char *expr, ER ercd)
99 t_perror(LOG_EMERG, file, line, expr, ercd);
105 #define syscall(s) _t_perror(__FILE__, __LINE__, #s, (s))
106 #define _syscall(s) _t_panic(__FILE__, __LINE__, #s, (s))
108 #endif /* _MACRO_ONLY */
114 #endif /* _T_SERVICES_H_ */