source: atk2-sc3_fl850f1l/kernel/osap.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: 6.0 KB
Line 
1/*
2 * TOPPERS ATK2
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 * Automotive Kernel Version 2
5 *
6 * Copyright (C) 2004-2015 by Center for Embedded Computing Systems
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 * Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
9 * Copyright (C) 2011-2013 by Spansion LLC, USA
10 * Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
11 * Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
12 * Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
13 * Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
14 * Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
15 * Copyright (C) 2011-2015 by Witz Corporation
16 * Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
17 * Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
18 * Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
19 *
20 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
21 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
22 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
23 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
24 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
25 * スコード中に含まれていること.
26 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
27 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
28 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
29 * の無保証規定を掲載すること.
30 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
31 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
32 * と.
33 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
34 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
35 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
36 * 報告すること.
37 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
38 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
39 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
40 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
41 * 免責すること.
42 *
43 * 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
44 * 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
45 * はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
46 * 用する者に対して,AUTOSARパートナーになることを求めている.
47 *
48 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
49 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
50 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
51 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
52 * の責任を負わない.
53 *
54 * $Id: osap.h 187 2015-06-25 03:39:04Z t_ishikawa $
55 */
56
57/*
58 * OSアプリケーション管理機能
59 */
60
61#ifndef TOPPERS_OSAP_H
62#define TOPPERS_OSAP_H
63
64/*
65 * OSアプリケーションの属性
66 */
67#define TA_NONTRUSTED (FALSE)
68#define TA_TRUSTED (TRUE)
69
70/*
71 * OSアプリケーションIDからOSAPINIBを取り出すためのマクロ
72 */
73#define get_osapinib(osapid) (&(osapinib_table[(osapid)]))
74
75/*
76 * OSAPIDからOSAPCBを取り出すためのマクロ
77 */
78#define get_osapcb(osapid) (&(osapcb_table[(osapid)]))
79
80/*
81 * OSAPCBからOSアプリケーションIDを取り出すためのマクロ
82 */
83#define OSAPID(p_osapcb) ((ApplicationType) ((p_osapcb) - osapcb_table))
84
85#ifndef TOPPERS_MACRO_ONLY
86
87typedef struct os_application_control_block OSAPCB;
88#include "task.h"
89
90/*
91 * OSアプリケーション初期化ブロック
92 *
93 * OSアプリケーションに関する情報を,OSアプリケーション制御ブロックと
94 * して定義する
95 * 他のオブジェクトは,ROMに置く初期化ブロックとRAMに置く制御ブロック
96 * で構成されているが,OSアプリケーションに関する情報は実行時に変更さ
97 * れることがないため,初期化ブロックを制御ブロックとして使用する
98 *
99 * ATK2-SC3では,メモリプロテクション機能のための情報を持たせるが,
100 * メモリプロテクション実装はCPUに依存するため,メモリプロテクション
101 * 情報の本体は機種依存部に持たせる
102 */
103typedef struct os_application_initialization_block {
104 void (*StartupHook)(void);
105 void (*ErrorHook)(StatusType);
106 void (*ShutdownHook)(StatusType);
107 TCB *p_restart_tcb; /* OSAPのリスタートタスク管理ブロックへのポインタ */
108 boolean osap_trusted; /* OSアプリケーションの属性 */
109 uint32 btptn; /* 非信頼OSアプリケーションのビットパターン */
110#ifndef OMIT_OSAPMPUINFOB
111 OSAPMPUINFOB osap_mpu; /* OSアプリケーションのMPU情報 */
112#endif
113
114} OSAPINIB;
115
116/*
117 * OSアプリケーション管理ブロック
118 */
119struct os_application_control_block {
120 const OSAPINIB *p_osapinib; /* 初期化ブロックへのポインタ */
121 ApplicationStateType osap_stat; /* OSAP状態 */
122};
123
124/*
125 * OSアプリケーション数を保持する変数の宣言(Os_Lcfg.c)
126 */
127extern const ApplicationType tnum_osap; /* OSアプリケーションの数 */
128
129extern const TrustedFunctionIndexType tnum_tfn; /* 信頼関数の数 */
130
131typedef StatusType (*TrustedFunctionRefType)(TrustedFunctionIndexType FunctionIndex,
132 TrustedFunctionParameterRefType FunctionParams);
133
134/*
135 * 信頼関数初期化ブロック
136 */
137typedef struct trusted_function_initialization_block {
138 TrustedFunctionRefType trs_func; /* 信頼関数の起動番地 */
139 MemorySizeType tf_stksz; /* スタックサイズ */
140} TFINIB;
141
142/*
143 * OSAPCBのエリア(Os_Lcfg.c)
144 */
145extern OSAPCB osapcb_table[];
146
147/*
148 * 実行中のOSアプリケーション
149 */
150extern OSAPCB *p_runosap;
151
152/*
153 * OSAPINIBの外部参照(kernel_mem.c)
154 */
155extern const OSAPINIB osapinib_table[];
156
157/*
158 * TFINIBの外部参照(Os_Lcfg.c)
159 */
160extern const TFINIB tfinib_table[];
161
162/*
163 * 指定OSAPを終了/再起動する内部関数(プロテクションフックからも呼ばれる)
164 */
165extern void internal_term_osap(OSAPCB *p_osapcb, RestartType RestartOption);
166
167/*
168 * OSアプリケーション管理モジュールの初期化
169 */
170extern void osap_initialize(void);
171
172#endif /* TOPPERS_MACRO_ONLY */
173
174#endif /* TOPPERS_OSAP_H_ */
Note: See TracBrowser for help on using the repository browser.