www.pudn.com > hos-v4_os.rar > deftex.cpp
// --------------------------------------------------------------------------- // Hyper Operating System V4 コンフィギュレーター // DEF_TEX API の処理 // // Copyright (C) 1998-2002 by Project HOS // http://sourceforge.jp/projects/hos/ // --------------------------------------------------------------------------- #include#include #include #include "defercd.h" #include "deftex.h" #include "analyze.h" #define DEFTEX_TSKID 0 #define DEFTEX_TEXATR 1 #define DEFTEX_TEXRTN 2 // コンストラクタ CApiDefTex::CApiDefTex() { // パラメーター構文設定 m_iParamSyntax[0] = 0; // 単独パラメーター m_iParamSyntax[1] = 2; // 2パラメーターのブロック m_iParams = 2; } // デストラクタ CApiDefTex::~CApiDefTex() { } // APIの解析 int CApiDefTex::AnalyzeApi(const char* pszApiName, const char* pszParams) { if ( strcmp(pszApiName, "DEF_TEX") == 0 ) { return AddParams(pszParams); } return CFG_ERR_NOPROC; } // 自動ID番号割り当て int CApiDefTex::AutoId(void) { return CFG_ERR_OK; } // cfgファイル定義部書き出し void CApiDefTex::WriteCfgDef(FILE* fp) { int i; if ( m_iObjs <= 0 ) { return; } // コメント出力 fputs( "\n\n\n" "/* ------------------------------------------ */\n" "/* task exception objects */\n" "/* ------------------------------------------ */\n" , fp); fprintf( fp, "\n/* task exception control block */\n" "const T_KERNEL_TEXCB_RAM kernel_texcb_ram[%d] =\n" "\t{\n", m_iObjs); // コントロールブロック(ROM部)出力 for ( i = 0; i < m_iObjs; i++ ) { fprintf( fp, "\t\t{0, (FP)(%s)},\n", m_pParamPacks[i]->GetParam(DEFTEX_TEXRTN)); } fprintf(fp, "\t};\n"); } // cfgファイル初期化部書き出し void CApiDefTex::WriteCfgIni(FILE* fp) { int i; // オブジェクト存在チェック if ( m_iObjs == 0 ) { return; } // 初期化部出力 fputs( "\t\n\t\n" "\t/* initialize task exception handler */\n", fp); for ( i = 0; i < m_iObjs; i++ ) { fprintf( fp, "\tkernel_tcb_ram_tbl[(%s) - TMIN_TSKID]->texcb = &kernel_texcb_rom[%d];\n", m_pParamPacks[i]->GetParam(DEFTEX_TSKID), i); } } // --------------------------------------------------------------------------- // Copyright (C) 1998-2002 by Project HOS // ---------------------------------------------------------------------------