// ---------------------------------------------------------------------------
-// HOS V4 コンフィギュレーター
+// Hyper Operating System V4 Adcance コンフィギュレーター
// 構文解析クラス
//
// Copyright (C) 1998-2002 by Project HOS
// ---------------------------------------------------------------------------
-#ifndef __HOSV4CFG__Analyze_h__
-#define __HOSV4CFG__Analyze_h__
+#ifndef __HOSV4ACFG__Analyze_h__
+#define __HOSV4ACFG__Analyze_h__
};
-#endif // __HOSV4CFG__Analyze_h__
+#endif // __HOSV4ACFG__Analyze_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
// ---------------------------------------------------------------------------
-// Hyper Operating System V4a コンフィギュレーター
-// API定義クラス
-//
+// Hyper Operating System V4 Adcance コンフィギュレーター
+// API定義クラス
+//
// Copyright (C) 1998-2009 by Project HOS
-// http://sourceforge.jp/projects/hos/
+// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
-#ifndef __HOSV4CFG_ApiDef_h__
-#define __HOSV4CFG_ApiDef_h__
+#ifndef __HOSV4ACFG_ApiDef_h__
+#define __HOSV4ACFG_ApiDef_h__
#include "parpack.h"
};
-#endif // __HOSV4CFG_ApiDef_h__
+#endif // __HOSV4ACFG_ApiDef_h__
#endif // __HOSV4CFG_ApiAttIni_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
// ---------------------------------------------------------------------------
-// Hyper Operating System V4 コンフィギュレーター
-// CRE_CYC API の処理
-//
-// Copyright (C) 1998-2002 by Project HOS
-// http://sourceforge.jp/projects/hos/
+// Hyper Operating System V4 Advance コンフィギュレーター
+// CRE_CYC API の処理
+//
+// Copyright (C) 1998-2009 by Project HOS
+// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
-#ifndef __HOSV4CFG_CreCyc_h__
-#define __HOSV4CFG_CreCyc_h__
+#ifndef __HOSV4ACFG_CreCyc_h__
+#define __HOSV4ACFG_CreCyc_h__
#include "apidef.h"
};
-#endif // __HOSV4CFG_CreCyc_h__
+#endif // __HOSV4ACFG_CreCyc_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
// ---------------------------------------------------------------------------
-// Hyper Operating System V4 コンフィギュレーター
-// CRE_DTQ API の処理
-//
-// Copyright (C) 1998-2002 by Project HOS
-// http://sourceforge.jp/projects/hos/
+// Hyper Operating System V4 Advance コンフィギュレーター
+// CRE_DTQ API の処理
+//
+// Copyright (C) 1998-2009 by Project HOS
+// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
#endif // __HOSV4CFG_CreDtq_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_DefErrorCode_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2003 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_DefExc_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_ApiDefInh_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_DefTex_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_IdleStack_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
#endif // __HOSV4CFG_IntStack_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
#endif // __HOSV4CFG_KernelHeap_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
#endif // HOSV4CFG_ApiMaxTimout
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2003 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_ApiMaxTpri_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2003 by Project HOS
-// ---------------------------------------------------------------------------
-
+// end of file
#endif // __HOSV4CFG__ParamPack_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
#endif // __HOSV4CFG_Read_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
#endif // __HOSV4CFG_ApiTimTic_h__
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+
+// end of file
}
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2002 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
// ---------------------------------------------------------------------------
-// Hyper Operating System V4 コンフィギュレーター
+// Hyper Operating System V4 Advance コンフィギュレーター
// API定義クラス
//
-// Copyright (C) 1998-2003 by Project HOS
+// Copyright (C) 1998-2009 by Project HOS
// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
int i;
m_iDefaultMaxId = 0;
- m_iMaxId = -1;
- m_iObjs = 0;
- m_iResObj = 0;
+ m_iMaxId = -1;
+ m_iObjs = 0;
+ m_iResObj = 0;
for ( i = 0; i < API_MAX_OBJS; i++ )
{
m_pParamPacks[i] = NULL;
// 自動ID番号割り当て
int CApiDef::AutoId(void)
{
- bool blUsedId[255];
+ bool blUsedId[65536];
int iId;
int i;
-
- // 変数初期化
- for ( i = 0; i < 255; i++ )
+
+ if ( m_iObjs > 0 )
{
- blUsedId[i] = false;
- }
-
- // 固定値指定のIDをサーチ
- for ( i = 0; i < m_iObjs; i++ )
- {
- iId = atoi(m_pParamPacks[i]->GetParam(0));
- if ( iId > 0 )
+ // 変数初期化
+ for ( i = 0; i < 65536; i++ )
{
- if ( m_iId[i] != 0 )
- {
- return CFG_ERR_ID_CONFLICT; // ID衝突
- }
- m_iId[i] = iId;
- blUsedId[iId - 1] = true;
- if ( iId > m_iMaxId )
+ blUsedId[i] = false;
+ }
+
+ // 固定値指定のIDをサーチ
+ for ( i = 0; i < m_iObjs; i++ )
+ {
+ iId = atoi(m_pParamPacks[i]->GetParam(0));
+ if ( iId > 0 )
{
- m_iMaxId = iId;
+ if ( m_iId[i] != 0 )
+ {
+ return CFG_ERR_ID_CONFLICT; // ID衝突
+ }
+ m_iId[i] = iId;
+ blUsedId[iId - 1] = true;
+ if ( iId > m_iMaxId )
+ {
+ m_iMaxId = iId;
+ }
}
}
- }
- // ID 自動割当
- iId = 1;
- for ( i = 0; i < m_iObjs; i++ )
- {
- if ( m_iId[i] == 0 )
+ // ID 自動割当
+ iId = 1;
+ for ( i = 0; i < m_iObjs; i++ )
{
- // 使用済みIDのスキップ
- while ( blUsedId[iId - 1] )
+ if ( m_iId[i] == 0 )
{
- iId++;
+ // 使用済みIDのスキップ
+ while ( blUsedId[iId - 1] )
+ {
+ iId++;
+ }
+ m_iId[i] = iId++;
}
- m_iId[i] = iId++;
}
- }
- iId--;
+ iId--;
- if ( iId > m_iMaxId )
- {
- m_iMaxId = iId;
+ if ( iId > m_iMaxId )
+ {
+ m_iMaxId = iId;
+ }
}
-
+
// 最大ID番号を予約オブジェクト数分増加
- if ( m_iMaxId < m_iObjs + m_iResObj )
+ if ( m_iResObj > 0 && m_iMaxId < m_iObjs + m_iResObj )
{
m_iMaxId = m_iObjs + m_iResObj;
}
-
+
// 指定が無い場合はデフォルト値に設定
if ( m_iMaxId < 0 )
{
{
}
-
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2003 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
// コンストラクタ
CApiCreAlm::CApiCreAlm()
{
+ // %jp{デフォルトの最大ID設定}
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_ALMID;
+
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 3; // 3パラメーターのブロック
// コンストラクタ
CApiCreCyc::CApiCreCyc()
{
+ // %jp{デフォルトの最大ID設定}
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_CYCID;
+
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 5; // 5パラメーターのブロック
CApiCreDtq::CApiCreDtq()
{
// %jp{デフォルトの最大ID設定}
- m_iDefaultMaxId = _KERNEL_TMAX_DTQID;
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_DTQID;
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 3; // 3パラメーターのブロック
- m_iParams = 2;
+ m_iParams = 2;
}
// デストラクタ
CApiCreFlg::CApiCreFlg()
{
// %jp{デフォルトの最大ID設定}
- m_iDefaultMaxId = _KERNEL_TMAX_FLGID;
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_FLGID;
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
// コンストラクタ
CApiCreMbf::CApiCreMbf()
{
+ // %jp{デフォルトの最大ID設定}
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_MBFID;
+
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 4; // 4パラメーターのブロック
CApiCreMtx::CApiCreMtx()
{
// %jp{デフォルトの最大ID設定}
- m_iDefaultMaxId = _KERNEL_TMAX_MTXID;
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_MTXID;
// %jp{パラメーター構文設定}
m_iParamSyntax[0] = 0; // %jp{単独パラメーター}
m_iParamSyntax[1] = 2; // %jp{2パラメーターのブロック}
- m_iParams = 2;
+ m_iParams = 2;
}
+
// デストラクタ
CApiCreMtx::~CApiCreMtx()
{
void CApiCreMtx::WriteCfgDef(FILE* fp)
{
int i;
-
+
+
if ( m_iMaxId <= 0 )
{
+#if _KERNEL_SPT_MTX
+ m_iMaxId = 1;
+#else
return;
+#endif
}
// %jp{コメント出力}
CApiCreSem::CApiCreSem()
{
// %jp{デフォルトの最大ID設定}
- m_iDefaultMaxId = _KERNEL_TMAX_SEMID;
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_SEMID;
// %jp{パラメーター構文設定}
m_iParamSyntax[0] = 0; // %jp{単独パラメーター}
m_iParamSyntax[1] = 3; // %jp{3パラメーターのブロック}
- m_iParams = 2;
+ m_iParams = 2;
}
// デストラクタ
}
-// ---------------------------------------------------------------------------
-// Copyright (C) 1998-2006 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
CApiCreTsk::CApiCreTsk()
{
// %jp{デフォルトの最大ID設定}
- m_iDefaultMaxId = _KERNEL_TMAX_TSKID;
+ m_iDefaultMaxId = _KERNEL_DEF_TMAX_TSKID;
// %jp{パラメーター構文設定}
m_iParamSyntax[0] = 0; // %jp{単独パラメーター}
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 2; // 2つのパラメーターブロック
- m_iParams = 2;
+ m_iParams = 2;
m_iMaxExcNo = 0;
m_iMinExcNo = 0;
}
if ( iErr != CFG_ERR_OK )
{
- fprintf(stderr, "%s line(%d) : %s\n",
- read.GetLogicalInputFile(),
- read.GetLogicalLineNum(), GetErrMessage(iErr));
- return 1;
+ if ( iErr != CFG_ERR_NOPROC )
+ {
+ fprintf(stderr, "%s line(%d) : %s\n",
+ read.GetLogicalInputFile(),
+ read.GetLogicalLineNum(), GetErrMessage(iErr));
+ return 1;
+ }
+ else
+ {
+ fprintf(stderr, "%s line(%d) : Warning! Ignore unknown API(%s)\n",
+ read.GetLogicalInputFile(),
+ read.GetLogicalLineNum(),
+ szApiName);
+ }
}
}
$(OBJS_DIR)/rel_wai.$(EXT_OBJ): $(TSKOBJ_DIR)/rel_wai.c $(COMMON_HEADERS)
$(OBJS_DIR)/sus_tsk.$(EXT_OBJ): $(TSKOBJ_DIR)/sus_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)/rsm_tsk.$(EXT_OBJ): $(TSKOBJ_DIR)/rsm_tsk.c $(COMMON_HEADERS)
+$(OBJS_DIR)/frsm_tsk.$(EXT_OBJ): $(TSKOBJ_DIR)/frsm_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)/dly_tsk.$(EXT_OBJ): $(TSKOBJ_DIR)/dly_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)/def_tex.$(EXT_OBJ): $(TSKOBJ_DIR)/def_tex.c $(COMMON_HEADERS)
$(OBJS_DIR)/ras_tex.$(EXT_OBJ): $(TSKOBJ_DIR)/ras_tex.c $(COMMON_HEADERS)
CSRCS += $(TSKOBJ_DIR)/rel_wai.c
CSRCS += $(TSKOBJ_DIR)/sus_tsk.c
CSRCS += $(TSKOBJ_DIR)/rsm_tsk.c
+CSRCS += $(TSKOBJ_DIR)/frsm_tsk.c
CSRCS += $(TSKOBJ_DIR)/dly_tsk.c
CSRCS += $(TSKOBJ_DIR)/def_tex.c
CSRCS += $(TSKOBJ_DIR)/ras_tex.c
$(OBJS_DIR)\rsm_tsk.c : $(TSKOBJ_DIR)\rsm_tsk.c
$(CMD_CP) $(TSKOBJ_DIR)\rsm_tsk.c $(OBJS_DIR)\
+$(OBJS_DIR)\frsm_tsk.c : $(TSKOBJ_DIR)\frsm_tsk.c
+ $(CMD_CP) $(TSKOBJ_DIR)\frsm_tsk.c $(OBJS_DIR)\
+
$(OBJS_DIR)\dly_tsk.c : $(TSKOBJ_DIR)\dly_tsk.c
$(CMD_CP) $(TSKOBJ_DIR)\dly_tsk.c $(OBJS_DIR)\
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\rel_wai.c $(COMMON_HEADERS)
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\sus_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\rsm_tsk.c $(COMMON_HEADERS)
+$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\frsm_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\dly_tsk.c $(COMMON_HEADERS)
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\def_tex.c $(COMMON_HEADERS)
$(OBJS_DIR)\exe_isr..$(EXT_OBJ): $(OBJS_DIR)\ras_tex.c $(COMMON_HEADERS)
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\rel_wai.c
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\sus_tsk.c
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\rsm_tsk.c
+CSRCS = $(CSRCS) $(TSKOBJ_DIR)\frsm_tsk.c
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\dly_tsk.c
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\def_tex.c
CSRCS = $(CSRCS) $(TSKOBJ_DIR)\ras_tex.c
OBJS = $(OBJS) $(OBJS_DIR)\rel_wai.$(EXT_OBJ)
OBJS = $(OBJS) $(OBJS_DIR)\sus_tsk.$(EXT_OBJ)
OBJS = $(OBJS) $(OBJS_DIR)\rsm_tsk.$(EXT_OBJ)
+OBJS = $(OBJS) $(OBJS_DIR)\frsm_tsk.$(EXT_OBJ)
OBJS = $(OBJS) $(OBJS_DIR)\dly_tsk.$(EXT_OBJ)
OBJS = $(OBJS) $(OBJS_DIR)\def_tex.$(EXT_OBJ)
OBJS = $(OBJS) $(OBJS_DIR)\ras_tex.$(EXT_OBJ)
"rel_wai.c",
"sus_tsk.c",
"rsm_tsk.c",
+ "frsm_tsk.c",
"dly_tsk.c",
"def_tex.c",
"ras_tex.c",
>\r
</File>\r
</Filter>\r
+ <Filter\r
+ Name="parser"\r
+ >\r
+ <File\r
+ RelativePath="..\..\..\..\include\parser\parserr.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\..\..\..\include\parser\parshok.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\..\..\..\include\parser\parsknl.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\..\..\..\include\parser\parssys.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
</Filter>\r
<Filter\r
Name="source"\r
>\r
</File>\r
<File\r
+ RelativePath="..\..\..\..\source\object\tsk\frsm_tsk.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath="..\..\..\..\source\object\tsk\get_pri.c"\r
>\r
</File>\r
* @file cfgknl.h
* @brief %jp{カーネル仕様のコンフィギュレーション用ヘッダファイル}%en{kernel configuration heder file}
*
- * Copyright (C) 1998-2008 by Project HOS
+ * Copyright (C) 1998-2009 by Project HOS
* http://sourceforge.jp/projects/hos/
*/
/* ID number */
/* ---------------------------------------------- */
-/* %jp{オブジェクト数} */
+/* %jp{最大オブジェクトID値} */
#define _KERNEL_CFG_TMAX_TSKID 127 /**< %jp{タスクIDの最大値} */
#define _KERNEL_CFG_TMAX_SEMID 127 /**< %jp{セマフォIDの最大値} */
#define _KERNEL_CFG_TMAX_FLGID 127 /**< %jp{イベントフラグIDの最大値} */
#define _KERNEL_CFG_TMAX_OVRID 127 /**< %jp{オーバーランハンドラIDの最大値} */
#define _KERNEL_CFG_TMAX_ISRID 127 /**< %jp{割り込みサービスルーチンIDの最大値} */
+/* %jp{コンフィギュレータ未指定時デフォルト最大ID値} */
+#define _KERNEL_CFG_DEF_TMAX_TSKID 15 /**< %jp{タスクIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_SEMID 15 /**< %jp{セマフォIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_FLGID 15 /**< %jp{イベントフラグIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_DTQID 15 /**< %jp{データキューIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_MBXID 15 /**< %jp{メールボックスIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_MTXID 15 /**< %jp{ミューテックスIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_MBFID 15 /**< %jp{メッセージバッファIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_PORID 15 /**< %jp{ランデブーIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_MPFID 15 /**< %jp{固定長メモリプールIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_MPLID 15 /**< %jp{可変長メモリプールIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_CYCID 15 /**< %jp{周期ハンドラIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_ALMID 15 /**< %jp{アラームハンドラIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_OVRID 15 /**< %jp{オーバーランハンドラIDの最大値} */
+#define _KERNEL_CFG_DEF_TMAX_ISRID 15 /**< %jp{割り込みサービスルーチンIDの最大値} */
+
/* ---------------------------------------------- */
#endif
+#define _KERNEL_DEF_TMAX_TSKID _KERNEL_CFG_DEF_TMAX_TSKID
+#define _KERNEL_DEF_TMAX_SEMID _KERNEL_CFG_DEF_TMAX_SEMID
+#define _KERNEL_DEF_TMAX_FLGID _KERNEL_CFG_DEF_TMAX_FLGID
+#define _KERNEL_DEF_TMAX_DTQID _KERNEL_CFG_DEF_TMAX_DTQID
+#define _KERNEL_DEF_TMAX_MBXID _KERNEL_CFG_DEF_TMAX_MBXID
+#define _KERNEL_DEF_TMAX_MTXID _KERNEL_CFG_DEF_TMAX_MTXID
+#define _KERNEL_DEF_TMAX_MBFID _KERNEL_CFG_DEF_TMAX_MBFID
+#define _KERNEL_DEF_TMAX_PORID _KERNEL_CFG_DEF_TMAX_PORID
+#define _KERNEL_DEF_TMAX_MPFID _KERNEL_CFG_DEF_TMAX_MPFID
+#define _KERNEL_DEF_TMAX_MPLID _KERNEL_CFG_DEF_TMAX_MPLID
+#define _KERNEL_DEF_TMAX_CYCID _KERNEL_CFG_DEF_TMAX_CYCID
+#define _KERNEL_DEF_TMAX_ALMID _KERNEL_CFG_DEF_TMAX_ALMID
+#define _KERNEL_DEF_TMAX_OVRID _KERNEL_CFG_DEF_TMAX_OVRID
+#define _KERNEL_DEF_TMAX_ISRID _KERNEL_CFG_DEF_TMAX_ISRID
+
+
#define _KERNEL_TMAX_FLGID _KERNEL_CFG_TMAX_FLGID
#define _KERNEL_TMAX_DTQID _KERNEL_CFG_TMAX_DTQID
#define _KERNEL_TMAX_MBXID _KERNEL_CFG_TMAX_MBXID
* Hyper Operating System V4 Advance
*
* @file rsm_tsk.c
- * @brief
+ * @brief %jp{強制待ち状態からの再開}%en{Resume Suspended Task}
*
- * Copyright (C) 1998-2006 by Project HOS
+ * Copyright (C) 1998-2009 by Project HOS
* http://sourceforge.jp/projects/hos/
*/
#if _KERNEL_SPT_RSM_TSK
+/** %jp{強制待ち状態からの再開}%en{Resume Suspended Task}
+ * @param tskid %jp{再開対象のタスクのID番号}%en{ID number of the task to be resumed}
+ * @retval E_OK %jp{正常終了}%en{Normal completion}
+ * @retval E_ID %jp{不正ID番号(tskidが不正あるいは使用できない)}%en{Invalid ID number(tskid is invalid or unusable)}
+ * @retval E_NOEXS %jp{予約属性(sematrが不正あるいは使用できない)}%en{Reserved attribute(specified task is not registered)}
+ * @retval E_OBJ %jp{オブジェクト状態エラー(対象タスクが強制待ち状態でない)}%en{Object state error(specified task is neither in SUSPENDED state nor WAITING-SUSPENDED state)}
+ */
ER rsm_tsk(
ID tskid)
{
#if _KERNEL_SPT_SUS_TSK_E_ID
if ( !_KERNEL_TSK_CHECK_TSKID(tskid) )
{
- return E_ID; /* %jp{不正ID番号} */
+ return E_ID; /* %jp{不正ID番号} */
}
#endif
- _KERNEL_ENTER_SVC(); /* %jp{enter service-call}%jp{サービスコールに入る} */
+ _KERNEL_ENTER_SVC(); /* %jp{サービスコールに入る}%en{enter service-call} */
/* %jp{オブジェクト存在チェック} */
#if _KERNEL_SPT_SUS_TSK_E_NOEXS
if ( !_KERNEL_TSK_CHECK_EXS(tskid) )
{
- _KERNEL_LEAVE_SVC(); /* %jp{leave service-call}%jp{サービスコールを出る} */
+ _KERNEL_LEAVE_SVC(); /* %jp{サービスコールを出る}%en{leave service-call} */
return E_NOEXS; /* %jp{オブジェクト未生成} */
}
#endif
-
+
/* ID番号指定時の変換 */
tskhdl = _KERNEL_TSK_ID2TSKHDL(tskid);
tskstat = _KERNEL_TSK_GET_TSKSTAT(tcb);
if ( !(tskstat & _KERNEL_TTS_SUS) )
{
- _KERNEL_LEAVE_SVC(); /* %jp{leave service-call}%jp{サービスコールを出る} */
- return E_OBJ;
+ _KERNEL_LEAVE_SVC(); /* %jp{サービスコールを出る}%en{leave service-call} */
+ return E_OBJ;
}
-
+
suscnt = _KERNEL_TSK_GET_SUSCNT(tcb);
if ( suscnt > 0 )
{
#if _KERNEL_SPT_RSM_TSK_E_NOSPT
+
+/** %jp{強制待ち状態からの強制再開}%en{Forcibly Resume Suspended Task}
+ * @param tskid %jp{再開対象のタスクのID番号}%en{ID number of the task to be resumed}
+ * @retval E_NOSPT %jp{未サポート機能}%en{Unsupported function}
+ */
ER rsm_tsk(
ID tskid)
{