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

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

?? cli_cmdreg.c

?? 命令行在嵌入式系統的實現
?? C
?? 第 1 頁 / 共 5 頁
字號:

    /* 3. set value type */
    pTempValue->valueType.ucAttrib  = CT_VALPROP_CHECK;
    pTempValue->valueType.ucDataLen = ucDataLen;
    pTempValue->valueType.ucDataType = ucDataType;

    /* 4. Set absolute ulIndex */
    pTempValue->ulAbsoluteIndex = ulIndex;

    /* 5. other data set according to datatype */
    switch(ucDataType)
    {
        case CT_DATA_VU:
        case CT_DATA_VH:
                if((_U32)iLow <= (_U32)iHigh)
                {
                    /* Unsigned value saved as signed */
                    pTempValue->s32IntFilter[0] = iLow;
                    pTempValue->s32IntFilter[1] = iHigh;
                }
                else
                {
                    if (CT_FreeValue(pTempValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
                break;
        case CT_DATA_VI:
                if(iLow <= iHigh)
                {
                    pTempValue->s32IntFilter[0] = iLow;
                    pTempValue->s32IntFilter[1] = iHigh;
                }
                else
                {
                    if (CT_FreeValue(pTempValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
                break;

        case CT_DATA_VS:
                if(ucDataLen >= CT_MAX_PARAMLEN)
                {
                    if (CT_FreeValue(pTempValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
                break;
        case CT_DATA_K:
                pKeyword = CT_NewKeywords(szKeys,&ulCount);
                if(pKeyword == G_NULL)
                {
                    if (CT_FreeValue(pTempValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
                pTempValue->keywords.pKeyword = pKeyword;
                pTempValue->keywords.ulNumber = ulCount;
                break;

        case CT_DATA_IP:
        case CT_DATA_MAC:
        case CT_DATA_MASK:
        case CT_DATA_DATE:
        case CT_DATA_TIME:
                break;
        default:
                if((ucDataType >= CT_DATA_USER) && (ucDataType < CT_DATA_BOTTOM))
                {
                    if(CT_ValidateUserType((_U32)ucDataType) != G_SUCCESS)
                    {
                        if (CT_FreeValue(pTempValue) != G_SUCCESS)
                        {
                            //統計
                        }
                        return G_NULL;
                    }
                }
                else
                {
                    if (CT_FreeValue(pTempValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
    }

    return pTempValue;

}

CT_VALUE_P CT_CreateValueWithCheck(_S8 *szName,
                                _U8 ucAttrib, _U8 ucDataType, _U8 ucDataLen,
                                _S8 *szKeys,  _S32 iLow, _S32 iHigh,
                                _U32 ulIndex,
                                CT_USERCHECK_FUNC_T pFunc)
{
    _U32 ulCount;
    _S8 szNameTmp[15];
    CT_VALUE_P pValue;
    CT_SERIAL_WORD_P pKeyword = G_NULL;

    /* 1. Malloc memory */
    pValue = CT_NewValue();
    if(pValue == G_NULL)
        return G_NULL;

    /* 2. Set Name */
    if(szName == G_NULL)
    {
        EOS_StrCpy(szNameTmp, "value");
        pValue->szName = ROS_MemAlloc(EOS_StrLen(szNameTmp)+1, ROS_MEM_ALLOC_OPT_NONE);
        if(pValue->szName == G_NULL)
        {
            if (CT_FreeValue(pValue) != G_SUCCESS)
            {
                //統計
            }
            return G_NULL;
        }
        EOS_StrCpy(pValue->szName,szNameTmp);
    }
    else
    {
        pValue->szName = ROS_MemAlloc(EOS_StrLen(szName)+1, ROS_MEM_ALLOC_OPT_NONE);
        if(pValue->szName == G_NULL)
        {
            if (CT_FreeValue(pValue) != G_SUCCESS)
            {
                //統計
            }
            return G_NULL;
        }
        EOS_StrCpy(pValue->szName,szName);
    }

    /* 3. set value type */
    /* 數據的長度不得超過最大參數長度*/
    if (ucDataLen >= CT_MAX_PARAMLEN)
    {
        return G_NULL;
    }
    pValue->valueType.ucDataLen = ucDataLen;
    pValue->valueType.ucAttrib  = CT_VALPROP_NULL;
    pValue->valueType.ucDataType = ucDataType;

    /* 4. Set absolute ulIndex */
    pValue->ulAbsoluteIndex = ulIndex;

    /* 5. other data set according to datatype */
    switch(ucDataType)
    {
        case CT_DATA_VU:
        case CT_DATA_VH:
                if(ucAttrib & CT_VALPROP_CHECK)
                {
                    if((_U32)iLow <= (_U32)iHigh)
                    {
                        /* Unsigned value saved as signed */
                        pValue->s32IntFilter[0] = iLow;
                        pValue->s32IntFilter[1] = iHigh;
                    }
                    else
                    {
                        if (CT_FreeValue(pValue) != G_SUCCESS)
                        {
                            //統計
                        }
                        return G_NULL;
                    }
                }
                break;
        case CT_DATA_VI:
                if(ucAttrib & CT_VALPROP_CHECK)
                {
                    if(iLow <= iHigh)
                    {
                        pValue->s32IntFilter[0] = iLow;
                        pValue->s32IntFilter[1] = iHigh;
                    }
                    else
                    {
                        if (CT_FreeValue(pValue) != G_SUCCESS)
                        {
                            //統計
                        }
                        return G_NULL;
                    }
                }
                break;
        case CT_DATA_VS:
                break;
        case CT_DATA_K:
                pKeyword = CT_NewKeywords(szKeys,&ulCount);
                if(pKeyword == G_NULL)
                {
                    if (CT_FreeValue(pValue) != G_SUCCESS)
                    {
                        //統計
                    }
                    return G_NULL;
                }
                pValue->keywords.pKeyword = pKeyword;
                pValue->keywords.ulNumber = ulCount;
                break;
        default:
                /* Here we get an invalid data type */
                if (CT_FreeValue(pValue) != G_SUCCESS)
                {
                    //統計
                }
                return G_NULL;
    }

    /* Register Value Check User Defined Function */
    pValue->pCheckFunc = pFunc;

    return pValue;

}

_U32 CT_DefineValueCheck(CT_VALUE_P pValue,CT_USERCHECK_FUNC_T pFunc)
{
    if(pValue == G_NULL)
    {
        return G_FAILURE;
    }

    pValue->pCheckFunc = pFunc;

    return G_SUCCESS;
}

_U32 CT_SetValueDefault(CT_VALUE_P pInValue, _S8 *szDefault)
{
    if(szDefault != G_NULL)
    {
        if(pInValue->szDefault != G_NULL)
        {
            ROS_MemFree(pInValue->szDefault);
            pInValue->szDefault = G_NULL;
        }

        pInValue->szDefault = ROS_MemAlloc(EOS_StrLen(szDefault)+1, ROS_MEM_ALLOC_OPT_NONE);
        if(pInValue->szDefault == G_NULL)
            return G_FAILURE;

        EOS_StrCpy(pInValue->szDefault,szDefault);
        pInValue->valueType.ucAttrib |= CT_VALPROP_DEFAULT;
    }
    else
    {
        if(pInValue->szDefault != G_NULL)
        {
            ROS_MemFree(pInValue->szDefault);
            pInValue->szDefault = G_NULL;
        }

        pInValue->valueType.ucAttrib &= ~CT_VALPROP_DEFAULT;
    }

    return G_SUCCESS;
}

_U32 CT_SetMode(_U32 ulMode, const _S8 *szName, const _S8 *szPrompt,
              const _S8 *s8Verb, CLI_OPERAT_LEVEL_T level,
              _U32 ulParentMode, CT_OBJECT_P pObject)
{
    CT_MODE_T ModeTemp;

    if(ulMode >= CTM_TOTAL)
    {
        return G_FAILURE;
    }
    ModeTemp.ulMode = ulMode;

    if( (szName == G_NULL)
     || (szPrompt == G_NULL)
     || (s8Verb == G_NULL) )
    {
        return G_FAILURE;
    }
    if( (EOS_StrLen(szName) >= CT_MAX_MODE_NAME - 1)
     || (EOS_StrLen(szPrompt) >= CT_MAX_MODE_PROMPT - 1)
     || (EOS_StrLen(s8Verb) >= CT_MAX_MODE_VERB - 1) )
    {
        return G_FAILURE;
    }
    EOS_StrCpy(ModeTemp.szModeVerb,s8Verb);
    EOS_StrCpy(ModeTemp.szModeName,szName);
    EOS_StrCpy(ModeTemp.szModePrompt,szPrompt);

    ModeTemp.rightLevel = level;

    if((ulParentMode >= ulMode) && (ulParentMode != NULL_MODE))
        return G_FAILURE;

    ModeTemp.ulParent = ulParentMode;
    ModeTemp.pObject = pObject;

    return (CT_RegMode(&ModeTemp));

}

_U32 CT_RegMode(CT_MODE_T *pMode)
{

    if(pMode == G_NULL)
        return G_FAILURE;

    if(pMode->ulMode < MAX_MODE_NUM)
    {
        if(m_sCliSysModes[pMode->ulMode].ulMode == NULL_MODE)
            m_sCliSysModes[pMode->ulMode].ulMode = pMode->ulMode;
        else
            return G_FAILURE;
    }
    else
        return G_FAILURE;

    EOS_StrCpy(&(m_sCliSysModes[pMode->ulMode].szModeName[0]),
           &(pMode->szModeName[0]));

    EOS_StrCpy(&(m_sCliSysModes[pMode->ulMode].szModePrompt[0]),
           &(pMode->szModePrompt[0]));

    EOS_StrCpy(&(m_sCliSysModes[pMode->ulMode].szModeVerb[0]),
           &(pMode->szModeVerb[0]));

    m_sCliSysModes[pMode->ulMode].rightLevel = pMode->rightLevel;

    m_sCliSysModes[pMode->ulMode].ulParent  = pMode->ulParent;

    m_sCliSysModes[pMode->ulMode].pObject   = pMode->pObject;

    return G_SUCCESS;
}

_U32 CT_RegModeObject(_U32 ulMode,CT_OBJECT_P pObject, _U32 ulParamCount)
{
    _U32 ulParentMode, ulRet = G_FAILURE;
    CT_OBJECT_P pObject1;

    if(ulMode < MAX_MODE_NUM)
    {
        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( (pObject1 != G_NULL)&& !CT_OBJ_CHANGE_MODE(pObject1)  )
                {
                    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,
                                   G_NULL,
                                   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,
                                   G_NULL,
                                   CT_MC_END,
                                   NULL_MODE,
                                   CMDHELP_GLB_CM,
                                   CMDHELP_GLB_CM_ROOT,
                                   CLI_ML_NULL);

        if (ulMode != CTM_DIAG)
        {
            ulRet += CT_CmdAutoRegistEx(CMD_CM "diagnose",
                                       (_U8)ulMode,
                                       CT_AL_DEBUG,
                                       CLI_EnterDiagMode,
                                       CT_MC_NULL,
                                       NULL_MODE,
                                       CMDHELP_GLB_CM,
                                       CMDHELP_GENL_CM_DIAGNOSE,
                                       CLI_ML_NULL);
        }
    }

    return ulRet;

}

/* 該函數為一擴展的注冊模式對象的函數,在注冊該對象時可以為exit,end
   命令指定一個執行函數   */
_U32 CT_RegModeObjectExt( _U32 ulMode, CT_OBJECT_P pObject,
                        _U32 ulParamCount, CLI_CALLBACK_EXEC_FUN pFunc)
{
    _U32 ulParentMode, ulRet = G_FAILURE;
    CT_OBJECT_P pObject1;

    if(ulMode < MAX_MODE_NUM)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区在线| 欧美吻胸吃奶大尺度电影| 亚洲综合色噜噜狠狠| 精品免费国产二区三区| 日本精品一区二区三区四区的功能| 久久 天天综合| 一二三四区精品视频| 久久综合久久久久88| 欧美伦理影视网| 91蜜桃婷婷狠狠久久综合9色| 精品一区二区在线免费观看| 亚洲免费大片在线观看| 亚洲精品一线二线三线无人区| 91福利视频网站| 成人小视频在线观看| 精品在线播放免费| 亚洲高清久久久| 亚洲码国产岛国毛片在线| 26uuu亚洲综合色欧美| 欧美日韩一级二级| 色婷婷av一区二区三区软件| 国产成人在线观看| 美腿丝袜亚洲一区| 五月激情综合网| 亚洲五月六月丁香激情| 日韩一区在线看| 国产日韩欧美精品电影三级在线| 欧美一卡二卡三卡| 欧美美女直播网站| 在线观看成人小视频| 91丨国产丨九色丨pron| 岛国av在线一区| 国产高清在线观看免费不卡| 看电视剧不卡顿的网站| 无码av免费一区二区三区试看| 亚洲欧美色综合| 亚洲色图19p| 亚洲女人小视频在线观看| 国产精品免费久久久久| 国产精品亲子乱子伦xxxx裸| 国产日韩高清在线| 国产视频911| 国产欧美精品国产国产专区| 欧美韩国一区二区| 国产精品免费丝袜| 亚洲欧美日韩精品久久久久| 亚洲男人天堂一区| 亚洲国产精品视频| 日日摸夜夜添夜夜添国产精品| 亚洲成人午夜电影| 奇米综合一区二区三区精品视频| 免费观看日韩电影| 狠狠久久亚洲欧美| 精品一区二区三区影院在线午夜 | 一区二区理论电影在线观看| 中文无字幕一区二区三区| 欧美成人一区二区三区片免费| 日韩一区和二区| 欧美一二三四区在线| 欧美一级日韩一级| 日韩欧美美女一区二区三区| 精品国产制服丝袜高跟| 久久天堂av综合合色蜜桃网| 国产精品国产精品国产专区不片| 国产精品少妇自拍| 亚洲欧美另类小说| 亚洲va韩国va欧美va| 五月激情六月综合| 奇米888四色在线精品| 精品一区二区三区在线播放| 久久69国产一区二区蜜臀| 国产成人小视频| 成人sese在线| 成人av在线影院| 日本精品裸体写真集在线观看| 欧美色综合网站| 欧美不卡一区二区三区| 欧美一区二区成人| 久久综合九色综合97婷婷女人| 国产精品入口麻豆九色| 一区二区三区成人| 日本三级韩国三级欧美三级| 国产最新精品免费| 99re热这里只有精品视频| 欧美丝袜丝交足nylons图片| 4438x亚洲最大成人网| 国产视频一区在线观看| 亚洲欧美电影一区二区| 婷婷一区二区三区| 国产精品888| 色天使久久综合网天天| 91精品啪在线观看国产60岁| 日韩精品在线看片z| 国产精品乱人伦中文| 亚洲国产日韩精品| 香蕉成人啪国产精品视频综合网| 国产成人午夜电影网| 91传媒视频在线播放| 精品日韩在线观看| 亚洲区小说区图片区qvod| 男女男精品网站| av网站免费线看精品| 日韩亚洲欧美一区二区三区| 亚洲欧美怡红院| 久久国产尿小便嘘嘘| 91亚洲精品久久久蜜桃| 精品欧美一区二区在线观看| 亚洲精品国久久99热| 日本人妖一区二区| 欧美日韩综合一区| 国产精品素人一区二区| 秋霞影院一区二区| 在线区一区二视频| 欧美国产精品v| 亚洲不卡在线观看| 欧美在线播放高清精品| 国产欧美综合色| 青青青爽久久午夜综合久久午夜 | 亚洲一线二线三线视频| 久久国产精品99精品国产| 欧美精品视频www在线观看| 国产精品成人一区二区艾草| 精品一区二区在线视频| 99久久精品国产毛片| 久久理论电影网| 毛片av中文字幕一区二区| 欧美日韩在线三区| 亚洲激情第一区| 男女性色大片免费观看一区二区| 欧美精选午夜久久久乱码6080| 国产精品国产三级国产普通话三级 | 色综合天天综合网天天看片| 久久先锋影音av| 日韩电影一区二区三区| 欧美日韩五月天| 一区二区三区四区av| 99久久国产综合色|国产精品| 久久久久国产精品人| 久久91精品国产91久久小草| 日韩一区二区在线看| 日韩中文字幕区一区有砖一区 | 日本视频在线一区| 精品视频999| 一区二区高清视频在线观看| 91女厕偷拍女厕偷拍高清| 中文字幕av一区二区三区| 黄页网站大全一区二区| 久久久久久久久一| 国产激情一区二区三区四区| 久久综合久久综合亚洲| 国产一区二区网址| 国产亚洲成年网址在线观看| 国产精品18久久久久久久久久久久 | 欧美日韩国产乱码电影| 亚洲一区在线视频| 欧美日韩你懂的| 亚洲第一av色| 欧美性生交片4| 奇米精品一区二区三区在线观看一| 91精品欧美久久久久久动漫| 日韩福利电影在线| 日韩欧美久久一区| 国产精品18久久久久久vr| 中文字幕高清一区| 99久久精品免费| 亚洲欧美在线另类| 欧美自拍偷拍一区| 青青草原综合久久大伊人精品 | 欧洲av一区二区嗯嗯嗯啊| 一级特黄大欧美久久久| 91蝌蚪porny| 捆绑调教一区二区三区| 久久精品一区四区| 欧美性生交片4| 天天色天天操综合| 欧美不卡视频一区| 国产精品18久久久久久久久久久久| 国产午夜精品福利| 91丝袜国产在线播放| 亚洲123区在线观看| 精品免费日韩av| 成人18视频在线播放| 欧美国产激情一区二区三区蜜月| 91福利视频在线| 六月丁香综合在线视频| 中文字幕精品三区| 欧美另类一区二区三区| 国产一区二区福利视频| 久久久精品免费网站| 欧美精品丝袜中出| 成人一级片在线观看| 亚洲一区二区三区国产| 久久女同精品一区二区| 91视频一区二区三区| 日韩精品视频网站| 国产亚洲成aⅴ人片在线观看| 在线观看www91| 国产精品资源在线看| 亚洲国产裸拍裸体视频在线观看乱了| 精品国产一区二区三区久久久蜜月 |