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

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

?? sticon-bmode.c

?? linux下的VIDEO接口驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
		  DPRINTK(("!!!!\n"));		  { u32 foo = 0; while(foo += 0x100); }		}#endif		offset += 4;		dest += 4;	}	while(count) {		count--;		*(u8 *)dest = gsc_readb(base + offset);		offset++;		dest++;	}	flush_kernel_dcache_range((unsigned long)dest, count);	flush_icache_range((unsigned long)dest, dest + count);}static void dump_sti_rom(struct sti_rom *rom){	printk("STI byte mode ROM type %d\n", STI_U8(rom->type));	printk(" supports %d monitors\n", STI_U8(rom->num_mons));	printk(" conforms to STI ROM spec revision %d.%02x\n",		STI_U8(rom->revno[0]) >> 4, STI_U8(rom->revno[0]) & 0x0f);	printk(__FUNCTION__ ": %d\n", __LINE__);	printk(" graphics id %02x%02x%02x%02x%02x%02x%02x%02x\n",		(unsigned int) STI_U8(rom->graphics_id[0]), 		(unsigned int) STI_U8(rom->graphics_id[1]), 		(unsigned int) STI_U8(rom->graphics_id[2]), 		(unsigned int) STI_U8(rom->graphics_id[3]), 		(unsigned int) STI_U8(rom->graphics_id[4]), 		(unsigned int) STI_U8(rom->graphics_id[5]), 		(unsigned int) STI_U8(rom->graphics_id[6]), 		(unsigned int) STI_U8(rom->graphics_id[7]));	printk(__FUNCTION__ ": %d\n", __LINE__);	printk(" font start %08x\n",  STI_U32(rom->font_start));	printk(__FUNCTION__ ": %d\n", __LINE__);	printk(" region list %08x\n", STI_U32(rom->region_list));	printk(__FUNCTION__ ": %d\n", __LINE__);	printk(" init_graph %08x\n",  STI_U32(rom->init_graph));	printk(__FUNCTION__ ": %d\n", __LINE__);	printk(" alternate code type %d\n", STI_U8(rom->alt_code_type));	printk(__FUNCTION__ ": %d\n", __LINE__);}static void __init sti_cook_fonts(struct sti_cooked_rom *cooked_rom,				  struct sti_rom *raw_rom){	struct sti_rom_font *raw_font;	struct sti_cooked_font *cooked_font;	struct sti_rom_font *font_start;	cooked_font =		kmalloc(sizeof *cooked_font, GFP_KERNEL);	if(!cooked_font)		return;	cooked_rom->font_start = cooked_font;#if 0	DPRINTK(("%p = %p + %08x\n",	       ((void *)raw_rom) + (STI_U32(raw_rom->font_start)),	       ((void *)raw_rom), (STI_U32(raw_rom->font_start))));#endif	raw_font = ((void *)raw_rom) + STI_U32(raw_rom->font_start) - 3;	font_start = raw_font;	cooked_font->raw = raw_font;	DPRINTK(("next font %08x\n", STI_U32(raw_font->next_font)));	while(0 && STI_U32(raw_font->next_font)) {		raw_font = ((void *)font_start) + STI_U32(raw_font->next_font);				cooked_font->next_font =			kmalloc(sizeof *cooked_font, GFP_KERNEL);		if(!cooked_font->next_font)			return;		cooked_font = cooked_font->next_font;//		cooked_font->raw = raw_font;		DPRINTK(("raw_font %p\n",		       raw_font));		DPRINTK(("next_font %08x %p\n",		       STI_U32(raw_font->next_font),		       ((void *)font_start) + STI_U32(raw_font->next_font)));	}	cooked_font->next_font = NULL;}static unsigned long __init sti_cook_function(void *function,					      u32 size){	sti_u32 *func = (sti_u32 *)function;	u32 *ret;	int i;	ret = kmalloc(size, GFP_KERNEL);	if(!ret) {		printk(KERN_ERR __FILE__ ": could not get memory.\n");		return 0;	}	for(i=0; i<(size/4); i++)	    ret[i] = STI_U32(func[i]);	flush_all_caches();		return virt_to_phys(ret);}static int font_index, font_height, font_width;static int __init sti_search_font(struct sti_cooked_rom *rom,				  int height, int width){	struct sti_cooked_font *font;	int i = 0;		for(font = rom->font_start; font; font = font->next_font, i++) {		if((STI_U8(font->raw->width) == width) &&		   (STI_U8(font->raw->height) == height))			return i;	}	return 0;}static struct sti_cooked_font * __initsti_select_font(struct sti_cooked_rom *rom){	struct sti_cooked_font *font;	int i;	if(font_width && font_height)		font_index = sti_search_font(rom, font_height, font_width);	for(font = rom->font_start, i = font_index;	    font && (i > 0);	    font = font->next_font, i--);	if(font)		return font;	else		return rom->font_start;}	/* address is a pointer to a word mode or pci rom */static struct sti_struct * __init sti_read_rom(unsigned long address){	struct sti_struct *ret = NULL;	struct sti_cooked_rom *cooked = NULL;	struct sti_rom *raw = NULL;	unsigned long size;	ret = &default_sti;	if(!ret)		goto out_err;	cooked = kmalloc(sizeof *cooked, GFP_KERNEL);	raw = kmalloc(sizeof *raw, GFP_KERNEL);		if(!(raw && cooked))		goto out_err;	/* reallocate raw */	sti_rom_copy(address, 0, sizeof *raw, raw);	dump_sti_rom(raw);	size = STI_U32(raw->last_addr) + 1;	size = 128*1024;//	DPRINTK(("size %08lx\n", size));//	DPRINTK(("font_start %08x\n", STI_U32(raw->font_start)));//	kfree(raw);	raw = kmalloc(size, GFP_KERNEL);	if(!raw)		goto out_err;	sti_rom_copy(address, 0, size-1, raw);	sti_cook_fonts(cooked, raw);//	sti_cook_regions(cooked, raw);//	sti_cook_functions(cooked, raw);	if(STI_U32(raw->region_list)) {		struct sti_rom_region *region =			((void *)raw) + STI_U32(raw->region_list) - 3;//		DPRINTK(("region_list %08x\n", STI_U32(raw->region_list)));		ret->regions = kmalloc(32, GFP_KERNEL); /* FIXME!! */		ret->regions[0] = STI_U32(region[0].region);		ret->regions[1] = STI_U32(region[1].region);		ret->regions[2] = STI_U32(region[2].region);		ret->regions[3] = STI_U32(region[3].region);		ret->regions[4] = STI_U32(region[4].region);		ret->regions[5] = STI_U32(region[5].region);		ret->regions[6] = STI_U32(region[6].region);		ret->regions[7] = STI_U32(region[7].region);	}	address = virt_to_phys(raw);#if 0	DPRINTK(("init_graph %08x %08x\n"	       "state_mgmt %08x %08x\n"	       "font_unpmv %08x %08x\n"	       "block_move %08x %08x\n"	       "self_test  %08x %08x\n"	       "excep_hdlr %08x %08x\n"	       "irq_conf   %08x %08x\n"	       "set_cm_e   %08x %08x\n"	       "dma_ctrl   %08x %08x\n"	       "flow_ctrl  %08x %08x\n"	       "user_timin %08x %08x\n"	       "process_m  %08x %08x\n"	       "sti_util   %08x %08x\n"	       "end_addr   %08x %08x\n",	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->state_mgmt), STI_U32(raw->state_mgmt_m68k),	       STI_U32(raw->font_unpmv), STI_U32(raw->font_unpmv_m68k),	       STI_U32(raw->block_move), STI_U32(raw->block_move_m68k),	       STI_U32(raw->self_test), STI_U32(raw->self_test_m68k),	       STI_U32(raw->excep_hdlr), STI_U32(raw->excep_hdlr_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->init_graph), STI_U32(raw->init_graph_m68k),	       STI_U32(raw->end_addr), STI_U32(raw->end_addr_m68k) ) );#endif	ret->init_graph = sti_cook_function(((void *)raw)+STI_U32(raw->init_graph)-3,					    (STI_U32(raw->state_mgmt) -					     STI_U32(raw->init_graph))/4);	ret->font_unpmv = sti_cook_function(((void *)raw)+STI_U32(raw->font_unpmv)-3,					    (STI_U32(raw->block_move) -					     STI_U32(raw->font_unpmv))/4);	ret->block_move = sti_cook_function(((void *)raw)+STI_U32(raw->block_move)-3,					    (STI_U32(raw->self_test) -					     STI_U32(raw->block_move))/4);	ret->inq_conf = sti_cook_function(((void *)raw)+STI_U32(raw->inq_conf),					  STI_U32(raw->set_cm_entry) -					  STI_U32(raw->inq_conf));	ret->rom = cooked;	ret->rom->raw = raw;	ret->font = (struct sti_rom_font *) virt_to_phys(sti_select_font(ret->rom)->raw);	return ret;out_err:	if(raw)		kfree(raw);	if(cooked)		kfree(cooked);	return NULL;}#if 0static void dump_globcfg_ext(struct sti_glob_cfg_ext *cfg){	DPRINTK(("monitor %d\n"		"in friendly mode: %d\n"		"power consumption %d watts\n"		"freq ref %d\n"		"sti_mem_addr %p\n",		cfg->curr_mon,		cfg->friendly_boot,		cfg->power,		cfg->freq_ref,		cfg->sti_mem_addr));}static void dump_globcfg(struct sti_glob_cfg *glob_cfg){	DPRINTK(("%d text planes\n"		"%4d x %4d screen resolution\n"		"%4d x %4d offscreen\n"		"%4d x %4d layout\n"		"regions at %08x %08x %08x %08x\n"		"regions at %08x %08x %08x %08x\n"		"reent_lvl %d\n"		"save_addr %p\n",		glob_cfg->text_planes,		glob_cfg->onscreen_x, glob_cfg->onscreen_y,		glob_cfg->offscreen_x, glob_cfg->offscreen_y,		glob_cfg->total_x, glob_cfg->total_y,		glob_cfg->region_ptrs[0], glob_cfg->region_ptrs[1],		glob_cfg->region_ptrs[2], glob_cfg->region_ptrs[3],		glob_cfg->region_ptrs[4], glob_cfg->region_ptrs[5],		glob_cfg->region_ptrs[6], glob_cfg->region_ptrs[7],		glob_cfg->reent_lvl,		glob_cfg->save_addr));	dump_globcfg_ext(PTR_STI(glob_cfg->ext_ptr));}#endif		static void __init sti_init_glob_cfg(struct sti_struct *sti, unsigned long hpa,				     unsigned long rom_address){	struct sti_glob_cfg *glob_cfg;	struct sti_glob_cfg_ext *glob_cfg_ext;	void *save_addr;	void *sti_mem_addr;	glob_cfg = kmalloc(sizeof *sti->glob_cfg, GFP_KERNEL);	glob_cfg_ext = kmalloc(sizeof *glob_cfg_ext, GFP_KERNEL);	save_addr = kmalloc(1024 /*XXX*/, GFP_KERNEL);	sti_mem_addr = kmalloc(1024, GFP_KERNEL);	if((!glob_cfg) || (!glob_cfg_ext) || (!save_addr) || (!sti_mem_addr))		return;	memset(glob_cfg, 0, sizeof *glob_cfg);	memset(glob_cfg_ext, 0, sizeof *glob_cfg_ext);	memset(save_addr, 0, 1024);	memset(sti_mem_addr, 0, 1024);	glob_cfg->ext_ptr = STI_PTR(glob_cfg_ext);	glob_cfg->save_addr = STI_PTR(save_addr);	glob_cfg->region_ptrs[0] = ((sti->regions[0]>>18)<<12) + rom_address;	glob_cfg->region_ptrs[1] = ((sti->regions[1]>>18)<<12) + hpa;	glob_cfg->region_ptrs[2] = ((sti->regions[2]>>18)<<12) + hpa;	glob_cfg->region_ptrs[3] = ((sti->regions[3]>>18)<<12) + hpa;	glob_cfg->region_ptrs[4] = ((sti->regions[4]>>18)<<12) + hpa;	glob_cfg->region_ptrs[5] = ((sti->regions[5]>>18)<<12) + hpa;	glob_cfg->region_ptrs[6] = ((sti->regions[6]>>18)<<12) + hpa;	glob_cfg->region_ptrs[7] = ((sti->regions[7]>>18)<<12) + hpa;	glob_cfg_ext->sti_mem_addr = STI_PTR(sti_mem_addr);	sti->glob_cfg = STI_PTR(glob_cfg);}static void __init sti_try_rom(unsigned long address, unsigned long hpa){	struct sti_struct *sti = NULL;	u16 sig;		/* if we can't read the ROM, bail out early.  Not being able	 * to read the hpa is okay, for romless sti */	if(pdc_add_valid((void*)address))		return;	printk("found potential STI ROM at %08lx\n", address);	sig = le16_to_cpu(gsc_readw(address));	if((sig&0xff) == 0x01) {		sti = sti_read_rom(address);	}	if(sig == 0x0303) {		printk("STI word mode ROM at %08lx, ignored\n",		       address);		sti = NULL;	}	if(!sti)		return;	/* this is hacked.  We need a better way to find out the HPA for	 * romless STI (eg search for the graphics devices we know about	 * by sversion) */	if (!pdc_add_valid((void *)0xf5000000)) DPRINTK(("f4000000 b\n"));	if (!pdc_add_valid((void *)0xf7000000)) DPRINTK(("f6000000 b\n"));	if (!pdc_add_valid((void *)0xf9000000)) DPRINTK(("f8000000 b\n"));	if (!pdc_add_valid((void *)0xfb000000)) DPRINTK(("fa000000 b\n"));	sti_init_glob_cfg(sti, hpa, address);	sti_init_graph(sti);	//sti_inq_conf(sti);#if !defined(SERIAL_CONSOLE)		{ 	    extern void pdc_console_die(void);  	    pdc_console_die(); 	}#endif			take_over_console(&sti_con, 0, MAX_NR_CONSOLES-1, 1);	/* sti_inq_conf(sti); */}static unsigned long sti_address;static unsigned long sti_hpa;static void __init sti_init_roms(void){	/* handle the command line */	if(sti_address && sti_hpa) {		sti_try_rom(sti_address, sti_hpa);		return;	}	/* 712, 715, some other boxes don't have a separate STI ROM,	 * but use part of the regular flash */	if(PAGE0->proc_sti) {		printk("STI ROM from PDC at %08x\n", PAGE0->proc_sti);		if(!pdc_add_valid((void *)0xf9000000))			sti_try_rom(PAGE0->proc_sti, 0xf8000000);		else if(!pdc_add_valid((void *)0xf5000000))			sti_try_rom(PAGE0->proc_sti, 0xf4000000);		else if(!pdc_add_valid((void *)0xf7000000))			sti_try_rom(PAGE0->proc_sti, 0xf6000000);		else if(!pdc_add_valid((void *)0xfb000000))			sti_try_rom(PAGE0->proc_sti, 0xfa000000);	}	/* standard locations for GSC graphic devices */	if(!pdc_add_valid((void *)0xf4000000))		sti_try_rom(0xf4000000, 0xf4000000);	if(!pdc_add_valid((void *)0xf6000000))		sti_try_rom(0xf6000000, 0xf6000000);	if(!pdc_add_valid((void *)0xf8000000))		sti_try_rom(0xf8000000, 0xf8000000);	if(!pdc_add_valid((void *)0xfa000000))		sti_try_rom(0xfa000000, 0xfa000000);}static int __init sti_init(void){	printk("searching for byte mode STI ROMs\n");	sti_init_roms();	return 0;}module_init(sti_init)MODULE_LICENSE("GPL");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情成人综合网| 中文字幕一区日韩精品欧美| 国产成人精品免费一区二区| 一区二区久久久久久| 久久久久国产精品麻豆ai换脸| 欧美日韩精品欧美日韩精品| 国产综合色视频| 一区二区欧美国产| 久久综合视频网| 欧美日韩激情一区| 91免费看片在线观看| 韩国精品主播一区二区在线观看 | 日韩欧美一区二区三区在线| 国产成人精品亚洲日本在线桃色 | 无吗不卡中文字幕| 国产精品对白交换视频| 精品国产乱码久久久久久免费| 日本女人一区二区三区| 中文字幕在线不卡国产视频| 26uuu色噜噜精品一区二区| 欧美日韩国产综合一区二区| 99re热这里只有精品免费视频| 国产精品久久久久三级| 5月丁香婷婷综合| 91国产免费观看| av中文字幕不卡| 成人性生交大片免费看中文| 国产成人夜色高潮福利影视| 激情图片小说一区| 久久se这里有精品| 日韩vs国产vs欧美| 视频一区二区三区入口| 亚洲线精品一区二区三区 | 中文字幕一区二区视频| 26uuu另类欧美亚洲曰本| 日韩一区二区在线播放| 欧美一级专区免费大片| 欧美一区二区三区四区五区| 色偷偷88欧美精品久久久| 91蜜桃在线观看| 91极品美女在线| 欧美在线视频不卡| 精品视频免费在线| 欧美日韩精品电影| 日韩精品中文字幕一区| 精品国产电影一区二区| 久久精品视频网| 国产精品毛片久久久久久久| 国产精品国产a级| 亚洲黄色性网站| 天天综合色天天| 久久av中文字幕片| 国产69精品久久久久毛片| 成人国产精品免费观看视频| 91丨国产丨九色丨pron| 欧美自拍丝袜亚洲| 91精品国产麻豆| 久久这里只有精品6| 国产精品久久久久婷婷| 亚洲国产欧美一区二区三区丁香婷| 欧美国产日韩a欧美在线观看| 欧美伦理影视网| 日韩精品一区二区三区视频在线观看| 不卡高清视频专区| 色网站国产精品| 日韩午夜小视频| 中文字幕av一区二区三区高| 亚洲美女免费视频| 蜜臀av性久久久久蜜臀aⅴ| 黑人精品欧美一区二区蜜桃| 成人激情免费网站| 欧美性xxxxxxxx| 精品日韩欧美在线| 亚洲日本护士毛茸茸| 日韩中文字幕一区二区三区| 国产一区在线视频| 色综合久久久久网| 日韩欧美高清一区| 亚洲欧洲精品一区二区精品久久久| 26uuu成人网一区二区三区| 中文字幕一区二区三区av| 亚洲国产成人av| 国产麻豆视频精品| 99v久久综合狠狠综合久久| 制服丝袜亚洲色图| 国产精品久久久久永久免费观看 | 国产精品欧美久久久久一区二区| 欧美一级一级性生活免费录像| 欧美性猛交xxxxxxxx| 26uuu亚洲综合色欧美| 亚洲一区免费视频| 国产成人超碰人人澡人人澡| 欧美视频在线一区| 欧美激情一区二区| 日韩成人午夜电影| 91麻豆精品在线观看| 日韩你懂的在线播放| 中文字幕在线视频一区| 丝袜美腿亚洲色图| 97久久超碰国产精品电影| 日韩一级片在线播放| 一区二区三区四区在线播放| 国内精品嫩模私拍在线| 在线观看日产精品| 国产精品久久久久久久久搜平片| 国产欧美日韩精品一区| 男男视频亚洲欧美| 99久久免费精品高清特色大片| 91麻豆自制传媒国产之光| 久久久综合网站| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩一区二区三区不卡| 久久免费午夜影院| 日韩在线观看一区二区| 色视频一区二区| 国产精品理论片| 国产成人精品亚洲日本在线桃色 | 91亚洲精品久久久蜜桃| 精品电影一区二区| 天天操天天综合网| 91成人看片片| 亚洲视频在线一区二区| 国产999精品久久久久久| 日韩午夜av一区| 奇米精品一区二区三区在线观看 | 日韩福利电影在线| 一本到三区不卡视频| 中文字幕免费不卡| 国产成人av一区二区| 久久色视频免费观看| 国产九九视频一区二区三区| 欧美大片一区二区三区| 免费人成精品欧美精品| 正在播放一区二区| 日韩高清国产一区在线| 欧美美女视频在线观看| 午夜精品福利在线| 91麻豆精品国产91| 香蕉乱码成人久久天堂爱免费| 韩国女主播一区| 精品日本一线二线三线不卡| 毛片一区二区三区| 日韩精品一区二区三区在线| 久久国产麻豆精品| 欧美成人vr18sexvr| 国内一区二区视频| 国产日韩欧美精品电影三级在线| 亚洲午夜一区二区| 欧美日韩视频专区在线播放| 午夜精品久久久| 欧美成人一级视频| 国内精品久久久久影院一蜜桃| 色婷婷久久综合| 亚洲另类在线一区| 欧美亚洲高清一区| 蜜臂av日日欢夜夜爽一区| 精品伦理精品一区| 懂色av中文字幕一区二区三区| 69堂成人精品免费视频| 五月婷婷综合网| 精品国产露脸精彩对白| 成人深夜福利app| 亚洲观看高清完整版在线观看| 国产成人午夜精品5599| 亚洲欧洲日产国产综合网| 在线国产亚洲欧美| 青青草国产成人av片免费| 久久精品亚洲一区二区三区浴池| 午夜精品久久一牛影视| 久久综合资源网| av不卡在线观看| 日韩精品久久久久久| 久久久久99精品一区| 91久久人澡人人添人人爽欧美 | 国产精品伦理在线| 色悠久久久久综合欧美99| 亚洲成人av在线电影| 久久精品人人爽人人爽| 91麻豆123| 裸体一区二区三区| 国产精品国产馆在线真实露脸| 国产精品一品二品| 一个色妞综合视频在线观看| 日韩午夜小视频| 色综合天天综合色综合av| 国产精品一区三区| 亚洲精品国产视频| 精品国产91洋老外米糕| 色综合久久天天综合网| 精品一区二区在线观看| 亚洲一区二区黄色| 国产亚洲欧美中文| 欧美一区二区黄色| 色婷婷久久久久swag精品 | 久久99精品国产| 亚洲精品成人天堂一二三| 欧美mv日韩mv| 日本韩国欧美三级| 风间由美一区二区av101| 婷婷一区二区三区|