2 * Hyper Operating System V4 Advance
5 * @brief %jp{タスク優先度の変更}
7 * Copyright (C) 1998-2006 by Project HOS
8 * http://sourceforge.jp/projects/hos/
13 #include "core/core.h"
18 ER get_pri(ID tskid, PRI *p_tskpri)
20 _KERNEL_T_TSKHDL tskhdl;
21 _KERNEL_T_TCB_PTR tcb;
23 if ( tskid == TSK_SELF ) /* %jp{自タスク指定時の変換} */
26 #if _KERNEL_SPT_REF_TSK_E_ID
27 if ( _KERNEL_SYS_SNS_CTX() )
29 return E_ID; /* %jp{不正ID番号} */
33 tskhdl = _KERNEL_SYS_GET_RUNTSK();
35 _KERNEL_ENTER_SVC(); /* %jp{enter service-call}%jp{サービスコールに入る} */
38 tcb = _KERNEL_TSK_TSKHDL2TCB(tskhdl);
42 #if _KERNEL_SPT_REF_TSK_E_ID
43 if ( !_KERNEL_TSK_CHECK_TSKID(tskid) )
45 return E_ID; /* %jp{不正ID番号} */
49 _KERNEL_ENTER_SVC(); /* %jp{enter service-call}%jp{サービスコールに入る} */
51 /* %jp{オブジェクト存在チェック} */
52 #ifdef _KERNEL_SPT_REF_TSK_E_NOEXS
53 if ( _KERNEL_TSK_CHECK_EXS(tskid) )
55 _KERNEL_LEAVE_SVC(); /* %jp{leave service-call}%jp{サービスコールを出る} */
56 return E_NOEXS; /* %jp{オブジェクト未生成} */
60 tcb = _KERNEL_TSK_ID2TCB(tskid);
61 tskhdl = _KERNEL_TSK_GET_TSKHDL(tskid, tcb);
65 *p_tskpri = _KERNEL_TSK_GET_TSKBPRI(tcb);
67 _KERNEL_LEAVE_SVC(); /* %jp{サービスコール終了} */