/** * osCreateImageReg * * Creates memory for IO layer process image information. * * STaskInfoVM.Task.pIR sizeof(SImageReg) * * @return OK if successful else error number */ SImageReg *osCreateImageReg(STaskInfoVM *pVM, IEC_UINT uTasks) { #if defined(RTS_CFG_FFO) if (g_uTasks != uTasks) { if (g_pImageReg != NULL) { IEC_UINT uRes = osFree((IEC_DATA **)&g_pImageReg); TR_RET(uRes); uRes++; } } g_uTasks = uTasks; if (g_pImageReg == NULL) { g_pImageReg = (SImageReg *)(osMalloc(sizeof(SImageReg) * uTasks)); if (g_pImageReg == NULL) { TR_RET(ERR_OUT_OF_MEMORY); return NULL; } } #endif return g_pImageReg + pVM->usTask; }
/** * tstFinalize * */ IEC_UINT tstFinalize(IEC_UINT uIOLayer, SIOConfig *pIO) { IEC_UINT uRes = OK; uRes = tstFinalBus(uIOLayer); TR_RET(uRes); #if defined(RTS_CFG_SYSLOAD) uRes = ldClearTaskInfo(TASK_OFFS_IOL_TST); TR_RET(uRes); #endif g_bInitialized = FALSE; g_bConfigured = FALSE; g_bRunning = FALSE; RETURN(uRes); }
/** * tstInitialize * */ IEC_UINT tstInitialize(IEC_UINT uIOLayer) { IEC_UINT uRes = OK; #if defined(RTS_CFG_SYSLOAD) uRes = ldWriteTaskInfo(TASK_OFFS_IOL_TST, osGetTaskID()); TR_RET(uRes); #endif uRes = tstInitBus(uIOLayer); g_bInitialized = (IEC_BOOL)(uRes == OK); g_bConfigured = FALSE; g_bRunning = FALSE; RETURN(uRes); }