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

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

?? xmodem.c

?? 這個vivi的功能很豐富
?? C
字號:
/* * vivi/deriver/serialxmodem.c: *     - an implementation of the xmodem protocol from the spec. * * Based on bootldr/xmodem.c (C) 2000 Compaq Computer Coporation. * * Copyright (C) 2001 MIZI Research, Inc. * * * 1999-01-xx: Edwin Foo <efoo@crl.dec.com> *    - Initial code * * 2001-10-04: Janghoon Lyu <nandy@mizi.com> *    - Modified a little bit. * * 2002-07-04: Janghoon Lyu <nandy@mizi.com> *    - get_param_value() 牢磐其撈膠啊 官差絹輯 撈俊 嘎霸 薦瀝. */#include "config.h"#include "machine.h"#include "serial.h"#include "priv_data.h"#include <types.h>/* XMODEM parameters */#define BLOCK_SIZE	128	/* size of transmit blocks */#define RETRIES		20	/* maximum number of RETRIES *//* Line control codes */#define SOH		0x01	/* start of header */#define ACK		0x06	/* Acknowledge */#define NAK		0x15	/* Negative acknowledge */#define CAN		0x18	/* Cancel */#define EOT		0x04	/* end of text */#define GET_BYTE_TIMEOUT 10000000/* global error variable */char *xmodem_errtxt = NULL;int get_byte_err = 0;__u8 volatile rbuffer[BLOCK_SIZE];/* prototypes of helper functions */int get_record(void);__u8 get_byte(void);enum{	SAC_SEND_NAK = 0,	SAC_SENT_NAK = 1,	SAC_PAST_START_NAK = 2};static volatile int seen_a_char = SAC_SEND_NAK;static int one_nak = 0;static unsigned long xmodem_timeout = GET_BYTE_TIMEOUT;char debugbuf[4096];int db_idx = 0;void bufputs(char *s){	size_t len = strlen(s) + 1;	if (len + db_idx > sizeof(debugbuf))		len = sizeof(debugbuf) - db_idx;	if (len) {		memcpy(&debugbuf[db_idx], s, len);		db_idx += len;	}}void reset_debugbuf(void){	memset(debugbuf, 0x2a, sizeof(debugbuf));	db_idx = 0;}__u32 xmodem_receive(char *dldaddr, size_t len){	char ochr;	int r = 0, rx_block_num = 0, error_count = 0;	__u32 foffset = 0;	int i;	int ret;	xmodem_errtxt = NULL;	seen_a_char = 0;	one_nak = get_param_value("xmodem_one_nak", &ret);	if (ret) one_nak = 0;	xmodem_timeout = get_param_value("xmodem_initial_timeout", &ret);	if (ret) xmodem_timeout = GET_BYTE_TIMEOUT;	rx_block_num = 1;	error_count = RETRIES;	do {		if ((r = get_record()) == (rx_block_num & 255)) {			error_count = RETRIES;			for (i = 0; i <BLOCK_SIZE; i++)				*(__u8 *)(dldaddr+foffset+i) = rbuffer[i];			xmodem_errtxt = "RX PACKET";			rx_block_num++;			ochr = ACK;			foffset += BLOCK_SIZE;		} else {			switch (r) {			case -1: /* TIMEOUT */				xmodem_errtxt = "TIMEOUT";				ochr = NAK;				break;			case -2: /* Bad block */				xmodem_errtxt = "BAD BLOCK#";				/* eat teh rest of the block */				get_byte_err = 0;				while (get_byte_err != -1) get_byte();				ochr = NAK;				break;			case -3: /* Bad checksum */				xmodem_errtxt = "BAD CHKSUM";				ochr = NAK;				break;			case -4: /* End of file */				xmodem_errtxt = "DONE";				ochr = ACK;				break;			case -5: /* Cancel */				xmodem_errtxt = "ABORTED";				ochr = ACK;				break;			default: /* Block out of sequence */				xmodem_errtxt = "WRONG BLK";				ochr = NAK;			}			error_count--;		}		putc(ochr);	} while ((r > -3) && error_count);	if ((!error_count) || (r != -4)) {		foffset = 0;	/* indicate failure to caller */		/*printk("x-modem error: %s\n", xmodem_errtxt); */	}	return foffset;}/* * Read a record in the XMODEM protocol, return the block number * (0-255) if successful, or one of the following return codes: * 	-1 = Bad byte * 	-2 = Bad block number * 	-3 = Bad block checksum * 	-4 = End of file * 	-5 = Canceled by remote */int get_record(void){	int c, block_num = 0;	int i;	__u32 check_sum;	/* clear the buffer */	for (i = 0; i < BLOCK_SIZE; i++)		rbuffer[i] = 0x00;	check_sum = 0;	i = -2;	c = get_byte();	if (get_byte_err)		return -1;	switch (c) {	case SOH:	/* Receive packet */		for (;;) {			c = get_byte();			if (get_byte_err)				return -1;			switch (i) {			case -2: 				block_num = c;				break;			case -1:#if 0#ifdef CHECK_NEGATED_SECTNUM				if (c != (-block_num -1))					return -2;#endif#endif				break;			case BLOCK_SIZE:				if ((check_sum & 0xff) != c)					return -3;				else					return block_num;				break;			default:				rbuffer[i] = c;				check_sum += c;			}			i++;		}	case EOT:	/* end of file encountered */		return -4;	case CAN:	/* cancel protocol */		return -5;	default:		return -5;	}}/* get_byte should use one of the timer's for a CPU clock independent timeout */__u8 get_byte(){	int c, ret;again:	c = 0;	get_byte_err = 0; /* reset errno */	c = awaitkey(xmodem_timeout, &get_byte_err);	if (get_byte_err) {		if (seen_a_char == SAC_SEND_NAK || !one_nak) {			bufputs("timeout nak");			putc(NAK);	/* make the sender go */		}		if (seen_a_char < SAC_PAST_START_NAK) {			bufputs("goto again");			seen_a_char = SAC_SENT_NAK;			xmodem_timeout = get_param_value("xmodem_timeout", &ret);			if (ret) xmodem_timeout = GET_BYTE_TIMEOUT;			goto again;		}	}	if (get_byte_err == 0)		seen_a_char = SAC_PAST_START_NAK;	return (c);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区夜色 | 成人av综合一区| 精品国产亚洲在线| 韩国视频一区二区| 国产欧美一区二区精品秋霞影院| 国产裸体歌舞团一区二区| 久久久亚洲高清| 不卡高清视频专区| 亚洲摸摸操操av| 91精品国产91综合久久蜜臀| 久久99精品国产.久久久久| 久久综合久久99| gogogo免费视频观看亚洲一| 亚洲乱码一区二区三区在线观看| 欧美视频在线一区| 久久99国产精品免费| 中文字幕第一页久久| 欧美在线看片a免费观看| 蜜臀国产一区二区三区在线播放 | 久久99精品一区二区三区| 国产性天天综合网| 日本韩国欧美在线| 欧美a级一区二区| 亚洲国产激情av| 欧美日韩高清一区二区不卡| 久久99精品国产麻豆婷婷洗澡| 中文字幕电影一区| 777欧美精品| 波多野结衣一区二区三区 | 日韩黄色一级片| 国产丝袜欧美中文另类| 欧美性猛片xxxx免费看久爱| 国产在线国偷精品产拍免费yy| 亚洲免费观看高清完整版在线| 欧美一级免费观看| 97se亚洲国产综合自在线不卡| 日韩av电影免费观看高清完整版在线观看 | 国产乱子伦视频一区二区三区 | 亚洲va国产va欧美va观看| 精品国产凹凸成av人导航| 色婷婷精品大在线视频| 国产在线不卡一卡二卡三卡四卡| 一区二区三区四区av| 国产人妖乱国产精品人妖| 欧美剧情电影在线观看完整版免费励志电影| 成人国产精品免费观看| 日韩国产精品91| 依依成人综合视频| 国产欧美一区二区精品仙草咪| 91麻豆精品国产综合久久久久久| av一区二区三区黑人| 久久99蜜桃精品| 亚洲不卡一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 国产性天天综合网| 欧美成人一区二区三区片免费 | 午夜国产精品影院在线观看| 国产精品国产自产拍高清av王其| 日韩欧美国产电影| 欧美视频在线不卡| 一本一本大道香蕉久在线精品| 国内精品国产成人国产三级粉色| 天堂av在线一区| 亚洲午夜激情av| 亚洲精品久久久蜜桃| 国产精品免费av| 欧美激情在线一区二区三区| 欧美不卡视频一区| 欧美一区二区三区四区久久| 91 com成人网| 在线播放中文一区| 欧美日韩久久久久久| 欧美色图天堂网| 在线视频欧美精品| 色综合久久久久网| 色先锋资源久久综合| 色88888久久久久久影院野外| 99vv1com这只有精品| 91香蕉视频mp4| 91女神在线视频| 欧美性猛交xxxxxxxx| 欧美视频你懂的| 欧美绝品在线观看成人午夜影视| 51精品久久久久久久蜜臀| 欧美一区二区精品在线| 欧美变态凌虐bdsm| 久久尤物电影视频在线观看| 国产亚洲一二三区| 国产精品国产自产拍高清av王其| 亚洲婷婷国产精品电影人久久| 日韩毛片视频在线看| 亚洲一区二区三区在线看| 无码av中文一区二区三区桃花岛| 日本成人超碰在线观看| 精品无码三级在线观看视频| 国产成人高清视频| 99视频精品在线| 欧美日本一区二区三区四区| 日韩视频在线观看一区二区| 久久新电视剧免费观看| 国产精品高潮呻吟久久| 亚洲一区二区在线观看视频| 男女激情视频一区| 国产aⅴ精品一区二区三区色成熟| 波多野结衣中文字幕一区二区三区 | 欧美一区二区三区公司| 久久蜜桃一区二区| 亚洲精品中文在线影院| 男女激情视频一区| a亚洲天堂av| 欧美一区二区人人喊爽| 中文字幕欧美日韩一区| 亚洲18女电影在线观看| 国产一区二区三区国产| 在线国产电影不卡| 久久奇米777| 亚洲一二三四在线| 国产成人av电影在线| 欧美在线啊v一区| 久久青草国产手机看片福利盒子| 亚洲精品国产品国语在线app| 日本欧洲一区二区| 91视频你懂的| 精品国产1区2区3区| 一区二区三区在线观看国产| 久草在线在线精品观看| 一本到不卡精品视频在线观看 | 欧美日韩一级二级三级| 国产欧美日韩精品一区| 午夜精品福利一区二区三区av | 狠狠v欧美v日韩v亚洲ⅴ| 色综合中文字幕国产 | av激情亚洲男人天堂| 日韩一区二区三区在线观看| 亚洲精品国产视频| 国产不卡免费视频| 日韩视频在线一区二区| 亚洲地区一二三色| 不卡一区二区三区四区| 久久婷婷成人综合色| 视频一区二区欧美| 色悠久久久久综合欧美99| 久久久蜜桃精品| 美国一区二区三区在线播放| 欧美在线一区二区三区| 成人欧美一区二区三区白人| 国产一区999| 欧美v日韩v国产v| 日韩av网站免费在线| 欧美日精品一区视频| 一区二区在线看| 91丝袜国产在线播放| 日本一区二区免费在线观看视频| 久色婷婷小香蕉久久| 欧美一区二区三区免费视频| 亚洲一区二三区| 欧美三级视频在线观看| 一区二区三区四区激情| 91蜜桃免费观看视频| 综合久久久久综合| 97久久超碰国产精品| 亚洲欧洲另类国产综合| eeuss鲁片一区二区三区| 国产精品三级久久久久三级| 粉嫩欧美一区二区三区高清影视 | 国产欧美一区二区三区鸳鸯浴| 奇米精品一区二区三区在线观看一| 欧美高清视频在线高清观看mv色露露十八| 日韩美女视频一区| 日本黄色一区二区| 亚洲综合网站在线观看| 欧美伊人久久久久久久久影院| 亚洲男人的天堂在线观看| 91福利国产精品| 午夜影院在线观看欧美| 欧美一级二级在线观看| 久久成人18免费观看| 国产午夜精品福利| 成人成人成人在线视频| 亚洲欧美日韩精品久久久久| 日本精品视频一区二区三区| 亚洲国产成人va在线观看天堂| 欧美日韩不卡在线| 日本视频一区二区| 久久伊人中文字幕| eeuss鲁一区二区三区| 亚洲激情图片一区| 欧美精品三级日韩久久| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲国产成人私人影院tom| 一本到高清视频免费精品| 日韩不卡一区二区| 久久久久久99精品| 色爱区综合激月婷婷| 日本午夜精品一区二区三区电影| 久久久精品国产99久久精品芒果| 93久久精品日日躁夜夜躁欧美| 亚洲成人激情社区| 国产亚洲精品福利| 欧美色图天堂网|