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

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

?? cli_intp.inc

?? 命令行在嵌入式系統的實現
?? INC
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************
Copyright 200X - 200X+1.

filename     : CLI_Intp.inc

description  : 聲明命令解釋的各種狀態定義、數據結構、宏與函數

author       : Woodhead

modification : Woodhead    create              2004-12-07
************************************************************************/

#ifndef _CLI_INTP_H_
#define _CLI_INTP_H_
#include "Cli_Cmdreg.inc"

#define CT_INTP_RETURNED_FOR_HELP       44
#define CT_INTP_RETURNED_FOR_NEWLINE    55

/* 命令執行標志 */
#define COMMAND_ACCOMPLISHED       1
#define COMMAND_UNFINISHED         0


/* 解釋過程中的總體狀態字*/
#define STAT_ENV_SILENT     0x00040000
#define STAT_ENV_SYSTEM     0x00080000   /* 該標志位已經不用, 留待擴展 */
#define STAT_ENV_ENTER      0x00100000
#define STAT_ENV_RUNCFG     0x00200000
#define STAT_ENV_NEWLINE    0x00400000

#define CTMF_PARTIAL    0xf0
#define CTMF_FULL       0x0f

#define IS_ENV_SILENT(s)    ((s) & STAT_ENV_SILENT)
#define IS_ENV_SYSTEM(s)    ((s) & STAT_ENV_SYSTEM)
#define IS_ENV_ENTER(s)     ((s) & STAT_ENV_ENTER)
#define IS_ENV_RUNCFG(s)    ((s) & STAT_ENV_RUNCFG)
#define IS_ENV_NEWLINE(s)   ((s) & STAT_ENV_NEWLINE)

/* 解釋解析的狀態機狀態位定義 */
#define WAIT_NULL           0x00    /* Initial state            */
#define WAIT_OBJ            0x01    /* expecting a object       */
#define WAIT_PARAM          0x02    /* expecting a parameter    */
#define WAIT_VALUE          0x04    /* expecting a value        */

#define NO_FORM             0x20    /* a no form command        */
#define INTERACTIVE         0x40    /* interactive command mode */
#define SKIP_ELEMENT        0x80    /* skip an optional element */

#define RES_COMPLETE        0x100   /* Research Completed       */
#define LAST_TOKEN          0x200   /* Last token to be matched */
#define MUTEX_PARAM         0x400   /* Now Parameter Mutex      */
#define VIRTUAL_P           0x800   /* Current element is       */

#define MUTEX_VALUE         0x1000  /* Now Value Mutex          */
#define BIG_TOKEN           0x8000  /* Token too big error      */

#define _UNWANTED           0x10000 /* Unwanted token exists.   */
#define MATCH_SUCC          0x20000 /* Match Success            */

#define MASK_STATUS         0x0f    /* Mask Bits                */
#define MASK_SKIPFLAG       0x80    /* Mask Bits                */
#define MASK_INTERACTIVE    0x40    /* Mask Bits                */
#define MASK_NOFORM         0x20    /* Mask Bits                */
#define MASK_COMPLETE       0x100   /* Mask Bits                */
#define MASK_LASTTOKEN      0x200   /* Mask Bits                */
#define MASK_MUTEXPARAM     0x400   /* Mask Bits                */
#define MASK_VIRTUAL_P      0x800   /* Mask Bits                */
#define MASK_MUTEXVALUE     0x1000  /* Mask Bits                */
#define MASK_BIGTOKEN       0x8000  /* Mask Bits                */
#define MASK_UNWANTED       0x10000 /* Mask Bits                */
#define MASK_MATCHSUCC      0x20000 /* Mask Bits                */

enum
{
   HAVEACTIONS,
   HAVENOACTIONS
};

/* -------------------------------- 宏操作定義 ------------------------------ */

/* 解析狀態位的判斷、設置與清除                                 */
/* 狀態位判斷 */
#define IS_WAIT_NULL(s)     (((s) & MASK_STATUS) == WAIT_NULL  )
#define IS_WAIT_OBJ(s)      (((s) & MASK_STATUS) == WAIT_OBJ   )
#define IS_WAIT_PARAM(s)    (((s) & MASK_STATUS) == WAIT_PARAM )
#define IS_WAIT_VALUE(s)    (((s) & MASK_STATUS) == WAIT_VALUE )
#define IS_SKIP_FLAG(s)     (((s) & MASK_SKIPFLAG)    != 0 )
#define IS_INTERACTIVE(s)   (((s) & MASK_INTERACTIVE) != 0 )
#define IS_NOFORM(s)        (((s) & MASK_NOFORM)      != 0 )
#define IS_COMPLETE(s)      (((s) & MASK_COMPLETE)    != 0 )
#define IS_LASTTOKEN(s)     (((s) & MASK_LASTTOKEN)   != 0 )
#define IS_MUTEXPARAM(s)    (((s) & MASK_MUTEXPARAM)  != 0 )
#define IS_VIRTUAL_P(s)     (((s) & MASK_VIRTUAL_P)   != 0 )
#define IS_MUTEXVALUE(s)    (((s) & MASK_MUTEXVALUE)  != 0 )
#define IS_BIGTOKEN(s)      (((s) & MASK_BIGTOKEN)    != 0 )
#define IS_UNWANTED(s)      (((s) & MASK_UNWANTED)    != 0 )
#define IS_MATCHSUCC(s)     (((s) & MASK_MATCHSUCC)   != 0 )

/* 狀態位的設置與清除 */
#define SET_WAIT_NULL(s)    ((s) = ((s) & 0xfffffff0) | WAIT_NULL  )
#define SET_WAIT_OBJ(s)     ((s) = ((s) & 0xfffffff0) | WAIT_OBJ   )
#define SET_WAIT_PARAM(s)   ((s) = ((s) & 0xfffffff0) | WAIT_PARAM )
#define SET_WAIT_VALUE(s)   ((s) = ((s) & 0xfffffff0) | WAIT_VALUE )

#define SET_SKIP_FLAG(s)    ((s) = (s) | SKIP_ELEMENT    )
#define CLR_SKIP_FLAG(s)    ((s) = (s) & (~SKIP_ELEMENT) )
#define SET_INTERACTIVE(s)  ((s) = (s) | INTERACTIVE     )
#define CLR_INTERACTIVE(s)  ((s) = (s) & (~INTERACTIVE)  )
#define SET_NOFORM(s)       ((s) = (s) | NO_FORM         )
#define SET_COMPLETE(s)     ((s) = (s) | RES_COMPLETE    )
#define SET_LASTTOKEN(s)    ((s) = (s) | LAST_TOKEN      )
#define SET_MUTEXPARAM(s)   ((s) = (s) | MUTEX_PARAM     )
#define CLR_MUTEXPARAM(s)   ((s) = (s) & (~MUTEX_PARAM)  )
#define SET_VIRTUAL_P(s)    ((s) = (s) | VIRTUAL_P       )
#define CLR_VIRTUAL_P(s)    ((s) = (s) & (~VIRTUAL_P)    )
#define SET_MUTEXVALUE(s)   ((s) = (s) | MUTEX_VALUE     )
#define CLR_MUTEXVALUE(s)   ((s) = (s) & (~MUTEX_VALUE)  )
#define SET_BIGTOKEN(s)     ((s) = (s) | BIG_TOKEN       )
#define SET_UNWANTED(s)     ((s) = (s) | _UNWANTED       )
#define SET_MATCHSUCC(s)    ((s) = (s) | MASK_MATCHSUCC  )
#define CLR_MATCHSUCC(s)    ((s) = (s) & (~MASK_MATCHSUCC))


/* 命令解釋過程中的狀態變遷的宏定義開始                        {
*/
/*【1】對象*/
/* (1.1) 檢查對象是否可執行 */
#define CT_OBJ_HAVE_ACTION(pObj)                \
( ((pObj)->action.pFunction != G_NULL) ||      \
  ((pObj)->noAction.pFunction != G_NULL) )

/* (1.2) 獲取前一個對象 */
#define CT_OBJ_ELDER_BROTHER(pObj)      ((pObj)->pPrevious)

/* (1.3) 獲取后一個對象 */
#define CT_OBJ_YOUNGER_BROTHER(pObj)    ((pObj)->pNext)

/* (1.4) 獲取對象名 */
#define CT_OBJ_NAME(pObj)   ((pObj)->szName)

/* (1.5) 判斷是否為模式轉換對象 */
#define CT_OBJ_CHANGE_MODE(pObj)    ((pObj)->action.modeConv != CT_MC_NULL)

/* (1.6) 判斷對象是否有參數 */
#define CT_OBJ_HAVE_PARAMETER0(pObj)            \
( ((pObj)->action.pParamLink != G_NULL) &&        \
  ((pObj)->action.pParamLink->ulNumber > 0) )
#define CT_OBJ_HAVE_PARAMETER1(pObj)            \
( ((pObj)->noAction.pParamLink != G_NULL) &&      \
  ((pObj)->noAction.pParamLink->ulNumber > 0) )

/* (1.7) 判斷對象是否有子對象 */
#define CT_OBJ_HAVE_SUBOBJECTS(pObj)                \
( (pObj)->pSubObject != G_NULL )

/* (1.8) 對象是否超大 */
#define CT_IS_BIG_OBJECT(p1,p2)                         \
( strcmp((p1)->szName,(p2)->szName) > 0 )

/* (1.9) 獲取對象模式 */
#define CT_GET_OBJ_MODE(pObj) ((pObj)->action.ulMode)

/* (1.9) 是否可被當前用戶與模式執行*/
#define CT_IS_CURRENT_KNOWN_OBJ(pObj, pWS)  \
(((_U32)(pObj->action.rightLevel) <= pWS->ulLevel)\
&& ((pObj->action.ulMode == pWS->ulCurrentMode)\
|| (pObj->action.ulMode == CTM_GLOBAL)))


/*【2】參數*/
/* (2.1) 判斷參數是否可選 */
#define CT_PARAM_IS_OPTIONAL(pParam)                \
( (pParam)->paramType.ucAttrib & CT_PRMPROP_OPTIONAL )

/* (2.2) 判斷參數是否互斥屬性    */
#define CT_PARAM_IS_MUTEX(pParam)                   \

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲gay无套男同| 精品一区二区日韩| 国产人成一区二区三区影院| 91免费国产在线观看| 国产麻豆91精品| 日韩和欧美一区二区| 亚洲欧美日韩在线| 国产亚洲欧美日韩日本| 欧美一区二区三区视频在线观看| 91在线小视频| 大陆成人av片| 国产美女主播视频一区| 日本欧美一区二区| 亚洲电影第三页| 亚洲欧美另类综合偷拍| 中文字幕不卡在线播放| 日韩欧美在线影院| 3751色影院一区二区三区| 成人av在线资源网| 国产成人激情av| 韩国女主播成人在线观看| 日韩精品电影在线观看| 亚洲一区影音先锋| 亚洲欧美色图小说| 亚洲欧洲无码一区二区三区| 国产日韩三级在线| 精品伦理精品一区| 欧美一区二区在线免费播放| 欧美男女性生活在线直播观看| 91捆绑美女网站| 91影视在线播放| 色婷婷香蕉在线一区二区| 91视频免费观看| 91免费在线看| 91成人在线观看喷潮| 一本大道av一区二区在线播放| 不卡区在线中文字幕| 成人av手机在线观看| 91麻豆swag| 99久久久久久| 色94色欧美sute亚洲线路二| 一本久久a久久精品亚洲| 一本色道综合亚洲| 欧美日韩一二三| 91精品国产综合久久精品麻豆 | 麻豆久久久久久久| 老汉av免费一区二区三区| 久久成人久久鬼色| 国产黄色精品视频| 99九九99九九九视频精品| 色综合天天做天天爱| 欧美三级韩国三级日本一级| 91精品国产一区二区三区蜜臀| 欧美一区二区三区小说| 久久婷婷成人综合色| 国产欧美精品一区aⅴ影院| 国产精品九色蝌蚪自拍| 亚洲另类色综合网站| 日韩中文字幕一区二区三区| 麻豆国产一区二区| 懂色av中文字幕一区二区三区 | 偷拍自拍另类欧美| 久久精品国产秦先生| 成人午夜激情在线| 在线看国产日韩| 日韩三级视频在线观看| 久久美女艺术照精彩视频福利播放 | 日韩一级完整毛片| 久久久久国产精品人| 亚洲乱码国产乱码精品精98午夜| 婷婷中文字幕综合| 国产二区国产一区在线观看| 91香蕉国产在线观看软件| 777午夜精品免费视频| 国产亚洲一本大道中文在线| 洋洋av久久久久久久一区| 捆绑紧缚一区二区三区视频| 成人动漫在线一区| 日韩欧美一区二区三区在线| 国产欧美综合在线观看第十页 | 国产一区二区三区观看| 日本韩国一区二区三区视频| 精品久久久久99| 亚洲精品福利视频网站| 精品一区二区久久| 色av成人天堂桃色av| 久久人人爽人人爽| 午夜精品久久久久久久 | 成人福利视频在线| 欧美一级黄色片| 亚洲日本一区二区| 久久国产精品99精品国产| 99国产精品国产精品毛片| 久久久久久一二三区| 亚洲国产欧美在线人成| 成人国产一区二区三区精品| 欧美日韩国产首页在线观看| 国产精品美女久久久久久久 | 国产精品视频一二三| 日韩电影免费在线观看网站| 99久久伊人网影院| 精品国产乱码久久久久久牛牛| 亚洲欧美另类久久久精品| 国产成人综合精品三级| 在线播放视频一区| 亚洲欧美色一区| 国产suv精品一区二区883| 精品少妇一区二区三区视频免付费| 亚洲女女做受ⅹxx高潮| 国产不卡一区视频| 久久久久久一级片| 精品一区二区国语对白| 日韩三级中文字幕| 天涯成人国产亚洲精品一区av| 99综合电影在线视频| 久久精品综合网| 国产在线精品一区二区三区不卡| 欧美乱妇23p| 五月天久久比比资源色| 欧美亚洲动漫精品| 亚洲综合一二三区| 在线观看日韩国产| 亚洲男人天堂一区| 99精品欧美一区| 国产精品国产馆在线真实露脸| 国产精品一二三四| 精品99一区二区| 国产精品一线二线三线| 久久久亚洲午夜电影| 激情欧美日韩一区二区| 欧美tickling挠脚心丨vk| 久久99久久99小草精品免视看| 欧美一级理论片| 久久av资源网| 精品sm在线观看| 国产精品 日产精品 欧美精品| 久久久久久久综合日本| 国产69精品久久777的优势| 欧美大黄免费观看| 激情图区综合网| 久久精品亚洲乱码伦伦中文| 国产精品亚洲视频| 国产精品毛片a∨一区二区三区| www.日韩在线| 亚洲精品国产一区二区三区四区在线| 色婷婷综合激情| 天天做天天摸天天爽国产一区| 日韩一区二区三区视频在线| 久久av老司机精品网站导航| 国产午夜精品久久久久久久 | 中文字幕在线观看一区二区| 99麻豆久久久国产精品免费优播| 中文字幕一区二区三区四区| 91麻豆精东视频| 偷拍一区二区三区四区| 日韩免费视频一区二区| 国产白丝精品91爽爽久久| 亚洲精品你懂的| 在线成人av网站| 国产精品一区二区三区乱码| 1024国产精品| 欧美精品自拍偷拍| 国产尤物一区二区| 亚洲六月丁香色婷婷综合久久 | 欧美一级在线观看| 风流少妇一区二区| 亚洲国产日日夜夜| 久久色在线观看| 91九色最新地址| 蜜桃在线一区二区三区| 国产精品美女一区二区三区| 欧美色爱综合网| 韩日欧美一区二区三区| 自拍偷拍国产亚洲| 精品欧美一区二区三区精品久久| 99视频一区二区| 另类小说一区二区三区| 亚洲另类在线制服丝袜| 欧美成人高清电影在线| 99精品国产热久久91蜜凸| 美洲天堂一区二卡三卡四卡视频| 国产精品久久久一区麻豆最新章节| 精品视频在线视频| 成人小视频在线观看| 韩国精品主播一区二区在线观看 | 欧美日韩免费在线视频| 国产成人午夜精品影院观看视频 | 中文字幕国产一区| 7777精品伊人久久久大香线蕉完整版| 国产一区二区三区日韩| 亚洲国产乱码最新视频 | 在线观看不卡一区| 国产精品中文欧美| 日韩精品国产欧美| 亚洲视频狠狠干| 久久天天做天天爱综合色| 9191精品国产综合久久久久久 | 精品电影一区二区| 欧美三级韩国三级日本三斤| jlzzjlzz亚洲女人18|