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

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

?? uip_arp.lst

?? c51版本的uip(一個超小型的TCPIP棧,支持tcpudparpicmp.
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.08   UIP_ARP                                                               12/26/2003 07:27:15 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE UIP_ARP
OBJECT MODULE PLACED IN uip_arp.OBJ
COMPILER INVOKED BY: C:\Keil708\C51\BIN\C51.EXE uip_arp.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2           * Copyright (c) 2001-2002, Adam Dunkels.
   3           * All rights reserved. 
   4           *
   5           * Redistribution and use in source and binary forms, with or without 
   6           * modification, are permitted provided that the following conditions 
   7           * are met: 
   8           * 1. Redistributions of source code must retain the above copyright 
   9           *    notice, this list of conditions and the following disclaimer. 
  10           * 2. Redistributions in binary form must reproduce the above copyright 
  11           *    notice, this list of conditions and the following disclaimer in the 
  12           *    documentation and/or other materials provided with the distribution. 
  13           * 3. All advertising materials mentioning features or use of this software
  14           *    must display the following acknowledgement:
  15           *      This product includes software developed by Adam Dunkels.
  16           * 4. The name of the author may not be used to endorse or promote
  17           *    products derived from this software without specific prior
  18           *    written permission.  
  19           *
  20           * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
  21           * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  22           * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23           * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
  24           * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25           * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  26           * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27           * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  28           * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  29           * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  30           * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  31           *
  32           * This file is part of the uIP TCP/IP stack.
  33           *
  34           * $Id: uip_arp.c,v 1.3 2002/01/13 21:12:41 adam Exp $
  35           *
  36           */
  37          
  38          
  39          #include "uip_arp.h"
  40          
  41          struct arp_hdr {
  42            struct uip_eth_hdr ethhdr;
  43            u16_t hwtype;
  44            u16_t protocol;
  45            u8_t hwlen;
  46            u8_t protolen;
  47            u16_t opcode;
  48            struct uip_eth_addr shwaddr;
  49            u16_t sipaddr[2];
  50            struct uip_eth_addr dhwaddr;
  51            u16_t dipaddr[2]; 
  52          };
  53          
  54          struct ethip_hdr {
  55              struct uip_eth_hdr ethhdr;
C51 COMPILER V7.08   UIP_ARP                                                               12/26/2003 07:27:15 PAGE 2   

  56              /* IP header. */
  57              u8_t vhl,
  58              tos,          
  59              len[2],       
  60              ipid[2],        
  61              ipoffset[2],  
  62              ttl,          
  63              proto;     
  64              u16_t ipchksum;
  65              u16_t srcipaddr[2], 
  66              destipaddr[2];
  67          };
  68          
  69          #define ARP_REQUEST 1
  70          #define ARP_REPLY   2
  71          
  72          #define ARP_HWTYPE_ETH 1
  73          
  74          struct arp_entry {
  75            u16_t ipaddr[2];
  76            struct uip_eth_addr ethaddr;
  77            u8_t time;
  78          };
  79          
  80          struct uip_eth_addr ethaddr = {{UIP_ETHADDR0,
  81                                                       UIP_ETHADDR1,
  82                                                       UIP_ETHADDR2,
  83                                                       UIP_ETHADDR3,
  84                                                       UIP_ETHADDR4,
  85                                                       UIP_ETHADDR5}};
  86          
  87          static struct arp_entry arp_table[UIP_ARPTAB_SIZE];
  88          static u16_t ipaddr[2];
  89          static u8_t i, c;
  90          
  91          static u8_t time;
  92          static u8_t tmpage;
  93          
  94          #define BUF   ((struct arp_hdr *)&uip_buf[0])
  95          #define IPBUF ((struct ethip_hdr *)&uip_buf[0])
  96          /*-----------------------------------------------------------------------------------*/
  97          /*
  98          void
  99          uip_arp_init(void)
 100          {
 101            for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
 102              arp_table[i].ipaddr[0] =
 103                arp_table[i].ipaddr[1] = 0;
 104            }
 105          }
 106          */
 107          
 108          /*-----------------------------------------------------------------------------------*/
 109          void
 110          uip_arp_timer(void)
 111          {
 112   1         ++time;
 113   1         for(i = 0; i < UIP_ARPTAB_SIZE; ++i) 
 114   1         {
 115   2             if((arp_table[i].ipaddr[0] | arp_table[i].ipaddr[1]) != 0 &&
 116   2                  time - arp_table[i].time >= UIP_ARP_MAXAGE) 
 117   2                 {
C51 COMPILER V7.08   UIP_ARP                                                               12/26/2003 07:27:15 PAGE 3   

 118   3                arp_table[i].ipaddr[0] =
 119   3                    arp_table[i].ipaddr[1] = 0;
 120   3             }
 121   2         }
 122   1      }
 123          /*-----------------------------------------------------------------------------------*/
 124          static void
 125          uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)
 126          {
 127   1        /* Walk through the ARP mapping table and try to find an entry to
 128   1           update. If none is found, the IP -> MAC address mapping is
 129   1           inserted in the ARP table. */
 130   1        for(i = 0; i < UIP_ARPTAB_SIZE; ++i) 
 131   1        {
 132   2          
 133   2          /* Only check those entries that are actually in use. */
 134   2          if(arp_table[i].ipaddr[0] != 0 &&
 135   2             arp_table[i].ipaddr[1] != 0) 
 136   2              {
 137   3                              /* Check if the source IP address of the incoming packet matches
 138   3                              the IP address in this ARP table entry. */
 139   3                              if(ipaddr[0] == arp_table[i].ipaddr[0] &&
 140   3                                  ipaddr[1] == arp_table[i].ipaddr[1]) 
 141   3                              {
 142   4                              
 143   4                                      /* An old entry found, update this and return. */
 144   4                                      for(c = 0; c < 6; ++c) 
 145   4                                      {
 146   5                                              arp_table[i].ethaddr.addr[c] = ethaddr->addr[c];
 147   5                                      }
 148   4                                      arp_table[i].time = time;
 149   4                                      return;
 150   4                      }
 151   3              }
 152   2           }
 153   1      
 154   1        /* If we get here, no existing ARP table entry was found, so we
 155   1           create one. */
 156   1      
 157   1        /* First, we try to find an unused entry in the ARP table. */
 158   1        for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
 159   2          if(arp_table[i].ipaddr[0] == 0 &&
 160   2             arp_table[i].ipaddr[1] == 0)
 161   2            break;    
 162   2        }
 163   1      
 164   1        /* If no unused entry is found, we try to find the oldest entry and
 165   1           throw it away. */
 166   1        if(i == UIP_ARPTAB_SIZE) {
 167   2          tmpage = 0;
 168   2          c = 0;
 169   2          for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
 170   3            if(time - arp_table[i].time > tmpage) {
 171   4              tmpage = time - arp_table[i].time;
 172   4              c = i;
 173   4            }
 174   3          }
 175   2          i = c;
 176   2        }
 177   1      
 178   1        /* Now, i is the ARP table entry which we will fill with the new
 179   1           information. */
C51 COMPILER V7.08   UIP_ARP                                                               12/26/2003 07:27:15 PAGE 4   

 180   1        arp_table[i].ipaddr[0] = ipaddr[0];
 181   1        arp_table[i].ipaddr[1] = ipaddr[1];
 182   1        for(c = 0; c < 6; ++c) {
 183   2          arp_table[i].ethaddr.addr[c] = ethaddr->addr[c];
 184   2        }
 185   1        arp_table[i].time = time;
 186   1      }
 187          /*-----------------------------------------------------------------------------------*/
 188          void
 189          uip_arp_ipin(void)
 190          {
 191   1      
 192   1        /* Only insert/update an entry if the source IP address of the
 193   1           incoming IP packet comes from a host on the local network. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91片在线免费观看| 日本怡春院一区二区| 国内精品不卡在线| 国产二区国产一区在线观看| 日韩欧美三级在线| 奇米精品一区二区三区在线观看一| 色香色香欲天天天影视综合网| 国产精品网友自拍| 成人av电影免费观看| 中文字幕一区二区三中文字幕| 国产风韵犹存在线视精品| 国产亚洲自拍一区| 菠萝蜜视频在线观看一区| 国产亚洲美州欧州综合国| 国产福利不卡视频| 亚洲欧洲美洲综合色网| 91视频在线看| 亚洲va在线va天堂| 日韩一卡二卡三卡| 国产乱码精品一品二品| 国产精品国产a| 欧美午夜精品久久久| 久久激情综合网| 欧美国产精品中文字幕| 国产精品自在在线| 中文字幕制服丝袜一区二区三区 | 欧美一区二区三区免费| 麻豆国产欧美日韩综合精品二区| 欧美一区二区三区日韩视频| 久久电影网站中文字幕| 亚洲精品少妇30p| 日韩三级视频中文字幕| 99久久国产综合精品女不卡| 蜜臀精品一区二区三区在线观看| 国产精品色眯眯| 日韩一区二区三区电影在线观看| 欧美人伦禁忌dvd放荡欲情| 国产一区二区三区免费| 亚洲第一精品在线| 国产精品色噜噜| 欧美不卡一区二区| 欧美色手机在线观看| 懂色av一区二区三区免费看| 日本少妇一区二区| 伊人夜夜躁av伊人久久| 亚洲国产高清aⅴ视频| 日韩一卡二卡三卡国产欧美| 91激情在线视频| 成人av中文字幕| 激情伊人五月天久久综合| 亚洲成a人片综合在线| 中文字幕一区二区三区在线观看| 亚洲精品一线二线三线| 欧美日韩一区小说| 91美女片黄在线| 不卡一区在线观看| 国产成人av一区| 国模冰冰炮一区二区| 日韩中文字幕一区二区三区| 一区二区三区在线免费| 国产精品久久久久久户外露出| 精品国产三级电影在线观看| 这里只有精品免费| 欧美人体做爰大胆视频| 欧美日韩在线播放| 欧美日韩免费观看一区二区三区| 91美女在线观看| 91免费在线视频观看| av在线这里只有精品| 岛国一区二区三区| 不卡区在线中文字幕| av不卡在线播放| 99视频精品在线| 欧美在线看片a免费观看| 一区二区在线观看免费视频播放| www..com久久爱| 国产99久久久精品| 国产iv一区二区三区| 国产成人在线电影| 国产精品一二一区| 成人性生交大片免费看中文网站| 国产精品中文有码| 国产福利一区在线观看| 欧美在线免费视屏| 欧美日韩三级在线| 538prom精品视频线放| 在线播放国产精品二区一二区四区| 欧美理论在线播放| 日韩三级av在线播放| 精品久久久久一区| 国产蜜臀97一区二区三区| 国产精品福利一区| 亚洲一区视频在线观看视频| 午夜电影一区二区| 免费成人av在线播放| 国产专区综合网| 成人av集中营| 欧美亚洲综合网| 精品久久人人做人人爰| 中文字幕欧美国产| 亚洲狠狠爱一区二区三区| 日本午夜精品一区二区三区电影 | 日韩精品福利网| 韩国成人精品a∨在线观看| 成人久久18免费网站麻豆 | 国产视频一区在线播放| 国产精品国产精品国产专区不蜜 | 国产制服丝袜一区| 色综合一个色综合| 制服丝袜成人动漫| 国产农村妇女毛片精品久久麻豆| |精品福利一区二区三区| 香蕉久久一区二区不卡无毒影院 | 制服丝袜在线91| 国产欧美一区二区精品性色超碰| 亚洲日本乱码在线观看| 免费成人美女在线观看| a亚洲天堂av| 69堂亚洲精品首页| 国产精品毛片无遮挡高清| 日韩不卡一区二区| 成+人+亚洲+综合天堂| 欧美一区二区视频观看视频| 欧美激情综合五月色丁香| 舔着乳尖日韩一区| av亚洲精华国产精华| 日韩免费高清av| 亚洲美女区一区| 国产精品羞羞答答xxdd| 欧美日产在线观看| 国产精品久久久久久久岛一牛影视| 日韩精品亚洲一区二区三区免费| 成人福利视频在线| 精品久久久久久无| 首页综合国产亚洲丝袜| 91亚洲精品乱码久久久久久蜜桃| 日韩欧美久久久| 亚洲一二三四在线| 91香蕉视频污| 国产一区二区中文字幕| 奇米四色…亚洲| 在线亚洲一区观看| 国产精品人人做人人爽人人添| 日本人妖一区二区| 欧美日韩一区精品| 自拍偷自拍亚洲精品播放| 国产一二三精品| 日韩一级黄色片| 亚洲成人午夜影院| 91国偷自产一区二区开放时间| 欧美激情综合在线| 国产成人亚洲综合色影视| 精品少妇一区二区三区日产乱码| 亚洲国产美女搞黄色| 欧洲另类一二三四区| 亚洲欧美视频在线观看视频| 99免费精品在线观看| 中文字幕精品三区| 成人综合激情网| 国产精品美日韩| 成人成人成人在线视频| 国产精品美女久久久久高潮| 国产91色综合久久免费分享| 国产日韩精品一区二区浪潮av| 经典三级在线一区| 久久久久久久综合色一本| 国产精品一区不卡| 国产精品第13页| wwwwww.欧美系列| 麻豆高清免费国产一区| 日韩欧美中文字幕一区| 蜜桃视频免费观看一区| 精品蜜桃在线看| 国产麻豆精品在线观看| 国产欧美精品一区二区三区四区| 国产乱理伦片在线观看夜一区| 久久久久88色偷偷免费 | 国产大片一区二区| 欧美国产97人人爽人人喊| 99久久婷婷国产精品综合| 亚洲欧美日本韩国| 欧美中文一区二区三区| 日韩va欧美va亚洲va久久| 欧美大胆人体bbbb| 成人精品视频一区| 亚洲综合一区在线| 日韩丝袜美女视频| 成人小视频在线| 亚洲午夜久久久久中文字幕久| 91精品国产综合久久精品| 国精产品一区一区三区mba桃花| 中文一区二区完整视频在线观看| 成人白浆超碰人人人人| 亚洲在线中文字幕| 欧美va在线播放| av高清久久久| 日韩影院在线观看| 国产精品全国免费观看高清| 欧美熟乱第一页| 国产成人亚洲综合a∨婷婷图片|