// ---------------------------------------------------------------------------
-// Hyper Operating System V4 コンフィギュレーター
-// CRE_DTQ API の処理
-//
-// Copyright (C) 1998-2003 by Project HOS
-// http://sourceforge.jp/projects/hos/
+// Hyper Operating System V4 コンフィギュレーター
+// CRE_DTQ API の処理
+//
+// Copyright (C) 1998-2003 by Project HOS
+// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
{
// %jp{デフォルトの最大ID設定}
m_iDefaultMaxId = _KERNEL_DEF_TMAX_DTQID;
-
+
// パラメーター構文設定
m_iParamSyntax[0] = 0; // 単独パラメーター
m_iParamSyntax[1] = 3; // 3パラメーターのブロック
{
int iId;
- if ( m_iMaxId > 0 )
+ if ( m_iMaxId >= 0 )
{
return CFG_ERR_MULTIDEF;
}
- if ( m_iResObj > 0 )
+ if ( m_iResObj >= 0 )
{
return CFG_ERR_DEF_CONFLICT;
}
- if ( (iId = atoi(pszParams)) <= 0 )
+ if ( (iId = atoi(pszParams)) < 0 )
{
return CFG_ERR_PARAM;
}
{
int iId;
- if ( m_iMaxId > 0 )
+ if ( m_iMaxId >= 0 )
{
return CFG_ERR_DEF_CONFLICT;
}
return CFG_ERR_PARAM;
}
+ if ( m_iResObj < 0 )
+ {
+ m_iResObj = 0;
+ }
m_iResObj += iId;
return CFG_ERR_OK;
}
-
+
return CFG_ERR_NOPROC;
}
// %jp{コメントを出力}
fputs("\n\n/* Data queue object ID definetion */\n\n", fp);
-
-
+
+
// %jp{ID定義を出力}
for ( i = 0; i < m_iObjs; i++ )
{
m_iId[i]);
}
}
-
+
// %jp{ID最大値定義を出力}
fprintf( fp,
"\n"
}
}
}
-
-
+
+
if ( m_iMaxId > 0 )
{
#if _KERNEL_DTQCB_ALGORITHM == _KERNEL_DTQCB_ALG_BLKARRAY
}
}
fprintf(fp, "\t};\n");
-
+
// %jp{ROM部出力}
fprintf(fp, "\nconst _KERNEL_T_DTQCB_RO _kernel_dtqcb_ro_tbl[%d] =\n\t{\n", m_iMaxId);
for ( i = 1; i <= m_iMaxId; i++ )
fprintf(fp, "\t\tNULL,\n");
}
}
- fprintf(fp, "\t};\n");
+ fprintf(fp, "\t};\n");
}
#else
// %jp{ポインタ配列&統合DTQCB}
fprintf(fp, "\t\tNULL,\n");
}
}
- fprintf(fp, "\t};\n");
+ fprintf(fp, "\t};\n");
}
#endif
#endif
}
else
{
- fprintf(fp, "(%s), ", m_pParamPacks[iObj]->GetParam(CREDTQ_DTQ));
+ fprintf(fp, "(%s), ", m_pParamPacks[iObj]->GetParam(CREDTQ_DTQ));
}
}
#endif