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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? zmodemr.c

?? 本source code 為s3c4510的bootloader
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#ifndef lintstatic const char rcsid[] = "$Id: zmodemr.c,v 1.1.1.1 2001/03/08 00:01:48 efalk Exp $" ;#endif/* * Copyright (c) 1995 by Edward A. Falk *//********** * * *	@@@@@  @   @   @@@   @@@@   @@@@@  @   @  @@@@    *	   @   @@ @@  @   @  @   @  @      @@ @@  @   @   *	  @    @ @ @  @   @  @   @  @@@    @ @ @  @@@@    *	 @     @ @ @  @   @  @   @  @      @ @ @  @  @    *	@@@@@  @ @ @   @@@   @@@@   @@@@@  @ @ @  @   @   * *	ZMODEMR - receive side of zmodem protocol * * receive side of zmodem protocol * * This code is designed to be called from inside a larger * program, so it is implemented as a state machine where * practical. * * functions: * *	ZmRInit(ZModem *info) *		Initiate a connection * *	ZmRAbort(ZModem *info) *		abort transfer * * all functions return 0 on success, 1 on failure * * *	Edward A. Falk * *	January, 1995 * * * **********/#include "zmodem.h"#include "crctab.h"// static functions definition ///////////////////////////////////////////////static int  ZmGotSinit( ZModem *info );static int  ZmGotFile( ZModem *info );static int  ZmRequestFile( ZModem *info, u_long crc );static void ZmParseFileName( ZModem *info, char *fileinfo );static int  ZmGotFileCrc( ZModem *info );static int  ZmGotData( ZModem *info );static int  ZmFileError( ZModem *info, int type, int data );static int  ZmGotEof( ZModem *info );static int  ZmGotFin( ZModem *info );static int  ZmGotFreecnt( ZModem *info );static int  ZmProcessPacket( ZModem *info );static int  ZmRejectPacket( ZModem *info );static int  ZmAcceptPacket( ZModem *info );static int  ZmCalcCrc( u_char *str, int len );//extern	int	errno ;static	u_char	ZmZeros[4] = {0,0,0,0} ;int ZmRInit(ZModem *info){ info->packetCount = 0; info->offset      = 0; info->errCount    = 0; info->escCtrl     = info->escHibit = info->atSign = info->escape = 0; info->InputState  = Idle; info->canCount    = info->chrCount = 0; info->filename    = NULL; info->interrupt   = 0; info->waitflag    = 0; info->attn        = NULL; info->file        = NULL;/* set buffer pointer to allocation buffer */ info->buffer = info->bufferalloc; info->state = RStart ; info->timeoutCount = 0 ; ZIFlush(info) ;	/* Don't send ZRINIT right away, there might be a ZRQINIT in	 * the input buffer.  Instead, set timeout to zero and return.	 * This will allow ZmRcv() to check the input stream first.	 * If nothing found, a ZRINIT will be sent immediately.	 */ info->timeout = 0 ;#ifdef ZMODEMLOG zmodemlog("ZmRInit[%s]: flush input, new state = RStart\n",    ZmSname(info)) ;#endif 								// ZMODEMLOG return(0);}int YmodemRInit(ZModem *info){ info->errCount   = 0; info->InputState = Yrcv; info->canCount   = info->chrCount = 0; info->noiseCount = 0; info->filename   = NULL; info->file       = NULL; if( info->buffer == NULL )  {/* set buffer pointer to allocation buffer */    info->buffer = info->bufferalloc;  } info->state = YRStart ; info->packetCount = -1 ; info->timeoutCount = 0 ; info->timeout = 10 ; info->offset = 0 ; ZIFlush(info) ; return(ZXmitStr((u_char *)"C", 1, info));}		/* sent ZRINIT, waiting for ZSINIT or ZFILE */	StateTable	RStartOps[] = {	  {ZSINIT,ZmGotSinit,0,1,RSinitWait},	/* SINIT, wait for attn str */	  {ZFILE,ZmGotFile,0,0,RFileName},	/* FILE, wait for filename */	  {ZRQINIT,ZmSendRinit,0,1,RStart},	/* sender confused, resend */	  {ZFIN,ZmGotFin,1,0,RFinish},		/* sender shutting down */	  {ZNAK,ZmSendRinit,1,0,RStart},		/* RINIT was bad, resend */#ifdef	TODO	  {ZCOMPL,f,1,1,s},#endif	/* TODO */	  {ZFREECNT,ZmGotFreecnt,0,0,RStart},	/* sender wants free space */	  {ZCOMMAND,ZmGotCommand,0,0,CommandData}, /* sender wants command */	  {ZSTDERR,ZmGotStderr,0,0,StderrData},	/* sender wants to send msg */	  {99,ZmZPF,0,0,RStart},			/* anything else is an error */	} ;	StateTable	RSinitWaitOps[] = {	/* waiting for data */	  {99,ZmZPF,0,0,RSinitWait},	} ;	StateTable	RFileNameOps[] = {	/* waiting for file name */	  {99,ZmZPF,0,0,RFileName},	} ;	StateTable	RCrcOps[] = {		/* waiting for CRC */	  {ZCRC,ZmGotFileCrc,0,0,RFile},		  /* sender sent it */	  {ZNAK,ZmResendCrcReq,0,0,RCrc},		  /* ZCRC was bad, resend */	  {ZRQINIT,ZmSendRinit,1,1,RStart},	  /* sender confused, restart */	  {ZFIN,ZmGotFin,1,1,RFinish},		  /* sender signing off */	  {99,ZmZPF,0,0,RCrc},	} ;	StateTable	RFileOps[] = {		/* waiting for ZDATA */	  {ZDATA,ZmGotData,0,0,RData},		  /* got it */	  {ZNAK,ZmResendRpos,0,0,RFile},		  /* ZRPOS was bad, resend */	  {ZEOF,ZmGotEof,0,0,RStart},		  /* end of file */	  {ZRQINIT,ZmSendRinit,1,1,RStart},	  /* sender confused, restart */	  {ZFILE,ZmResendRpos,0,0,RFile},		  /* ZRPOS was bad, resend */	  {ZFIN,ZmGotFin,1,1,RFinish},		  /* sender signing off */	  {99,ZmZPF,0,0,RFile},	} ;	/* waiting for data, but a packet could possibly arrive due	 * to error recovery or something	 */	StateTable	RDataOps[] = {	  {ZRQINIT,ZmSendRinit,1,1,RStart},	/* sender confused, restart */	  {ZFILE,ZmGotFile,0,1,RFileName},	/* start a new file (??) */	  {ZNAK,ZmResendRpos,1,1,RFile},		/* ZRPOS was bad, resend */	  {ZFIN,ZmGotFin,1,1,RFinish},		/* sender signing off */	  {ZDATA,ZmGotData,0,1,RData},		/* file data follows */	  {ZEOF,ZmGotEof,1,1,RStart},		/* end of file */	  {99,ZmZPF,0,0,RData},	} ;	/* here if we've sent ZFERR or ZABORT.  Waiting for ZFIN */	StateTable	RFinishOps[] = {	  {ZRQINIT,ZmSendRinit,1,1,RStart},	/* sender confused, restart */	  {ZFILE,ZmGotFile,1,1,RFileName},	/* start a new file */	  {ZNAK,ZmGotFin,1,1,RFinish},		/* resend ZFIN */	  {ZFIN,ZmGotFin,1,1,RFinish},		/* sender signing off */	  {99,ZmZPF,0,0,RFinish},	} ;extern	char	*hdrnames[] ;/* RECEIVE-RELATED STUFF BELOW HERE *//* resend ZRINIT header in response to ZRQINIT or ZNAK header */int ZmSendRinit( ZModem *info ){ u_char	dbuf[4] ;#ifdef	COMMENT if( info->timeoutCount >= 5 )	  /* TODO: switch to Ymodem */#endif	/* COMMENT */#ifdef ZMODEMLOG zmodemlog("SendRinit[%s]: send ZRINIT\n", ZmSname(info)) ;#endif 								// ZMODEMLOG info->timeout = ResponseTime ; dbuf[0] = info->bufsize&0xff ; dbuf[1] = (info->bufsize>>8)&0xff ; dbuf[2] = 0 ; dbuf[3] = info->zrinitflags ; return(ZXmitHdrHex(ZRINIT, dbuf, info));}	/* received a ZSINIT header in response to ZRINIT */static	int ZmGotSinit( ZModem *info ){#ifdef ZMODEMLOG	zmodemlog("GotSinit[%s]: call dataSetup\n", ZmSname(info)) ;#endif 								// ZMODEMLOG	info->zsinitflags = info->hdrData[4] ;	info->escCtrl = info->zsinitflags & TESCCTL ;	info->escHibit = info->zsinitflags & TESC8 ;	ZFlowControl(1, info) ;	return ZmDataSetup(info) ;}	/* received rest of ZSINIT packet */int ZmGotSinitData( ZModem *info, int crcGood ){ info->InputState = Idle; info->chrCount=0 ; info->state = RStart ;#ifdef ZMODEMLOG zmodemlog("GotSinitData[%s]: crcGood=%d\n", ZmSname(info), crcGood) ;#endif 								// ZMODEMLOG if( !crcGood )  {   return ZXmitHdrHex(ZNAK, ZmZeros, info) ;  } info->attn = NULL; if(info->buffer[0] != '\0' )  {   int pos;				/* buffer position */   info->attn = info->attnbuf;		/* set attn pointer to buffer */   pos = 0;				/* start position */   while(1)    {     if(pos + 1 >= sizeof(info->attnbuf))      {       info->attnbuf[pos] = '\0';	/* terminating character */       break;      }     info->attnbuf[pos] = *(info->buffer + pos);     if(info->attnbuf[pos] == '\0')      {       break;      } //      pos++;    }  } return(ZXmitHdrHex(ZACK, ZEnc4(SerialNo), info));}	/* got ZFILE.  Cache flags and set up to receive filename */static	int ZmGotFile( ZModem *info ){#ifdef ZMODEMLOG	zmodemlog("GotFile[%s]: call dataSetup\n", ZmSname(info)) ;#endif 								// ZMODEMLOG	info->errCount = 0 ;	info->f0 = info->hdrData[4] ;	info->f1 = info->hdrData[3] ;	info->f2 = info->hdrData[2] ;	info->f3 = info->hdrData[1] ;	return ZmDataSetup(info) ;}	/* utility: see if ZOpenFile wants this file, and if	 * so, request it from sender.	 */static	int ZmRequestFile( ZModem *info, u_long crc ){/* open file in write mode (last parameter 1) */ info->file = ZOpenFile((char *)info->buffer, crc, info, 1); if( info->file == NULL )   {#ifdef ZMODEMLOG   zmodemlog("requestFile[%s]: send ZSKIP\n", ZmSname(info)) ;#endif 								// ZMODEMLOG   info->state = RStart ;   ZStatus(FileSkip, 0, info->filename) ;   return ZXmitHdrHex(ZSKIP, ZmZeros, info) ;  } else   {#ifdef ZMODEMLOG   zmodemlog("ZmRequestFile[%s]: send ZRPOS(%ld)\n",    ZmSname(info), info->offset) ;#endif 								// ZMODEMLOG   info->offset = info->f0 == ZCRESUM ? ZFileTell(info->file, info) : 0 ;   info->state = RFile;   ZStatus(FileBegin, 0, info->filename) ;   return ZXmitHdrHex(ZRPOS, ZEnc4(info->offset), info) ;  }}/* read long from string */static  long ZmGetLong(char * buf, int * pos, int radix){ long val;				/* return value */  if(buf == 0 || pos == 0)  {   return(0);  }  /* skeep leading zeros */  while(*(buf + *pos) == ' ') { (*pos) += 1; }  if(*(buf + *pos) == '\0')  {   return(0);  } // val = 0;				/* start return value */ while(1)  {   u_char ch;				   ch = *(buf + *pos); 			/* read character from buffer */       if(radix == 10)    {/* decimal */     if(ch >= '0' && ch <= '9')      {       val = val * 10 + (ch - '0');      }     else      {       break;      }    }   else   if(radix ==  8)    {/* octal */     if(ch >= '0' && ch <= '7')      {       val = (val << 3) | (ch - '0');      }     else      {       break;      }    }              else   if(radix == 16)    {/* hexadecimal */     if(ch >= '0' && ch <= '9')      {       val = (val << 4) | (ch - '0');            }     else     if(ch >= 'a' && ch <= 'f')      {       val = (val << 4) | (10 + (ch - 'a'));            }     else     if(ch >= 'A' && ch <= 'F')      {       val = (val << 4) | (10 + (ch - 'A'));      }     else      {       break;      }    }//    (*pos) += 1;				/* move to next position */  }//  return(val);}/* parse filename info. */static	void ZmParseFileName( ZModem *info, char *fileinfo ){ int serial = 0; int pos; info->len      = 0; info->mode     = 0; info->filesRem = 0; info->bytesRem = 0; info->fileType = 0;//  info->filename = info->filenamebuf;//  pos = 0; while(*(fileinfo + pos) != '\0')  {   if(pos < sizeof(info->filenamebuf))    {     info->filenamebuf[pos] = *(fileinfo+pos);    }   pos++;   } if(pos >= sizeof(info->filenamebuf))  {   info->filenamebuf[sizeof(info->filenamebuf) - 1] = '\0';  } else  {   info->filenamebuf[pos] = '\0';  }//  pos += 1;				/* skip terminating null */ info->len 	= ZmGetLong(fileinfo, & pos, 10); /* %d */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本aⅴ免费视频一区二区三区 | 国产精品三级在线观看| 欧美综合久久久| 成人成人成人在线视频| 丁香婷婷综合五月| 国产一区二区不卡老阿姨| 极品尤物av久久免费看| 精品一区二区三区在线播放| 久久99久国产精品黄毛片色诱| 日韩电影在线观看电影| 免费欧美高清视频| 国产在线精品一区二区不卡了 | 欧美色大人视频| 欧美伊人久久大香线蕉综合69| 色偷偷久久人人79超碰人人澡| 色哟哟一区二区三区| 91国产丝袜在线播放| 欧美系列日韩一区| 91极品视觉盛宴| 久久精品人人做| 婷婷中文字幕综合| 国产日韩欧美精品综合| 欧美激情综合在线| 亚洲丝袜另类动漫二区| 亚洲午夜影视影院在线观看| 亚洲bt欧美bt精品777| 免费人成精品欧美精品| 国产一区二区电影| 99久久国产综合精品麻豆 | 精品国产乱码久久久久久蜜臀| 亚洲精品在线一区二区| 国产无一区二区| 一区二区三区在线免费播放| 无吗不卡中文字幕| 国产一区二区三区观看| 91麻豆自制传媒国产之光| 欧美日韩国产综合视频在线观看| 日韩天堂在线观看| 国产精品三级电影| 天天色图综合网| 国产麻豆成人精品| 欧洲av一区二区嗯嗯嗯啊| 日韩一区二区高清| 日韩一区日韩二区| 免费精品视频在线| 成人黄色大片在线观看| 欧美日韩第一区日日骚| 国产亚洲一区二区三区在线观看| 成人午夜视频在线观看| 日韩一区二区三区视频| 色婷婷综合久久久久中文一区二区| 欧美精品日日鲁夜夜添| 中文在线资源观看网站视频免费不卡| 亚洲欧洲日韩综合一区二区| 首页综合国产亚洲丝袜| 大尺度一区二区| 欧美日韩1区2区| 日本一区二区三区国色天香| 亚洲成av人片| k8久久久一区二区三区| 日韩亚洲欧美综合| 亚洲精品乱码久久久久久黑人| 九九精品视频在线看| 在线观看亚洲成人| 欧美国产精品久久| 日韩成人一级片| 色呦呦国产精品| 国产午夜亚洲精品羞羞网站| 日日欢夜夜爽一区| 91美女视频网站| 久久久久久黄色| 日韩电影免费一区| 91激情在线视频| 国产日韩综合av| 麻豆91免费看| 欧洲色大大久久| 亚洲激情第一区| 91亚洲精华国产精华精华液| 精品动漫一区二区三区在线观看| 亚洲成人动漫一区| 日本最新不卡在线| 91精品福利在线| 国产片一区二区三区| 美国av一区二区| 欧美精品日韩一本| 亚洲小说欧美激情另类| 99久久精品一区| 国产精品美女久久久久久久久| 九色|91porny| 日韩欧美一区二区三区在线| 午夜成人在线视频| 欧美日韩国产综合草草| 一区二区三区欧美日| 99免费精品在线观看| 国产欧美一区二区三区鸳鸯浴 | 精品国产乱码久久久久久老虎| 午夜成人在线视频| 欧美精品丝袜中出| 三级精品在线观看| 精品一区二区三区欧美| 在线不卡免费av| 亚洲欧洲综合另类| 91免费精品国自产拍在线不卡| 亚洲国产岛国毛片在线| 成熟亚洲日本毛茸茸凸凹| 国产欧美精品国产国产专区| 粉嫩一区二区三区性色av| 欧美国产精品专区| 91免费观看在线| 亚洲综合在线五月| 欧美日韩一级大片网址| 婷婷国产在线综合| 777xxx欧美| 精品中文字幕一区二区| 久久女同精品一区二区| 国产成人在线看| 国产精品国产自产拍高清av| 91毛片在线观看| 亚洲一区二区偷拍精品| 51精品秘密在线观看| 久久精品99国产精品日本| 久久人人爽人人爽| 不卡的看片网站| 亚洲午夜日本在线观看| 91精品婷婷国产综合久久性色| 奇米综合一区二区三区精品视频 | 欧美高清在线精品一区| 99久久久久久| 无吗不卡中文字幕| 精品999在线播放| 成人18精品视频| 亚洲图片欧美色图| 欧美成人三级在线| 成人不卡免费av| 亚洲1区2区3区视频| 欧美成人猛片aaaaaaa| 成人ar影院免费观看视频| 亚洲国产人成综合网站| 欧美成va人片在线观看| 成人免费av资源| 水蜜桃久久夜色精品一区的特点| wwwwxxxxx欧美| 色悠悠久久综合| 久久99精品久久久久久国产越南| 美女一区二区视频| 欧美高清在线精品一区| 欧美日韩激情一区二区| 国产乱淫av一区二区三区 | 精品夜夜嗨av一区二区三区| 国产精品全国免费观看高清| 欧美日韩精品欧美日韩精品| 国精品**一区二区三区在线蜜桃| 一色桃子久久精品亚洲| 欧美一级黄色大片| 99国产精品久久久久久久久久| 日韩精品电影在线观看| 中文字幕精品—区二区四季| 在线播放91灌醉迷j高跟美女| 国产成人自拍网| 日韩不卡手机在线v区| 国产精品夫妻自拍| 欧美va亚洲va在线观看蝴蝶网| 91美女视频网站| 国产成人av自拍| 三级欧美韩日大片在线看| 亚洲视频一区在线| 欧美精品一区二区三区蜜桃视频| 在线观看成人小视频| 国产1区2区3区精品美女| 日韩综合在线视频| 亚洲女人的天堂| 国产网站一区二区| 日韩一级精品视频在线观看| 在线欧美一区二区| 国产成人av一区二区| 免费看欧美女人艹b| 亚洲一区在线看| 1024国产精品| 久久蜜桃av一区二区天堂| 欧美一区二区三区四区久久| 在线亚洲一区二区| 成人久久视频在线观看| 国内精品国产三级国产a久久| 视频一区中文字幕| 一区二区三区中文在线观看| 国产精品亲子伦对白| 精品国产乱码久久久久久蜜臀| 911精品国产一区二区在线| 欧美在线free| 色哟哟日韩精品| 99国产精品视频免费观看| 成人小视频在线观看| 国产大陆a不卡| 极品销魂美女一区二区三区| 日韩精品欧美精品| 日韩高清欧美激情| 亚洲mv在线观看| 亚洲国产婷婷综合在线精品| 亚洲精品视频免费看| 亚洲日本va在线观看|