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

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

?? misc-common.c

?? 根據添加了fs2410平臺的arch目錄
?? C
字號:
/* * arch/ppc/boot/common/misc-common.c *  * Misc. bootloader code (almost) all platforms can use * * Author: Johnnie Peters <jpeters@mvista.com> * Editor: Tom Rini <trini@mvista.com> * * Derived from arch/ppc/boot/prep/misc.c * * Copyright 2000-2001 MontaVista Software Inc. * * This program is free software; you can redistribute  it and/or modify it * under  the terms of  the GNU General  Public License as published by the * Free Software Foundation;  either version 2 of the  License, or (at your * option) any later version. * * THIS  SOFTWARE  IS PROVIDED   ``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. * * You should have received a copy of the  GNU General Public License along * with this program; if not, write  to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */#include <stdarg.h>	/* for va_ bits */#include <linux/config.h>#include "zlib.h"#include "nonstdio.h"/* If we're on a ALL_PPC, assume we have a keyboard controller * Also note, if we're not ALL_PPC, we assume you are a serial * console - Tom */#if defined(CONFIG_ALL_PPC) && defined(CONFIG_VGA_CONSOLE)extern void cursor(int x, int y);extern void scroll(void);extern char *vidmem;extern int lines, cols;extern int orig_x, orig_y;extern int keyb_present;extern int CRT_tstc(void);extern int CRT_getc(void);#elseint cursor(int x, int y) {return 0;}void scroll(void) {}char vidmem[1];#define lines 0#define cols 0int orig_x = 0;int orig_y = 0;#define keyb_present 0int CRT_tstc(void) {return 0;}int CRT_getc(void) {return 0;}#endifextern char *avail_ram;extern char *end_avail;extern char _end[];void puts(const char *);void putc(const char c);void puthex(unsigned long val);void _bcopy(char *src, char *dst, int len);void gunzip(void *, int, unsigned char *, int *);static int _cvt(unsigned long val, char *buf, long radix, char *digits);void _vprintk(void(*putc)(const char), const char *fmt0, va_list ap);unsigned char *ISA_io = NULL;#if defined(CONFIG_SERIAL_CONSOLE)extern unsigned long com_port;extern int serial_tstc(unsigned long com_port);extern unsigned char serial_getc(unsigned long com_port);extern void serial_putc(unsigned long com_port, unsigned char c);#endifvoid pause(void){	puts("pause\n");}void exit(void){	puts("exit\n");	while(1); }int tstc(void){#if defined(CONFIG_SERIAL_CONSOLE)	if(keyb_present)		return (CRT_tstc() || serial_tstc(com_port));	else		return (serial_tstc(com_port));#else	return CRT_tstc();#endif}int getc(void){	while (1) {#if defined(CONFIG_SERIAL_CONSOLE)		if (serial_tstc(com_port))			return (serial_getc(com_port));#endif /* CONFIG_SERIAL_CONSOLE */		if (keyb_present)			if(CRT_tstc())				return (CRT_getc());	}}void putc(const char c){	int x,y;#if defined(CONFIG_SERIAL_CONSOLE)	serial_putc(com_port, c);	if ( c == '\n' )		serial_putc(com_port, '\r');#endif /* CONFIG_SERIAL_CONSOLE */	x = orig_x;	y = orig_y;	if ( c == '\n' ) {		x = 0;		if ( ++y >= lines ) {			scroll();			y--;		}	} else if (c == '\r') {		x = 0;	} else if (c == '\b') {		if (x > 0) {			x--;		}	} else {		vidmem [ ( x + cols * y ) * 2 ] = c; 		if ( ++x >= cols ) {			x = 0;			if ( ++y >= lines ) {				scroll();				y--;			}		}	}	cursor(x, y);	orig_x = x;	orig_y = y;}void puts(const char *s){	int x,y;	char c;	x = orig_x;	y = orig_y;	while ( ( c = *s++ ) != '\0' ) {#if defined(CONFIG_SERIAL_CONSOLE)	        serial_putc(com_port, c);	        if ( c == '\n' ) serial_putc(com_port, '\r');#endif /* CONFIG_SERIAL_CONSOLE */		if ( c == '\n' ) {			x = 0;			if ( ++y >= lines ) {				scroll();				y--;			}		} else if (c == '\b') {		  if (x > 0) {		    x--;		  }		} else {			vidmem [ ( x + cols * y ) * 2 ] = c; 			if ( ++x >= cols ) {				x = 0;				if ( ++y >= lines ) {					scroll();					y--;				}			}		}	}	cursor(x, y);	orig_x = x;	orig_y = y;}void error(char *x){	puts("\n\n");	puts(x);	puts("\n\n -- System halted");	while(1);	/* Halt */}void *zalloc(void *x, unsigned items, unsigned size){	void *p = avail_ram;		size *= items;	size = (size + 7) & -8;	avail_ram += size;	if (avail_ram > end_avail) {		puts("oops... out of memory\n");		pause();	}	return p;}void zfree(void *x, void *addr, unsigned nb){}#define HEAD_CRC	2#define EXTRA_FIELD	4#define ORIG_NAME	8#define COMMENT		0x10#define RESERVED	0xe0#define DEFLATED	8void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp){	z_stream s;	int r, i, flags;		/* skip header */	i = 10;	flags = src[3];	if (src[2] != DEFLATED || (flags & RESERVED) != 0) {		puts("bad gzipped data\n");		exit();	}	if ((flags & EXTRA_FIELD) != 0)		i = 12 + src[10] + (src[11] << 8);	if ((flags & ORIG_NAME) != 0)		while (src[i++] != 0)			;	if ((flags & COMMENT) != 0)		while (src[i++] != 0)			;	if ((flags & HEAD_CRC) != 0)		i += 2;	if (i >= *lenp) {		puts("gunzip: ran out of data in header\n");		exit();	}		s.zalloc = zalloc;	s.zfree = zfree;	r = inflateInit2(&s, -MAX_WBITS);	if (r != Z_OK) {		puts("inflateInit2 returned "); puthex(r); puts("\n");		exit();	}	s.next_in = src + i;	s.avail_in = *lenp - i;	s.next_out = dst;	s.avail_out = dstlen;	r = inflate(&s, Z_FINISH);	if (r != Z_OK && r != Z_STREAM_END) {		puts("inflate returned "); puthex(r); puts("\n");		exit();	}	*lenp = s.next_out - (unsigned char *) dst;	inflateEnd(&s);}voidputhex(unsigned long val){	unsigned char buf[10];	int i;	for (i = 7;  i >= 0;  i--)	{		buf[i] = "0123456789ABCDEF"[val & 0x0F];		val >>= 4;	}	buf[8] = '\0';	puts(buf);}#define FALSE 0#define TRUE  1void_printk(char const *fmt, ...){	va_list ap;	va_start(ap, fmt);	_vprintk(putc, fmt, ap);	va_end(ap);	return;}#define is_digit(c) ((c >= '0') && (c <= '9'))void_vprintk(void(*putc)(const char), const char *fmt0, va_list ap){	char c, sign, *cp = 0;	int left_prec, right_prec, zero_fill, length = 0, pad, pad_on_right;	char buf[32];	long val;	while ((c = *fmt0++))	{		if (c == '%')		{			c = *fmt0++;			left_prec = right_prec = pad_on_right = 0;			if (c == '-')			{				c = *fmt0++;				pad_on_right++;			}			if (c == '0')			{				zero_fill = TRUE;				c = *fmt0++;			} else			{				zero_fill = FALSE;			}			while (is_digit(c))			{				left_prec = (left_prec * 10) + (c - '0');				c = *fmt0++;			}			if (c == '.')			{				c = *fmt0++;				zero_fill++;				while (is_digit(c))				{					right_prec = (right_prec * 10) + (c - '0');					c = *fmt0++;				}			} else			{				right_prec = left_prec;			}			sign = '\0';			switch (c)			{			case 'd':			case 'x':			case 'X':				val = va_arg(ap, long);				switch (c)				{				case 'd':					if (val < 0)					{						sign = '-';						val = -val;					}					length = _cvt(val, buf, 10, "0123456789");					break;				case 'x':					length = _cvt(val, buf, 16, "0123456789abcdef");					break;				case 'X':					length = _cvt(val, buf, 16, "0123456789ABCDEF");					break;				}				cp = buf;				break;			case 's':				cp = va_arg(ap, char *);				length = strlen(cp);				break;			case 'c':				c = va_arg(ap, long /*char*/);				(*putc)(c);				continue;			default:				(*putc)('?');			}			pad = left_prec - length;			if (sign != '\0')			{				pad--;			}			if (zero_fill)			{				c = '0';				if (sign != '\0')				{					(*putc)(sign);					sign = '\0';				}			} else			{				c = ' ';			}			if (!pad_on_right)			{				while (pad-- > 0)				{					(*putc)(c);				}			}			if (sign != '\0')			{				(*putc)(sign);			}			while (length-- > 0)			{				(*putc)(c = *cp++);				if (c == '\n')				{					(*putc)('\r');				}			}			if (pad_on_right)			{				while (pad-- > 0)				{					(*putc)(c);				}			}		} else		{			(*putc)(c);			if (c == '\n')			{				(*putc)('\r');			}		}	}}int_cvt(unsigned long val, char *buf, long radix, char *digits){	char temp[80];	char *cp = temp;	int length = 0;	if (val == 0)	{ /* Special case */		*cp++ = '0';	} else		while (val)		{			*cp++ = digits[val % radix];			val /= radix;		}	while (cp != temp)	{		*buf++ = *--cp;		length++;	}	*buf = '\0';	return (length);}void_dump_buf_with_offset(unsigned char *p, int s, unsigned char *base){	int i, c;	if ((unsigned int)s > (unsigned int)p)	{		s = (unsigned int)s - (unsigned int)p;	}	while (s > 0)	{		if (base)		{			_printk("%06X: ", (int)p - (int)base);		} else		{			_printk("%06X: ", p);		}		for (i = 0;  i < 16;  i++)		{			if (i < s)			{				_printk("%02X", p[i] & 0xFF);			} else			{				_printk("  ");			}			if ((i % 2) == 1) _printk(" ");			if ((i % 8) == 7) _printk(" ");		}		_printk(" |");		for (i = 0;  i < 16;  i++)		{			if (i < s)			{				c = p[i] & 0xFF;				if ((c < 0x20) || (c >= 0x7F)) c = '.';			} else			{				c = ' ';			}			_printk("%c", c);		}		_printk("|\n");		s -= 16;		p += 16;	}}void_dump_buf(unsigned char *p, int s){	_printk("\n");	_dump_buf_with_offset(p, s, 0);}/* Very simple inb/outb routines.  We declare ISA_io to be 0 above, and * then modify it on platforms which need to.  We do it like this * because on some platforms we give inb/outb an exact location, and * on others it's an offset from a given location. -- Tom */voidoutb(int port, unsigned char val){	/* Ensure I/O operations complete */	__asm__ volatile("eieio");	ISA_io[port] = val;}unsigned charinb(int port){	/* Ensure I/O operations complete */	__asm__ volatile("eieio");	return (ISA_io[port]);}/* * Local variables: *  c-indent-level: 8 *  c-basic-offset: 8 *  tab-width: 8 * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片在www色猫咪| 日本中文字幕一区二区有限公司| 伊人一区二区三区| 国产中文一区二区三区| 91蜜桃免费观看视频| 欧美精品一区二区在线播放| 亚洲一区二区欧美日韩| eeuss鲁片一区二区三区| 91精品国产乱码| 亚洲电影一级黄| 色综合色狠狠综合色| 久久人人爽人人爽| 轻轻草成人在线| 欧美巨大另类极品videosbest| 日本一区二区电影| 国产精品夜夜爽| 日韩久久精品一区| 日韩激情一区二区| 欧美日韩一卡二卡三卡| 夜夜精品浪潮av一区二区三区| 国产suv精品一区二区三区| www激情久久| 另类调教123区| 欧美一区二区精品久久911| 亚洲国产成人av网| 欧美色图一区二区三区| 亚洲一区二区精品视频| 欧洲精品中文字幕| 亚洲愉拍自拍另类高清精品| 91碰在线视频| 亚洲综合视频网| 欧美特级限制片免费在线观看| 亚洲天堂久久久久久久| 一本色道久久综合精品竹菊| 日韩毛片高清在线播放| 99久久99久久综合| 一级特黄大欧美久久久| 欧美在线一区二区三区| 亚洲午夜一二三区视频| 欧美视频一区二区在线观看| 日韩精品久久久久久| 日韩一级片网站| 国产成人免费在线视频| 欧美国产综合一区二区| 99re在线视频这里只有精品| 一区二区三区毛片| 91精品国产乱码| 国产成人午夜视频| 亚洲欧美一区二区三区孕妇| 日本黄色一区二区| 日韩av不卡在线观看| 精品精品国产高清一毛片一天堂| 成人中文字幕电影| 亚洲午夜久久久| 欧美不卡一区二区三区四区| 国产成人在线影院| 一区二区在线观看视频| 777久久久精品| 国产成人自拍网| 亚洲第一搞黄网站| 亚洲精品一区二区三区香蕉| 成人免费av在线| 石原莉奈在线亚洲二区| 国产亚洲午夜高清国产拍精品| 91视频国产观看| 久久综合综合久久综合| 成人欧美一区二区三区1314| 欧美色综合网站| 国产精品白丝av| 亚洲午夜在线视频| 国产精品婷婷午夜在线观看| 欧美影院精品一区| 国产精品一品二品| 婷婷中文字幕综合| 亚洲私人黄色宅男| 欧美精品一区视频| 欧美日本高清视频在线观看| 夫妻av一区二区| 视频一区二区不卡| 亚洲蜜臀av乱码久久精品| 欧美成人乱码一区二区三区| 91成人免费在线| 国产成人av电影在线观看| 午夜精品久久一牛影视| 欧美极品另类videosde| 日韩欧美一区中文| 色欧美88888久久久久久影院| 麻豆高清免费国产一区| 亚洲与欧洲av电影| 日韩毛片精品高清免费| 国产亚洲美州欧州综合国| 制服丝袜国产精品| 欧美偷拍一区二区| 色偷偷一区二区三区| 粉嫩aⅴ一区二区三区四区五区 | 国产白丝网站精品污在线入口| 亚洲图片欧美视频| 国产精品国产三级国产专播品爱网| 日韩欧美二区三区| 精品粉嫩超白一线天av| 欧美日韩国产中文| 91麻豆.com| 不卡视频在线观看| 国产精品99久久久久久宅男| 极品销魂美女一区二区三区| 日韩精品亚洲专区| 日产国产高清一区二区三区| 午夜精品一区二区三区三上悠亚| 亚洲人成人一区二区在线观看| 国产欧美精品国产国产专区| 国产亚洲va综合人人澡精品| 日韩欧美国产一区二区三区| 欧美一区二区在线看| 欧美日韩电影一区| 欧美一区二区视频在线观看| 91麻豆精品国产91久久久久久久久 | 国产欧美在线观看一区| 久久久国产综合精品女国产盗摄| 欧美成人video| 精品日韩一区二区三区| 欧美成人一区二区三区片免费 | 亚洲欧洲国产日本综合| 欧美激情一区二区| 中文字幕一区不卡| 亚洲免费观看高清完整版在线 | 中文字幕免费观看一区| 中文字幕一区二区三区在线不卡| 国产精品久久网站| 中文字幕在线播放不卡一区| 成人欧美一区二区三区白人| 亚洲愉拍自拍另类高清精品| 亚洲18女电影在线观看| 久久er精品视频| 国产91精品一区二区麻豆亚洲| 99久久综合国产精品| 欧美午夜精品理论片a级按摩| 欧美伦理影视网| 精品区一区二区| 国产精品卡一卡二| 亚洲成人777| 国产综合成人久久大片91| 99久久精品免费看国产| 欧美日韩精品三区| 欧美成人免费网站| 国产精品久久久久久久久果冻传媒| 亚洲免费三区一区二区| 午夜精品福利久久久| 精品一二三四在线| 91色porny蝌蚪| 欧美不卡一区二区| 亚洲女厕所小便bbb| 日本一不卡视频| www.av精品| 日韩一区二区三区免费看| 国产精品入口麻豆九色| 亚洲h动漫在线| 成人精品视频.| 日韩欧美国产电影| 亚洲欧美日韩国产手机在线| 久久99深爱久久99精品| 久久久91精品国产一区二区精品| 日韩一区在线播放| 国产综合色精品一区二区三区| 91国产视频在线观看| 久久久国产精品麻豆| 日韩制服丝袜先锋影音| aaa亚洲精品一二三区| 日韩一卡二卡三卡四卡| 亚洲在线一区二区三区| 国产成人av福利| 日韩三级电影网址| 亚洲电影视频在线| 91欧美激情一区二区三区成人| 日韩精品专区在线| 亚洲成av人片在www色猫咪| 成人在线视频一区二区| 精品少妇一区二区三区免费观看 | 91丨九色丨黑人外教| wwww国产精品欧美| 亚洲高清在线精品| 色哟哟国产精品| 中文字幕亚洲在| 国产精品一区2区| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产一区二区三区观看| 欧美丰满嫩嫩电影| 一区二区三区国产精华| 成人app软件下载大全免费| 久久欧美中文字幕| 久久99精品久久久| 在线综合亚洲欧美在线视频| 亚洲国产色一区| 91福利视频网站| 一区二区在线观看视频| 色综合一个色综合| 日韩一区在线看| 97精品久久久久中文字幕| 国产精品美女www爽爽爽| 成人激情动漫在线观看| 国产精品久久久久婷婷|