예제 #1
0
VOS_VOID RRM_SndPSStatusInd(VOS_UINT32  ulReceiverPid)
{
    VOS_UINT32                          ulLength;
    RRM_PS_STATUS_IND_STRU             *pstPSStatusInd = VOS_NULL_PTR;


    if (RRM_PID_DEFAULT_VALUE == ulReceiverPid)
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "ulReceiverPid is error!");
        return;
    }


    ulLength = sizeof(RRM_PS_STATUS_IND_STRU) - VOS_MSG_HEAD_LENGTH;

    /* 分配消息空间 */
    pstPSStatusInd = (RRM_PS_STATUS_IND_STRU *)PS_ALLOC_MSG(UEPS_PID_RRM, ulLength);
    if (VOS_NULL_PTR == pstPSStatusInd)
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "Alloc msg fail!");
        return;
    }

    /* 清消息空间 */
    PS_MEM_SET((VOS_UINT8*)pstPSStatusInd + VOS_MSG_HEAD_LENGTH, 0, ulLength);

    /* 填充消息 */
    pstPSStatusInd->stMsgHeader.ulReceiverPid   = ulReceiverPid;
    pstPSStatusInd->stMsgHeader.ulSenderPid     = UEPS_PID_RRM;
    pstPSStatusInd->stMsgHeader.ulReceiverCpuId = VOS_LOCAL_CPUID;
    pstPSStatusInd->stMsgHeader.ulSenderCpuId   = VOS_LOCAL_CPUID;
    pstPSStatusInd->stMsgHeader.ulMsgName       = ID_RRM_PS_STATUS_IND;
    pstPSStatusInd->stMsgHeader.ulLength        = sizeof(RRM_PS_RADIO_RESOURCE_APPLY_CNF_STRU) - VOS_MSG_HEAD_LENGTH;

    RRM_DBG_SND_STATUS_IND_NUM(1);

    /* 发送消息 */
    if (VOS_OK != PS_SEND_MSG(UEPS_PID_RRM, pstPSStatusInd))
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "Snd Msg err.");
        return;
    }

    return;
}
예제 #2
0
VOS_UINT32 RRM_FidInit(enum VOS_INIT_PHASE_DEFINE enPhase)
{
    VOS_UINT32                          ulResult = VOS_ERR;


    switch (enPhase)
    {
        case VOS_IP_LOAD_CONFIG:
            /* 创建可维可测信号量 */
            ulResult =  RRM_MNTN_CreateMutexSem(UEPS_PID_RRM);
            if (VOS_OK != ulResult)
            {
                RRM_ERROR_LOG(UEPS_PID_RRM, "RRM_FidInit, VOS_RegisterPIDInfo Fail.");
                return VOS_ERR;
            }

            /* LOG 初始化 */
            RRM_INIT_LOG_ENT();

            /* 注册PID */
            ulResult = VOS_RegisterPIDInfo(UEPS_PID_RRM,
                                           (Init_Fun_Type)RRM_PidInit,
                                           (Msg_Fun_Type)RRM_MsgProc);
            if (VOS_OK != ulResult)
            {
                RRM_ERROR_LOG(UEPS_PID_RRM, "RRM_FidInit, VOS_RegisterPIDInfo Fail.");
                return VOS_ERR;
            }

            /* 注册任务优先级 */
            ulResult = VOS_RegisterTaskPrio(UEPS_FID_RRM, RRM_TASK_PRIO);
            if (VOS_OK != ulResult)
            {
                RRM_ERROR_LOG(UEPS_PID_RRM, "RRM_FidInit, VOS_RegisterTaskPrio Fail.");
                return VOS_ERR;
            }

            break;

        default:
            break;
    }

    return VOS_OK;
}
예제 #3
0
VOS_VOID RRM_SndRadioResourceApplyCnf
(
    VOS_UINT32                          ulRecievePid,
    PS_RRM_RESULT_ENUM_UINT8            enResult
)
{
    VOS_UINT32                              ulLength;
    RRM_PS_RADIO_RESOURCE_APPLY_CNF_STRU   *pstRadioResourceApplyCnf = VOS_NULL_PTR;


    ulLength = sizeof(RRM_PS_RADIO_RESOURCE_APPLY_CNF_STRU) - VOS_MSG_HEAD_LENGTH;

    /* 分配消息空间 */
    pstRadioResourceApplyCnf = (RRM_PS_RADIO_RESOURCE_APPLY_CNF_STRU *)PS_ALLOC_MSG(UEPS_PID_RRM, ulLength);
    if (VOS_NULL_PTR == pstRadioResourceApplyCnf)
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "Alloc msg fail!");
        return;
    }

    /* 清消息空间 */
    PS_MEM_SET((VOS_UINT8*)pstRadioResourceApplyCnf + VOS_MSG_HEAD_LENGTH, 0, ulLength);

    /* 填充消息 */
    pstRadioResourceApplyCnf->stMsgHeader.ulReceiverPid     = ulRecievePid;
    pstRadioResourceApplyCnf->stMsgHeader.ulSenderPid       = UEPS_PID_RRM;
    pstRadioResourceApplyCnf->stMsgHeader.ulReceiverCpuId   = VOS_LOCAL_CPUID;
    pstRadioResourceApplyCnf->stMsgHeader.ulSenderCpuId     = VOS_LOCAL_CPUID;
    pstRadioResourceApplyCnf->stMsgHeader.ulMsgName         = ID_RRM_PS_RADIO_RESOURCE_APPLY_CNF;
    pstRadioResourceApplyCnf->stMsgHeader.ulLength          = sizeof(RRM_PS_RADIO_RESOURCE_APPLY_CNF_STRU) - VOS_MSG_HEAD_LENGTH;
    pstRadioResourceApplyCnf->enResult                      = enResult;


    /* 发送消息 */
    if (VOS_OK != PS_SEND_MSG(UEPS_PID_RRM, pstRadioResourceApplyCnf))
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "Snd Msg err.");
        return;
    }

    return;

}
예제 #4
0
VOS_VOID  RRM_MsgProc(MsgBlock * pstMsg)
{
    if (VOS_NULL_PTR == pstMsg)
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "RRM_MsgProc, pMsg is NULL.");
        return;
    }

    /* 定时器超时消息 */
    if (VOS_PID_TIMER == pstMsg->ulSenderPid)
    {
        RRM_RcvTimerExpireMsg((REL_TIMER_MSG *)pstMsg);
    }
    else
    {
        /* 协议栈任务发过来的消息 */
        RRM_RcvPSMsg(pstMsg);
    }

    return;
}
예제 #5
0
VOS_VOID RRM_InitModemCfgInfo(NV_MODEM_RF_SHARE_CFG_STRU *pstModemCfgInfo)
{
    /* 参数合法性判断 */
    if (VOS_NULL_PTR == pstModemCfgInfo)
    {
        RRM_ERROR_LOG(UEPS_PID_RRM, "RRM_InitModemInfo: pstModemCfgInfo is null.");
        return;
    }

    /* 初始化MODEM配置信息 */
    pstModemCfgInfo->usSupportFlag   = PS_FALSE;
    pstModemCfgInfo->usGSMRFID       = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usWCDMARFID     = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usTDSRFID       = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usLTERFID       = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usCDMARFID      = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usEVDORFID      = RRM_RFID_DEFAULT_VALUE;
    pstModemCfgInfo->usReserved      = RRM_RFID_DEFAULT_VALUE;


    return;
}