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

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

?? slipdev.c

?? FreeRtos Source code Version 4.04
?? C
字號:
/**
 * \addtogroup uip
 * @{
 */

/**
 * \defgroup slip Serial Line IP (SLIP) protocol
 * @{
 *
 * The SLIP protocol is a very simple way to transmit IP packets over
 * a serial line. It does not provide any framing or error control,
 * and is therefore not very widely used today.
 *
 * This SLIP implementation requires two functions for accessing the
 * serial device: slipdev_char_poll() and slipdev_char_put(). These
 * must be implemented specifically for the system on which the SLIP
 * protocol is to be run.
 */

/**
 * \file
 * SLIP protocol implementation
 * \author Adam Dunkels <adam@dunkels.com>
 */

/*
 * Copyright (c) 2001, Adam Dunkels.
 * 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 uIP TCP/IP stack.
 *
 * $Id: slipdev.c,v 1.1.2.3 2003/10/07 13:23:01 adam Exp $
 *
 */

/*
 * This is a generic implementation of the SLIP protocol over an RS232
 * (serial) device. 
 *
 * Huge thanks to Ullrich von Bassewitz <uz@cc65.org> of cc65 fame for
 * and endless supply of bugfixes, insightsful comments and
 * suggestions, and improvements to this code!
 */

#include "uip.h"

#define SLIP_END     0300
#define SLIP_ESC     0333
#define SLIP_ESC_END 0334
#define SLIP_ESC_ESC 0335

static u8_t slip_buf[UIP_BUFSIZE];

static u16_t len, tmplen;
static u8_t lastc;

/*-----------------------------------------------------------------------------------*/
/**
 * Send the packet in the uip_buf and uip_appdata buffers using the
 * SLIP protocol.
 *
 * The first 40 bytes of the packet (the IP and TCP headers) are read
 * from the uip_buf buffer, and the following bytes (the application
 * data) are read from the uip_appdata buffer.
 *
 */
/*-----------------------------------------------------------------------------------*/
void
slipdev_send(void)
{
  u16_t i;
  u8_t *ptr;
  u8_t c;

  slipdev_char_put(SLIP_END);

  ptr = uip_buf;
  for(i = 0; i < uip_len; ++i) {
    if(i == 40) {
      ptr = (u8_t *)uip_appdata;
    }
    c = *ptr++;
    switch(c) {
    case SLIP_END:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_END);
      break;
    case SLIP_ESC:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_ESC);
      break;
    default:
      slipdev_char_put(c);
      break;
    }
  }
  slipdev_char_put(SLIP_END);
}
/*-----------------------------------------------------------------------------------*/
/** 
 * Poll the SLIP device for an available packet.
 *
 * This function will poll the SLIP device to see if a packet is
 * available. It uses a buffer in which all avaliable bytes from the
 * RS232 interface are read into. When a full packet has been read
 * into the buffer, the packet is copied into the uip_buf buffer and
 * the length of the packet is returned.
 *
 * \return The length of the packet placed in the uip_buf buffer, or
 * zero if no packet is available.
 */
/*-----------------------------------------------------------------------------------*/
u16_t
slipdev_poll(void)
{
  u8_t c;
  
  while(slipdev_char_poll(c)) {
    switch(c) {
    case SLIP_ESC:
      lastc = c;
      break;
      
    case SLIP_END:
      lastc = c;
      /* End marker found, we copy our input buffer to the uip_buf
	 buffer and return the size of the packet we copied. */
      memcpy(uip_buf, slip_buf, len);
      tmplen = len;
      len = 0;
      return tmplen;
      
    default:     
      if(lastc == SLIP_ESC) {
	lastc = c;
	/* Previous read byte was an escape byte, so this byte will be
	   interpreted differently from others. */
	switch(c) {
	case SLIP_ESC_END:
	  c = SLIP_END;
	  break;
	case SLIP_ESC_ESC:
	  c = SLIP_ESC;
	  break;
	}
      } else {
	lastc = c;
      }
      
      slip_buf[len] = c;
      ++len;
      
      if(len > UIP_BUFSIZE) {
	len = 0;
      }
    
      break;
    }
  }
  return 0;
}
/*-----------------------------------------------------------------------------------*/
/**
 * Initialize the SLIP module.
 *
 * This function does not initialize the underlying RS232 device, but
 * only the SLIP part.
 */ 
/*-----------------------------------------------------------------------------------*/
void
slipdev_init(void)
{
  lastc = len = 0;
}
/*-----------------------------------------------------------------------------------*/

/** @} */
/** @} */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久无码国产精品| 国产一区不卡视频| 久久精品亚洲精品国产欧美kt∨ | 国产偷国产偷亚洲高清人白洁| 欧美日韩国产大片| 欧美精三区欧美精三区| 欧美精品少妇一区二区三区| 欧美无乱码久久久免费午夜一区| 91搞黄在线观看| 欧美精选在线播放| 精品国产sm最大网站| 国产欧美一区二区三区鸳鸯浴| 国产午夜亚洲精品羞羞网站| 国产精品视频观看| 亚洲国产cao| 久久精品国产久精国产| 国产一区欧美日韩| 99久久99久久精品免费看蜜桃 | 欧美日韩精品高清| 91精品国产乱码久久蜜臀| 欧美大尺度电影在线| 国产日韩一级二级三级| 亚洲精品高清在线观看| 日韩高清电影一区| 国产成人av一区二区三区在线 | 日本韩国欧美在线| 91精品婷婷国产综合久久 | 99riav久久精品riav| 91亚洲精品久久久蜜桃| 欧美日韩国产美女| 欧美极品美女视频| 亚洲成人高清在线| 丰满放荡岳乱妇91ww| 欧美人与性动xxxx| 国产精品久久久久影院老司 | 美女网站视频久久| 成人av综合一区| 欧美一区午夜视频在线观看| 亚洲欧洲色图综合| 久久国产生活片100| 91女神在线视频| 精品国产一区二区三区忘忧草| 亚洲男人天堂一区| 国产精品一区专区| 884aa四虎影成人精品一区| 日本一区免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 99久久亚洲一区二区三区青草| 日韩一区二区免费在线电影| 亚洲视频一区在线| 国产一区二区美女诱惑| 7777精品伊人久久久大香线蕉超级流畅| 国产欧美一区二区在线观看| 久久国产精品免费| 欧美日韩国产一区| 亚洲欧洲综合另类在线| 国产91在线|亚洲| 亚洲精品在线电影| 免费成人结看片| 欧美日韩精品三区| 亚洲午夜在线视频| 91网站最新网址| 中文字幕欧美激情| 国产成人亚洲综合a∨猫咪| 欧美精品高清视频| 亚洲成人动漫一区| 欧美色男人天堂| 亚洲夂夂婷婷色拍ww47| 色综合久久久久综合体桃花网| 中文字幕精品综合| 粉嫩av一区二区三区粉嫩| 久久久精品一品道一区| 国产乱子轮精品视频| 久久亚洲精品小早川怜子| 国内精品伊人久久久久av一坑 | 国产精品18久久久久久久久久久久 | 成人欧美一区二区三区1314| 成人教育av在线| 国产精品人人做人人爽人人添| 丁香婷婷综合网| 中文字幕欧美一| 日本道在线观看一区二区| 一区二区三区在线播| 欧美性欧美巨大黑白大战| 亚洲一区二区三区四区不卡| 欧美日韩精品是欧美日韩精品| 五月天一区二区| 日韩欧美专区在线| 国产精品资源在线看| 国产精品伦一区二区三级视频| 97超碰欧美中文字幕| 一区二区三区四区五区视频在线观看| 欧洲亚洲国产日韩| 青青草原综合久久大伊人精品优势| 日韩欧美一二三| 成人免费观看男女羞羞视频| 亚洲精品免费在线观看| 欧美性猛交xxxx黑人交| 免费成人小视频| 国产精品久久久久久久久久免费看 | 中文字幕亚洲综合久久菠萝蜜| 色偷偷88欧美精品久久久| 石原莉奈在线亚洲二区| 久久欧美一区二区| 99vv1com这只有精品| 日本欧美一区二区| 国产精品午夜在线| 欧美午夜精品一区二区三区| 老色鬼精品视频在线观看播放| 国产午夜精品在线观看| 91精品欧美综合在线观看最新 | 亚洲乱码国产乱码精品精的特点 | 国产日韩欧美精品综合| 一本色道久久综合亚洲91| 免费观看久久久4p| 国产精品二区一区二区aⅴ污介绍| 欧美日韩一区二区三区四区五区| 国产一区二区三区高清播放| 亚洲综合色自拍一区| 久久久高清一区二区三区| 欧美午夜一区二区三区| 国产成人在线视频网址| 亚洲成人午夜影院| 国产精品久久久久久久久动漫| 欧美一级理论片| 91福利小视频| 成人爽a毛片一区二区免费| 人禽交欧美网站| 亚洲一二三四区| 中文一区一区三区高中清不卡| 日韩一区二区电影在线| 欧洲精品一区二区| 成人av网在线| 国产成人综合在线| 男男gaygay亚洲| 香港成人在线视频| 一区二区不卡在线播放| 中文幕一区二区三区久久蜜桃| 精品日本一线二线三线不卡| 欧美日韩精品一区二区三区蜜桃| 91视频国产资源| 成人av免费观看| 粉嫩嫩av羞羞动漫久久久| 激情五月婷婷综合| 免费在线观看视频一区| 五月综合激情日本mⅴ| 亚洲黄色av一区| 亚洲精品欧美激情| 亚洲国产一区在线观看| 亚洲综合久久av| 亚洲高清免费一级二级三级| 一区二区三区 在线观看视频| 亚洲女子a中天字幕| 亚洲美女在线国产| 亚洲狠狠爱一区二区三区| 亚洲综合久久久久| 丝袜诱惑制服诱惑色一区在线观看 | 韩国精品一区二区| 精品一区二区三区久久久| 奇米精品一区二区三区在线观看 | 国产日韩欧美a| 中文字幕高清一区| 国产精品国模大尺度视频| 国产精品久久影院| 悠悠色在线精品| 三级一区在线视频先锋| 美美哒免费高清在线观看视频一区二区 | 国产日韩av一区二区| 欧美激情综合网| 亚洲欧美色图小说| 午夜久久久影院| 麻豆精品在线视频| 成人性视频免费网站| 色婷婷激情综合| 91精品国产综合久久久久| 精品欧美黑人一区二区三区| 国产欧美日韩在线视频| 一区二区三区久久| 免费视频一区二区| 成人av在线电影| 欧美日韩亚洲不卡| 国产视频一区二区在线观看| 亚洲日本电影在线| 免费成人在线网站| 99视频在线精品| 日韩一区二区免费在线观看| 国产精品毛片高清在线完整版 | 精品午夜一区二区三区在线观看| 国产精品18久久久久久久久久久久| 99久久777色| 欧美va亚洲va| 亚洲精品国产精品乱码不99| 免费观看30秒视频久久| 色综合网站在线| 久久综合色综合88| 亚洲一区二区三区四区在线免费观看| 精品系列免费在线观看| 欧美色网一区二区| 国产精品视频一二| 久久成人18免费观看|