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

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

?? cli_cmdreg.c

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

    return pReturn;
}

_U32 CT_FreeParameter(CT_PARAMETER_P pParam)
{
    CT_PARAMETER_P pParamTemp,pParamNext;

    if(pParam == G_NULL)  return G_FAILURE;

    pParamTemp = pParam;

    while(pParamTemp != G_NULL)
    {
        pParamNext = pParamTemp->pNext;

        /* 1. Free the heir parameter */
        if(pParamTemp->subParam != G_NULL)
        {
            if (CT_FreeParameter(pParamTemp->subParam) != G_SUCCESS)
            {
                return G_FAILURE;
            }
        }

        /* 2. Free itself */
        if(pParamTemp->szName != G_NULL)
        {
            ROS_MemFree(pParamTemp->szName);
        }
        if(pParamTemp->valueList.pValue != G_NULL)
        {
            if (CT_FreeValue(pParamTemp->valueList.pValue) != G_SUCCESS)
            {
                return G_FAILURE;
            }
        }
        ROS_MemFree(pParamTemp);

        pParamTemp = pParamNext;

    }

    return G_SUCCESS;
}

_U32 CT_FreeParamlink(CT_PARAMGROUP_P pParamLink)
{
    if(pParamLink == G_NULL)  return G_FAILURE;

    if(pParamLink->pParam != G_NULL)
    {
        if (CT_FreeParameter(pParamLink->pParam) != G_SUCCESS)
        {
            return G_FAILURE;
        }
    }

    ROS_MemFree(pParamLink);

    return G_SUCCESS;
}

_U32 CT_FreeObject(CT_OBJECT_P pObject)
{
    if(pObject == G_NULL) return G_FAILURE;

    /* 1. Free the szName String            */
    if(pObject->szName != G_NULL)
        ROS_MemFree(pObject->szName);

    /* 2. Free action's parameter link      */
    if(pObject->action.pParamLink != G_NULL)
    {
        if (CT_FreeParamlink(pObject->action.pParamLink) != G_SUCCESS)
        {
            return G_FAILURE;
        }
    }

    /* 3. Free noAction's parameter link    */
    if(pObject->noAction.pParamLink != G_NULL)
    {
        if (CT_FreeParamlink(pObject->noAction.pParamLink) != G_SUCCESS)
        {
            return G_FAILURE;
        }
    }

    /* 4. Free the Object   */
    ROS_MemFree(pObject);
    pObject = G_NULL;
    return G_SUCCESS;
}

CT_VALUE_P CT_NewValue(_VOID)
{
    CT_VALUE_P pValue;

    pValue = (CT_VALUE_P) ROS_MemAlloc(sizeof(CT_VALUE_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pValue != G_NULL)
    {
        pValue->szName = G_NULL;
        pValue->s32IntFilter[0] = 0;
        pValue->s32IntFilter[1] = 0;
        pValue->pPrevious = G_NULL;
        pValue->pNext = G_NULL;
        pValue->ulAbsoluteIndex = 0;

        /* intialize valueType */
        pValue->valueType.ucAttrib = 0;
        pValue->valueType.ucDataType = CT_DATA_NULL;
        pValue->valueType.ucDataLen = 0;

        /* intialize keywords */
        pValue->keywords.ulNumber = 0;
        pValue->keywords.pKeyword = G_NULL;

        /* default value */
        pValue->szDefault = G_NULL;

        /* intialize check function pointer */
        pValue->pCheckFunc = G_NULL;
    }

    return pValue;

}

CT_VALUEGROUP_P CT_NewValuelink(_VOID)
{
    CT_VALUEGROUP_P pValue;

    pValue = (CT_VALUEGROUP_P) ROS_MemAlloc(sizeof(CT_VALUEGROUP_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pValue != G_NULL)
    {
        pValue->ulNumber = 0;
        pValue->pValue = G_NULL;
    }

    return pValue;
}

CT_SERIAL_WORD_P CT_NewKeyword(_VOID)
{
    CT_SERIAL_WORD_P pKeyW;

    pKeyW = (CT_SERIAL_WORD_P) ROS_MemAlloc(sizeof(CT_SERIAL_WORD_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pKeyW != G_NULL)
    {
        pKeyW->pK = G_NULL;
        pKeyW->pPrevious = G_NULL;
        pKeyW->pNext = G_NULL;
    }

    return pKeyW;
}

CT_OBJECT_P CT_NewObject(_VOID)
{
    CT_OBJECT_P pObj;

    pObj = (CT_OBJECT_P) ROS_MemAlloc(sizeof(CT_OBJECT_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pObj != G_NULL)
    {
        pObj->szName = G_NULL;
        pObj->ulObjectCount = 0;
        pObj->pSubObject = G_NULL;
        pObj->pPrevious = G_NULL;
        pObj->pNext = G_NULL;
        pObj->pParent = G_NULL;
        pObj->ulNoFlag = 0;
        /* Initailize the action */
        pObj->action.ulMode = NULL_MODE;
        pObj->action.rightLevel = CT_AL_QUERY;
        pObj->action.pFunction = G_NULL;
        pObj->action.ulHelpID = CLI_ML_NULL;
        pObj->action.modeConv = CT_MC_NULL;
        pObj->action.pParamLink = G_NULL;

        pObj->noAction.ulMode = NULL_MODE;
        pObj->noAction.rightLevel = CT_AL_QUERY;
        pObj->noAction.pFunction = G_NULL;
        pObj->noAction.ulHelpID = CLI_ML_NULL;
        pObj->noAction.modeConv = CT_MC_NULL;
        pObj->noAction.pParamLink = G_NULL;

    }

    return pObj;

}

CT_PARAMETER_P CT_NewParameter(_VOID)
{
    CT_PARAMETER_P pParam;

    pParam = (CT_PARAMETER_P) ROS_MemAlloc(sizeof(CT_PARAMETER_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pParam != G_NULL)
    {
        pParam->szName = G_NULL;
        pParam->subParam = G_NULL;
        pParam->pPrevious = G_NULL;
        pParam->pNext = G_NULL;
        pParam->pParent = G_NULL;

        /* intialize the paramType */
        pParam->paramType.ucAttrib = 0;
        pParam->paramType.reserved1 = 0;
        pParam->paramType.reserved2 = 0;

        /* intialize the valueList */
        pParam->valueList.ulNumber = 0;
        pParam->valueList.pValue = G_NULL;
    }

    return pParam;
}


CT_PARAMGROUP_P CT_NewParamlink(_VOID)
{
    CT_PARAMGROUP_P pParamLink;

    pParamLink = (CT_PARAMGROUP_P) ROS_MemAlloc(sizeof(CT_PARAMLINK_T), ROS_MEM_ALLOC_OPT_NONE);

    if(pParamLink != G_NULL)
    {
        pParamLink->ulNumber = 0;
        pParamLink->pParam = G_NULL;
    }

    return pParamLink;
}

CT_OBJECT_P CT_CreateObject(const _S8 *szName, _U32 ulMode,
            CLI_OPERAT_LEVEL_T level, CLI_CALLBACK_EXEC_FUN pFunc,
            _BOOL bChangeMode, CT_MODE_CHANGE_T modeConv,
            CLI_CALLBACK_EXEC_FUN pNoFunc)
{
    CT_OBJECT_P pObjTmp;
    CT_MODE_T *pMode;
    _U32 ulModeLevel;
    (void)bChangeMode;

    if(ulMode >= CTM_TOTAL)
        return G_NULL;

    if((szName == G_NULL) || (*szName == 0))
        return G_NULL;

    if(!EOS_StriCmp(szName, "show"))
        if(ulMode != CTM_GLOBAL)
            return G_NULL ;

    pObjTmp = CT_NewObject();
    if(pObjTmp == G_NULL)
        return G_NULL;

    /* 2. set object Name */
    pObjTmp->szName = ROS_MemAlloc(EOS_StrLen(szName) + 1, ROS_MEM_ALLOC_OPT_NONE);
    if(pObjTmp->szName == G_NULL)
    {
        if (CT_FreeObject(pObjTmp) != G_SUCCESS)
        {
            //統計
        }
        return G_NULL;
    }
    EOS_StrCpy(pObjTmp->szName,szName);
    _AffirmStrBeLower(pObjTmp->szName);

    /* 3. Set action */
    pObjTmp->action.ulMode = ulMode;
    pMode = CI_GetMode(ulMode);
    if(pMode == G_NULL)
    {
        if (CT_FreeObject(pObjTmp) != G_SUCCESS)
        {
            //統計
        }
        return G_NULL;
    }

    ulModeLevel = pMode->rightLevel;
    if(level != CT_AL_NULL)
    {
        if((_U32)level >= ulModeLevel)
            pObjTmp->action.rightLevel = level;
        else
            pObjTmp->action.rightLevel = (CLI_OPERAT_LEVEL_T)ulModeLevel;
    }
    else
        pObjTmp->action.rightLevel = (CLI_OPERAT_LEVEL_T)ulModeLevel;

    pObjTmp->action.modeConv = modeConv;
    pObjTmp->action.pFunction = pFunc;

    /* 4. Set no form action  */
    if( pNoFunc != G_NULL )
    {
        pObjTmp->noAction.ulMode = ulMode;
        pObjTmp->noAction.rightLevel = pObjTmp->action.rightLevel;
        pObjTmp->noAction.pFunction  = pNoFunc;
        pObjTmp->ulNoFlag = 1;
    }

    return pObjTmp;
}

CT_PARAMETER_P CT_CreateParameter( _S8 *szNameStr, _U8 ucTypeAttrib,
                                   _U8 ucIndex, _U32 ulIndex )
{
    _S8 szNameTmp[15];
    CT_PARAMETER_P pTempParam;
    (void)ucIndex;
    /* 1. Malloc memory */
    pTempParam = CT_NewParameter();
    if(pTempParam == G_NULL)
        return G_NULL;

    /* 2. Set name */
    if(szNameStr == G_NULL)
    {
        /* if name needed, G_NULL cause an error! */
        if(ucTypeAttrib & CT_PRMPROP_NAME)
        {
            if (CT_FreeParameter(pTempParam) != G_SUCCESS)
            {
                //統計
            }
            return G_NULL;
        }
        else
        {
            EOS_StrCpy(szNameTmp, "virtual-param");
            pTempParam->szName = ROS_MemAlloc(EOS_StrLen(szNameTmp)+1, ROS_MEM_ALLOC_OPT_NONE);
            if(pTempParam->szName == G_NULL)
            {
                if (CT_FreeParameter(pTempParam) != G_SUCCESS)
                {
                    //統計
                }
                return G_NULL;
            }
            EOS_StrCpy(pTempParam->szName,szNameTmp);
            _AffirmStrBeLower(pTempParam->szName);
        }
    }
    else
    {
        pTempParam->szName = ROS_MemAlloc(EOS_StrLen(szNameStr) + 1, ROS_MEM_ALLOC_OPT_NONE);
        if(pTempParam->szName == G_NULL)
        {
            if (CT_FreeParameter(pTempParam) != G_SUCCESS)
            {
                //統計
            }
            return G_NULL;
        }
        EOS_StrCpy(pTempParam->szName,szNameStr);
    }

    /* 3. Set attrib & Index */
    pTempParam->paramType.ucAttrib = ucTypeAttrib;

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

    return pTempParam;

}

CT_PARAMGROUP_P CT_CreateParamLink(_VOID)
{
    return CT_NewParamlink();
}

CT_VALUE_P CT_CreateValue(_S8 *szName, _U8 ucDataType,
                          _U8 ucDataLen, _S8 *szKeys,  _S32 iLow, _S32 iHigh,
                          _U32 ulIndex)
{
    _U32 ulCount;
    _S8 szNameTmp[15];
    CT_VALUE_P pTempValue;
    CT_SERIAL_WORD_P pKeyword = G_NULL;

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

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久丁香综合五月国产三级网站| 欧美激情资源网| 日日夜夜免费精品视频| 欧美视频一区二区三区在线观看| 亚洲成人综合网站| 欧美一区二区三区日韩| 蜜臀a∨国产成人精品| 久久久亚洲国产美女国产盗摄 | 久久影院午夜论| 国产毛片精品国产一区二区三区| 国产午夜精品一区二区三区视频| 成人在线视频一区| 亚洲va韩国va欧美va精品| 欧美精品18+| 九九精品一区二区| 国产精品久久久久久久午夜片 | 欧美一级二级三级乱码| 精品无人码麻豆乱码1区2区| 国产精品成人免费精品自在线观看| 一道本成人在线| 免费成人深夜小野草| 国产日产欧美一区二区三区 | 欧美日韩国产不卡| 久久er精品视频| 国产精品久久久久一区二区三区共| 一本一本久久a久久精品综合麻豆| 视频在线观看91| 中文字幕免费一区| 欧美日韩久久一区| 国产精品99久久久| 亚洲成人动漫一区| 中文字幕免费不卡在线| 欧美精品色一区二区三区| 国产成人精品aa毛片| 五月婷婷综合激情| 欧美激情中文不卡| 6080yy午夜一二三区久久| 成人一级视频在线观看| 日韩精品成人一区二区三区| 欧美激情自拍偷拍| 欧美大度的电影原声| 色综合久久久久久久久久久| 韩日av一区二区| 亚洲成人av福利| 亚洲欧洲无码一区二区三区| 精品国产免费人成在线观看| 欧美亚洲国产怡红院影院| 国产精一区二区三区| 性久久久久久久久久久久| 亚洲欧洲三级电影| 久久精品在这里| 日韩亚洲国产中文字幕欧美| 在线观看日韩精品| 成人黄色国产精品网站大全在线免费观看 | 日韩av电影免费观看高清完整版在线观看 | 欧美日韩中文一区| 成+人+亚洲+综合天堂| 毛片av一区二区| 天天综合网天天综合色| 亚洲最大成人综合| 日韩一区在线看| 一区二区成人在线| 久久久一区二区| 亚洲精品一线二线三线| 91精品国产综合久久福利软件| 成人福利视频网站| 国产精品资源站在线| 理论片日本一区| 婷婷成人综合网| 日韩av一二三| 日日摸夜夜添夜夜添精品视频| 亚洲自拍偷拍麻豆| 亚洲精品美国一| 亚洲男人的天堂av| 专区另类欧美日韩| 亚洲日本va午夜在线影院| 国产精品久久久久桃色tv| 国产精品三级av在线播放| 国产亚洲一区二区三区| 欧美国产综合色视频| 国产日韩v精品一区二区| 久久精品亚洲精品国产欧美| 久久精品欧美一区二区三区不卡 | 日韩女优av电影在线观看| 日韩视频免费直播| 91精品国产免费| 精品乱码亚洲一区二区不卡| 国产亚洲污的网站| 国产日韩视频一区二区三区| 国产欧美一区二区精品久导航| 亚洲国产精品精华液ab| 国产精品毛片大码女人| 亚洲激情五月婷婷| 日韩国产欧美一区二区三区| 另类小说图片综合网| 国产一区二区免费看| 波多野结衣精品在线| 在线视频一区二区三区| 欧美高清激情brazzers| 精品蜜桃在线看| 国产精品乱人伦中文| 亚洲影视在线播放| 日韩不卡在线观看日韩不卡视频| 久久精品国产一区二区三区免费看 | 欧美久久一二区| 精品欧美一区二区久久| 国产精品入口麻豆原神| 亚洲欧美韩国综合色| 日韩不卡一区二区| 国产传媒一区在线| 在线亚洲人成电影网站色www| 91精品国产综合久久国产大片| 国产亚洲综合性久久久影院| 一区二区三区在线免费观看| 另类小说图片综合网| 91色.com| 精品1区2区在线观看| 一区二区欧美视频| 六月丁香婷婷久久| 色综合夜色一区| 日韩一级成人av| 视频在线观看一区二区三区| 国产成人亚洲综合a∨婷婷图片| 在线观看视频一区二区| 国产日韩欧美a| 日韩精品电影一区亚洲| 91免费国产视频网站| 精品久久久久99| 一区二区三区**美女毛片| 国产成人综合在线观看| 欧美日韩国产高清一区二区三区 | 激情久久五月天| 欧美无人高清视频在线观看| 中文字幕av在线一区二区三区| 爽好久久久欧美精品| 91女厕偷拍女厕偷拍高清| 日韩美一区二区三区| 亚洲一区二区视频在线| 国产成人亚洲综合a∨婷婷图片 | 久久综合久色欧美综合狠狠| 亚洲午夜日本在线观看| 99精品一区二区三区| 久久精品一区二区三区四区| 午夜精品福利视频网站| 91蝌蚪porny九色| 国产农村妇女毛片精品久久麻豆| 日韩二区三区四区| 欧美日韩午夜影院| 亚洲女与黑人做爰| 成人免费视频视频在线观看免费 | 伊人婷婷欧美激情| 成人福利视频在线| 久久婷婷成人综合色| 青草av.久久免费一区| 欧美日韩一区二区三区四区五区| 亚洲欧洲精品一区二区三区不卡| 成人性生交大合| 日本一区二区免费在线| 国产成人av一区二区三区在线观看| 精品国产乱码久久久久久闺蜜| 蜜桃一区二区三区在线观看| 7777精品伊人久久久大香线蕉的 | 一区二区三区在线看| 色噜噜狠狠成人中文综合| 中文字幕一区二区不卡| 成人美女视频在线观看| 国产精品毛片高清在线完整版| 成人黄色免费短视频| 国产精品久久久久久久久晋中| 国产成人精品aa毛片| 亚洲国产精品99久久久久久久久| 国产乱码字幕精品高清av| 亚洲精品一区二区精华| 国产精一区二区三区| 中文字幕不卡的av| 91色在线porny| 国产在线播放一区| 精品国产乱码久久久久久久| 国产传媒久久文化传媒| 国产精品国产三级国产| 色综合亚洲欧洲| 亚洲成人第一页| 欧美成人一区二区三区在线观看| 国内精品久久久久影院薰衣草 | 久久精品国产亚洲高清剧情介绍| 精品国产污网站| 大白屁股一区二区视频| 亚洲男同性视频| 51精品秘密在线观看| 国产一区二区在线电影| 最好看的中文字幕久久| 欧美日韩在线三区| 蜜桃精品视频在线| 国产欧美一二三区| 91福利区一区二区三区| 免费xxxx性欧美18vr| 国产精品剧情在线亚洲| 欧美日韩综合不卡| 国产成人午夜精品影院观看视频| 亚洲欧美成aⅴ人在线观看|