亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cli_cmdreg.c

?? 命令行在嵌入式系統的實現
?? C
?? 第 1 頁 / 共 5 頁
字號:
        if(m_sCliSysModes[ulMode].ulMode == ulMode)
        {
            m_sCliSysModes[ulMode].pObject = pObject;
            if(ulParamCount > 0)
            {
                m_sCliSysModes[ulMode].ulParamCount = ulParamCount;
            }

            if(ulMode > 0)
            {
                pObject1 = pObject->pParent;
                while( !CT_OBJ_CHANGE_MODE(pObject1) && (pObject1 != G_NULL) )
                {
                    pObject1 = pObject1->pParent;
                }
                ulParentMode = CI_GetNewMode(pObject1) ;
                m_sCliSysModes[ulMode].ulHierarchy = m_sCliSysModes[ulParentMode].ulHierarchy + 1 ;
            }
            ulRet = G_SUCCESS;
        }
    }

    if ((ulRet == G_SUCCESS) && (ulMode != CTM_GENL) && (ulMode != CTM_GLOBAL))
    {
        ulRet += CT_CmdAutoRegistEx(CMD_CM "..",
                                   (_U8)ulMode,
                                   CT_AL_QUERY,
                                   pFunc,
                                   CT_MC_EXIT,
                                   NULL_MODE,
                                   CMDHELP_GLB_CM,
                                   CMDHELP_GLB_CM_PARENT,
                                   CLI_ML_NULL);
        ulRet += CT_CmdAutoRegistEx(CMD_CM "root",
                                   (_U8)ulMode,
                                   CT_AL_QUERY,
                                   pFunc,
                                   CT_MC_END,
                                   NULL_MODE,
                                   CMDHELP_GLB_CM,
                                   CMDHELP_GLB_CM_ROOT,
                                   CLI_ML_NULL);

    }

    return ulRet;

}

_U32 CT_RegObject(CT_OBJECT_P pParent, CT_OBJECT_P pObject)
{
    CT_OBJECT_P pObj,pObj1,pObject1;
    _U32 ulMode;

    if((pParent == G_NULL) || (pObject == G_NULL))
    {
        return G_FAILURE;
    }

    pObj = pParent->pSubObject;
    if(pObj == G_NULL)
    {
        pParent->pSubObject = pObject;
        pObject->pParent = pParent;
        pParent->ulObjectCount++;
        if((pObject->ulNoFlag))
        {
            ulMode = pObject->action.ulMode;
            while((pObject) && (pObject->action.ulMode == ulMode))
            {
                pObject->ulNoFlag = 1;
                pObject = pObject->pParent;
            }
        }
    }
    else
    {
        pObj1 = pObj;

        while(pObj != G_NULL)
        {
            if(CT_IS_SAME_OBJECT(pObj,pObject))
            {
                /* 不允許一個模式下的同名對象有不同的幫助信息 */
                if (pObj->action.ulHelpID != pObject->action.ulHelpID
                 && (pObj->action.ulHelpID != CLI_ML_NULL)
                 && (pObject->action.ulHelpID != CLI_ML_NULL))
                {
                    DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
                        "\r\n CLI: 同名對象的幫助ID不同:%s (%s), %s (%s)",
                        pObj->szName, pObj->pSubObject->szName, pObject->szName, pObject->pSubObject->szName);

                    return G_FAILURE;
                }

                /* 注冊相同命令時,取低權限 */
                if(pObj->action.rightLevel > pObject->action.rightLevel)
                {
                    pObj->action.rightLevel = pObject->action.rightLevel;
                }

                pParent = pObj;
                pObject1 = pObject;
                /* Set pObject->pSubObject as the header    */
                pObject = pObject1->pSubObject;
                if(pObject == G_NULL)
                {
                    return G_FAILURE;
                }

                /* release the pObject1 */
                if (CT_FreeObject(pObject1) != G_SUCCESS)
                {
                    return G_FAILURE;
                }

                pObject1 = G_NULL;

                pObject->pParent = G_NULL;
                pObj = pObj->pSubObject;

                if((G_NULL == pObj))
                {
                    while(pObject)
                    {
                        pObject1 = pObject->pSubObject;
                        if (CT_FreeObject(pObject) != G_SUCCESS)
                        {
                            return G_FAILURE;
                        }
                        pObject = pObject1;
                    }
                    return G_FAILURE;
                }
                continue;
            }
            else if(CI_IS_BIG_OBJECT(pObj,pObject))
            {
                pObj1 = pObj->pPrevious;
                if(pObj1 == G_NULL)
                {
                    pParent->pSubObject = pObject;
                    pObject->pNext = pObj;
                    pObj->pPrevious = pObject;
                    pObject->pParent = pParent;
                    pParent->ulObjectCount++;
                    if((G_NULL != pObject) && (pObject->ulNoFlag))
                    {
                        ulMode = pObject->action.ulMode;
                        while((pObject) && (pObject->action.ulMode == ulMode))
                        {
                            pObject->ulNoFlag = 1;
                            pObject = pObject->pParent;
                        }
                    }
                    return G_SUCCESS;
                }
                else
                {
                    pObj1->pNext = pObject;
                    pObject->pParent = pParent;
                    pObject->pPrevious = pObj1;
                    pObject->pNext = pObj;
                    pObj->pPrevious = pObject;
                    pParent->ulObjectCount++;
                    if((G_NULL != pObject) && (pObject->ulNoFlag))
                    {
                        ulMode = pObject->action.ulMode;
                        while((pObject) && (pObject->action.ulMode == ulMode))
                        {
                            pObject->ulNoFlag = 1;
                            pObject = pObject->pParent;
                        }
                    }

                    return G_SUCCESS;
                }
            }
            pObj1 = pObj;
            pObj = pObj->pNext;
        }

        pObj1->pNext = pObject;
        if(pObject != G_NULL)
        {
            pObject->pPrevious = pObj1;
            pObject->pParent = pParent;
        }

        pParent->ulObjectCount++;
        if((G_NULL != pObject) && (pObject->ulNoFlag))
        {
            ulMode = pObject->action.ulMode;
            while((pObject) && (pObject->action.ulMode == ulMode))
            {
                pObject->ulNoFlag = 1;
                pObject = pObject->pParent;
            }
        }
    }

    return G_SUCCESS;
}

_U32 CT_RegObjToMode(_U32 ulMode, CT_OBJECT_P pObject)
{
    CT_OBJECT_P pObj,pObj1;
    CT_MODE_T *pMode;
    _U32 i;

    if(pObject == G_NULL)
    {
        return G_FAILURE;
    }

    if(ulMode < MAX_MODE_NUM)
    {
        /* 檢驗全局模式與其它模式是否會出現同名對象的情況 */
        /* 如果出現同名對象, 則將該對象注冊到全局模式     */
        if (ulMode != CTM_GLOBAL && m_sCliSysModes[CTM_GLOBAL].pObject != G_NULL)
        {
            pObj = m_sCliSysModes[CTM_GLOBAL].pObject->pSubObject;
            while (pObj != G_NULL)
            {
                if (CT_IS_SAME_OBJECT(pObj,pObject))
                {
                    pObject->action.ulMode = CTM_GLOBAL;
                    ulMode = CTM_GLOBAL;
                    break;
                }
                pObj = pObj->pNext;
            }
        }
        else
        {
            for (i = 0; i <  MAX_MODE_NUM; i++)
            {
                if (i == CTM_GLOBAL || m_sCliSysModes[i].pObject == G_NULL)
                    continue;
                pObj = m_sCliSysModes[i].pObject->pSubObject;

                while (pObj != G_NULL)
                {
                    if (CT_IS_SAME_OBJECT(pObj,pObject))
                    {
                        pObj->pParent->ulObjectCount--;
                        pObj->pNext->pPrevious = pObj->pPrevious;
                        pObj->pPrevious->pNext = pObj->pNext;
                        pObj->action.ulMode = CTM_GLOBAL;

                        if (G_SUCCESS != CT_RegObject(m_sCliSysModes[CTM_GLOBAL].pObject,pObj))
                        {
                            return G_FAILURE;
                        }

                        ulMode = CTM_GLOBAL;
                        break;
                    }
                    pObj = pObj->pNext;
                }
            }
        }
        /* 檢驗完畢 */

        if(m_sCliSysModes[ulMode].ulMode == ulMode)
        {
            pObj = m_sCliSysModes[ulMode].pObject;
            if(pObj == G_NULL)
            {
                /* No Object Pointer of the mode */
                return G_FAILURE;
            }

            /* Check the right level and set it to correct value */
            pObj1 = pObject;
            while(pObj1 != G_NULL)
            {
                if((pObj1->action.rightLevel == CT_AL_NULL) ||
                   (pObj1->action.rightLevel < m_sCliSysModes[ulMode].rightLevel) )
                {
                    pObj1->action.rightLevel = m_sCliSysModes[ulMode].rightLevel;
                }
                if((pObj1->noAction.rightLevel == CT_AL_NULL) ||
                   (pObj1->noAction.rightLevel < m_sCliSysModes[ulMode].rightLevel) )
                {
                    pObj1->noAction.rightLevel = m_sCliSysModes[ulMode].rightLevel;
                }
                pObj1 = pObj1->pSubObject;
            }

            if(!EOS_StriCmp(pObject->szName, "exit") || (!EOS_StriCmp(pObject->szName, "end")))
            {
                pMode = CI_GetMode(ulMode);
                if(G_NULL != pMode)
                {
                    pMode = CI_GetMode(pMode->ulParent);
                    if(G_NULL != pMode)
                        pObject->action.rightLevel = pMode->rightLevel;
                }
            }

            return CT_RegObject(pObj,pObject);

        }
    }

    return G_FAILURE;

}

_U32 CT_RegCmdHelp(CT_OBJECT_P pObject, _U32 ulHelpInfoID)
{
    if(pObject == G_NULL)
    {
        return G_FAILURE;
    }

    pObject->action.ulHelpID = ulHelpInfoID;
    return G_SUCCESS;
}

_U32 CT_RegParamlink(CT_OBJECT_P pObject, _U32 ulFlag,
                         CT_PARAMGROUP_P pParamLink)
{
    if((pObject == G_NULL) || (pParamLink == G_NULL))
    {
        return G_FAILURE;
    }

    /* ulFlag == CT_RP_FLAG_NORMAL : normal action */
    if(ulFlag == CT_RP_FLAG_NORMAL)
    {
        if(pObject->action.pParamLink != G_NULL)
        {
            /* Paramlink already exist */
            return G_FAILURE;
        }
        else
        {
            pObject->action.pParamLink = pParamLink;
            return G_SUCCESS;
        }
    }
    /* ulFlag != 0 : no form action */
    else
    {
        if(pObject->noAction.pParamLink != G_NULL)
        {
            return G_FAILURE;
        }
        else
        {
            pObject->noAction.pParamLink = pParamLink;
            return G_SUCCESS;
        }
    }

}

_U32 CT_RegValueToParam(CT_PARAMETER_P pParam,
                                CT_VALUE_P pValue)
{
    CT_VALUE_P pV,pV1;

    if((pParam == G_NULL) || (pValue == G_NULL))
    {
        return G_FAILURE;
    }

    pV = pParam->valueList.pValue;
    if(pV == G_NULL)
    {
        pParam->valueList.pValue = pValue;
        pParam->valueList.ulNumber++;
    }
    else
    {
        pV1 = pV;
        while(pV != G_NULL)
        {
            pV1 = pV;
            pV = pV->pNext;
        }
        pV1->pNext = pValue;
        pValue->pPrevious = pV1;
    }

    return G_SUCCESS;

}

_U32 CT_RegParamAsHeir(CT_PARAMETER_P pOldParam,
                     CT_PARAMETER_P pNewParam)
{
    CT_PARAMETER_P pParam,pParam1;

    if((pOldParam == G_NULL) || (pNewParam == G_NULL))
    {
        return G_FAILURE;
    }

    pParam = pOldParam->subParam;
    if(pParam == G_NULL)
    {
        pOldParam->subParam = pNewParam;
        pNewParam->pParent = pOldParam;
    }
    else
    {
        pParam1 = pParam;

        while(pParam != G_NULL)
        {
            if(CT_PARAM_NEED_NAME(pParam) && CT_PARAM_NEED_NAME(pNewParam))
            {
                if(CT_IS_SAME_PARAM(pParam,pNewParam))
                {
                    return G_FAILURE;
                }
            }
            pParam1 = pParam;
            pParam = pParam->pNext;
        }
        /* 此處pc-lint有告警,確認不會有問題 */
        pParam1->pNext = pNewParam;
        pNewParam->pPrevious = pParam1;
        pNewParam->pParent = pOldParam;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本va午夜在线影院| 欧美人妇做爰xxxⅹ性高电影 | 国产成人精品影视| 日韩欧美一二区| 免费人成在线不卡| 91精品婷婷国产综合久久性色| 一区二区三区四区国产精品| 国产在线精品一区二区夜色| 欧美电影免费观看完整版| 日韩精品电影一区亚洲| 在线不卡免费欧美| 亚洲.国产.中文慕字在线| 欧美三级电影精品| 九九久久精品视频| 91精品国产综合久久婷婷香蕉 | 久久久电影一区二区三区| 亚洲一卡二卡三卡四卡五卡| 一本一道波多野结衣一区二区| 亚洲欧美在线观看| 色天使色偷偷av一区二区| 一卡二卡欧美日韩| 精品污污网站免费看| 日韩中文欧美在线| 欧美电影精品一区二区| 免费欧美高清视频| 久久久综合激的五月天| 成人高清在线视频| 有坂深雪av一区二区精品| 欧美日韩在线播放三区| 美女mm1313爽爽久久久蜜臀| 久久中文娱乐网| 亚洲一区二区在线观看视频 | 成人福利视频在线| 亚洲精品国产第一综合99久久| 色老汉av一区二区三区| 亚洲一区日韩精品中文字幕| 欧美一级日韩一级| 高清视频一区二区| 一区二区免费视频| 精品国产人成亚洲区| 成人国产一区二区三区精品| 亚洲一区在线播放| 久久天天做天天爱综合色| 国产精品18久久久久久久网站| 成人欧美一区二区三区黑人麻豆| 日韩电影在线观看电影| 欧美裸体bbwbbwbbw| 亚洲人被黑人高潮完整版| 一本色道久久加勒比精品| 午夜视频在线观看一区二区| 久久亚洲捆绑美女| 99久久精品免费观看| 日本不卡一区二区三区高清视频| 欧美一级欧美三级在线观看| 成人黄色777网| 奇米色777欧美一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 欧日韩精品视频| 精一区二区三区| 亚洲区小说区图片区qvod| 精品国产一区二区在线观看| 高清不卡一区二区在线| 日韩av中文在线观看| 国产精品久久久久久妇女6080| 欧洲中文字幕精品| 国产成人综合亚洲91猫咪| 首页国产欧美久久| 亚洲色图在线看| 亚洲欧美日韩电影| 欧美大片国产精品| 一二三区精品视频| 在线不卡一区二区| 成人理论电影网| 极品少妇xxxx精品少妇偷拍 | 狠狠狠色丁香婷婷综合久久五月| 久久免费看少妇高潮| 3751色影院一区二区三区| 在线观看亚洲精品视频| 日本乱人伦aⅴ精品| 色av一区二区| 欧美私人免费视频| 欧美日韩一区三区| 欧美久久久久久蜜桃| 精品视频1区2区3区| 91麻豆精品国产综合久久久久久| 在线不卡中文字幕| 精品av综合导航| 中文字幕av资源一区| 综合久久国产九一剧情麻豆| 中文字幕日韩精品一区| 亚洲精选视频免费看| 亚洲午夜视频在线| 麻豆91在线看| 国产精品正在播放| 成人h动漫精品一区二区| 日本高清不卡一区| 日韩一区国产二区欧美三区| 欧美成人乱码一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 国产亚洲一区二区三区四区 | 国产成人在线电影| 成人黄色软件下载| 欧美视频一区二区在线观看| 欧美一级xxx| 国产日韩亚洲欧美综合| 亚洲日本护士毛茸茸| 亚洲成人动漫精品| 国内精品嫩模私拍在线| www.66久久| 欧美精品久久99| 国产午夜精品在线观看| 一区二区三区四区在线播放| 蓝色福利精品导航| 97精品久久久久中文字幕| 欧美精品色综合| 欧美高清在线一区二区| 亚洲乱码国产乱码精品精可以看| 日韩在线一二三区| 国产成a人无v码亚洲福利| 欧美亚洲高清一区| 久久久精品天堂| 亚洲一区二区五区| 国产99精品国产| 91精品国产综合久久福利 | 91九色02白丝porn| 久久你懂得1024| 亚洲在线视频一区| 国产自产v一区二区三区c| 色婷婷av一区二区三区大白胸| 亚洲精品一区二区三区影院| 亚洲五码中文字幕| 国产成人免费xxxxxxxx| 欧美人与禽zozo性伦| 亚洲图片你懂的| 国产露脸91国语对白| 欧美日韩日日摸| 亚洲同性gay激情无套| 国产麻豆精品95视频| 91麻豆精品国产| 夜夜揉揉日日人人青青一国产精品| 国产成人午夜片在线观看高清观看| 欧美人狂配大交3d怪物一区| 首页欧美精品中文字幕| 色综合网色综合| 中文字幕av一区二区三区免费看| 精品一区二区三区在线播放 | 国产精品亚洲午夜一区二区三区| 欧美精品在欧美一区二区少妇| 国产精品二三区| 国产成人午夜片在线观看高清观看| 日韩一区二区三区在线观看| 亚洲最新视频在线观看| 91浏览器打开| 一区在线中文字幕| 懂色中文一区二区在线播放| 久久久精品综合| 国产精品羞羞答答xxdd| 精品国产乱码久久久久久牛牛| 免费成人小视频| 欧美不卡视频一区| 美女国产一区二区三区| 日韩丝袜美女视频| 蜜桃久久精品一区二区| 欧美一区国产二区| 免费人成黄页网站在线一区二区| 欧美精品三级在线观看| 亚洲成人激情综合网| 欧美日韩的一区二区| 日韩中文字幕一区二区三区| 91精品在线观看入口| 免费视频一区二区| 精品久久五月天| 国产乱码精品一区二区三区五月婷| 精品成人佐山爱一区二区| 国产一区二区三区不卡在线观看 | 欧美美女bb生活片| 丝袜诱惑制服诱惑色一区在线观看 | 日韩一区二区三| 99精品在线免费| 亚洲欧美综合色| 99在线精品观看| 一区二区成人在线视频| 欧美精品日韩一本| 蜜桃av噜噜一区| 久久久久久久久免费| 国产91富婆露脸刺激对白| 国产精品久久久久永久免费观看| 色天使久久综合网天天| 五月婷婷综合在线| 精品美女一区二区三区| 国产高清精品网站| 亚洲天堂免费看| 欧美精品日韩精品| 国产一区 二区 三区一级| 中文字幕一区二区视频| 欧美性猛片xxxx免费看久爱| 麻豆精品一区二区av白丝在线| 久久久久久久久久久久久久久99 | 日韩在线一区二区| 国产欧美精品一区二区三区四区|