VOS_UINT32 ADS_UL_RcvCdsStopSendDataInd(MsgBlock *pMsg)
{
    VOS_UINT8                           ucInstanceIndex;
    VOS_UINT8                           ucRabId;
    CDS_ADS_STOP_SENDDATA_IND_STRU     *pstStopSendDataIndMsg;

    pstStopSendDataIndMsg = (CDS_ADS_STOP_SENDDATA_IND_STRU *)(pMsg);

    ucInstanceIndex = (VOS_UINT8)pstStopSendDataIndMsg->enModemId;
    ucRabId = pstStopSendDataIndMsg->ucRabId;

    /* 将对应是否允许发送的标志置为VOS_FALSE */
    ADS_UL_SET_RAB_SND_PERMIT_FLAG(ucInstanceIndex, ucRabId, VOS_FALSE);

    /* 判断该modem的所有RAB都不允许发送 */
    if (VOS_FALSE == ADS_UL_GetSpecInstanceSndPermitFlg(ucInstanceIndex))
    {
        ADS_UL_SET_MODEM_SND_PERMIT_FLAG(ucInstanceIndex, VOS_FALSE);
    }

    /* 所有承载都不允许发送,停止ADS_UL_SEND_TIMER定时器 */
    if (VOS_TRUE == ADS_UL_IsAllRabNotSndPermitFlg())
    {
        ADS_StopTimer(ACPU_PID_ADS_UL, TI_ADS_UL_SEND, ADS_TIMER_STOP_CAUSE_USER);
    }

    /* 回复ID_CDS_ADS_STOP_SENDDATA_RSP消息 */
    ADS_UL_SendCdsStopSendDataRsp(pstStopSendDataIndMsg->enModemId, pstStopSendDataIndMsg->ucRabId);

    return VOS_OK;
}
コード例 #2
0
ファイル: AdsCtx.c プロジェクト: printusrzero/hwp6s-kernel
/*****************************************************************************
 函 数 名  : ADS_UL_IsAllRabNotSndPermitFlg
 功能描述  : 判断是否所有的RAB都不允许发送,如果是返回VOS_TRUE,否则返回VOS_FALSE
 输入参数  : VOS_VOID
 输出参数  : 无
 返 回 值  : VOS_UINT32
 调用函数  :
 被调函数  :

 修改历史      :
  1.日    期   : 2012年11月27日
    作    者   : l60609
    修改内容   : 新生成函数

*****************************************************************************/
VOS_UINT32 ADS_UL_IsAllRabNotSndPermitFlg(VOS_VOID)
{
    VOS_UINT8                           i;

    /* 查找两个实例 */
    for (i = 0; i < ADS_INSTANCE_MAX_NUM; i++)
    {
        if (VOS_TRUE == ADS_UL_GetSpecInstanceSndPermitFlg(i))
        {
            return VOS_FALSE;
        }
    }

    return VOS_TRUE;
}