コード例 #1
0
//-----------------------------------------------------------------------------
// public functions
//-----------------------------------------------------------------------------
// 
void CLI_ModuleCmd_Install()
{
    UINT32 u4Idx;
    UINT32 u4CmdIdx;
    CLI_EXEC_T* prModCmdTbl;

    // initialize module command table
    for (u4Idx = 0; u4Idx < (UINT32)(CLI_MOD_NS + 1); u4Idx++)
    {
        _arUserCmdTbl[u4Idx] = _rNullTbl;
    }

    // install module command table
    u4CmdIdx = 0;
    for (u4Idx = 0; u4Idx < (UINT32)CLI_MOD_NS; u4Idx++)
    {
//        ASSERT(_pfCliGetTbl[u4Idx] != NULL);
        assert(_pfCliGetTbl[u4Idx] != NULL);
        prModCmdTbl = _pfCliGetTbl[u4Idx]();

        if ((prModCmdTbl != NULL) &&
            (prModCmdTbl->pszCmdStr != NULL) &&
            ((prModCmdTbl->pfExecFun != NULL) || (prModCmdTbl->prCmdNextLevel != NULL)))
        {
            _arUserCmdTbl[u4CmdIdx] = *prModCmdTbl;
            u4CmdIdx++;
        }
    }

    CLI_CmdTblAttach(_arUserCmdTbl);
}
コード例 #2
0
/******************************************************************************
* Function      : CLI_CmdTblClear
* Description   : cli command table clear
******************************************************************************/
void CLI_CmdTblClear(void)
{
    UINT32 u4TblIdx;

    for (u4TblIdx = 0; u4TblIdx < CLI_INPUT_MAX_CMD_TBL_NUM; u4TblIdx++)
    {
        _aprCmdTblBuf[u4TblIdx] = NULL;
    }

    _u4CmdTblNum = 0;
    //VERIFY( CLI_CmdTblAttach((CLI_EXEC_T *)_arMandatoryCmdTbl) != -1);
    CLI_CmdTblAttach((CLI_EXEC_T *)_arMandatoryCmdTbl);

    _aprCmdTblLinkBuf[0] = NULL;
    _u4CmdTblLinkIdx = 0;
    _prCurrentCmdTbl = NULL;
}