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

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

?? net_ascii.c

?? ucos的tcpip協議占
?? C
?? 第 1 頁 / 共 3 頁
字號:


                     default:                                           /* See Note #1a1.                               */
                          Mem_Clr((void     *)paddr_mac,                /* Clr rtn addr on err (see Note #2c).          */
                                  (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
                         *perr = NET_ASCII_ERR_INVALID_CHAR;
                          return;                                       /* Prevent 'break NOT reachable' warning.       */
                 }
                                                                        /* Merge ASCII char into hex val.               */
                 addr_octet_val *= 16;
                 addr_octet_val += addr_octet_val_dig;
                 break;

/*$PAGE*/
            case ':':
                 if (pchar_prev == (CPU_CHAR *)0) {                     /* If NO prev char      (see Note #1a2B); ...   */
                     Mem_Clr((void     *)paddr_mac,                     /* ... clr rtn addr     (see Note #2c)    ...   */
                             (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
                    *perr = NET_ASCII_ERR_INVALID_CHAR_SEQ;             /* ... & rtn err.                               */
                     return;
                 }

                 if (*pchar_prev == (CPU_CHAR)':') {                    /* If prev char a colon (see Note #1a2B); ...   */
                     Mem_Clr((void     *)paddr_mac,                     /* ... clr rtn addr     (see Note #2c)    ...   */
                             (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
                    *perr = NET_ASCII_ERR_INVALID_CHAR_SEQ;             /* ... & rtn err.                               */
                     return;
                 }

                 addr_nbr_octet++;
                 if (addr_nbr_octet >= NET_ASCII_NBR_OCTET_ADDR_MAC) {  /* If nbr octets > max  (see Note #1a2A); ...   */
                     Mem_Clr((void     *)paddr_mac,                     /* ... clr rtn addr     (see Note #2c)    ...   */
                             (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
                    *perr = NET_ASCII_ERR_INVALID_LEN;                  /* ... & rtn err.                               */
                     return;
                 }

                                                                        /* Merge hex octet val into MAC addr.           */
                *paddr_cur++        = (CPU_INT08U)addr_octet_val;
                 addr_octet_val     =  0x0000;
                 addr_nbr_octet_dig =  0;
                 break;


            default:                                                    /* See Note #1a1.                               */
                 Mem_Clr((void     *)paddr_mac,                         /* Clr rtn addr on err (see Note #2c).          */
                         (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
                *perr = NET_ASCII_ERR_INVALID_CHAR;
                 return;                                                /* Prevent 'break NOT reachable' warning.       */
        }

        pchar_prev = pchar_cur;
        pchar_cur++;    
    }

    if (pchar_cur == (CPU_CHAR *)0) {                                   /* If ANY NULL ptr in ASCII str;  ..            */
        Mem_Clr((void     *)paddr_mac,                                  /* .. clr rtn addr (see Note #2c) ..            */
                (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
       *perr = NET_ASCII_ERR_NULL_PTR;                                  /* .. & rtn err.                                */
        return;
    }

    if (*pchar_prev == (CPU_CHAR)':') {                                 /* If last char a colon (see Note #1a2B); ..    */
        Mem_Clr((void     *)paddr_mac,                                  /* .. clr rtn addr     (see Note #2c)     ..    */
                (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
       *perr = NET_ASCII_ERR_INVALID_CHAR_SEQ;                          /* .. & rtn err.                                */
        return;
    }

    addr_nbr_octet++;
    if (addr_nbr_octet != NET_ASCII_NBR_OCTET_ADDR_MAC) {               /* If != nbr MAC addr octets (see Note #1a2A);  */
        Mem_Clr((void     *)paddr_mac,                                  /* .. clr rtn addr           (see Note #2c)  .. */
                (CPU_SIZE_T)NET_ASCII_NBR_OCTET_ADDR_MAC);
       *perr = NET_ASCII_ERR_INVALID_LEN;                               /* .. & rtn err.                                */
        return;
    }

                                                                        /* Merge hex octet val into final MAC addr.     */
   *paddr_cur = (CPU_INT08U)addr_octet_val;

   *perr      =  NET_ASCII_ERR_NONE;
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                        NetASCII_MAC_to_Str()
*
* Description : Convert a MAC address into a MAC address ASCII string.
*
* Argument(s) : paddr_mac           Pointer to a memory buffer that contains the MAC address (see Note #2).
*
*               paddr_mac_ascii     Pointer to an ASCII character array that will receive the return ASCII 
*                                       string from this function (see Note #1).
*
*               hex_lower_case      Format alphabetic hexadecimal characters in lower case :
*
*                                       DEF_NO      Format alphabetic hexadecimal characters in upper case.
*                                       DEF_YES     Format alphabetic hexadecimal characters in lower case.
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               NET_ASCII_ERR_NONE                  ASCII string successfully formatted.
*                               NET_ASCII_ERR_NULL_PTR              Argument 'paddr_mac'/'paddr_mac_ascii'
*                                                                       passed a NULL pointer.
*
* Return(s)   : none.
*
* Caller(s)   : Application.
*
*               This function is a network protocol suite application interface (API) function & MAY be 
*               called by application function(s).
*
* Note(s)     : (1) (a) (1) The return MAC address ASCII string ...
*
*                           (A) Formats EXACTLY six hexadecimal values ...
*                           (B) ... separated ...
*                           (C) ... by  EXACTLY five colon characters.
*
*                       (2) The size of the ASCII character array that will receive the returned ASCII 
*                           string MUST be greater than or equal to NET_ASCII_LEN_MAX_ADDR_MAC.
*
*                   (b) In other words, the MAC address ASCII string separates six hexadecimal octet 
*                       values by the colon character (':').  Each hexadecimal value represents one 
*                       octet of the MAC address starting with the most significant octet in network
*                       order.
*
*                           MAC Address Examples :
*
*                                 MAC ADDRESS ASCII STRING     HEXADECIMAL EQUIVALENT
*
*                                   "00:1A:07:AC:22:09"     =     0x001A07AC2209
*                                   "76:4E:01:D2:8C:0B"     =     0x764E01D28C0B
*                                   "80:Db:fE:0b:34:52"     =     0X80DBFE0B3452
*                                    --             --              --        --
*                                    ^               ^              ^          ^
*                                    |               |              |          |
*                                   MSO             LSO            MSO        LSO
*
*                               where
*
*                                   MSO             Most  Significant Octet in MAC Address
*                                   LSO             Least Significant Octet in MAC Address
*
*
*               (2) (a) The size of the memory buffer that contains the MAC address MUST be greater than
*                       or equal to NET_ASCII_NBR_OCTET_ADDR_MAC.
*
*                   (b) MAC address accessed by octets in memory buffer array.
*********************************************************************************************************
*/
/*$PAGE*/
void  NetASCII_MAC_to_Str (CPU_INT08U   *paddr_mac,
                           CPU_CHAR     *paddr_mac_ascii,
                           CPU_BOOLEAN   hex_lower_case,
                           NET_ERR      *perr)
{
    CPU_CHAR    *pchar;
    CPU_INT08U  *paddr;
    CPU_INT08U   addr_octet_nbr_shifts;
    CPU_INT08U   addr_octet_val;
    CPU_INT08U   addr_octet_dig_val;
    CPU_INT08U   i;
    CPU_INT08U   j;


                                                                        /* -------------- VALIDATE PTRS --------------- */
    if (paddr_mac == (CPU_INT08U *)0) {
       *perr = NET_ASCII_ERR_NULL_PTR;
        return;
    }
    if (paddr_mac_ascii == (CPU_CHAR *)0) {
       *perr = NET_ASCII_ERR_NULL_PTR;
        return;
    }


    paddr = paddr_mac;
    pchar = paddr_mac_ascii;

    for (i = NET_ASCII_NBR_OCTET_ADDR_MAC; i > 0; i--) {                /* Parse ALL addr octets.                       */

        addr_octet_val = *paddr;

        for (j = NET_ASCII_CHAR_MAX_OCTET_ADDR_MAC; j > 0; j--) {       /* Parse ALL octet's hex digs.                  */
                                                                        /* Calc  cur octet's hex dig val.               */
            addr_octet_nbr_shifts = (j - 1) * DEF_NIBBLE_NBR_BITS;
            addr_octet_dig_val    = (addr_octet_val >> addr_octet_nbr_shifts) & DEF_NIBBLE_MASK;
                                                                        /* Insert octet hex val ASCII dig.              */
            if (addr_octet_dig_val < 10) {
               *pchar++ = (CPU_CHAR)(addr_octet_dig_val + '0');
                
            } else {
                if (hex_lower_case != DEF_YES) {
                   *pchar++ = (CPU_CHAR)(addr_octet_dig_val - 10 + 'A');
                } else {
                   *pchar++ = (CPU_CHAR)(addr_octet_dig_val - 10 + 'a');
                }
            }
        }

        if (i > 1) {                                                    /* If NOT on last octet, append a colon char.   */
           *pchar++ = ':';
        }

        paddr++;
    }

   *pchar = (CPU_CHAR)0;                                                /* Append NULL char.                            */

   *perr  =  NET_ASCII_ERR_NONE;
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                        NetASCII_Str_to_IP()
*
* Description : Convert an IPv4 address in ASCII dotted-decimal notation to a network protocol IPv4 address
*                   in host-order.
*
* Argument(s) : paddr_ip_ascii      Pointer to an ASCII string that contains a dotted-decimal IPv4 address
*                                       (see Note #2).
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               NET_ASCII_ERR_NONE                  IPv4 address successfully converted.
*                               NET_ASCII_ERR_NULL_PTR              Argument 'paddr_ip_ascii' passed a
*                                                                       NULL pointer.
*                               NET_ASCII_ERR_INVALID_LEN           Invalid ASCII string length.
*                               NET_ASCII_ERR_INVALID_CHAR          Invalid ASCII character.
*                               NET_ASCII_ERR_INVALID_CHAR_LEN      Invalid ASCII character length.
*                               NET_ASCII_ERR_INVALID_CHAR_VAL      Invalid ASCII character value.
*                               NET_ASCII_ERR_INVALID_CHAR_SEQ      Invalid ASCII character sequence.
*
* Return(s)   : Host-order IPv4 address represented by ASCII string, if NO errors.
*
*               NET_IP_ADDR_NONE,                                    otherwise.
*
* Caller(s)   : Application.
*
*               This function is a network protocol suite application interface (API) function & MAY be 
*               called by application function(s).
*
* Note(s)     : (1) RFC #1983 states that "dotted decimal notation ... refers [to] IP addresses of the
*                   form A.B.C.D; where each letter represents, in decimal, one byte of a four byte IP
*                   address".
*
*                   In other words, the dotted-decimal notation separates four decimal octet values by
*                   the dot, or period, character ('.').  Each decimal value represents one octet of 
*                   the IP address starting with the most significant octet in network order.
*
*                       IP Address Examples :
*
*                              DOTTED DECIMAL NOTATION     HEXADECIMAL EQUIVALENT
*
*                                   127.0.0.1           =       0x7F000001
*                                   192.168.1.64        =       0xC0A80140
*                                   255.255.255.0       =       0xFFFFFF00
*                                   ---         -                 --    --
*                                    ^          ^                 ^      ^
*                                    |          |                 |      |
*                                   MSO        LSO               MSO    LSO
*
*                           where
*
*                               MSO             Most  Significant Octet in Dotted Decimal IP Address
*                               LSO             Least Significant Octet in Dotted Decimal IP Address
*
*
*               (2) The dotted-decimal ASCII string MUST :
*
*                   (a) Include ONLY decimal values & the dot, or period, character ('.') ; ALL other

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区欧美激情| 在线看日本不卡| 91浏览器打开| 精品久久久久久综合日本欧美| 国产精品成人在线观看| 精品亚洲成a人| 欧美色视频在线观看| 国产精品理论片| 国产一区二区三区高清播放| 欧美日韩一二三| 亚洲视频中文字幕| 国产成人综合视频| 日韩欧美一区二区三区在线| 一区二区三区高清| 99久久777色| 久久精品欧美一区二区三区不卡| 日韩综合一区二区| 欧洲国内综合视频| 亚洲女爱视频在线| av不卡一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 亚洲欧美一区二区三区孕妇| 国产一区美女在线| 欧美电视剧在线观看完整版| 舔着乳尖日韩一区| 欧美三级蜜桃2在线观看| 日韩美女久久久| 色婷婷av一区二区| 一区二区三区四区在线免费观看| 成人av在线电影| 国产精品免费av| 成人app在线观看| 国产精品久久久久久久久免费丝袜 | 欧美日韩在线三区| 亚洲一二三区不卡| 欧美日韩色一区| 奇米精品一区二区三区在线观看一 | 色综合久久88色综合天天6| 中文字幕av不卡| av电影天堂一区二区在线| 国产精品进线69影院| 99免费精品视频| 亚洲特级片在线| 欧美综合一区二区三区| 丝袜美腿亚洲综合| 日韩欧美黄色影院| 国产成a人亚洲| 国产精品毛片久久久久久久| 91蜜桃在线免费视频| 亚洲一级二级在线| 日韩一区二区免费视频| 国产毛片精品视频| 亚洲三级在线免费观看| 欧美亚洲综合久久| 麻豆精品久久久| 国产精品毛片久久久久久久| 欧美亚洲综合网| 黑人精品欧美一区二区蜜桃 | 欧美一卡2卡三卡4卡5免费| 蜜桃av噜噜一区二区三区小说| 精品久久久久久无| 色婷婷精品久久二区二区蜜臂av | 亚洲素人一区二区| 欧美高清激情brazzers| 国产一本一道久久香蕉| 亚洲色欲色欲www| 日韩一区二区视频| 成人app在线观看| 男女男精品网站| 中文天堂在线一区| 欧美精品久久天天躁| 国产精品99久| 性久久久久久久| 国产精品视频一二三区| 欧美精品色一区二区三区| 国产成人三级在线观看| 亚洲福利视频三区| 国产精品传媒在线| 欧美成人性战久久| 91九色02白丝porn| 国产精品综合在线视频| 偷拍日韩校园综合在线| 国产精品日韩成人| 精品国产乱码久久久久久图片| 91丝袜国产在线播放| 国产在线精品免费av| 亚洲乱码国产乱码精品精小说| 日韩欧美黄色影院| 欧美日韩精品系列| 91在线观看污| 国产电影精品久久禁18| 免费观看久久久4p| 亚洲综合一二区| 亚洲欧洲成人精品av97| 2020国产精品| 日韩欧美区一区二| 欧美色视频一区| 91电影在线观看| 波多野结衣中文一区| 狠狠狠色丁香婷婷综合激情| 日韩精品成人一区二区三区 | 蜜臀久久99精品久久久画质超高清| 亚洲欧洲精品一区二区三区| 久久精品一区二区三区不卡牛牛 | 国产一区二区伦理| 久久99久国产精品黄毛片色诱| 亚洲第一福利视频在线| 亚洲欧美国产毛片在线| 国产精品成人一区二区三区夜夜夜| 久久精品男人的天堂| 久久午夜电影网| 久久久亚洲精品一区二区三区| 欧美sm极限捆绑bd| 日韩免费在线观看| 日韩精品一区二区三区老鸭窝 | 97久久精品人人做人人爽| 成人中文字幕电影| 福利一区二区在线观看| 成人美女视频在线观看| 成人精品小蝌蚪| 91麻豆精东视频| 91成人国产精品| 欧美蜜桃一区二区三区| 欧美一区二区三区公司| 日韩欧美的一区二区| 欧美成人aa大片| 日本一区二区三区国色天香| 日本一区二区三区免费乱视频 | 欧美www视频| 国产喂奶挤奶一区二区三区| 亚洲国产精品99久久久久久久久| 中文字幕第一区综合| 樱桃视频在线观看一区| 亚洲一区二区免费视频| 久久机这里只有精品| 国产乱淫av一区二区三区| 成人白浆超碰人人人人| 色婷婷精品久久二区二区蜜臀av| 欧美电影一区二区| 久久亚洲一区二区三区四区| 中文字幕一区二区日韩精品绯色| 亚洲欧美一区二区久久| 视频精品一区二区| 国产高清精品久久久久| 色综合 综合色| 91精品国产欧美一区二区| 国产拍欧美日韩视频二区| 夜夜亚洲天天久久| 久久99深爱久久99精品| 99久精品国产| 日韩欧美一区在线观看| 国产精品护士白丝一区av| 亚洲国产一区二区三区青草影视| 精品一区二区三区在线播放| 9i在线看片成人免费| 欧美一级免费大片| 亚洲成人免费影院| 国产精品影音先锋| 在线观看成人免费视频| 亚洲精品在线电影| 亚洲免费观看高清在线观看| 另类人妖一区二区av| 91老师国产黑色丝袜在线| 欧美本精品男人aⅴ天堂| 亚洲人成亚洲人成在线观看图片| 久久99久久99精品免视看婷婷 | 成人动漫一区二区| 欧美va亚洲va国产综合| 夜夜嗨av一区二区三区四季av | 亚洲天堂成人网| 国产一区二区调教| 欧美久久久久久久久久| 国产精品福利一区二区| 老汉av免费一区二区三区| 欧美午夜不卡在线观看免费| 国产精品免费aⅴ片在线观看| 国内精品第一页| 制服丝袜av成人在线看| 一区二区在线电影| 成人激情视频网站| 久久久国产一区二区三区四区小说| 日韩福利电影在线| 91极品美女在线| 中文字幕一区二区三区av| 国产精品一区二区在线看| 日韩欧美国产wwwww| 日本va欧美va精品| 欧美日韩高清在线| 一区二区三区不卡视频在线观看| 成人av网址在线| 国产色一区二区| 国产一区二区调教| 久久蜜桃av一区二区天堂| 精品夜夜嗨av一区二区三区| 日韩一区二区影院| 麻豆久久一区二区| 日韩欧美卡一卡二| 国产一区二区三区香蕉| 精品国产凹凸成av人网站| 韩国在线一区二区|