/***************************************************************************** Function : V_IntUnlock Description: Turn on the interrupt Input : CPSR Return : void; Other : none *****************************************************************************/ VOS_VOID V_IntUnlock(VOS_INT lLockKey) { g_stVosIntLockNestedInfo.ulSuffix--; if ( VOS_NESTED_INTLOCK_MAX_NUM <= g_stVosIntLockNestedInfo.ulSuffix ) { SRE_IntRestore((VOS_UINT32)lLockKey); return; } if ( VOS_INTLOCK_MAX_INTERVAL < (VOS_GetSlice() - g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].ulSlice) ) { LogPrint2("# Info: intlock time too big.F %d L %d.\r\n", (VOS_INT32)g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].ulFile, (VOS_INT32)g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].lLine); } SRE_IntRestore((VOS_UINT32)lLockKey); return; }
SINT32 SOS_SpinUnLock(SpinLockType spinLockType) { SOS_IRQ_SPIN_LOCK *pSosSpinLock = NULL; pSosSpinLock = GetSpinLockByEnum(spinLockType); if (pSosSpinLock != NULL) { SRE_IntRestore(pSosSpinLock->irq_lock); return OSAL_OK; } else { return OSAL_ERR; } }