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

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

?? tcpipmem.lst

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


C51 COMPILER V6.12, COMPILATION OF MODULE TCPIPMEM
OBJECT MODULE PLACED IN .\TCPIPmem.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\TCPIP\TCPIPmem.c BROWSE DEBUG OBJECTEXTEND PRINT(.\TCPIPmem.lst) OBJECT(
                    -.\TCPIPmem.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          
  34          /* buf for all tcpip packet */
  35          static BYTE DT_XDATA TCPIPBuf[TCPIP_BUF_SIZE];
  36          static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd;	/* end of the chain */
  37          static struct SMemHead DT_XDATA * DT_XDATA MemHeadStart;
  38          
  39          static WORD DT_XDATA FreeSize;	/* free memsize can use */
  40          
  41          void MemInit() REENTRANT_MUL
  42          {
  43   1      	MemHeadEnd = (struct SMemHead DT_XDATA *)(TCPIPBuf + TCPIP_BUF_SIZE);
  44   1      	MemHeadStart = (struct SMemHead DT_XDATA *)TCPIPBuf;
  45   1      
  46   1      	/* at inital there is only a buf block. value in
  47   1      	mem head is as following */
  48   1      	MemHeadStart->pNext = MemHeadEnd;
  49   1      	MemHeadStart->pPre  = MemHeadStart;
  50   1      	MemHeadStart->used = FALSE;
  51   1      
  52   1      	FreeSize = TCPIP_BUF_SIZE - sizeof(struct SMemHead);
  53   1      }
  54          
C51 COMPILER V6.12  TCPIPMEM                                                               05/19/2009 14:55:32 PAGE 2   

  55          /* allocate a buffer size of size, and set pStart to the start of buffer,pEnd
  56          to end of buffer.Also decrease FreeSize. */
  57          struct SMemHead DT_XDATA *MemAllocate(WORD size) REENTRANT_SIG
  58          {
  59   1      	struct SMemHead DT_XDATA *MemHead;
  60   1      	struct SMemHead DT_XDATA *NewMemHead;
  61   1      	WORD MemPlayloadSize;
  62   1      	
  63   1      	/* search though the mem blocks */
  64   1      	for(MemHead = MemHeadStart; MemHead != MemHeadEnd; MemHead = MemHead->pNext)
  65   1      	{
  66   2      		/* if unused and mem playload size > size, select it. */
  67   2      		if(MemHead->used == FALSE && 
  68   2      			(MemPlayloadSize = (BYTE DT_XDATA *)(MemHead->pNext) - (BYTE DT_XDATA *)MemHead - sizeof(struct SMemHea
             -d)) >= size)
  69   2      		{
  70   3      			/* if MemPalyloadSize - size > sizeof(struct SMemHead) create
  71   3      			a new SMemHead at the excess memory leaving for later usage */
  72   3      			if(MemPlayloadSize - size > sizeof(struct SMemHead))
  73   3      			{
  74   4      				NewMemHead = (struct SMemHead DT_XDATA *)((BYTE DT_XDATA *)MemHead + sizeof(struct SMemHead)+ size );
  75   4      
  76   4      				/* link into link chain */
  77   4      				NewMemHead->pNext = MemHead->pNext;
  78   4      				MemHead->pNext    = NewMemHead;
  79   4      				NewMemHead->pPre  = MemHead;
  80   4      				if(NewMemHead->pNext != MemHeadEnd)
  81   4      				{
  82   5      					NewMemHead->pNext->pPre = NewMemHead;
  83   5      				}
  84   4      				
  85   4      				/* set new mem as unused */
  86   4      				NewMemHead->used = FALSE;
  87   4      
  88   4      				/* decrease FreeSize: playload of MemHead and the head of NewMemHead */
  89   4      				FreeSize -= (BYTE DT_XDATA *)(MemHead->pNext) - (BYTE DT_XDATA *)MemHead;
  90   4      			}
  91   3      			else
  92   3      			{
  93   4      				/* decrease: playload of MemHead */
  94   4      				FreeSize -= (BYTE DT_XDATA *)(MemHead->pNext) - (BYTE DT_XDATA *)MemHead - sizeof(struct SMemHead);
  95   4      			}
  96   3      
  97   3      
  98   3      			/* set pStart */
  99   3      			MemHead->pStart = (BYTE DT_XDATA *)MemHead + sizeof(struct SMemHead);
 100   3      
 101   3      			MemHead->pEnd	= MemHead->pStart + size;
 102   3      
 103   3      			/* set as used */
 104   3      			MemHead->used = TRUE;
 105   3      
 106   3      			return MemHead;
 107   3      		}
 108   2      	}
 109   1      	return NULL;
 110   1      }
 111          
 112          void MemFree(struct SMemHead DT_XDATA * MemHead) REENTRANT_SIG
 113          {
 114   1      	struct SMemHead DT_XDATA * MemHeadMergePre;
 115   1      	struct SMemHead DT_XDATA * MemHeadMergeNext;
C51 COMPILER V6.12  TCPIPMEM                                                               05/19/2009 14:55:32 PAGE 3   

 116   1      
 117   1      	/* set used flag to false */
 118   1      	MemHead->used = FALSE;
 119   1      
 120   1      	/* inc FreeSize the size of playload of 'MemHead'*/
 121   1      	FreeSize += (BYTE DT_XDATA *)(MemHead->pNext) - (BYTE DT_XDATA *)MemHead - sizeof(struct SMemHead);
 122   1      
 123   1      	/* 
 124   1      	 * if pNext or pPre is a unused memblock, merge with it 
 125   1      	 */
 126   1      
 127   1      	/* find the two MemHead going to merge */
 128   1      	if(MemHead->pPre->used == FALSE)
 129   1      	{
 130   2      		MemHeadMergePre = MemHead->pPre;	/* note: if MemHead == TCPBuf, MemHead->pPre == MemHead, but it is not 
             -a problom */
 131   2      	}
 132   1      	else
 133   1      	{
 134   2      		MemHeadMergePre = MemHead;
 135   2      	}
 136   1      	if(MemHead->pNext != MemHeadEnd && MemHead->pNext->used == FALSE)
 137   1      	{
 138   2      		MemHeadMergeNext = MemHead->pNext;	
 139   2      
 140   2      		/* MemHead of 'MemHead->pNext' will be free. Free size inc*/
 141   2      		FreeSize += sizeof(struct SMemHead);
 142   2      	}
 143   1      	else
 144   1      	{
 145   2      		MemHeadMergeNext = MemHead;
 146   2      	}
 147   1      
 148   1      	/* merge is necessary? */
 149   1      	if(MemHeadMergePre != MemHeadMergeNext)
 150   1      	{
 151   2      		/* merge. that is del MemHeadMergeNext from the chain */
 152   2      		MemHeadMergePre->pNext = MemHeadMergeNext->pNext;
 153   2      		if(MemHeadMergeNext->pNext != MemHeadEnd)
 154   2      			MemHeadMergeNext->pNext->pPre = MemHeadMergePre;
 155   2      
 156   2      		/* will MemHead of 'MemHead' will be free? */
 157   2      		if(MemHead != MemHeadMergePre)
 158   2      			FreeSize += sizeof(struct SMemHead);
 159   2      		
 160   2      	}
 161   1      }
 162          
 163          WORD MemFreeSize() REENTRANT_SIG
 164          {
 165   1      	return FreeSize;
 166   1      }
 167          
 168          
 169          
 170          
 171          
 172          	


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    957    ----
C51 COMPILER V6.12  TCPIPMEM                                                               05/19/2009 14:55:32 PAGE 4   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   8198    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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精品久久| 日韩高清不卡一区二区| 色综合天天综合网国产成人综合天| 精品第一国产综合精品aⅴ| 一区二区视频免费在线观看| 国产欧美一区二区在线| 国产精品亲子乱子伦xxxx裸| 久久精品国产久精国产爱| 色噜噜狠狠色综合欧洲selulu| 国产亚洲短视频| 日韩av网站免费在线| 精品视频免费在线| 亚洲美女淫视频| 波多野结衣亚洲| 欧美国产成人精品| 高清成人免费视频| 久久九九全国免费| 国产真实精品久久二三区| 欧美mv和日韩mv的网站| 美国毛片一区二区三区| 制服丝袜成人动漫| 日韩高清欧美激情| 在线成人av网站| 日韩在线一区二区三区| 欧美老年两性高潮| 日韩av高清在线观看| 日韩三级av在线播放| 毛片av中文字幕一区二区| 欧美精品在线观看播放| 日韩影视精彩在线| 日韩一卡二卡三卡四卡| 极品瑜伽女神91| 国产午夜一区二区三区| 成人精品国产一区二区4080 | a级精品国产片在线观看| 国产精品免费av| 99久久精品免费看国产免费软件| 中文字幕日韩av资源站| 91捆绑美女网站| 亚洲成人免费观看| 日韩精品专区在线| 懂色av一区二区三区免费看| 亚洲欧洲av在线| 色噜噜狠狠成人中文综合| 午夜视频在线观看一区二区三区| 91精品国产综合久久福利软件 | 日韩一区二区三区免费看| 亚洲va欧美va人人爽| 日韩一区二区免费高清| 黄色精品一二区| 国产精品国产三级国产有无不卡| 色婷婷香蕉在线一区二区| 视频一区二区不卡| 精品免费日韩av| 成人高清av在线| 一区二区三区四区国产精品| 色狠狠色噜噜噜综合网| 免费不卡在线观看| 国产亚洲成aⅴ人片在线观看| 91美女蜜桃在线| 久久精品国产99国产精品| 日本一区免费视频| 欧美精选午夜久久久乱码6080| 国产中文字幕精品| 亚洲一区电影777| 日韩精品一级中文字幕精品视频免费观看| 亚洲蜜臀av乱码久久精品蜜桃| 91农村精品一区二区在线| 天堂午夜影视日韩欧美一区二区| 精品国产乱码久久久久久久久| 91在线观看视频| 激情综合五月婷婷| 一区二区三区中文免费| 精品久久久久久综合日本欧美| 成人av电影在线| 久久99日本精品| 亚洲国产你懂的| 国产精品久久久久影视| 日韩欧美第一区| 欧美视频在线不卡| 国产精品中文欧美| 日本美女一区二区三区视频| 最好看的中文字幕久久| 久久久综合视频| 91精品国产品国语在线不卡| av不卡在线播放| 国产精品1区2区3区在线观看| 极品少妇xxxx精品少妇| 经典一区二区三区| 亚洲永久免费视频| 中文字幕成人av| 久久亚洲精品小早川怜子| 欧美日韩国产免费| 91视频免费看| 成人av手机在线观看| 国产精品1区2区3区| 人人精品人人爱| 婷婷成人综合网| 亚洲国产欧美另类丝袜| 亚洲自拍都市欧美小说| 亚洲免费大片在线观看| 中文字幕一区二区5566日韩| 欧美激情一区在线| 国产清纯在线一区二区www| 久久久精品tv| 久久久久久久久一| 久久久午夜精品| 欧美激情一区二区三区全黄| 国产情人综合久久777777| 欧美日韩国产成人在线91 | 久久电影网电视剧免费观看| 亚洲国产成人精品视频| 亚洲五码中文字幕| 亚洲综合男人的天堂| 亚洲综合在线五月| 亚洲午夜久久久久久久久久久| 亚洲国产精品欧美一二99| 亚洲午夜免费福利视频| 三级亚洲高清视频| 美女免费视频一区二区| 国内不卡的二区三区中文字幕 | 日本一道高清亚洲日美韩| 偷偷要91色婷婷| 久久99精品一区二区三区| 国产中文一区二区三区| 国产91精品免费| 色8久久人人97超碰香蕉987| 欧美午夜片在线看| 亚洲精品在线电影| 国产精品不卡一区二区三区| 亚洲一区二区在线观看视频| 日本亚洲最大的色成网站www| 国产毛片精品一区| 91丨porny丨国产| 欧美午夜在线一二页| 精品久久一二三区| 1区2区3区国产精品| 午夜日韩在线观看| 国产盗摄一区二区三区| 日本精品视频一区二区| 欧美一区二区啪啪| 国产日韩欧美不卡在线| 亚洲一本大道在线| 国产不卡在线视频| 欧美日韩一区二区三区四区五区| 精品999在线播放| 一区二区三区高清不卡| 国产中文字幕一区| 欧美午夜精品一区二区三区| 精品成人一区二区三区四区| 亚洲另类中文字| 国模无码大尺度一区二区三区| 色综合激情五月| 久久―日本道色综合久久| 一区二区三区欧美| 国产高清一区日本| 欧美精品 日韩| 1024成人网色www| 久久国产三级精品| 欧美日韩卡一卡二| 国产精品久久久久久福利一牛影视| 人人狠狠综合久久亚洲| 色网站国产精品| 中文字幕av一区二区三区免费看| 五月激情综合婷婷| 色婷婷综合激情| 一区二区中文字幕在线| 欧美xxxxx牲另类人与| 国产精品电影一区二区| 奇米精品一区二区三区在线观看| 99视频精品免费视频| 欧美mv和日韩mv的网站| 午夜天堂影视香蕉久久| 在线精品视频一区二区| 欧美激情一区二区三区蜜桃视频 | 亚洲免费av在线| 高清shemale亚洲人妖| 久久一日本道色综合| 蜜桃视频在线一区| 99视频一区二区| 国产人久久人人人人爽| 精品一区二区三区香蕉蜜桃| 欧美精品久久99久久在免费线| 一区二区三区国产豹纹内裤在线| 成人avav影音| 国产精品国产精品国产专区不片| 国产自产高清不卡| 欧美一区二区黄| 日韩经典一区二区| 777奇米四色成人影色区| 日韩和欧美的一区| 91麻豆精品国产综合久久久久久| 亚洲国产一区在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产日韩欧美一区二区三区综合| 国产伦精品一区二区三区免费迷 |