VOS_UINT32  NAS_EMM_IsSmsNotRetransmitConditionSatisfied
(
    LMM_SMS_ERR_CAUSE_ENUM_UINT32    *penErrCause
)
{
    NAS_LMM_UE_OPERATION_MODE_ENUM_UINT32    enUeOperationMode = NAS_LMM_UE_MODE_BUTT;

    enUeOperationMode = NAS_LMM_GetEmmInfoUeOperationMode();

    /* PS ONLY */
    if  ( (NAS_LMM_UE_PS_MODE_1 == enUeOperationMode)
        ||(NAS_LMM_UE_PS_MODE_2 == enUeOperationMode) )
    {
        *penErrCause = LMM_SMS_ERR_CAUSE_UE_MODE_PS_ONLY;
        return NAS_EMM_YES;
    }

    /* #2,CS域卡无效 */
    if ( NAS_EMM_REJ_YES == NAS_LMM_GetEmmInfoRejCause2Flag() )
    {
        *penErrCause = LMM_SMS_ERR_CAUSE_USIM_CS_INVALID;
        return NAS_EMM_YES;
    }

    /* #18,CS域不可用 */
    if ( NAS_EMM_REJ_YES == NAS_EMMC_GetRejCause18Flag() )
    {
        *penErrCause = LMM_SMS_ERR_CAUSE_CS_SER_NOT_AVAILABLE;
        return NAS_EMM_YES;
    }

    /*PC REPLAY MODIFY BY LEILI BEGIN*/
    /* CS域不允许注册 */
    if ( NAS_EMM_AUTO_ATTACH_NOT_ALLOW == NAS_EMM_GetCsAttachAllowFlg() )
    {
        NAS_EMM_PUBU_LOG_NORM("NAS_EMM_IsSmsNotRetransmitConditionSatisfied: Cs attach not allowed!");
        *penErrCause = LMM_SMS_ERR_CAUSE_CS_ATTACH_NOT_ALLOWED;
         return NAS_EMM_YES;
    }

    /* PS域不允许注册 */
    if ( NAS_EMM_AUTO_ATTACH_NOT_ALLOW == NAS_EMM_GetPsAttachAllowFlg() )
    {
        NAS_EMM_PUBU_LOG_NORM("NAS_EMM_IsSmsNotRetransmitConditionSatisfied: Ps attach not allowed!");
        *penErrCause = LMM_SMS_ERR_CAUSE_PS_ATTACH_NOT_ALLOWED;
         return NAS_EMM_YES;
    }
    /*PC REPLAY MODIFY BY LEILI END*/
    return NAS_EMM_NO;

}
VOS_UINT32    NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq( VOS_UINT32  ulMsgId,
                                                    VOS_VOID   *pMsgStru  )
{
    MMC_LMM_ATTACH_REQ_STRU              *pRcvEmmMsg;

    (VOS_VOID)ulMsgId;

    pRcvEmmMsg                          = (MMC_LMM_ATTACH_REQ_STRU *)pMsgStru;


    /*打印进入该函数*/
    NAS_EMM_ATTACH_LOG_NORM("NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq is entered");

    /*检查状态是否匹配,若不匹配,退出*/
    if (NAS_EMM_AD_CHK_STAT_INVALID(EMM_MS_REG,EMM_SS_REG_WAIT_ACCESS_GRANT_IND))
    {
        /*打印出错信息*/
         NAS_EMM_ATTACH_LOG_WARN("NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq: STATE ERR!");
        return  NAS_LMM_MSG_DISCARD;
    }

    /*消息内容检查,若有错,打印并退出*/
    if (NAS_EMM_PARA_INVALID == NAS_EMM_AppAttachReqMsgChk(pRcvEmmMsg))
    {
        NAS_EMM_ATTACH_LOG_ERR("NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq: MMC_LMM_ATTACH_REQ_STRU PARA ERR!");
        return  NAS_LMM_ERR_CODE_PARA_INVALID;

    }


    /*保存APP参数*/
    NAS_EMM_SaveAppMsgPara(pRcvEmmMsg->ulMsgId,pRcvEmmMsg->ulOpId);

    if(MMC_LMM_ATT_REQ_TYPE_PS_ONLY == pRcvEmmMsg->ulAttachType)
    {
        /*向MMC发送ATTACH成功*/
        NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_SUCCESS);
        return NAS_LMM_MSG_HANDLED;
    }

    /*操作模式是PS*/
    if(NAS_EMM_NO == NAS_EMM_IsCsPsUeMode())
    {
        NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_FAILURE);
        return NAS_LMM_MSG_HANDLED;
    }

    /*注册域为CS_PS*/
    if (NAS_LMM_REG_DOMAIN_CS_PS == NAS_LMM_GetEmmInfoRegDomain())
    {
        NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_SUCCESS);
        return NAS_LMM_MSG_HANDLED;
    }
    /*注册域为PS*/
    if (NAS_LMM_REG_DOMAIN_PS == NAS_LMM_GetEmmInfoRegDomain())
    {
        if( (NAS_EMM_REJ_YES == NAS_LMM_GetEmmInfoRejCause2Flag())
            ||(NAS_EMM_REJ_YES == NAS_EMMC_GetRejCause18Flag()))
        {
            NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_FAILURE);
            return NAS_LMM_MSG_HANDLED;
        }
        /*联合TAU*/
        /*信令被BAR不能发起,其它可以发起,内部消息处理中会判断,此处不再判断*/
        NAS_EMM_SendIntraTauReq(ID_APP_MM_MSG_TYPE_BUTT,NAS_LMM_INTRA_TAU_TYPE_IMSI_ATTACH);
        return NAS_LMM_MSG_HANDLED;
    }

    return  NAS_LMM_MSG_HANDLED;
}