⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uip_arch.lst

📁 uip1.0 C51源代码
💻 LST
字号:
C51 COMPILER V7.08   UIP_ARCH                                                              12/26/2003 07:27:16 PAGE 1   


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

line level    source

   1          
   2          #include "uip.h"
   3          #include "uip_arch.h"
   4          
   5          uip_tcpip_hdr * TCPBUF;
   6          #define IP_PROTO_TCP    6
   7          
   8          
   9          /*-----------------------------------------------------------------------------------*/
  10          #if UIP_BUFSIZE >= 256
  11          /*-----------------------------------------------------------------------------------*/
  12          void
  13          uip_add_rcv_nxt(u16_t n)
  14          {
  15   1        uip_conn->rcv_nxt[3] += (n & 0xff);
  16   1        uip_conn->rcv_nxt[2] += (n >> 8);
  17   1      
  18   1        if(uip_conn->rcv_nxt[2] < (n >> 8)) {
  19   2          ++uip_conn->rcv_nxt[1];
  20   2          if(uip_conn->rcv_nxt[1] == 0) {
  21   3            ++uip_conn->rcv_nxt[0];
  22   3          }
  23   2        }
  24   1      
  25   1      
  26   1        if(uip_conn->rcv_nxt[3] < (n & 0xff)) {
  27   2          ++uip_conn->rcv_nxt[2];
  28   2          if(uip_conn->rcv_nxt[2] == 0) {
  29   3            ++uip_conn->rcv_nxt[1];
  30   3            if(uip_conn->rcv_nxt[1] == 0) {
  31   4              ++uip_conn->rcv_nxt[0];
  32   4            }
  33   3          }
  34   2        }
  35   1      }
  36          /*-----------------------------------------------------------------------------------*/
  37          void
  38          uip_add_ack_nxt(u16_t n)
  39          {
  40   1        uip_conn->ack_nxt[3] += (n & 0xff);
  41   1        uip_conn->ack_nxt[2] += (n >> 8);
  42   1      
  43   1        if(uip_conn->ack_nxt[2] < (n >> 8)) {
  44   2          ++uip_conn->ack_nxt[1];
  45   2          if(uip_conn->ack_nxt[1] == 0) {
  46   3            ++uip_conn->ack_nxt[0];
  47   3          }
  48   2        }
  49   1      
  50   1      
  51   1        if(uip_conn->ack_nxt[3] < (n & 0xff)) {
  52   2          ++uip_conn->ack_nxt[2];
  53   2          if(uip_conn->ack_nxt[2] == 0) {
  54   3            ++uip_conn->ack_nxt[1];
  55   3            if(uip_conn->ack_nxt[1] == 0) {
C51 COMPILER V7.08   UIP_ARCH                                                              12/26/2003 07:27:16 PAGE 2   

  56   4              ++uip_conn->ack_nxt[0];
  57   4            }
  58   3          }
  59   2        }
  60   1      }
  61          /*-----------------------------------------------------------------------------------*/
  62          #else /* UIP_BUFSIZE >= 256 */
              /*-----------------------------------------------------------------------------------*/
              void
              uip_add_rcv_nxt(u8_t n)
              {
                uip_conn->rcv_nxt[3] += n;
                if(uip_conn->rcv_nxt[3] < n) {
                  ++uip_conn->rcv_nxt[2];
                  if(uip_conn->rcv_nxt[2] == 0) {
                    ++uip_conn->rcv_nxt[1];
                    if(uip_conn->rcv_nxt[1] == 0) {
                      ++uip_conn->rcv_nxt[0];
                    }
                  }
                }
              }
              /*-----------------------------------------------------------------------------------*/
              void
              uip_add_ack_nxt(u8_t n)
              {
                uip_conn->ack_nxt[3] += n;
                if(uip_conn->ack_nxt[3] < n) {
                  ++uip_conn->ack_nxt[2];
                  if(uip_conn->ack_nxt[2] == 0) {
                    ++uip_conn->ack_nxt[1];
                    if(uip_conn->ack_nxt[1] == 0) {
                      ++uip_conn->ack_nxt[0];
                    }
                  }
                }
              }
              /*-----------------------------------------------------------------------------------*/
              #endif /* UIP_BUFSIZE >= 256 */
  95          static u16_t
  96          chksum(u16_t *sdata, u16_t len)
  97          {
  98   1        u16_t acc;
  99   1      
 100   1        for(acc = 0; len > 1; len -= 2) {
 101   2          acc += *sdata;
 102   2          if(acc < *sdata) {
 103   3            /* Overflow, so we add the carry to acc (i.e., increase by
 104   3               one). */
 105   3            ++acc;
 106   3          }
 107   2          ++sdata;
 108   2        }
 109   1      
 110   1        /* add up any odd byte */
 111   1        if(len == 1) {
 112   2          acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);
 113   2          if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {
 114   3            ++acc;
 115   3          }
 116   2        }
 117   1      
C51 COMPILER V7.08   UIP_ARCH                                                              12/26/2003 07:27:16 PAGE 3   

 118   1        return acc;
 119   1      }
 120          /*-----------------------------------------------------------------------------------*/
 121          u16_t
 122          uip_ipchksum(void)
 123          {
 124   1        return chksum((u16_t *)&uip_buf[UIP_LLH_LEN], 20);
 125   1      }
 126          /*-----------------------------------------------------------------------------------*/
 127          u16_t
 128          uip_tcpchksum(void)
 129          {
 130   1        u16_t hsum, sum;
 131   1      
 132   1        TCPBUF = (uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN];
 133   1      
 134   1        /* Compute the checksum of the TCP header. */
 135   1        hsum = chksum((u16_t *)&uip_buf[20 + UIP_LLH_LEN], 20);
 136   1      
 137   1        /* Compute the checksum of the data in the TCP packet and add it to
 138   1           the TCP header checksum. */
 139   1        sum = chksum((u16_t *)uip_appdata,
 140   1                     (u16_t)(((((u16_t)(TCPBUF->len[0]) << 8) + TCPBUF->len[1]) - 40)));
 141   1      
 142   1        if((sum += hsum) < hsum) {
 143   2          ++sum;
 144   2        }
 145   1      
 146   1        if((sum += TCPBUF->srcipaddr[0]) < TCPBUF->srcipaddr[0]) {
 147   2          ++sum;
 148   2        }
 149   1        if((sum += TCPBUF->srcipaddr[1]) < TCPBUF->srcipaddr[1]) {
 150   2          ++sum;
 151   2        }
 152   1        if((sum += TCPBUF->destipaddr[0]) < TCPBUF->destipaddr[0]) {
 153   2          ++sum;
 154   2        }
 155   1        if((sum += TCPBUF->destipaddr[1]) < TCPBUF->destipaddr[1]) {
 156   2          ++sum;
 157   2        }
 158   1        if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {
 159   2          ++sum;
 160   2        }
 161   1      
 162   1        hsum = (u16_t)htons((((u16_t)(TCPBUF->len[0]) << 8) + TCPBUF->len[1]) - 20);
 163   1      
 164   1        if((sum += hsum) < hsum) {
 165   2          ++sum;
 166   2        }
 167   1      
 168   1        return sum;
 169   1      }
 170          /*-----------------------------------------------------------------------------------*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    941    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      3      10
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.08   UIP_ARCH                                                              12/26/2003 07:27:16 PAGE 4   

   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 + -