OSDN Git Service

(none)
authorryuz <ryuz>
Fri, 8 May 2009 16:27:35 +0000 (16:27 +0000)
committerryuz <ryuz>
Fri, 8 May 2009 16:27:35 +0000 (16:27 +0000)
38 files changed:
cfgrtr/include/analyze.h
cfgrtr/include/apidef.h
cfgrtr/include/attini.h
cfgrtr/include/crecyc.h
cfgrtr/include/credtq.h
cfgrtr/include/defercd.h
cfgrtr/include/defexc.h
cfgrtr/include/definh.h
cfgrtr/include/deftex.h
cfgrtr/include/idlstk.h
cfgrtr/include/intstk.h
cfgrtr/include/knlheap.h
cfgrtr/include/maxtmout.h
cfgrtr/include/maxtpri.h
cfgrtr/include/parpack.h
cfgrtr/include/read.h
cfgrtr/include/timtic.h
cfgrtr/source/analyze.cpp
cfgrtr/source/apidef.cpp
cfgrtr/source/crealm.cpp
cfgrtr/source/crecyc.cpp
cfgrtr/source/credtq.cpp
cfgrtr/source/creflg.cpp
cfgrtr/source/crembf.cpp
cfgrtr/source/cremtx.cpp
cfgrtr/source/cresem.cpp
cfgrtr/source/cretsk.cpp
cfgrtr/source/defexc.cpp
cfgrtr/source/h4acfg.cpp
kernel/build/common/gmake/knldep.inc
kernel/build/common/gmake/knlsrc.inc
kernel/build/common/nmake/knldep.inc
kernel/build/common/nmake/knlsrc.inc
kernel/build/common/tmp_mkinc/mk_inc.pl
kernel/build/win/win32/vc2008/hosv4a.vcproj
kernel/include/config/cfgknl.h
kernel/include/parser/parsknl.h
kernel/source/object/tsk/rsm_tsk.c

index 5d5dd91..32ac922 100755 (executable)
@@ -1,5 +1,5 @@
 // ---------------------------------------------------------------------------
-//  HOS V4 コンフィギュレーター                                               
+//  Hyper Operating System V4 Adcance コンフィギュレーター
 //    構文解析クラス                                                          
 //                                                                            
 //                                    Copyright (C) 1998-2002 by Project HOS  
@@ -7,8 +7,8 @@
 // ---------------------------------------------------------------------------
 
 
-#ifndef __HOSV4CFG__Analyze_h__
-#define __HOSV4CFG__Analyze_h__
+#ifndef __HOSV4ACFG__Analyze_h__
+#define __HOSV4ACFG__Analyze_h__
 
 
 
@@ -24,9 +24,7 @@ public:
 };
 
 
-#endif // __HOSV4CFG__Analyze_h__
+#endif // __HOSV4ACFG__Analyze_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index de548aa..f2b20ec 100755 (executable)
@@ -1,14 +1,14 @@
 // ---------------------------------------------------------------------------
-//  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"
@@ -47,7 +47,7 @@ protected:
 };
 
 
-#endif // __HOSV4CFG_ApiDef_h__
+#endif // __HOSV4ACFG_ApiDef_h__
 
 
 
index 02aff2d..7813f09 100755 (executable)
@@ -31,6 +31,5 @@ public:
 #endif // __HOSV4CFG_ApiAttIni_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index 4301cf6..1d0f9f4 100755 (executable)
@@ -1,14 +1,14 @@
 // ---------------------------------------------------------------------------
-//  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"
@@ -34,9 +34,7 @@ protected:
 };
 
 
-#endif // __HOSV4CFG_CreCyc_h__
+#endif // __HOSV4ACFG_CreCyc_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 5dff9f5..dd671f8 100755 (executable)
@@ -1,9 +1,9 @@
 // ---------------------------------------------------------------------------
-//  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/
 // ---------------------------------------------------------------------------
 
 
@@ -33,6 +33,4 @@ public:
 #endif // __HOSV4CFG_CreDtq_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 59f28bb..e634d57 100755 (executable)
@@ -37,6 +37,4 @@ const char* GetErrMessage(int iErr);
 #endif // __HOSV4CFG_DefErrorCode_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2003 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index ba83ec0..729d8e2 100755 (executable)
@@ -36,6 +36,4 @@ protected:
 #endif // __HOSV4CFG_DefExc_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 14b16fc..a1acd5e 100755 (executable)
@@ -32,6 +32,4 @@ public:
 #endif // __HOSV4CFG_ApiDefInh_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index dfc0700..2dde0b2 100755 (executable)
@@ -32,6 +32,4 @@ public:
 #endif // __HOSV4CFG_DefTex_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 70d99c9..9c16cc8 100755 (executable)
@@ -32,6 +32,5 @@ public:
 #endif // __HOSV4CFG_IdleStack_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index 8d95e87..6ce06f7 100755 (executable)
@@ -35,6 +35,5 @@ protected:
 #endif // __HOSV4CFG_IntStack_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index 49552b1..495b8f6 100755 (executable)
@@ -32,6 +32,5 @@ public:
 #endif // __HOSV4CFG_KernelHeap_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index afa0d5f..5ac498b 100755 (executable)
@@ -36,6 +36,4 @@ protected:
 #endif // HOSV4CFG_ApiMaxTimout
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2003 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 27a34b9..15199c9 100755 (executable)
@@ -37,7 +37,4 @@ protected:
 #endif // __HOSV4CFG_ApiMaxTpri_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2003 by Project HOS                                    
-// ---------------------------------------------------------------------------
-
+// end of file
index ab95034..deccbf4 100755 (executable)
@@ -32,6 +32,5 @@ protected:
 #endif // __HOSV4CFG__ParamPack_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index 579369d..8aff030 100755 (executable)
@@ -46,6 +46,4 @@ protected:
 #endif // __HOSV4CFG_Read_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 3b16f4c..3a3e947 100755 (executable)
@@ -36,6 +36,5 @@ protected:
 #endif // __HOSV4CFG_ApiTimTic_h__
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+
+// end of file
index 0d3548e..f0b10ca 100755 (executable)
@@ -254,6 +254,4 @@ void CAnalyze::SpaceCut(char* pszText)
 }
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2002 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 8f03d62..6656e20 100755 (executable)
@@ -1,8 +1,8 @@
 // ---------------------------------------------------------------------------
-//  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/
 // ---------------------------------------------------------------------------
 
@@ -21,9 +21,9 @@ CApiDef::CApiDef()
        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;
@@ -137,62 +137,65 @@ int CApiDef::AddParams(const char* pszParams)
 // 自動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 )
        {
@@ -243,7 +246,4 @@ void CApiDef::WriteCfgStart(FILE* fpCfg)
 {
 }
 
-
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2003 by Project HOS
-// ---------------------------------------------------------------------------
+// end of file
index 4f58c60..4cdfe4f 100755 (executable)
@@ -26,6 +26,9 @@
 // コンストラクタ
 CApiCreAlm::CApiCreAlm()
 {
+       // %jp{デフォルトの最大ID設定}
+       m_iDefaultMaxId = _KERNEL_DEF_TMAX_ALMID;
+       
        // パラメーター構文設定
        m_iParamSyntax[0] = 0;          // 単独パラメーター
        m_iParamSyntax[1] = 3;          // 3パラメーターのブロック
index 0d2581a..9ce29ba 100755 (executable)
@@ -29,6 +29,9 @@
 // コンストラクタ
 CApiCreCyc::CApiCreCyc()
 {
+       // %jp{デフォルトの最大ID設定}
+       m_iDefaultMaxId = _KERNEL_DEF_TMAX_CYCID;
+       
        // パラメーター構文設定
        m_iParamSyntax[0] = 0;          // 単独パラメーター
        m_iParamSyntax[1] = 5;          // 5パラメーターのブロック
index f41d778..e3a2a95 100755 (executable)
 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;
 }
 
 // デストラクタ
index 0639f18..34322a1 100755 (executable)
@@ -26,7 +26,7 @@
 CApiCreFlg::CApiCreFlg()
 {
        // %jp{デフォルトの最大ID設定}
-       m_iDefaultMaxId = _KERNEL_TMAX_FLGID;
+       m_iDefaultMaxId = _KERNEL_DEF_TMAX_FLGID;
        
        // パラメーター構文設定
        m_iParamSyntax[0] = 0;          // 単独パラメーター
index c631691..043f6e1 100755 (executable)
@@ -26,6 +26,9 @@
 // コンストラクタ
 CApiCreMbf::CApiCreMbf()
 {
+       // %jp{デフォルトの最大ID設定}
+       m_iDefaultMaxId = _KERNEL_DEF_TMAX_MBFID;
+
        // パラメーター構文設定
        m_iParamSyntax[0] = 0;          // 単独パラメーター
        m_iParamSyntax[1] = 4;          // 4パラメーターのブロック
index 8603921..8064db6 100755 (executable)
 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()
 {
@@ -111,10 +112,15 @@ void CApiCreMtx::WriteId(FILE* fp)
 void  CApiCreMtx::WriteCfgDef(FILE* fp)
 {
        int  i;
-       
+
+
        if ( m_iMaxId <= 0 )
        {
+#if _KERNEL_SPT_MTX
+               m_iMaxId = 1;
+#else
                return;
+#endif
        }
        
        // %jp{コメント出力}
index 32c9212..a395efa 100755 (executable)
 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;
 }
 
 // デストラクタ
@@ -342,6 +342,4 @@ void  CApiCreSem::WriteCfgStart(FILE* fp)
 }
 
 
-// ---------------------------------------------------------------------------
-//  Copyright (C) 1998-2006 by Project HOS                                    
-// ---------------------------------------------------------------------------
+// end of file
index 4a79bcc..eccc5c2 100755 (executable)
@@ -30,7 +30,7 @@
 CApiCreTsk::CApiCreTsk()
 {
        // %jp{デフォルトの最大ID設定}
-       m_iDefaultMaxId = _KERNEL_TMAX_TSKID;
+       m_iDefaultMaxId = _KERNEL_DEF_TMAX_TSKID;
 
        // %jp{パラメーター構文設定}
        m_iParamSyntax[0] = 0;          // %jp{単独パラメーター}
index 83d67b2..2a257cb 100755 (executable)
@@ -27,7 +27,7 @@ CApiDefExc::CApiDefExc()
        // パラメーター構文設定
        m_iParamSyntax[0] = 0;          // 単独パラメーター
        m_iParamSyntax[1] = 2;          // 2つのパラメーターブロック
-       m_iParams = 2;
+       m_iParams         = 2;
 
        m_iMaxExcNo = 0;
        m_iMinExcNo = 0;
index f45f2a1..b66f26e 100755 (executable)
@@ -271,10 +271,20 @@ int ReadConfigFile(FILE* fpConfig)
                }
                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);
+                       }
                }
        }
 
index 0726501..ab6c3bb 100755 (executable)
@@ -92,6 +92,7 @@ $(OBJS_DIR)/can_wup.$(EXT_OBJ):       $(TSKOBJ_DIR)/can_wup.c $(COMMON_HEADERS)
 $(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)
index 2b7aacd..ad06aca 100755 (executable)
@@ -208,6 +208,7 @@ CSRCS += $(TSKOBJ_DIR)/can_wup.c
 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
index 7b5ef13..7682576 100755 (executable)
@@ -244,6 +244,9 @@ $(OBJS_DIR)\sus_tsk.c : $(TSKOBJ_DIR)\sus_tsk.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)\
 
@@ -556,6 +559,7 @@ $(OBJS_DIR)\exe_isr..$(EXT_OBJ):    $(OBJS_DIR)\can_wup.c   $(COMMON_HEADERS)
 $(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)
index 01bb702..e77cb36 100755 (executable)
@@ -249,6 +249,7 @@ CSRCS = $(CSRCS) $(TSKOBJ_DIR)\can_wup.c
 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
@@ -276,6 +277,7 @@ OBJS = $(OBJS) $(OBJS_DIR)\can_wup.$(EXT_OBJ)
 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)
index ea3cb8a..2b399bc 100755 (executable)
                "rel_wai.c",
                "sus_tsk.c",
                "rsm_tsk.c",
+               "frsm_tsk.c",
                "dly_tsk.c",
                "def_tex.c",
                "ras_tex.c",
index 577fa34..0718506 100755 (executable)
                                        >\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
index 734f801..062b2d0 100755 (executable)
@@ -4,7 +4,7 @@
  * @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/
  */
 
@@ -43,7 +43,7 @@ C言語構文(例えばtypedefなど)はこの中には記載せず、マクロ
 /*  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の最大値} */
@@ -59,6 +59,22 @@ C言語構文(例えばtypedefなど)はこの中には記載せず、マクロ
 #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の最大値} */
+
 
 
 /* ---------------------------------------------- */
index a114415..cac9c57 100755 (executable)
 #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
index 99e8919..f53ae63 100755 (executable)
@@ -2,9 +2,9 @@
  *  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)
 {
@@ -28,21 +35,21 @@ ER rsm_tsk(
 #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);
        
@@ -53,10 +60,10 @@ ER rsm_tsk(
        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 )
        {
@@ -80,6 +87,11 @@ ER rsm_tsk(
 
 #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)
 {