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

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

?? zs.c

?? linux和2410結(jié)合開(kāi)發(fā) 用他可以生成2410所需的zImage文件
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
				 * everything in I/O is implicitly mapped				 * anyways by our clever TLB miss handling				 * scheme, so don't fail here.  -DaveM				 */				if (central_bus == NULL) {					for_each_sbus(sbus) {						for_each_sbusdev(sdev, sbus) {							if (sdev->prom_node == zsnode)								goto found;						}					}				}			found:				if (sdev == NULL && central_bus == NULL)					prom_halt();				if (central_bus == NULL) {					mapped_addr =					    sbus_ioremap(&sdev->resource[0], 0,							 PAGE_SIZE, "Zilog Registers");				} else {					struct linux_prom_registers zsregs[1];					int err;					err = prom_getproperty(zsnode, "reg",							       (char *)&zsregs[0],							       sizeof(zsregs));					if (err == -1) {						prom_printf("ZS: Cannot map Zilog regs.\n");						prom_halt();					}					apply_fhc_ranges(central_bus->child, &zsregs[0], 1);					apply_central_ranges(central_bus, &zsregs[0], 1);					mapped_addr =						((((u64)zsregs[0].which_io)<<32UL)|						 ((u64)zsregs[0].phys_addr));				}			} else if(len % sizeof(unsigned int)) {				prom_printf("WHOOPS:  proplen for %s "					    "was %d, need multiple of "					    "%d\n", "address", len,					    sizeof(unsigned int));				panic("zilog: address property");			}			zs_nodes[chip] = zsnode;			len = prom_getproperty(zsnode, "interrupts",					       (char *) &sun4u_ino,					       (sizeof(sun4u_ino)));			if(!irq) {				if (central_bus) {					unsigned long iclr, imap;					iclr = central_bus->child->fhc_regs.uregs + FHC_UREGS_ICLR;					imap = central_bus->child->fhc_regs.uregs + FHC_UREGS_IMAP;					irq = zilog_irq = build_irq(12, 0, iclr, imap);				} else {					irq = zilog_irq = 						sbus_build_irq(sbus_root, sun4u_ino);				}			}			break;		}		zsnode = prom_getsibling(zsnode);		seen++;	}	if(!zsnode)		panic("get_zs: whee chip not found");	if(!vaddr[0] && !mapped_addr)		panic("get_zs: whee no serial chip mappable");	if (mapped_addr != 0) {		return (struct sun_zslayout *) mapped_addr;	} else {		return (struct sun_zslayout *) prom_virt_to_phys((unsigned long)vaddr[0], 0);	}}#else /* !(__sparc_v9__) */static struct sun_zslayout * __init get_zs(int chip){	struct linux_prom_irqs tmp_irq[2];	unsigned int paddr = 0;	unsigned int vaddr[2] = { 0, 0 };	int zsnode, tmpnode, iospace, slave, len;	int cpunode = 0, bbnode = 0;	static int irq = 0;	int chipid = chip;	iospace = 0;	if(chip < 0 || chip >= NUM_SERIAL)		panic("get_zs bogon zs chip number");	if(sparc_cpu_model == sun4) {		struct resource dummy_resource;		/* Grrr, these have to be hardcoded aieee */		switch(chip) {		case 0:			paddr = 0xf1000000;			break;		case 1:			paddr = 0xf0000000;			break;		};		iospace = 0;		zs_nodes[chip] = 0;		if(!irq)			zilog_irq = irq = 12;		dummy_resource.start = paddr;		dummy_resource.end = paddr + 8 - 1;		dummy_resource.flags = IORESOURCE_IO;		vaddr[0] = sbus_ioremap(&dummy_resource, 0,					8, "Zilog Serial");	} else {		/* Can use the prom for other machine types */		zsnode = prom_getchild(prom_root_node);		if (sparc_cpu_model == sun4d) {			int no = 0;			tmpnode = zsnode;			zsnode = 0;			bbnode = 0;			while (tmpnode && (tmpnode = prom_searchsiblings(tmpnode, "cpu-unit"))) {				bbnode = prom_getchild(tmpnode);				if (bbnode && (bbnode = prom_searchsiblings(bbnode, "bootbus"))) {					if (no == (chip >> 1)) {						cpunode = tmpnode;						zsnode = prom_getchild(bbnode);						chipid = (chip & 1);						break;					}					no++;				}				tmpnode = prom_getsibling(tmpnode);			}			if (!tmpnode)				panic ("get_zs: couldn't find %dth bootbus\n", chip >> 1);		} else {			tmpnode = prom_searchsiblings(zsnode, "obio");			if(tmpnode)				zsnode = prom_getchild(tmpnode);		}		if(!zsnode)			panic("get_zs no zs serial prom node");		while(zsnode) {			zsnode = prom_searchsiblings(zsnode, "zs");			slave = prom_getintdefault(zsnode, "slave", -1);			if(slave == chipid) {				/* The one we want */				if (sparc_cpu_model != sun4d) {					len = prom_getproperty(zsnode, "address",							       (void *) vaddr,							       sizeof(vaddr));        				if (len % sizeof(unsigned int)) {						prom_printf("WHOOPS:  proplen for %s "							"was %d, need multiple of "							"%d\n", "address", len,							sizeof(unsigned int));						panic("zilog: address property");					}				} else {					/* On sun4d don't have address property :( */					struct linux_prom_registers zsreg[4];					struct resource res;										if (prom_getproperty(zsnode, "reg", (char *)zsreg, sizeof(zsreg)) == -1) {						prom_printf ("Cannot map zs regs\n");						prom_halt();					}					prom_apply_generic_ranges(bbnode, cpunode, zsreg, 1);					res.start = zsreg[0].phys_addr;					res.end = res.start + 8 - 1;					res.flags = zsreg[0].which_io | IORESOURCE_IO;					vaddr[0] = sbus_ioremap(&res, 0,								8, "Zilog Serial");				}				zs_nodes[chip] = zsnode;				len = prom_getproperty(zsnode, "intr",						       (char *) tmp_irq,						       sizeof(tmp_irq));				if (len % sizeof(struct linux_prom_irqs)) {					prom_printf(					      "WHOOPS:  proplen for %s "					      "was %d, need multiple of "					      "%d\n", "intr", len,					      sizeof(struct linux_prom_irqs));					panic("zilog: intr property");				}				if(!irq) {					irq = zilog_irq = tmp_irq[0].pri;				} else {					if(tmp_irq[0].pri != irq)						panic("zilog: bogon irqs");				}				break;			}			zsnode = prom_getsibling(zsnode);		}		if(!zsnode)			panic("get_zs whee chip not found");	}	if(!vaddr[0])		panic("get_zs whee no serial chip mappable");	return (struct sun_zslayout *)(unsigned long) vaddr[0];}#endif/* This is for the auto baud rate detection in the mouse driver. */void zs_change_mouse_baud(int newbaud){	int channel = MOUSE_LINE;	int brg;	zs_soft[channel].zs_baud = newbaud;	brg = BPS_TO_BRG(zs_soft[channel].zs_baud,			 (ZS_CLOCK / zs_soft[channel].clk_divisor));	write_zsreg(zs_soft[channel].zs_channel, R12, (brg & 0xff));	write_zsreg(zs_soft[channel].zs_channel, R13, ((brg >> 8) & 0xff));}void __init zs_init_alloc_failure(const char *table_name){	prom_printf("zs_probe: Cannot alloc %s.\n", table_name);	prom_halt();}void * __init zs_alloc_bootmem(unsigned long size){	void *ret;	ret = __alloc_bootmem(size, SMP_CACHE_BYTES, 0UL);	if (ret != NULL)		memset(ret, 0, size);	return ret;}void __init zs_alloc_tables(void){	zs_chips = (struct sun_zslayout **)		zs_alloc_bootmem(NUM_SERIAL * sizeof(struct sun_zslayout *));	if (zs_chips == NULL)		zs_init_alloc_failure("zs_chips");	zs_channels = (struct sun_zschannel **)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct sun_zschannel *));	if (zs_channels == NULL)		zs_init_alloc_failure("zs_channels");	zs_nodes = (int *)		zs_alloc_bootmem(NUM_SERIAL * sizeof(int));	if (zs_nodes == NULL)		zs_init_alloc_failure("zs_nodes");	zs_soft = (struct sun_serial *)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct sun_serial));	if (zs_soft == NULL)		zs_init_alloc_failure("zs_soft");	zs_ttys = (struct tty_struct *)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct tty_struct));	if (zs_ttys == NULL)		zs_init_alloc_failure("zs_ttys");	serial_table = (struct tty_struct **)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct tty_struct *));	if (serial_table == NULL)		zs_init_alloc_failure("serial_table");	serial_termios = (struct termios **)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct termios *));	if (serial_termios == NULL)		zs_init_alloc_failure("serial_termios");	serial_termios_locked = (struct termios **)		zs_alloc_bootmem(NUM_CHANNELS * sizeof(struct termios *));	if (serial_termios_locked == NULL)		zs_init_alloc_failure("serial_termios_locked");}int __init zs_probe(void){	int node;	if(sparc_cpu_model == sun4)		goto no_probe;	NUM_SERIAL = 0;		node = prom_getchild(prom_root_node);	if (sparc_cpu_model == sun4d) {		int bbnode;				while (node && (node = prom_searchsiblings(node, "cpu-unit"))) {			bbnode = prom_getchild(node);			if (bbnode && prom_searchsiblings(bbnode, "bootbus"))				NUM_SERIAL += 2;			node = prom_getsibling(node);		}		goto no_probe;	}#ifdef __sparc_v9__	else if (sparc_cpu_model == sun4u) {		int central_node;		/* Central bus zilogs must be checked for first,		 * since Enterprise boxes might have SBUSes as well.		 */		central_node = prom_finddevice("/central");		if(central_node != 0 && central_node != -1)			node = prom_searchsiblings(prom_getchild(central_node), "fhc");		else			node = prom_searchsiblings(node, "sbus");		if(node != 0 && node != -1)			node = prom_getchild(node);		if(node == 0 || node == -1)			return -ENODEV;	}#endif /* __sparc_v9__ */	else {		node = prom_searchsiblings(node, "obio");		if(node)			node = prom_getchild(node);		NUM_SERIAL = 2;		goto no_probe;	}	node = prom_searchsiblings(node, "zs");	if (!node)		return -ENODEV;			NUM_SERIAL = 2;no_probe:	zs_alloc_tables();	/* Fill in rs_ops struct... */#ifdef CONFIG_SERIAL_CONSOLE	sunserial_setinitfunc(zs_console_init);#endif	sunserial_setinitfunc(zs_init);	rs_ops.rs_kgdb_hook = zs_kgdb_hook;	rs_ops.rs_change_mouse_baud = zs_change_mouse_baud;	sunkbd_setinitfunc(sun_kbd_init);	kbd_ops.compute_shiftstate = sun_compute_shiftstate;	kbd_ops.setledstate = sun_setledstate;	kbd_ops.getledstate = sun_getledstate;	kbd_ops.setkeycode = sun_setkeycode;	kbd_ops.getkeycode = sun_getkeycode;#if defined(__sparc_v9__) && defined(CONFIG_PCI)	sunkbd_install_keymaps(sun_key_maps, sun_keymap_count,			       sun_func_buf, sun_func_table,			       sun_funcbufsize, sun_funcbufleft,			       sun_accent_table, sun_accent_table_size);#endif	return 0;}static inline void zs_prepare(void){	int channel, chip;	unsigned long flags;	if (!NUM_SERIAL)		return;		save_and_cli(flags);		/* Set up our interrupt linked list */	zs_chain = &zs_soft[0];	for(channel = 0; channel < NUM_CHANNELS - 1; channel++) {		zs_soft[channel].zs_next = &zs_soft[channel + 1];		zs_soft[channel].line = channel;	}	zs_soft[channel].zs_next = 0;	/* Initialize Softinfo */	for(chip = 0; chip < NUM_SERIAL; chip++) {		/* If we are doing kgdb over one of the channels on		 * chip zero, kgdb_channel will be set to 1 by the		 * zs_kgdb_hook() routine below.		 */		if(!zs_chips[chip]) {			zs_chips[chip] = get_zs(chip);			/* Two channels per chip */			zs_channels[(chip*2)] = &zs_chips[chip]->channelA;			zs_channels[(chip*2)+1] = &zs_chips[chip]->channelB;			zs_soft[(chip*2)].kgdb_channel = 0;			zs_soft[(chip*2)+1].kgdb_channel = 0;		}		/* First, set up channel A on this chip. */		channel = chip * 2;		zs_soft[channel].zs_channel = zs_channels[channel];		zs_soft[channel].change_needed = 0;		zs_soft[channel].clk_divisor = 16;		zs_soft[channel].cons_keyb = 0;		zs_soft[channel].cons_mouse = 0;		zs_soft[channel].channelA = 1;		/* Now, channel B */		channel++;		zs_soft[channel].zs_channel = zs_channels[channel];		zs_soft[channel].change_needed = 0;		zs_soft[channel].clk_divisor = 16;		zs_soft[channel].cons_keyb = 0;		zs_soft[channel].cons_mouse = 0;		zs_soft[channel].channelA = 0;	}		restore_flags(flags);}int __init zs_init(void){	int channel, brg, i;	unsigned long flags;	struct sun_serial *info;	char dummy;	/* Setup base handler, and timer table. */	init_bh(SERIAL_BH, do_serial_bh);	show_serial_version();	/* Initialize the tty_driver structure */	/* SPARC: Not all of this is exactly right for us. */		memset(&serial_driver, 0, sizeof(struct tty_driver));	serial_driver.magic = TTY_DRIVER_MAGIC;	serial_driver.driver_name = "serial";#ifdef CONFIG_DEVFS_FS	serial_driver.name = "tts/%d";#else	serial_driver.name = "ttyS";#endif	serial_driver.major = TTY_MAJOR;	serial_driver.minor_start = 64;	serial_driver.num = NUM_CHANNELS;	serial_driver.type = TTY_DRIVER_TYPE_SERIAL;	serial_driver.subtype = SERIAL_TYPE_NORMAL;	serial_driver.init_termios = tty_std_termios;	serial_driver.init_termios.c_cflag =		B9600 | CS8 | CREAD | HUPCL | CLOCAL;	serial_driver.flags = TTY_DRIVER_REAL_RAW;	serial_driver.refcount = &serial_refcount;	serial_driver.table = serial_table;	serial_driver.termios = serial_termios;	serial_driver.termios_locked = serial_termios_locked;	serial_driver.open = zs_open;	serial_driver.close = zs_close;	serial_driver.write = zs_write;	serial_driver.flush_chars = zs_flush_chars;	serial_driver.write_room = zs_write_room;	serial_driver.chars_in_buffer = zs_chars_in_buffer;	serial_driver.flush_buffer = zs_flush_buffer;	serial_driver.ioctl = zs_ioctl;	serial_driver.throttle = zs_throttle;	serial_driver.unthrottle = zs_unthrottle;	serial_driver.set_termios = zs_set_termios;	serial_driver.stop = zs_stop;	serial_driver.start = zs_start;	serial_driver.hangup = zs_hangup;	/* I'm too lazy, someone write versions of this for us. -DaveM */	/* I just did. :-) -AIB 2001-12-23 */	serial_driver.read_proc = zs_read_proc;	/*	 * The callout device is just like normal device except for	 * major number and the subtype code.	 */	callout_driver = serial_driver;	callout_driver.name = "cua/%d";	callout_driver.major = TTYAUX_MAJOR;	callout_driver.subtype = SERIAL_TYPE_CALLOUT;	callout_driver.read_proc = 0;	callout_driver.proc_entry = 0;	if (tty_register_driver(&serial_driver))		panic("Couldn't register serial driver\n");	if (tty_register_driver(&callout_driver))		panic("Couldn't register callout driver\n");	save_flags(flags); cli();	/* Initialize Softinfo */	zs_prepare();	/* Grab IRQ line before poking the chips so we do	 * not lose any interrupts.	 */	if (request_irq(zilog_irq, zs_interrupt, SA_SHIRQ,			"Zilog8530", zs_chain)) {		prom_printf("Unable to attach zs intr\n");		prom_halt();	}	/* Initialize Hardware */	for(channel = 0; channel < NUM_CHANNELS; channel++) {		/* Hardware reset each chip */		if (!(channel & 1)) {			write_zsreg(zs_soft[channel].zs_channel, R9, FHWRES);			ZSDELAY_LONG();			dummy = read_zsreg(zs_soft[channel].zs_channel, R0);		}		if(channel == KEYBOARD_LINE) {			zs_soft[channel].cons_keyb = 1;			zs_soft[channel].parity_mask = 0xff;			zs_kbdchan = zs_soft[channel].zs_channel;			writ

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线一区二区三区| 久久伊人中文字幕| 欧美日韩第一区日日骚| 91精品中文字幕一区二区三区| 欧美一区二区久久久| 久久精品视频在线看| 一区二区三区在线免费| 麻豆免费精品视频| www.av亚洲| 日韩视频在线永久播放| 国产欧美日韩中文久久| 亚洲国产另类av| 国产综合久久久久久久久久久久| 99视频有精品| 日韩精品资源二区在线| 亚洲欧美日韩中文字幕一区二区三区| 婷婷中文字幕综合| 大白屁股一区二区视频| 欧美美女一区二区三区| 91性感美女视频| 蜜桃久久久久久久| 国产.精品.日韩.另类.中文.在线.播放 | 亚洲欧美日韩在线| 日av在线不卡| 色美美综合视频| 精品成人一区二区| 亚洲电影欧美电影有声小说| 国产成人免费在线观看不卡| 欧美日韩高清不卡| 国产精品视频在线看| 免费观看在线综合| 在线中文字幕一区| 中文在线资源观看网站视频免费不卡| 成人97人人超碰人人99| 欧美二区三区的天堂| 欧美激情在线一区二区三区| 日韩av电影免费观看高清完整版在线观看 | 99re免费视频精品全部| 日韩丝袜情趣美女图片| 亚洲最新视频在线观看| 成人国产免费视频| 国产麻豆成人传媒免费观看| 欧美综合在线视频| 欧美极品少妇xxxxⅹ高跟鞋 | 91黄色激情网站| 国产欧美日韩麻豆91| 日本亚洲三级在线| 日本道色综合久久| 国产精品美女久久久久久久久久久| 免费观看一级欧美片| 欧美日韩一区二区不卡| 亚洲裸体xxx| 不卡高清视频专区| 国产欧美日韩麻豆91| 精品一二三四区| 日韩精品一区二区三区在线播放 | 在线观看视频91| 综合久久给合久久狠狠狠97色 | 国产欧美精品一区二区三区四区| 麻豆精品在线播放| 欧美一级高清片| 日韩精品久久理论片| 欧美日韩国产色站一区二区三区| 亚洲综合视频在线| 欧美在线不卡视频| 亚洲综合色婷婷| 欧美在线视频全部完| 亚洲女同一区二区| 一本一道久久a久久精品综合蜜臀| √…a在线天堂一区| heyzo一本久久综合| 国产精品久久一卡二卡| 成人小视频免费在线观看| 欧美激情在线免费观看| 丁香婷婷综合五月| 国产精品久久久久桃色tv| 99精品欧美一区二区三区小说| 国产精品网曝门| 99久久综合精品| 一区二区在线观看视频| 欧美性videosxxxxx| 午夜在线电影亚洲一区| 777a∨成人精品桃花网| 青娱乐精品视频在线| 日韩免费高清电影| 精品亚洲成a人| 国产日本亚洲高清| caoporen国产精品视频| 伊人夜夜躁av伊人久久| 欧美乱妇15p| 久久电影网电视剧免费观看| 久久女同性恋中文字幕| 成人h精品动漫一区二区三区| 亚洲色大成网站www久久九九| 色欧美片视频在线观看 | 欧美日韩免费电影| 日本成人在线网站| 久久这里只精品最新地址| 国产.欧美.日韩| 亚洲精品国产高清久久伦理二区| 欧美精品视频www在线观看 | 精品欧美乱码久久久久久| 国产福利一区二区三区视频在线| 国产精品国产馆在线真实露脸 | 天天色 色综合| 日韩欧美一二区| 国产 日韩 欧美大片| 亚洲综合一区二区| 欧美大胆人体bbbb| 不卡视频在线看| 日日摸夜夜添夜夜添精品视频| 精品久久国产97色综合| 色综合色综合色综合| 免费在线观看精品| 国产精品少妇自拍| 欧美日韩一区二区在线观看视频| 国内成人免费视频| 亚洲精品一二三区| 精品美女一区二区| 色天使久久综合网天天| 久色婷婷小香蕉久久| 亚洲欧美日韩国产一区二区三区 | 美脚の诱脚舐め脚责91 | 风间由美一区二区三区在线观看 | 国产精品一区二区黑丝| 成人免费在线视频观看| 欧美一区二区私人影院日本| 国产.欧美.日韩| 亚洲国产精品二十页| 成人黄色电影在线 | 欧美日产在线观看| 国产99一区视频免费| 五月婷婷综合在线| 欧美国产精品一区| 欧美乱妇20p| 97精品国产露脸对白| 麻豆成人久久精品二区三区红 | 欧美亚洲一区三区| 国产麻豆日韩欧美久久| 亚洲二区在线观看| 国产精品欧美综合在线| 日韩久久精品一区| 欧美色图天堂网| 99视频一区二区| 国产精品影视在线观看| 亚洲不卡av一区二区三区| 国产精品成人免费| 亚洲精品在线三区| 欧美一级欧美三级| 欧美熟乱第一页| 99综合电影在线视频| 国产一区二区三区四| 日本不卡123| 亚洲综合成人网| 国产精品福利av| 国产午夜精品一区二区三区四区| 欧美一级在线免费| 欧美亚一区二区| 99久久精品国产精品久久| 国产乱对白刺激视频不卡| 日韩高清国产一区在线| 亚洲一卡二卡三卡四卡五卡| 亚洲色欲色欲www| 国产精品丝袜黑色高跟| 国产亚洲精品资源在线26u| 日韩欧美一二区| 欧美一区二区三区成人| 欧美日韩国产一级片| 欧亚一区二区三区| 欧美主播一区二区三区美女| 一本色道**综合亚洲精品蜜桃冫| www.亚洲精品| av在线播放成人| 99久久国产综合精品麻豆| 成人午夜激情影院| 成人午夜视频免费看| 国产成人午夜精品5599| 国产suv精品一区二区6| 国产91丝袜在线播放九色| 东方欧美亚洲色图在线| 成人一级片网址| 成人18视频在线播放| www.成人网.com| 91欧美一区二区| 在线中文字幕一区| 欧洲精品一区二区| 欧美日韩视频一区二区| 日韩美女一区二区三区四区| 国产乱码精品一区二区三区av| 久久精品理论片| 久久99精品久久久久久国产越南| 另类综合日韩欧美亚洲| 免费成人在线影院| 黄色成人免费在线| 国产激情一区二区三区四区| 国产不卡视频一区二区三区| 成人美女在线观看| 91在线精品秘密一区二区| 色婷婷综合激情| 欧美欧美欧美欧美|