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

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

?? tcpipmem.lst

?? 單片機以太網上網代碼(KEIL工程RTS8019)
?? LST
字號:
C51 COMPILER V7.20   TCPIPMEM                                                              12/25/2007 10:53:01 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TCPIPMEM
OBJECT MODULE PLACED IN .\TCPIPmem.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE ..\TCPIP\TCPIPmem.c BROWSE DEBUG OBJECTEXTEND PRINT(.\TCPIPme
                    -m.lst) OBJECT(.\TCPIPmem.obj)

line 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 V7.20   TCPIPMEM                                                              12/25/2007 10:53:01 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 V7.20   TCPIPMEM                                                              12/25/2007 10:53:01 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        =    948    ----
C51 COMPILER V7.20   TCPIPMEM                                                              12/25/2007 10:53:01 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在线| 欧美精品三级在线观看| 91小视频在线| 日韩亚洲欧美中文三级| 欧美成人欧美edvon| 久久精品一区二区三区不卡| 国产精品进线69影院| 午夜免费久久看| 国产做a爰片久久毛片| 不卡视频在线看| 欧美日韩三级视频| 久久久一区二区| 一区二区三区中文字幕在线观看| 日本免费新一区视频| 国产激情精品久久久第一区二区 | 欧美三级日韩在线| 日韩你懂的电影在线观看| 欧美精彩视频一区二区三区| 亚洲国产精品人人做人人爽| 国产精品羞羞答答xxdd| 欧美在线观看视频一区二区三区| 日韩一级高清毛片| 一区二区三区 在线观看视频| 久久精品99久久久| 在线精品视频一区二区| 久久久久久夜精品精品免费| 夜夜夜精品看看| 国产美女娇喘av呻吟久久| 在线观看国产一区二区| 久久精品一区八戒影视| 午夜欧美大尺度福利影院在线看| 成人av电影在线| 精品国产在天天线2019| 亚洲午夜精品网| 不卡的电影网站| 欧美va亚洲va国产综合| 夜夜嗨av一区二区三区中文字幕 | 久久综合成人精品亚洲另类欧美 | 成人性生交大片免费看中文网站| 精品污污网站免费看| 国产精品成人午夜| 国内久久精品视频| 欧美一区二区三区婷婷月色| 亚洲精品国产a| 丁香激情综合五月| 精品日韩一区二区| 污片在线观看一区二区| 色av一区二区| 国产精品福利一区| 国产精品一区在线观看你懂的| 911精品产国品一二三产区| 亚洲色图欧美激情| 成人av在线影院| 久久夜色精品国产噜噜av| 免费在线视频一区| 制服丝袜中文字幕亚洲| 亚洲国产欧美日韩另类综合| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美色图激情小说| 亚洲美女视频在线观看| 成人高清免费在线播放| 欧美极品美女视频| 国产一区二区三区免费看| 日韩精品专区在线影院重磅| 日韩制服丝袜av| 欧美日韩久久一区二区| 亚洲国产欧美在线| 欧美日韩一区二区三区高清| 亚洲第一狼人社区| 欧美日韩精品欧美日韩精品一综合| 亚洲精品成人精品456| 色播五月激情综合网| 亚洲免费大片在线观看| 91麻豆福利精品推荐| 国产精品久久久久久久久免费桃花 | 欧日韩精品视频| 国产精品久久久久久久久晋中 | 欧美电视剧在线看免费| 免费av网站大全久久| 日韩一区二区电影网| 日本亚洲最大的色成网站www| 91精选在线观看| 视频一区二区三区入口| 在线观看91精品国产麻豆| 青草国产精品久久久久久| 欧美一级xxx| 韩国三级电影一区二区| 久久久精品人体av艺术| 东方欧美亚洲色图在线| 国产精品毛片高清在线完整版| 成人高清av在线| 亚洲老司机在线| 欧美日韩精品三区| 精品一区二区三区在线播放视频| 久久精品夜色噜噜亚洲aⅴ| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲一二三区在线观看| 欧美美女一区二区在线观看| 美女mm1313爽爽久久久蜜臀| 国产午夜精品久久| 99精品视频在线播放观看| 亚洲国产日韩a在线播放性色| 91麻豆精品国产自产在线| 韩国一区二区三区| 18涩涩午夜精品.www| 欧美日韩一区二区三区不卡| 久久草av在线| 亚洲视频中文字幕| 91精品婷婷国产综合久久性色| 九九**精品视频免费播放| 国产日韩成人精品| 欧美视频一二三区| 国产精品一二三区在线| 国产精品不卡在线| 欧美一区二区三区精品| 国产成人在线视频网站| 一区二区三区成人在线视频| 欧美不卡视频一区| 97久久精品人人做人人爽| 午夜激情一区二区| 国产精品欧美极品| 777xxx欧美| www.激情成人| 美女被吸乳得到大胸91| 亚洲色图.com| 日韩欧美aaaaaa| 91免费看`日韩一区二区| 欧美aaa在线| 亚洲欧美在线高清| 欧美大片免费久久精品三p| 波多野结衣中文一区| 蜜芽一区二区三区| 亚洲激情网站免费观看| 久久久久国色av免费看影院| 精品视频在线免费| 99久久精品免费观看| 狠狠色丁香九九婷婷综合五月| 亚洲久草在线视频| www国产精品av| 亚洲免费观看在线观看| 久久91精品国产91久久小草| 亚洲福利视频一区| 色噜噜狠狠成人网p站| 亚洲亚洲人成综合网络| 精品欧美一区二区在线观看| 在线免费视频一区二区| 从欧美一区二区三区| 日本视频免费一区| 久久综合久色欧美综合狠狠| 欧美日韩国产一级| 欧美艳星brazzers| 欧美系列日韩一区| 欧美日韩亚洲高清一区二区| 欧美午夜在线观看| 欧美日韩一级视频| 欧美三片在线视频观看| 欧美日韩久久不卡| 欧美美女视频在线观看| 欧美日韩mp4| 欧美精品日韩精品| 国产亚洲成aⅴ人片在线观看| 国产亚洲欧美色| 国产日产亚洲精品系列| 国产婷婷精品av在线| 国产日韩欧美在线一区| 国产精品色在线观看| 欧美极品美女视频| 最新久久zyz资源站| 亚洲精品伦理在线| 亚洲成人自拍一区| 首页综合国产亚洲丝袜| 免费xxxx性欧美18vr| 极品美女销魂一区二区三区免费| 国产毛片精品视频| 成人va在线观看| 91捆绑美女网站| 欧美日韩中文字幕一区| 宅男噜噜噜66一区二区66| 日韩精品一区二区在线| 精品99久久久久久| 国产精品看片你懂得| 亚洲免费观看高清完整版在线观看| 亚洲自拍另类综合| 美女视频黄 久久| 国产成人精品一区二区三区四区| 成人h动漫精品| 欧美色综合久久| 精品国产91乱码一区二区三区| 国产欧美日产一区| 亚洲一区在线观看视频| 男男gaygay亚洲| 成人黄色电影在线 | 亚洲综合色视频| 日本亚洲一区二区| 国产精品1024| 91国偷自产一区二区使用方法| 69堂精品视频| 国产农村妇女毛片精品久久麻豆| 亚洲你懂的在线视频| 日韩国产在线一|