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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tapdev.c

?? FreeRTOS V4.2.1,增加了AVR32 UC3 和 LPC2368 的支持
?? C
字號(hào):
/*
 * Copyright (c) 2001, 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. Neither the name of the Institute nor the names of its contributors 
 *    may be used to endorse or promote products derived from this software 
 *    without specific prior written permission. 
 *
 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. 
 *
 * Author: Adam Dunkels <adam@sics.se>
 *
 * $Id: tapdev.c,v 1.7.2.1 2003/10/07 13:23:19 adam Exp $
 */


#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/uio.h>
#include <sys/socket.h>

#ifdef linux
#include <sys/ioctl.h>
#include <linux/if.h>
#include <linux/if_tun.h>
#define DEVTAP "/dev/net/tun"
#else  /* linux */
#define DEVTAP "/dev/tap0"
#endif /* linux */

#include "uip.h"

static int fd;

static unsigned long lasttime;
static struct timezone tz;

/*-----------------------------------------------------------------------------------*/
void
tapdev_init(void)
{
  char buf[1024];
  
  fd = open(DEVTAP, O_RDWR);
  if(fd == -1) {
    perror("tapdev: tapdev_init: open");
    exit(1);
  }

#ifdef linux
  {
    struct ifreq ifr;
    memset(&ifr, 0, sizeof(ifr));
    ifr.ifr_flags = IFF_TAP|IFF_NO_PI;
    if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {
      perror(buf);
      exit(1);
    }
  }
#endif /* Linux */

  snprintf(buf, sizeof(buf), "ifconfig tap0 inet %d.%d.%d.%d",
	   UIP_DRIPADDR0, UIP_DRIPADDR1, UIP_DRIPADDR2, UIP_DRIPADDR3);
  system(buf);

  lasttime = 0;
}
/*-----------------------------------------------------------------------------------*/
unsigned int
tapdev_read(void)
{
  fd_set fdset;
  struct timeval tv, now;
  int ret;
  
  if(lasttime >= 500000) {
    lasttime = 0;
    return 0;
  }
  
  tv.tv_sec = 0;
  tv.tv_usec = 500000 - lasttime;


  FD_ZERO(&fdset);
  FD_SET(fd, &fdset);

  gettimeofday(&now, &tz);  
  ret = select(fd + 1, &fdset, NULL, NULL, &tv);
  if(ret == 0) {
    lasttime = 0;    
    return 0;
  } 
  ret = read(fd, uip_buf, UIP_BUFSIZE);  
  if(ret == -1) {
    perror("tap_dev: tapdev_read: read");
  }
  gettimeofday(&tv, &tz);
  lasttime += (tv.tv_sec - now.tv_sec) * 1000000 + (tv.tv_usec - now.tv_usec);

  return ret;
}
/*-----------------------------------------------------------------------------------*/
void
tapdev_send(void)
{
  int ret;
  struct iovec iov[2];
  
#ifdef linux
  {
    char tmpbuf[UIP_BUFSIZE];
    int i;

    for(i = 0; i < 40 + UIP_LLH_LEN; i++) {
      tmpbuf[i] = uip_buf[i];
    }
    
    for(; i < uip_len; i++) {
      tmpbuf[i] = uip_appdata[i - 40 - UIP_LLH_LEN];
    }
    
    ret = write(fd, tmpbuf, uip_len);
  }  
#else 

  if(uip_len < 40 + UIP_LLH_LEN) {
    ret = write(fd, uip_buf, uip_len + UIP_LLH_LEN);
  } else {
    iov[0].iov_base = uip_buf;
    iov[0].iov_len = 40 + UIP_LLH_LEN;
    iov[1].iov_base = (char *)uip_appdata;
    iov[1].iov_len = uip_len - (40 + UIP_LLH_LEN);  
    
    ret = writev(fd, iov, 2);
  }
#endif
  if(ret == -1) {
    perror("tap_dev: tapdev_send: writev");
    exit(1);
  }
}  
/*-----------------------------------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蜜桃在线观看| 亚洲天堂久久久久久久| 亚洲六月丁香色婷婷综合久久 | 亚洲一区二区黄色| 99精品久久只有精品| 精品国产免费一区二区三区四区 | 色狠狠色噜噜噜综合网| 欧美极品少妇xxxxⅹ高跟鞋 | 中文字幕日韩一区二区| 高清国产午夜精品久久久久久| 精品国产91九色蝌蚪| 精品在线免费视频| 26uuu色噜噜精品一区| 国产麻豆视频精品| 亚洲国产精华液网站w| 成人深夜在线观看| 亚洲青青青在线视频| 91天堂素人约啪| 亚洲国产日韩综合久久精品| 欧美视频一区二区在线观看| 亚洲国产日韩a在线播放| 欧美一区二区三区的| 免费高清不卡av| 26uuu精品一区二区在线观看| 日本一不卡视频| 欧美精品一区二区精品网| 国产一区二区三区免费观看| 国产精品女同一区二区三区| 91亚洲男人天堂| 亚洲国产综合91精品麻豆| 91精品国产入口| 国产精选一区二区三区| 亚洲欧美影音先锋| 欧美日韩国产a| 久久国产精品99久久久久久老狼| 久久影院电视剧免费观看| 成人h精品动漫一区二区三区| 亚洲小少妇裸体bbw| 欧美日韩国产一二三| 国产一区二区在线电影| 亚洲同性gay激情无套| 3atv一区二区三区| 粉嫩欧美一区二区三区高清影视| 亚洲精品视频免费看| 日韩美女在线视频| 色综合久久天天| 久久99精品国产麻豆婷婷| 国产亚洲一区字幕| 欧美精品久久99久久在免费线 | 欧美美女喷水视频| 狠狠色丁香婷婷综合| 亚洲精品国产无天堂网2021| 日韩欧美国产综合一区| 色综合久久久久久久久| 国产一区二区三区av电影| 成人欧美一区二区三区1314| 日韩欧美综合在线| 国内精品第一页| 亚洲丰满少妇videoshd| 日本一区二区在线不卡| 4438成人网| 91福利在线观看| 风间由美一区二区三区在线观看| 亚洲无线码一区二区三区| 国产精品污网站| 精品国产乱子伦一区| 欧美日精品一区视频| 不卡高清视频专区| 欧美一区二区三区四区在线观看| 91老师片黄在线观看| 粉嫩绯色av一区二区在线观看| 美女一区二区视频| 777奇米四色成人影色区| 99久久精品国产毛片| 国产一区二区按摩在线观看| 午夜精品一区二区三区三上悠亚| 成+人+亚洲+综合天堂| 蜜桃视频一区二区三区 | 国产91在线看| 久久国产综合精品| 欧美日韩精品高清| 欧美一区二区三区四区高清 | 懂色av一区二区三区免费看| 国产91在线看| 欧美日韩一卡二卡| 国产午夜精品在线观看| 悠悠色在线精品| 国产精品1区2区3区| 欧美少妇bbb| 国产精品三级久久久久三级| 午夜日韩在线观看| 不卡电影一区二区三区| 日韩欧美自拍偷拍| 亚洲线精品一区二区三区| 国产成人av电影免费在线观看| 欧美日韩电影在线| 综合婷婷亚洲小说| 国产剧情一区在线| 日韩一级精品视频在线观看| 亚洲精品大片www| 国产成人综合在线| 日韩一级免费一区| 亚洲第一狼人社区| 色综合激情久久| 国产婷婷色一区二区三区| 青青草国产成人99久久| 日本大香伊一区二区三区| 国产无人区一区二区三区| 麻豆成人av在线| 在线观看91av| 亚洲成年人影院| 色综合久久88色综合天天免费| 久久久久国产免费免费| 蜜臀av一区二区三区| 欧美色综合网站| 一区二区三区在线免费播放| 成人免费精品视频| 国产欧美一区在线| 国产一区二区三区久久悠悠色av| 欧美美女一区二区三区| 亚洲一二三四在线观看| 色噜噜狠狠成人网p站| 综合欧美一区二区三区| 丁香亚洲综合激情啪啪综合| 久久综合久久99| 国产专区欧美精品| 久久婷婷久久一区二区三区| 久久av资源网| 欧美成人官网二区| 国内外成人在线| 亚洲精品在线电影| 国产剧情在线观看一区二区| 久久久国际精品| 丰满放荡岳乱妇91ww| 国产精品成人免费精品自在线观看 | 亚洲精品久久久蜜桃| av电影一区二区| 亚洲精品国产无天堂网2021| 色综合久久久久久久| 伊人色综合久久天天| 91福利区一区二区三区| 亚洲一区视频在线观看视频| 欧美日韩免费一区二区三区| 国产校园另类小说区| 麻豆成人在线观看| www国产精品av| 成人综合激情网| 亚洲欧美国产77777| 欧美在线一区二区三区| 午夜激情一区二区三区| 日韩亚洲欧美中文三级| 久草热8精品视频在线观看| 久久天天做天天爱综合色| 懂色av噜噜一区二区三区av| 亚洲欧美一区二区三区极速播放 | 97se狠狠狠综合亚洲狠狠| 亚洲男人的天堂一区二区| 欧美亚洲综合在线| 麻豆久久一区二区| 中文字幕免费不卡| 在线观看www91| 麻豆91精品91久久久的内涵| 国产欧美日韩视频一区二区| 97国产一区二区| 五月婷婷久久综合| 久久综合久久综合久久综合| 99国产精品久久久久| 午夜精品久久久久久不卡8050| 精品日韩av一区二区| 99精品1区2区| 日本成人在线电影网| 国产日产欧美一区二区视频| 色婷婷国产精品| 久久成人免费日本黄色| 亚洲婷婷综合色高清在线| 日韩一级二级三级精品视频| 丰满放荡岳乱妇91ww| 五月婷婷激情综合| 国产色爱av资源综合区| 日本高清成人免费播放| 国产中文字幕精品| 亚洲综合丝袜美腿| 久久精品一区二区三区av| 欧美日韩一区 二区 三区 久久精品| 国产一区在线精品| 亚洲第一精品在线| 国产精品免费av| 日韩精品一区二区三区在线观看| 99re成人在线| 精品综合久久久久久8888| 一区二区三国产精华液| 久久久久99精品国产片| 欧美日韩国产综合视频在线观看| 成人午夜在线视频| 美洲天堂一区二卡三卡四卡视频| 国内久久精品视频| 日日夜夜免费精品| 一区二区三区免费看视频| 欧美高清一级片在线观看| 日韩精品一区二区三区蜜臀|