OSDN Git Service

(none)
[hos/hos-v4a.git] / kernel / source / core / dsp / dsp_rsm.c
1 /** 
2  *  Hyper Operating System V4 Advance
3  *
4  * @file  dsp_sta.c
5  * @brief %jp{タスクの起床}%en{Wakeup Task}
6  *
7  * Copyright (C) 1998-2006 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include "core/core.h"
13
14
15 /** %jp{タスクをサスペンド解除する} */
16 void _kernel_dsp_rsm_tsk(_KERNEL_T_TSKHDL tskhdl)
17 {
18         _KERNEL_T_TCB_PTR     tcb;
19         _KERNEL_TSK_T_TSKSTAT tskstat;
20
21         /* %jp{TCBを取得} */
22         tcb = _KERNEL_TSK_TSKHDL2TCB(tskhdl);
23
24         /* %jp{現在の状態を取得} */
25         tskstat = _KERNEL_TSK_GET_TSKSTAT(tcb);
26         
27         /* %jp{現在の状態を取得} */
28         if ( !(tskstat & _KERNEL_TTS_WAI) )
29         {
30                 /* %jp{レディーキューに接続} */
31                 _KERNEL_ADD_RDQ(tskhdl);
32         }
33         
34         /* %jp{強制待ち状態を解除} */
35         tskstat &= _KERNEL_TTS_SUS;
36         _KERNEL_TSK_SET_TSKSTAT(tcb, tskstat);
37 }
38
39
40
41 /* end of file */