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

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

?? ip.lst

?? 無線控制器 控制電梯永久在線 控制電梯
?? LST
字號:
C51 COMPILER V6.12  IP                                                                     05/19/2009 14:55:26 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE IP
OBJECT MODULE PLACED IN .\IP.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\TCPIP\IP.c BROWSE DEBUG OBJECTEXTEND PRINT(.\IP.lst) OBJECT(.\IP.obj) 

stmt level    source

   1          /*
   2           * Copyright (c) 2003 Electric Application Laboratory of NAN KAI University
   3           * All rights reserved.
   4           *
   5           * Redistribution and use in source and binary forms, with or without modification,
   6           * are permitted provided that the following conditions are met:
   7           *
   8           * 1. Redistributions of source code must retain the above copyright notice,
   9           *    this list of conditions and the following disclaimer.
  10           * 2. Redistributions in binary form must reproduce the above copyright notice,
  11           *    this list of conditions and the following disclaimer in the documentation
  12           *    and/or other materials provided with the distribution.
  13           * 3. The name of the author may not be used to endorse or promote products
  14           *    derived from this software without specific prior written permission.
  15           *
  16           * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
  17           * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  18           * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  19           * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  20           * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  21           * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  22           * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  23           * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  24           * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  25           * OF SUCH DAMAGE.
  26           *
  27           * Author: Li Zhanglin <wzzlin@nankai.edu.cn>
  28           *
  29           */
  30          
  31          #include "..\GloblDef\GloblDef.h"
  32          #include "..\TCPIP\TCPIPmem.h"
  33          #include "..\TCPIP\IP.h"
  34          #include "..\TCPIP\icmp.h"
  35          #include "..\TCPIP\Netif.h"
  36          #include "..\TCPIP\TCP.h"
  37          
  38          /* Check sum calulation. data in buff, size, InSum is initial sum */
  39          WORD CheckSum(WORD DT_XDATA * buff,WORD size,DWORD InSum) REENTRANT_SIG
  40          {
  41   1      	/* TO DO:in packet memory high part of short is in low memory. add all data in 
  42   1      	form of 16 bits get a result of 32 bits, add high 16 bits to low 16 bits two 
  43   1      	times.  get a 16 bits result then complement it. */
  44   1      
  45   1      	DWORD cksum = InSum; 
  46   1      
  47   1      	/* sum all word except the last odd byte(if size is a odd num) */
  48   1      	WORD DT_XDATA * EndBuf = buff + size/2;
  49   1      	while(buff < EndBuf)
  50   1      	{ 
  51   2      		/* net order is equeal as host order in mirochip, so no need to change */
  52   2      		cksum += *(buff++); 
  53   2      	} 
  54   1      	
  55   1      	/**((WORD xdata *)CheckSumInParam) = size;
C51 COMPILER V6.12  IP                                                                     05/19/2009 14:55:26 PAGE 2   

  56   1      	*((WORD xdata *)(CheckSumInParam+2)) = buff;
  57   1      	asmAddCheckSum();
  58   1      	cksum = CheckSumOutParm;
  59   1      	*/
  60   1      	
  61   1      	/* if has last odd byte. use this byte as the high part of 16 bits, and add. */
  62   1      	if((size & 0x0001) != 0) 
  63   1      		cksum += (*buff) & 0xff00;
  64   1      
  65   1      	cksum = (cksum >> 16) + (cksum & 0xffff); 
  66   1      	cksum += (cksum >>16); 
  67   1      	return (WORD)(~cksum); 
  68   1      }
  69          
  70          /* IP input process */
  71          void IPInput(struct SMemHead DT_XDATA *MemHead) REENTRANT_MUL
  72          {
  73   1      	struct SIPHead DT_XDATA *pIPHead;
  74   1      	struct SNetIf  DT_XDATA *pNetIf;		/* for search netif list */
  75   1      
  76   1      	pIPHead = (struct SIPHead DT_XDATA *)(MemHead->pStart);
  77   1      
  78   1      	/* check ip version */
  79   1      	if(IP_VERSION(pIPHead) != IP_VERSION_4)
  80   1      	{
  81   2      		MemFree(MemHead);
  82   2      		return;
  83   2      	}
  84   1      
  85   1      	/* if checksum is ok */
  86   1      	if(CheckSum((WORD DT_XDATA *)pIPHead,(WORD)IP_HEAD_LEN(pIPHead),0) != 0)
  87   1      	{
  88   2      		MemFree(MemHead);
  89   2      		return;
  90   2      	}
  91   1      
  92   1      	/* ip packet with options is not supported */
  93   1      	if(IP_HEAD_LEN(pIPHead) != IP_HEAD_MIN_LEN)
  94   1      	{
  95   2      		MemFree(MemHead);
  96   2      		return;
  97   2      	}
  98   1      
  99   1      	/* ip packet fragmented is not supported */
 100   1      	if((pIPHead->FragmentFlag_Offset & IP_FRAGMENT_OFFSET_MASK)!= 0)
 101   1      	{
 102   2      		MemFree(MemHead);
 103   2      		return;
 104   2      	}
 105   1      
 106   1      	
 107   1      	/* if this packet for us. check all the netif. if a host
 108   1      	has tow device(tow ip). This packet may come from one device
 109   1      	but send for the IP of the other deviec. In this case we should
 110   1      	not drop or forward this packet */
 111   1      	
 112   1      	/* if this packet is not for us. forward it */
 113   1      	if((pNetIf = NetIfFindIP(pIPHead->IPDest)) == NULL)
 114   1      	{
 115   2      		#ifdef IP_ENABLE_FORWARD	/* if act as a router */
              		/* We should decrease the IPHead->ttl */
              		if(pIPHead->LifeLength != 0)
C51 COMPILER V6.12  IP                                                                     05/19/2009 14:55:26 PAGE 3   

              		{
              			pIPHead->LifeLength--;
              				
              			/* recaculate IP head checksum. there is a easy method
              			to recaculate, leave for later version improvment */
              			CheckSum((WORD DT_XDATA *)pIPHead,(WORD)IP_HEAD_LEN(pIPHead),0);
              
              			/* find a rout( a interface ) */
              			if((pNetIf = NetIfFindRout(pIPHead->IPDest)) != NULL)
              			{
              				/* forward. send it through this interface. if return FALSE, we
              				do not care, the soure of the packet will deel with it. */
              				pNetIf->output(MemHead,pNetIf,pIPHead->IPDest);
              			}
              		}
              		#endif
 134   2      		
 135   2      		MemFree(MemHead);
 136   2      		return;
 137   2      	}
 138   1      	else
 139   1      	{
 140   2      		/* MemHead->pStart set to point uper layer */
 141   2      		MemHead->pStart += sizeof(struct SIPHead);
 142   2      
 143   2      		/* pass to the uper layer */
 144   2      		switch(pIPHead->Protocol)
 145   2      		{
 146   3      		case IP_PROTOCOL_TCP:
 147   3      			TCPInput(MemHead);
 148   3      			break;
 149   3      #if	ICMP_EN
 150   3      		case IP_PROTOCOL_ICMP:
 151   3      			ICMPInput(MemHead);
 152   3      			break;
 153   3      #endif
 154   3      		default:
 155   3      			MemFree(MemHead);
 156   3      		}
 157   2      	}
 158   1      }
 159          
 160          /* out put a ip packet,NOTE:MemHead->pStart point to IPHead.
 161          IPScr IPDest Protocol TotalLen is already filled at uper layer.
 162          To do so TCPCheckSum is easy to generate and pass augument to 
 163          IPOutput is easyer. 
 164          return :
 165          	TURE: send the packt successful. */
 166          BOOL IPOutput(struct SMemHead DT_XDATA * MemHead) REENTRANT_SIG
 167          {
 168   1      	struct SNetIf  DT_XDATA *pNetIf;
 169   1      	struct SIPHead DT_XDATA *pIPHead;
 170   1      	WORD tCheckSum;
 171   1      	
 172   1      	pIPHead = (struct SIPHead DT_XDATA *)(MemHead->pStart);
 173   1      
 174   1      	/* found a rout */
 175   1      	if((pNetIf = NetIfFindRout(pIPHead->IPDest)) != NULL)
 176   1      	{
 177   2      		/* fill IP head */
 178   2      		pIPHead->CheckSum				= 0;
 179   2      		pIPHead->FragmentFlag_Offset	= 0;
C51 COMPILER V6.12  IP                                                                     05/19/2009 14:55:26 PAGE 4   

 180   2      		pIPHead->FragmentID				= 0;
 181   2      		pIPHead->LifeLength				= IP_INITIAL_LIFE;
 182   2      		pIPHead->ServeType				= 0;
 183   2      		pIPHead->Ver_HeadLen			= (IP_VERSION_4 << 4) + IP_HEAD_MIN_LEN/4;
 184   2      
 185   2      		/* checksum */
 186   2      		tCheckSum = CheckSum((WORD DT_XDATA *)pIPHead,(WORD)IP_HEAD_LEN(pIPHead),0);
 187   2      		pIPHead->CheckSum = htons(tCheckSum);
 188   2      
 189   2      		/* output it */
 190   2      		return pNetIf->output(MemHead,pNetIf,pIPHead->IPDest);
 191   2      	}
 192   1      	else
 193   1      		return FALSE;
 194   1      	/* 'MemHead' freeing is at tcp model when it is acked */
 195   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    987    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人久久视频在线观看| 欧美日韩一级视频| 国产一区二区导航在线播放| 麻豆国产精品视频| 人人精品人人爱| 免费观看成人av| 黄网站免费久久| 国产精品99久久久久| 国产一二三精品| 成人精品免费网站| 97se狠狠狠综合亚洲狠狠| av午夜精品一区二区三区| 99国产精品国产精品久久| 91影院在线观看| 欧美日韩一区二区三区免费看| 欧美色网一区二区| 欧美二区乱c少妇| 日韩一级在线观看| www一区二区| 国产精品久久久久久久久久久免费看 | 亚洲女与黑人做爰| 一区二区三区久久| 天天色天天操综合| 激情综合色丁香一区二区| 国产成人久久精品77777最新版本| 成人午夜视频在线观看| 欧美午夜在线观看| 日韩欧美亚洲国产精品字幕久久久| 精品三级在线观看| 国产精品青草综合久久久久99| 亚洲欧美偷拍另类a∨色屁股| 亚洲国产日韩一区二区| 激情综合网av| 色丁香久综合在线久综合在线观看| 666欧美在线视频| 久久看人人爽人人| 洋洋av久久久久久久一区| 美女视频黄a大片欧美| 成人手机电影网| 欧美视频自拍偷拍| 国产亚洲1区2区3区| 一级中文字幕一区二区| 久99久精品视频免费观看| 91色.com| 精品福利在线导航| 一区二区三区不卡视频| 国产精品自拍一区| 在线观看一区不卡| 久久久精品黄色| 亚洲成人福利片| 成人午夜精品一区二区三区| 欧美日产国产精品| 国产精品丝袜黑色高跟| 日韩国产欧美三级| 99国产精品久久久久| 精品久久一二三区| 亚洲一区二区成人在线观看| 国产99久久久国产精品潘金| 欧美精品视频www在线观看| 欧美国产精品一区二区| 蜜桃久久久久久久| 一本一道久久a久久精品| 日韩免费观看高清完整版| 亚洲精品菠萝久久久久久久| 国产一区二区视频在线播放| 欧美精品777| 中文字幕综合网| 国产伦精一区二区三区| 91精品国产入口| 亚洲美女精品一区| 国产91综合一区在线观看| 欧美一区二区三区系列电影| 亚洲久本草在线中文字幕| 国产不卡视频在线播放| 欧美变态凌虐bdsm| 日本不卡一二三区黄网| 色婷婷综合激情| 国产精品麻豆一区二区| 国产精品18久久久久久久久| 日韩精品中午字幕| 日韩中文字幕麻豆| 欧美三级视频在线播放| 亚洲丝袜另类动漫二区| 国产不卡在线播放| 久久久国际精品| 国产一区二区三区四区五区入口 | 国产精品视频免费看| 国内欧美视频一区二区| 精品免费国产一区二区三区四区| 爽好多水快深点欧美视频| 在线观看成人小视频| 亚洲男人天堂av网| 99国产精品国产精品久久| 国产精品成人午夜| av不卡免费在线观看| 亚洲欧洲精品天堂一级| 国产成人免费视频网站高清观看视频 | 久久久久久电影| 国产在线精品一区二区| 久久亚洲精品国产精品紫薇| 国产麻豆成人传媒免费观看| 久久久久国产精品免费免费搜索| 韩国毛片一区二区三区| 久久亚洲欧美国产精品乐播| 国产精品77777| 国产精品私人自拍| 91在线视频免费观看| 亚洲精品菠萝久久久久久久| 欧美色网一区二区| 免费人成在线不卡| 精品国产第一区二区三区观看体验 | 亚洲综合久久久| 欧美精品少妇一区二区三区| 免费日本视频一区| 久久久久久久久久久黄色| 成人性生交大片免费看中文 | 午夜精品久久久久久久久| 欧美美女一区二区| 美女精品一区二区| 国产午夜精品久久久久久久 | 国产精品无码永久免费888| 不卡一区在线观看| 一区二区在线看| 欧美男人的天堂一二区| 青青草精品视频| 久久久久久一级片| 99久久精品国产麻豆演员表| 亚洲成人免费视频| 日韩色在线观看| 国产成a人亚洲精| 一区二区免费看| 日韩视频在线你懂得| 国产白丝网站精品污在线入口| 中文字幕在线不卡一区二区三区| 日本高清成人免费播放| 欧美日韩一区视频| 国产精品成人免费在线| 精品视频在线免费观看| 久久精品av麻豆的观看方式| 国产亚洲精品福利| 欧美综合色免费| 国产综合久久久久影院| 亚洲欧美一区二区久久 | 国产精品精品国产色婷婷| 欧美视频在线一区| 国产一区激情在线| 亚洲日本va午夜在线影院| 制服丝袜亚洲播放| 不卡欧美aaaaa| 麻豆精品一区二区综合av| 国产精品久久久久久久久久免费看| 欧美久久一区二区| 成人听书哪个软件好| 婷婷国产v国产偷v亚洲高清| 国产欧美日韩麻豆91| 3atv一区二区三区| proumb性欧美在线观看| 奇米在线7777在线精品| 中文字幕中文乱码欧美一区二区| 欧美一区二区三区在线| 91在线观看高清| 国产资源精品在线观看| 亚洲成av人影院| 国产精品电影一区二区| 精品国产乱码久久久久久蜜臀| 在线亚洲高清视频| 岛国一区二区在线观看| 麻豆成人免费电影| 亚洲精品国产无套在线观 | 激情另类小说区图片区视频区| 亚洲在线视频网站| 欧美国产日韩一二三区| 日韩欧美国产综合在线一区二区三区| 99久久夜色精品国产网站| 久久99精品国产麻豆婷婷| 亚洲午夜电影在线| 亚洲摸摸操操av| 国产精品久99| 国产午夜精品在线观看| 日韩欧美在线一区二区三区| 欧美午夜一区二区| 色女孩综合影院| 成人激情免费视频| 国产一区免费电影| 久久99九九99精品| 日本大胆欧美人术艺术动态| 一区二区三区免费网站| 国产精品乱人伦| 国产欧美日韩在线看| 欧美精品一区二区三区蜜臀| 91精品国产入口| 91精品国产手机| 555www色欧美视频| 欧美久久久久免费| 欧美日韩精品一区二区天天拍小说| 91理论电影在线观看| 大白屁股一区二区视频| 国产一区二区在线观看视频| 国产一区二区三区日韩| 九九精品视频在线看|