source: azure_iot_hub/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h@ 389

Last change on this file since 389 was 389, checked in by coas-nagasima, 5 years ago

ビルドが通るよう更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 7.8 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2015 by Ushio Laboratory
7 * Graduate School of Engineering Science, Osaka Univ., JAPAN
8 * Copyright (C) 2015 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16 * スコード中に含まれていること.
17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
20 * の無保証規定を掲載すること.
21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
23 * と.
24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
25 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
27 * 報告すること.
28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
32 * 免責すること.
33 *
34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
38 * の責任を負わない.
39 *
40 * $Id$
41 */
42
43#ifndef TOPPERS_TKERNEL_INLINE_H
44#define TOPPERS_TKERNEL_INLINE_H
45
46/*
47 * 自タスクの拡張情報の参照
48 */
49Inline ER
50eKernel_getExtendedInformation(intptr_t* p_exinf)
51{
52 return(get_inf(p_exinf));
53}
54
55/*
56 * 起床待ち
57 */
58Inline ER
59eKernel_sleep(void)
60{
61 return(slp_tsk());
62}
63
64/*
65 * 起床待ち(タイムアウトあり)
66 */
67Inline ER
68eKernel_sleepTimeout(TMO timeout)
69{
70 return(tslp_tsk(timeout));
71}
72
73/*
74 * 自タスクの遅延
75 */
76Inline ER
77eKernel_delay(RELTIM delayTime)
78{
79 return(dly_tsk(delayTime));
80}
81
82/*
83 * 自タスクの終了
84 */
85Inline ER
86eKernel_exit(void)
87{
88 return(ext_tsk());
89}
90
91/*
92 * タスク終了の禁止
93 */
94Inline ER
95eKernel_disableTerminate(void)
96{
97 return(dis_ter());
98}
99
100/*
101 * タスク終了の許可
102 */
103Inline ER
104eKernel_enableTerminate(void)
105{
106 return(ena_ter());
107}
108
109/*
110 * タスク終了禁止状態の参照
111 */
112Inline bool_t
113eKernel_senseTerminate(void)
114{
115 return(sns_ter());
116}
117
118/*
119 * システム時刻の設定
120 */
121Inline ER
122eKernel_setTime(SYSTIM systemTime)
123{
124 return(set_tim(systemTime));
125}
126
127/*
128 * システム時刻の参照
129 */
130Inline ER
131eKernel_getTime(SYSTIM* p_systemTime)
132{
133 return(get_tim(p_systemTime));
134}
135
136/*
137 * システム時刻の調整
138 */
139Inline ER
140eKernel_adjustTime(int32_t adjustTime)
141{
142 return(adj_tim(adjustTime));
143}
144
145/*
146 * 高分解能タイマの参照
147 */
148Inline HRTCNT
149eKernel_fetchHighResolutionTimer(void)
150{
151 return(fch_hrt());
152}
153
154/*
155 * タスクの優先順位の回転
156 */
157Inline ER
158eKernel_rotateReadyQueue(PRI taskPriority)
159{
160 return(rot_rdq(taskPriority));
161}
162
163/*
164 * 実行状態のタスクIDの参照
165 */
166Inline ER
167eKernel_getTaskId(ID *p_taskId)
168{
169 return(get_tid(p_taskId));
170}
171
172/*
173 * 実行できるタスクの数の参照
174 */
175Inline ER
176eKernel_getLoad(PRI taskPriority, uint_t* p_load)
177{
178 return(get_lod(taskPriority, p_load));
179}
180
181/*
182 * 指定した優先順位のタスクIDの参照
183 */
184Inline ER
185eKernel_getNthTask(PRI taskPriority, uint_t nth, ID* p_taskID)
186{
187 return (get_nth(taskPriority, nth, p_taskID));
188}
189/*
190 * CPUロック状態への遷移
191 */
192Inline ER
193eKernel_lockCpu()
194{
195 return(loc_cpu());
196}
197
198/*
199 * CPUロック状態の解除
200 */
201Inline ER
202eKernel_unlockCpu()
203{
204 return(unl_cpu());
205}
206
207/*
208 * ディスパッチの禁止
209 */
210Inline ER
211eKernel_disableDispatch()
212{
213 return(dis_dsp());
214}
215
216/*
217 * ディスパッチの許可
218 */
219Inline ER
220eKernel_enableDispatch()
221{
222 return(ena_dsp());
223}
224
225/*
226 * コンテキストの参照
227 */
228Inline bool_t
229eKernel_senseContext()
230{
231 return(sns_ctx());
232}
233
234/*
235 * CPUロック状態の参照
236 */
237Inline bool_t
238eKernel_senseLock()
239{
240 return(sns_loc());
241}
242
243/*
244 * ディスパッチ禁止状態の参照
245 */
246Inline bool_t
247eKernel_senseDispatch()
248{
249 return(sns_dsp());
250}
251
252/*
253 * ディスパッチ保留状態の参照
254 */
255Inline bool_t
256eKernel_senseDispatchPendingState()
257{
258 return(sns_dpn());
259}
260
261/*
262 * カーネル非動作状態の参照
263 */
264Inline bool_t
265eKernel_senseKernel()
266{
267 return(sns_ker());
268}
269
270/*
271 * カーネルの終了
272 */
273Inline ER
274eKernel_exitKernel()
275{
276 return(ext_ker());
277}
278
279/*
280 * 割込み優先度マスクの変更
281 */
282Inline ER
283eKernel_changeInterruptPriorityMask(PRI interruptPriority)
284{
285 return(chg_ipm(interruptPriority));
286}
287
288/*
289 * 割込み優先度マスクの参照
290 */
291Inline ER
292eKernel_getInterruptPriorityMask(PRI* p_interruptPriority)
293{
294 return(get_ipm(p_interruptPriority));
295}
296
297/*
298 * 高分解能タイマの参照(非タスクコンテキスト用)
299 */
300Inline HRTCNT
301eiKernel_fetchHighResolutionTimer(void)
302{
303 return(fch_hrt());
304}
305
306/*
307 * タスクの優先順位の回転(非タスクコンテキスト用)
308 */
309Inline ER
310eiKernel_rotateReadyQueue(PRI taskPriority)
311{
312 return(rot_rdq(taskPriority));
313}
314
315/*
316 * 実行状態のタスクIDの参照(非タスクコンテキスト用)
317 */
318Inline ER
319eiKernel_getTaskId(ID* p_taskId)
320{
321 return(get_tid(p_taskId));
322}
323
324/*
325 * CPUロック状態への遷移(非タスクコンテキスト用)
326 */
327Inline ER
328eiKernel_lockCpu()
329{
330 return(loc_cpu());
331}
332
333/*
334 * CPUロック状態の解除(非タスクコンテキスト用)
335 */
336Inline ER
337eiKernel_unlockCpu()
338{
339 return(unl_cpu());
340}
341
342/*
343 * コンテキストの参照(非タスクコンテキスト用)
344 */
345Inline bool_t
346eiKernel_senseContext()
347{
348 return(sns_ctx());
349}
350
351/*
352 * CPUロック状態の参照(非タスクコンテキスト用)
353 */
354Inline bool_t
355eiKernel_senseLock()
356{
357 return(sns_loc());
358}
359
360/*
361 * ディスパッチ禁止状態の参照(非タスクコンテキスト用)
362 */
363Inline bool_t
364eiKernel_senseDispatch()
365{
366 return(sns_dsp());
367}
368
369/*
370 * ディスパッチ保留状態の参照(非タスクコンテキスト用)
371 */
372Inline bool_t
373eiKernel_senseDispatchPendingState()
374{
375 return(sns_dpn());
376}
377
378/*
379 * カーネル非動作状態の参照(非タスクコンテキスト用)
380 */
381Inline bool_t
382eiKernel_senseKernel()
383{
384 return(sns_ker());
385}
386
387/*
388 * カーネルの終了(非タスクコンテキスト用)
389 */
390Inline ER
391eiKernel_exitKernel()
392{
393 return(ext_ker());
394}
395
396/*
397 * CPU例外発生時のディスパッチ保留状態の参照
398 */
399Inline bool_t
400eiKernel_exceptionSenseDispatchPendingState(const void *p_exceptionInformation)
401{
402 return(xsns_dpn((void *) p_exceptionInformation));
403}
404
405#endif /* TOPPERS_TKERNEL_INLINE_H */
Note: See TracBrowser for help on using the repository browser.