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

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

?? inet6.c

?? stm32+ucos-ii
?? C
字號:
/**
 * @file
 * Functions common to all TCP/IPv6 modules, such as the Internet checksum and the
 * byte order functions.
 *
 */

/*
 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
 * All rights reserved. 
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission. 
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
 * OF SUCH DAMAGE.
 *
 * This file is part of the lwIP TCP/IP stack.
 * 
 * Author: Adam Dunkels <adam@sics.se>
 *
 */

#include "lwip/opt.h"

#include "lwip/def.h"
#include "lwip/inet.h"

/* chksum:
 *
 * Sums up all 16 bit words in a memory portion. Also includes any odd byte.
 * This function is used by the other checksum functions.
 *
 * For now, this is not optimized. Must be optimized for the particular processor
 * arcitecture on which it is to run. Preferebly coded in assembler.
 */

static u32_t
chksum(void *dataptr, u16_t len)
{
  u16_t *sdataptr = dataptr;
  u32_t acc;
  
  
  for(acc = 0; len > 1; len -= 2) {
    acc += *sdataptr++;
  }

  /* add up any odd byte */
  if (len == 1) {
    acc += htons((u16_t)(*(u8_t *)dataptr) << 8);
  }

  return acc;

}

/* inet_chksum_pseudo:
 *
 * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain.
 */

u16_t
inet_chksum_pseudo(struct pbuf *p,
       struct ip_addr *src, struct ip_addr *dest,
       u8_t proto, u32_t proto_len)
{
  u32_t acc;
  struct pbuf *q;
  u8_t swapped, i;

  acc = 0;
  swapped = 0;
  for(q = p; q != NULL; q = q->next) {    
    acc += chksum(q->payload, q->len);
    while (acc >> 16) {
      acc = (acc & 0xffff) + (acc >> 16);
    }
    if (q->len % 2 != 0) {
      swapped = 1 - swapped;
      acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8);
    }
  }

  if (swapped) {
    acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8);
  }
  
  for(i = 0; i < 8; i++) {
    acc += ((u16_t *)src->addr)[i] & 0xffff;
    acc += ((u16_t *)dest->addr)[i] & 0xffff;
    while (acc >> 16) {
      acc = (acc & 0xffff) + (acc >> 16);
    }
  }
  acc += (u16_t)htons((u16_t)proto);
  acc += ((u16_t *)&proto_len)[0] & 0xffff;
  acc += ((u16_t *)&proto_len)[1] & 0xffff;

  while (acc >> 16) {
    acc = (acc & 0xffff) + (acc >> 16);
  }
  return ~(acc & 0xffff);
}

/* inet_chksum:
 *
 * Calculates the Internet checksum over a portion of memory. Used primarely for IP
 * and ICMP.
 */

u16_t
inet_chksum(void *dataptr, u16_t len)
{
  u32_t acc, sum;

  acc = chksum(dataptr, len);
  sum = (acc & 0xffff) + (acc >> 16);
  sum += (sum >> 16);
  return ~(sum & 0xffff);
}

u16_t
inet_chksum_pbuf(struct pbuf *p)
{
  u32_t acc;
  struct pbuf *q;
  u8_t swapped;
  
  acc = 0;
  swapped = 0;
  for(q = p; q != NULL; q = q->next) {
    acc += chksum(q->payload, q->len);
    while (acc >> 16) {
      acc = (acc & 0xffff) + (acc >> 16);
    }    
    if (q->len % 2 != 0) {
      swapped = 1 - swapped;
      acc = (acc & 0xff << 8) | (acc & 0xff00 >> 8);
    }
  }
 
  if (swapped) {
    acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8);
  }
  return ~(acc & 0xffff);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区四区视频| 欧美色精品天天在线观看视频| 视频一区中文字幕国产| 亚洲另类色综合网站| 亚洲精品国产无天堂网2021| 国产精品麻豆99久久久久久| 国产欧美日韩在线| 欧美激情一区二区三区四区 | 亚洲一二三四在线观看| 亚洲精品免费电影| 亚洲主播在线播放| 免费久久精品视频| 国产精品一区在线观看你懂的| 成人免费看片app下载| 成人成人成人在线视频| 色又黄又爽网站www久久| 欧美人狂配大交3d怪物一区| 日韩欧美国产一区在线观看| 久久人人爽爽爽人久久久| 国产精品久久夜| 一区二区成人在线观看| 日韩制服丝袜av| 国产一区二区三区四| 91天堂素人约啪| 欧美猛男gaygay网站| 精品国产欧美一区二区| 亚洲视频狠狠干| 日本中文在线一区| 高清成人免费视频| 欧美在线一二三| 久久久蜜臀国产一区二区| 亚洲日本免费电影| 美女精品自拍一二三四| 成人app网站| 日韩视频永久免费| 亚洲日本青草视频在线怡红院 | 久久亚区不卡日本| 亚洲裸体xxx| 精品一区二区av| 不卡的电视剧免费网站有什么| 欧美日韩精品福利| 中文字幕精品在线不卡| 七七婷婷婷婷精品国产| 91视频www| 久久久精品国产免费观看同学| 亚洲一线二线三线视频| 国产精品综合在线视频| 欧美日韩在线一区二区| 国产精品国产成人国产三级| 天天色 色综合| 色诱视频网站一区| 国产亚洲一二三区| 日韩电影一区二区三区四区| 91美女视频网站| 国产亚洲婷婷免费| 久88久久88久久久| 欧美一二区视频| 天天亚洲美女在线视频| 91国偷自产一区二区三区观看| 久久女同精品一区二区| 麻豆专区一区二区三区四区五区| 99热在这里有精品免费| 国产欧美va欧美不卡在线| 免费高清不卡av| 欧美高清视频www夜色资源网| 国产精品久久久久7777按摩 | 一区二区三区91| 99久久久无码国产精品| 国产欧美一区视频| 国产在线视频精品一区| 久久久噜噜噜久久中文字幕色伊伊 | 日韩精品免费视频人成| 欧美日韩精品福利| 丝袜亚洲另类丝袜在线| 欧美日韩精品福利| 天堂在线一区二区| 欧美一区二区三区婷婷月色| 日本午夜精品视频在线观看| 欧美电影一区二区| 老司机免费视频一区二区三区| 欧美情侣在线播放| 美国三级日本三级久久99| 日韩欧美色电影| 国产在线国偷精品免费看| 久久久五月婷婷| 不卡高清视频专区| 亚洲一区二区三区免费视频| 欧美美女一区二区在线观看| 久久精品国内一区二区三区| 久久久精品综合| 99麻豆久久久国产精品免费| 亚洲色图欧美激情| 欧美喷水一区二区| 狠狠色狠狠色综合| 亚洲欧美在线另类| 精品视频在线免费看| 另类小说视频一区二区| 国产精品久久久久aaaa樱花| 在线视频国内一区二区| 蜜桃视频第一区免费观看| 久久老女人爱爱| 91在线观看成人| 日韩电影一区二区三区四区| 久久久高清一区二区三区| jiyouzz国产精品久久| 一区av在线播放| 精品少妇一区二区三区在线播放| 成人国产视频在线观看| 日日夜夜精品免费视频| 久久看人人爽人人| 欧美日韩一区二区在线视频| 狠狠色综合色综合网络| 亚洲精品乱码久久久久久久久| 日韩一区二区高清| 99精品黄色片免费大全| 精品系列免费在线观看| 亚洲精品美腿丝袜| 久久伊人中文字幕| 欧美亚一区二区| 国产精品77777| 日本亚洲欧美天堂免费| 亚洲精品五月天| 国产欧美日韩在线视频| 欧美一级二级三级蜜桃| 欧美主播一区二区三区| 国产91丝袜在线播放九色| 蜜桃久久久久久久| 亚洲电影欧美电影有声小说| 最好看的中文字幕久久| 久久综合久久久久88| 欧美日韩午夜在线| 一本一道波多野结衣一区二区| 国产精品一区专区| 狠狠久久亚洲欧美| 蜜臀久久久久久久| 日韩一区精品视频| 一区二区三区丝袜| 成人免费一区二区三区在线观看| 久久蜜臀中文字幕| 精品久久国产老人久久综合| 欧美一区二区在线看| 欧美日韩一区成人| 欧美人xxxx| 欧美日韩国产成人在线免费| 欧美影院精品一区| 在线一区二区三区| 在线亚洲精品福利网址导航| 色综合久久综合网97色综合 | 这里只有精品电影| 欧美色手机在线观看| 欧美在线观看你懂的| 欧洲人成人精品| 欧美三级在线视频| 欧美电影一区二区三区| 日韩一区二区三区观看| 日韩欧美中文字幕公布| 精品嫩草影院久久| 国产农村妇女毛片精品久久麻豆 | 国产一区二区三区久久久| 久久超碰97中文字幕| 国产真实乱偷精品视频免| 国产伦理精品不卡| 成人av资源下载| 色先锋资源久久综合| 欧美视频三区在线播放| 欧美精品v国产精品v日韩精品| 欧美一级一区二区| 欧美精品一区二区久久婷婷| 国产欧美日韩激情| 亚洲精品国产一区二区精华液 | 国产精品成人在线观看| 自拍偷拍亚洲综合| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区二区av在线| 美腿丝袜亚洲综合| 国产成人在线电影| 色婷婷综合久久久久中文| 51精品秘密在线观看| 国产亚洲精品aa| 一区二区三区四区视频精品免费 | 韩国精品一区二区| 99久久免费国产| 欧美一区在线视频| 中文字幕不卡三区| 亚洲v日本v欧美v久久精品| 狠狠色2019综合网| 91精品91久久久中77777| 日韩欧美国产精品一区| 国产精品对白交换视频| 日本一区中文字幕| 91免费国产在线观看| 欧美一级二级在线观看| 中文字幕综合网| 九九精品一区二区| 欧美性受xxxx| 中文字幕va一区二区三区| 日本sm残虐另类| 91官网在线观看| 国产精品美女久久久久aⅴ | 国产91色综合久久免费分享|