OSDN Git Service

(none)
authorryuz <ryuz>
Wed, 20 Dec 2006 14:31:59 +0000 (14:31 +0000)
committerryuz <ryuz>
Wed, 20 Dec 2006 14:31:59 +0000 (14:31 +0000)
kernel/cfgrtr/source/calcexp.cpp
kernel/source/object/tsk/get_pri.c [new file with mode: 0755]

index 04bf14e..9067ede 100755 (executable)
@@ -61,9 +61,6 @@ bool CExpression::Calc(const char *pszExpression, int &piValue)
 
 bool CExpression::Calc(vector<TTerm> &vectTerm, const char *pszExpression, int &piValue)
 {
-
-}
-
        vector<TTerm> vectTerm;
        TTerm Term;
        int   c;
diff --git a/kernel/source/object/tsk/get_pri.c b/kernel/source/object/tsk/get_pri.c
new file mode 100755 (executable)
index 0000000..67b1917
--- /dev/null
@@ -0,0 +1,73 @@
+/** 
+ *  Hyper Operating System V4 Advance
+ *
+ * @file  chg_pri.c
+ * @brief %jp{タスク優先度の変更}
+ *
+ * Copyright (C) 1998-2006 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+
+#include "core/core.h"
+
+
+
+/** %jp{タスク優先度の参照} */
+ER get_pri(ID tskid, PRI *p_tskpri)
+{
+       _KERNEL_T_TSKHDL   tskhdl;
+       _KERNEL_T_TCB_PTR  tcb;
+
+       if ( tskid == TSK_SELF )                /* %jp{自タスク指定時の変換} */
+       {
+
+#if _KERNEL_SPT_REF_TSK_E_ID
+               if ( _KERNEL_SYS_SNS_CTX() )
+               {
+                       return E_ID;            /* %jp{不正ID番号} */
+               }
+#endif 
+               /* %jp{実行中タスクを取得} */
+               tskhdl = _KERNEL_SYS_GET_RUNTSK();
+
+               _KERNEL_ENTER_SVC();            /* %jp{enter service-call}%jp{サービスコールに入る} */
+
+               /* %jp{TCBを取得} */
+               tcb = _KERNEL_TSK_TSKHDL2TCB(tskhdl);
+       }
+       else
+       {
+#if _KERNEL_SPT_REF_TSK_E_ID
+               if ( !_KERNEL_TSK_CHECK_TSKID(tskid) )
+               {
+                       return E_ID;    /* %jp{不正ID番号} */
+               }
+#endif
+               
+               _KERNEL_ENTER_SVC();                    /* %jp{enter service-call}%jp{サービスコールに入る} */
+               
+               /* %jp{オブジェクト存在チェック} */
+#ifdef _KERNEL_SPT_REF_TSK_E_NOEXS
+               if ( _KERNEL_TSK_CHECK_EXS(tskid) )
+               {
+                       _KERNEL_LEAVE_SVC();            /* %jp{leave service-call}%jp{サービスコールを出る} */
+                       return E_NOEXS;                         /* %jp{オブジェクト未生成} */
+               }
+#endif
+               /* ID番号指定時の変換 */
+               tcb    = _KERNEL_TSK_ID2TCB(tskid);
+               tskhdl = _KERNEL_TSK_GET_TSKHDL(tskid, tcb);
+       }
+       
+       /* %jp{優先度取得} */
+       *p_tskpri = _KERNEL_TSK_GET_TSKBPRI(tcb);
+
+       _KERNEL_LEAVE_SVC();    /* %jp{サービスコール終了} */
+
+       return E_OK;
+}
+
+
+/* end of file */