// ---------------------------------------------------------------------------
-// Hyper Operating System V4 コンフィギュレーター
-// HOS_INT_STK API の処理
-//
-// Copyright (C) 1998-2010 by Project HOS
-// http://sourceforge.jp/projects/hos/
+// Hyper Operating System V4 コンフィギュレーター
+// HOS_INT_STK API の処理
+//
+// Copyright (C) 1998-2010 by Project HOS
+// http://sourceforge.jp/projects/hos/
// ---------------------------------------------------------------------------
#define INTSTK_STK 1
+#define DEFAULT_SIZE "256"
+#define DEFAULT_STACK "NULL"
+
+
// コンストラクタ
CApiIntStack::CApiIntStack()
{
// パラメータ読み出し
if ( m_iObjs <= 0 )
{
- pszSize = "256";
- pszStack = "NULL";
+ pszSize = DEFAULT_SIZE;
+ pszStack = DEFAULT_STACK;
}
else
{
"const VP _kernel_int_isp = (VP)((VB *)(%s) + (SIZE)(%s));\n",
pszStack, pszSize);
}
-
}
// パラメータ読み出し
if ( m_iObjs <= 0 )
{
- pszSize = "256";
- pszStack = "NULL";
+ pszSize = DEFAULT_SIZE;
+ pszStack = DEFAULT_STACK;
}
else
{
pszSize = m_pParamPacks[0]->GetParam(INTSTK_STKSZ);
pszStack = m_pParamPacks[0]->GetParam(INTSTK_STK);
}
-
-
+
+
if ( strcmp(pszStack, "NULL") == 0 )
{
fprintf(
}
}
+void CApiIntStack::WriteStackMemory(FILE* fp)
+{
+ const char* pszSize;
+ const char* pszStack;
+
+ // パラメータ読み出し
+ if ( m_iObjs <= 0 )
+ {
+ pszSize = DEFAULT_SIZE;
+ pszStack = DEFAULT_STACK;
+ }
+ else
+ {
+ pszSize = m_pParamPacks[0]->GetParam(INTSTK_STKSZ);
+ pszStack = m_pParamPacks[0]->GetParam(INTSTK_STK);
+ }
+
+ if ( strcmp(pszStack, "NULL") == 0 )
+ {
+ fprintf(fp, "extern VP _kernel_int_stkblk[((%s) + sizeof(VP) - 1) / sizeof(VP)];\n", pszSize);
+ }
+}
+
+
+void CApiIntStack::WriteStackPointer(FILE* fp)
+{
+ const char* pszSize;
+ const char* pszStack;
+
+ // パラメータ読み出し
+ if ( m_iObjs <= 0 )
+ {
+ pszSize = DEFAULT_SIZE;
+ pszStack = DEFAULT_STACK;
+ }
+ else
+ {
+ pszSize = m_pParamPacks[0]->GetParam(INTSTK_STKSZ);
+ pszStack = m_pParamPacks[0]->GetParam(INTSTK_STK);
+ }
+
+ if ( strcmp(pszStack, "NULL") == 0 )
+ {
+ fprintf(fp, "&_kernel_int_stkblk[((%s) + sizeof(VP) - 1) / sizeof(VP)]", pszSize);
+ }
+ else
+ {
+ fprintf(fp, "(VB *)(%s) + (SIZE)(%s)", pszStack, pszSize);
+ }
+}
+
// ---------------------------------------------------------------------------
-// end of file
+// end of file
// ---------------------------------------------------------------------------