SINT32 SOS_SpinLock(SpinLockType spinLockType)
{
    SOS_IRQ_SPIN_LOCK *pSosSpinLock = NULL;

    pSosSpinLock = GetSpinLockByEnum(spinLockType);

    if (pSosSpinLock != NULL)
    {
        pSosSpinLock->irq_lock = SRE_IntLock();
        return OSAL_OK;
    }
    else
    {
        return OSAL_ERR;
    }
}
/*****************************************************************************
 Function   : V_IntLock
 Description: Turn off the interrupt
 Input      : file line
 Return     : CPSR;
 Other      : none
 *****************************************************************************/
VOS_INT V_IntLock(VOS_UINT32 ulFileID, VOS_INT32 lLineNo)
{
    VOS_INT lFlag;

    lFlag = (VOS_INT)SRE_IntLock();

    if ( VOS_NESTED_INTLOCK_MAX_NUM <= g_stVosIntLockNestedInfo.ulSuffix )
    {
        g_stVosIntLockNestedInfo.ulSuffix++;

        LogPrint2("# Info: intlock nested too big.F %d L %d.\r\n", (VOS_INT32)ulFileID, (VOS_INT32)lLineNo);

        return lFlag;
    }

    g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].ulFile  = ulFileID;
    g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].lLine   = lLineNo;
    g_stVosIntLockNestedInfo.astNestedInfo[g_stVosIntLockNestedInfo.ulSuffix].ulSlice = VOS_GetSlice();

    g_stVosIntLockNestedInfo.ulSuffix++;

    return lFlag;

}