tEplKernel EplDllkCalDelInstance(void) { tEplKernel Ret = kEplSuccessful; #if EPL_USE_SHAREDBUFF != FALSE tShbError ShbError; /* ShbError = ShbCirReleaseBuffer (EplDllkCalInstance_g.m_ShbInstanceRx); if (ShbError != kShbOk) { Ret = kEplNoResource; } EplDllkCalInstance_g.m_ShbInstanceRx = NULL; */ ShbError = ShbCirReleaseBuffer (EplDllkCalInstance_g.m_ShbInstanceTxNmt); if (ShbError != kShbOk) { Ret = kEplNoResource; } EplDllkCalInstance_g.m_ShbInstanceTxNmt = NULL; ShbError = ShbCirReleaseBuffer (EplDllkCalInstance_g.m_ShbInstanceTxGen); if (ShbError != kShbOk) { Ret = kEplNoResource; } EplDllkCalInstance_g.m_ShbInstanceTxGen = NULL; #else EplDllkCalInstance_g.m_uiFrameSizeNmt = 0; EplDllkCalInstance_g.m_uiFrameSizeGen = 0; #endif return Ret; }
//--------------------------------------------------------------------------- // // Function: EplEventuDelInstance // // Description: function delete instance an free the bufferstructure // // // // Parameters: // // // Returns: tEpKernel = errorcode // // // State: // //--------------------------------------------------------------------------- tEplKernel PUBLIC EplEventuDelInstance() { tEplKernel Ret; #if EPL_USE_SHAREDBUFF != FALSE tShbError ShbError; #endif Ret = kEplSuccessful; #if EPL_USE_SHAREDBUFF != FALSE // set eventhandler to NULL ShbError = ShbCirSetSignalHandlerNewData (EplEventuInstance_g.m_pShbKernelToUserInstance, NULL, kShbPriorityNormal); if(ShbError != kShbOk) { //EPL_DBGLVL_EVENTK_TRACE1("EplEventuDelInstance(): ShbCirSetSignalHandlerNewData(K2U) -> 0x%X\n", ShbError); Ret = kEplNoResource; } #if EPL_EVENT_USE_KERNEL_QUEUE != FALSE // free buffer User -> Kernel ShbError = ShbCirReleaseBuffer (EplEventuInstance_g.m_pShbUserToKernelInstance); if((ShbError != kShbOk) && (ShbError != kShbMemUsedByOtherProcs)) { //EPL_DBGLVL_EVENTK_TRACE1("EplEventuDelInstance(): ShbCirReleaseBuffer(U2K) -> 0x%X\n", ShbError); Ret = kEplNoResource; } else { EplEventuInstance_g.m_pShbUserToKernelInstance = NULL; } #endif // free buffer Kernel -> User ShbError = ShbCirReleaseBuffer (EplEventuInstance_g.m_pShbKernelToUserInstance); if((ShbError != kShbOk) && (ShbError != kShbMemUsedByOtherProcs)) { //EPL_DBGLVL_EVENTK_TRACE1("EplEventuDelInstance(): ShbCirReleaseBuffer(K2U) -> 0x%X\n", ShbError); Ret = kEplNoResource; } else { EplEventuInstance_g.m_pShbKernelToUserInstance = NULL; } #endif return Ret; }
//--------------------------------------------------------------------------- // // Function: EplEventuDelInstance // // Description: function delete instance an free the bufferstructure // // // // Parameters: // // // Returns: tEpKernel = errorcode // // // State: // //--------------------------------------------------------------------------- tEplKernel EplEventuDelInstance(void) { tEplKernel Ret; #ifndef EPL_NO_FIFO tShbError ShbError; #endif Ret = kEplSuccessful; #ifndef EPL_NO_FIFO // set eventhandler to NULL ShbError = ShbCirSetSignalHandlerNewData(EplEventuInstance_g. m_pShbKernelToUserInstance, NULL, kShbPriorityNormal); if (ShbError != kShbOk) { EPL_DBGLVL_EVENTK_TRACE1 ("EplEventuDelInstance(): ShbCirSetSignalHandlerNewData(K2U) -> 0x%X\n", ShbError); Ret = kEplNoResource; } // free buffer User -> Kernel ShbError = ShbCirReleaseBuffer(EplEventuInstance_g.m_pShbUserToKernelInstance); if ((ShbError != kShbOk) && (ShbError != kShbMemUsedByOtherProcs)) { EPL_DBGLVL_EVENTK_TRACE1 ("EplEventuDelInstance(): ShbCirReleaseBuffer(U2K) -> 0x%X\n", ShbError); Ret = kEplNoResource; } else { EplEventuInstance_g.m_pShbUserToKernelInstance = NULL; } // free buffer Kernel -> User ShbError = ShbCirReleaseBuffer(EplEventuInstance_g.m_pShbKernelToUserInstance); if ((ShbError != kShbOk) && (ShbError != kShbMemUsedByOtherProcs)) { EPL_DBGLVL_EVENTK_TRACE1 ("EplEventuDelInstance(): ShbCirReleaseBuffer(K2U) -> 0x%X\n", ShbError); Ret = kEplNoResource; } else { EplEventuInstance_g.m_pShbKernelToUserInstance = NULL; } #endif return Ret; }
tEplKernel PUBLIC EplApiProcessImageFree(void) { tEplKernel Ret = kEplSuccessful; tShbError ShbError; tEplApiProcessImageCopyJobInt CopyJob; if ((EplApiProcessImageInstance_g.m_In.m_pImage == NULL) && (EplApiProcessImageInstance_g.m_Out.m_pImage == NULL)) { goto Exit; } EplDllkRegSyncHandler(EplApiProcessImageInstance_g.m_pfnOrgCbSync); EplApiProcessImageInstance_g.m_In.m_uiSize = 0; EplApiProcessImageInstance_g.m_Out.m_uiSize = 0; // signal completion to all queued copy jobs for (;;) { Ret = EplApiProcessImageFetchCopyJob(0, &CopyJob); if (Ret == kEplSuccessful) { Ret = EplApiProcessImageSignalCompletion(&CopyJob); if (Ret != kEplSuccessful) { goto Exit; } } else { break; } } for (;;) { Ret = EplApiProcessImageFetchCopyJob(1, &CopyJob); if (Ret == kEplSuccessful) { Ret = EplApiProcessImageSignalCompletion(&CopyJob); if (Ret != kEplSuccessful) { goto Exit; } } else { break; } } if (Ret == kEplApiPIJobQueueEmpty) { Ret = kEplSuccessful; } EPL_FREE(EplApiProcessImageInstance_g.m_In.m_pImage); EplApiProcessImageInstance_g.m_In.m_pImage = NULL; EPL_FREE(EplApiProcessImageInstance_g.m_Out.m_pImage); EplApiProcessImageInstance_g.m_Out.m_pImage = NULL; ShbError = ShbCirReleaseBuffer (EplApiProcessImageInstance_g.m_ShbInstanceJobQueueLo); if (ShbError != kShbOk) { Ret = kEplNoResource; } EplApiProcessImageInstance_g.m_ShbInstanceJobQueueLo = NULL; ShbError = ShbCirReleaseBuffer (EplApiProcessImageInstance_g.m_ShbInstanceJobQueueHi); if (ShbError != kShbOk) { Ret = kEplNoResource; } EplApiProcessImageInstance_g.m_ShbInstanceJobQueueHi = NULL; Exit: return Ret; }