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

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

?? pm2fb.c

?? linux下的VIDEO接口驅動程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
	if (p->video & PM2F_DATA_64_ENABLE) {		v.xres=v.xres<<1;		v.right_margin=v.right_margin<<1;		v.hsync_len=v.hsync_len<<1;		v.left_margin=v.left_margin<<1;	}	switch (p->depth) {		case 8:			v.red.length=v.green.length=v.blue.length=8;			v.xres=v.xres<<2;			v.right_margin=v.right_margin<<2;			v.hsync_len=v.hsync_len<<2;			v.left_margin=v.left_margin<<2;			break;		case 16:			v.red.offset=11;			v.red.length=5;			v.green.offset=5;			v.green.length=6;			v.blue.length=5;			v.xres=v.xres<<1;			v.right_margin=v.right_margin<<1;			v.hsync_len=v.hsync_len<<1;			v.left_margin=v.left_margin<<1;			break;		case 32:			v.transp.offset=24;			v.red.offset=16;			v.green.offset=8;			v.red.length=v.green.length=v.blue.length=							v.transp.length=8;			break;		case 24:			v.blue.offset=16;			v.green.offset=8;			v.red.length=v.green.length=v.blue.length=8;			v.xres=(v.xres<<2)/3;			v.right_margin=(v.right_margin<<2)/3;			v.hsync_len=(v.hsync_len<<2)/3;			v.left_margin=(v.left_margin<<2)/3;			break;	}	base=from3264(p->base, p->depth, 1);	v.xoffset=base%v.xres;	v.yoffset=base/v.xres;	v.height=v.width=-1;	v.pixclock=KHZ2PICOS(p->pixclock);	if ((p->video & PM2F_HSYNC_MASK)==PM2F_HSYNC_ACT_HIGH)		v.sync|=FB_SYNC_HOR_HIGH_ACT;	if ((p->video & PM2F_VSYNC_MASK)==PM2F_VSYNC_ACT_HIGH)		v.sync|=FB_SYNC_VERT_HIGH_ACT;	if (p->video & PM2F_LINE_DOUBLE)		v.vmode=FB_VMODE_DOUBLE;	*var=v;	return 0;}static void set_user_mode(struct pm2fb_info* i) {	if (pm2fb_options.flags & OPTF_YPAN) {		int h = i->current_par.height;		i->current_par.height=i->regions.fb_size/			(i->current_par.width*i->current_par.depth/8);		i->current_par.height=MIN(i->current_par.height,2047);		i->current_par.height=MAX(i->current_par.height,h);	}}static void pm2fb_get_par(void* par, struct fb_info_gen* info) {	struct pm2fb_info* i=(struct pm2fb_info* )info;		if (!i->current_par_valid) {		set_user_mode(i);		pm2fb_reset(i);		set_screen(i, &i->current_par);		i->current_par_valid=1;	}	*((struct pm2fb_par* )par)=i->current_par;}static void pm2fb_set_par(const void* par, struct fb_info_gen* info) {	struct pm2fb_info* i=(struct pm2fb_info* )info;	struct pm2fb_par* p;	p=(struct pm2fb_par* )par;	if (i->current_par_valid) {		i->current_par.base=p->base;		if (!memcmp(p, &i->current_par, sizeof(struct pm2fb_par))) {			WAIT_FIFO(i, 1);			pm2_WR(i, PM2R_SCREEN_BASE, p->base);			return;		}	}	set_screen(i, p);	i->current_par=*p;	i->current_par_valid=1;#ifdef PM2FB_HW_CURSOR		if (i->cursor) {		pm2v_set_cursor_color(i, cursor_color_map, cursor_color_map, cursor_color_map);		pm2v_set_cursor_shape(i);	}#endif}static int pm2fb_getcolreg(unsigned regno,			unsigned* red, unsigned* green, unsigned* blue,				unsigned* transp, struct fb_info* info) {	struct pm2fb_info* i=(struct pm2fb_info* )info;	if (regno<256) {		*red=i->palette[regno].red<<8|i->palette[regno].red;		*green=i->palette[regno].green<<8|i->palette[regno].green;		*blue=i->palette[regno].blue<<8|i->palette[regno].blue;		*transp=i->palette[regno].transp<<8|i->palette[regno].transp;	}	return regno>255;}static int pm2fb_setcolreg(unsigned regno,			unsigned red, unsigned green, unsigned blue,				unsigned transp, struct fb_info* info) {	struct pm2fb_info* i=(struct pm2fb_info* )info;	if (regno<16) {		switch (i->current_par.depth) {#ifdef FBCON_HAS_CFB8			case 8:				break;#endif#ifdef FBCON_HAS_CFB16			case 16:				i->cmap.cmap16[regno]=					((u32 )red & 0xf800) |					(((u32 )green & 0xfc00)>>5) |					(((u32 )blue & 0xf800)>>11);				break;#endif#ifdef FBCON_HAS_CFB24			case 24:				i->cmap.cmap24[regno]=					(((u32 )blue & 0xff00) << 8) |					((u32 )green & 0xff00) |					(((u32 )red & 0xff00) >> 8);				break;#endif#ifdef FBCON_HAS_CFB32			case 32:	   			i->cmap.cmap32[regno]=					(((u32 )transp & 0xff00) << 16) |		    			(((u32 )red & 0xff00) << 8) |					(((u32 )green & 0xff00)) |			 		(((u32 )blue & 0xff00) >> 8);				break;#endif			default:				DPRINTK("bad depth %u\n",						i->current_par.depth);				break;		}	}	if (regno<256) {		i->palette[regno].red=red >> 8;		i->palette[regno].green=green >> 8;		i->palette[regno].blue=blue >> 8;		i->palette[regno].transp=transp >> 8;		if (i->current_par.depth==8)			set_color(i, regno, red>>8, green>>8, blue>>8);	}	return regno>255;}static void pm2fb_set_disp(const void* par, struct display* disp,						   struct fb_info_gen* info) {	struct pm2fb_info* i=(struct pm2fb_info* )info;	unsigned long flags;	unsigned long depth;	save_flags(flags);	cli();	disp->screen_base = i->regions.v_fb;	switch (depth=((struct pm2fb_par* )par)->depth) {#ifdef FBCON_HAS_CFB8		case 8:			disp->dispsw=&pm2_cfb8;			break;#endif#ifdef FBCON_HAS_CFB16		case 16:			disp->dispsw=&pm2_cfb16;			disp->dispsw_data=i->cmap.cmap16;			break;#endif#ifdef FBCON_HAS_CFB24		case 24:			disp->dispsw=&pm2_cfb24;			disp->dispsw_data=i->cmap.cmap24;			break;#endif#ifdef FBCON_HAS_CFB32		case 32:			disp->dispsw=&pm2_cfb32;			disp->dispsw_data=i->cmap.cmap32;			break;#endif		default:			disp->dispsw=&fbcon_dummy;			break;	}	restore_flags(flags);}#ifdef PM2FB_HW_CURSOR/*************************************************************************** * Hardware cursor support ***************************************************************************/ static u8 cursor_bits_lookup[16] = {	0x00, 0x40, 0x10, 0x50, 0x04, 0x44, 0x14, 0x54,	0x01, 0x41, 0x11, 0x51, 0x05, 0x45, 0x15, 0x55};static u8 cursor_mask_lookup[16] = {	0x00, 0x80, 0x20, 0xa0, 0x08, 0x88, 0x28, 0xa8,	0x02, 0x82, 0x22, 0xa2, 0x0a, 0x8a, 0x2a, 0xaa};static void pm2v_set_cursor_color(struct pm2fb_info *fb, u8 *red, u8 *green, u8 *blue){	struct pm2_cursor *c = fb->cursor;	int i;	for (i = 0; i < 2; i++) {		c->color[3*i] = red[i];		c->color[3*i+1] = green[i];		c->color[3*i+2] = blue[i];	}	WAIT_FIFO(fb, 14);	pm2_WR(fb, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CURSOR_PALETTE >> 8);	for (i = 0; i < 6; i++)		pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PALETTE+i, c->color[i]);	pm2_WR(fb, PM2VR_RD_INDEX_HIGH, 0);}static void pm2v_set_cursor_shape(struct pm2fb_info *fb){	struct pm2_cursor *c = fb->cursor;	u8 m, b;	int i, x, y;	WAIT_FIFO(fb, 1);	pm2_WR(fb, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CURSOR_PATTERN >> 8);	for (y = 0, i = 0; y < c->size.y; y++) {		WAIT_FIFO(fb, 32);		for (x = 0; x < c->size.x >> 3; x++) {			m = c->mask[x][y];			b = c->bits[x][y];			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i,				     cursor_mask_lookup[m >> 4] |				     cursor_bits_lookup[(b & m) >> 4]);			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i + 1,				     cursor_mask_lookup[m & 0x0f] |				     cursor_bits_lookup[(b & m) & 0x0f]);			i+=2;		}		for ( ; x < 8; x++) {			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i, 0);			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i + 1, 0);			i+=2;		}	}	for (; y < 64; y++) {		WAIT_FIFO(fb, 32);		for (x = 0; x < 8; x++) {			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i, 0);			pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_PATTERN + i + 1, 0);			i+=2;		}	}	WAIT_FIFO(fb, 1);	pm2_WR(fb, PM2VR_RD_INDEX_HIGH, 0);}static void pm2v_set_cursor(struct pm2fb_info *fb, int on){	struct pm2_cursor *c = fb->cursor;	int x = c->pos.x;	if (!on) x = 4000;	WAIT_FIFO(fb, 14);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_X_LOW, x & 0xff);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_X_HIGH, (x >> 8) & 0x0f);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_Y_LOW, c->pos.y & 0xff);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_Y_HIGH, (c->pos.y >> 8) & 0x0f);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_X_HOT, c->hot.x & 0x3f);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_Y_HOT, c->hot.y & 0x3f);	pm2v_RDAC_WR(fb, PM2VI_RD_CURSOR_MODE, 0x11);}static void pm2_cursor_timer_handler(unsigned long dev_addr){	struct pm2fb_info *fb = (struct pm2fb_info *)dev_addr;	if (!fb->cursor->enable)		goto out;	if (fb->cursor->vbl_cnt && --fb->cursor->vbl_cnt == 0) {		fb->cursor->on ^= 1;		pm2v_set_cursor(fb, fb->cursor->on);		fb->cursor->vbl_cnt = fb->cursor->blink_rate;	}out:	fb->cursor->timer->expires = jiffies + (HZ / 50);	add_timer(fb->cursor->timer);}static void pm2fb_cursor(struct display *p, int mode, int x, int y){	struct pm2fb_info *fb = (struct pm2fb_info *)p->fb_info;	struct pm2_cursor *c = fb->cursor;	if (!c) return;	x *= fontwidth(p);	y *= fontheight(p);	if (c->pos.x == x && c->pos.y == y && (mode == CM_ERASE) == !c->enable)		return;	c->enable = 0;	if (c->on)		pm2v_set_cursor(fb, 0);	c->pos.x = x;	c->pos.y = y;	switch (mode) {	case CM_ERASE:		c->on = 0;		break;	case CM_DRAW:	case CM_MOVE:		if (c->on)			pm2v_set_cursor(fb, 1);		else			c->vbl_cnt = CURSOR_DRAW_DELAY;		c->enable = 1;		break;	}}static struct pm2_cursor * __init pm2_init_cursor(struct pm2fb_info *fb){	struct pm2_cursor *cursor;	if (fb->type != PM2_TYPE_PERMEDIA2V)		return 0; /* FIXME: Support hw cursor everywhere */	cursor = kmalloc(sizeof(struct pm2_cursor), GFP_ATOMIC);	if (!cursor)		return 0;	memset(cursor, 0, sizeof(*cursor));	cursor->timer = kmalloc(sizeof(*cursor->timer), GFP_KERNEL);	if (!cursor->timer) {		kfree(cursor);		return 0;	}	memset(cursor->timer, 0, sizeof(*cursor->timer));	cursor->blink_rate = DEFAULT_CURSOR_BLINK_RATE;	if (curblink) {		init_timer(cursor->timer);		cursor->timer->expires = jiffies + (HZ / 50);		cursor->timer->data = (unsigned long)fb;		cursor->timer->function = pm2_cursor_timer_handler;		add_timer(cursor->timer);	}	return cursor;}static int pm2fb_set_font(struct display *d, int width, int height){	struct pm2fb_info *fb = (struct pm2fb_info *)d->fb_info;	struct pm2_cursor *c = fb->cursor;	int i, j;	if (c) {		if (!width || !height) {			width = 8;			height = 16;		}		c->hot.x = 0;		c->hot.y = 0;		c->size.x = width;		c->size.y = height;		memset(c->bits, 0xff, sizeof(c->bits));		memset(c->mask, 0, sizeof(c->mask));		for (i = 0, j = width; j >= 0; j -= 8, i++) {			c->mask[i][height-2] = (j >= 8) ? 0xff : (0xff << (8 - j));			c->mask[i][height-1] = (j >= 8) ? 0xff : (0xff << (8 - j));		}		pm2v_set_cursor_color(fb, cursor_color_map, cursor_color_map, cursor_color_map);		pm2v_set_cursor_shape(fb);	}	return 1;}#endif /* PM2FB_HW_CURSOR *//*************************************************************************** * Begin of public functions ***************************************************************************/#ifdef MODULEstatic void pm2fb_cleanup(void) {	struct pm2fb_info* i = &fb_info;	unregister_framebuffer((struct fb_info *)i);	pm2fb_reset(i);	UNMAP(i->regions.v_fb, i->regions.fb_size);	release_mem_region(i->regions.p_fb, i->regions.fb_size);	UNMAP(i->regions.v_regs, PM2_REGS_SIZE);	release_mem_region(i->regions.p_regs, PM2_REGS_SIZE);	if (board_table[i->board].cleanup)		board_table[i->board].cleanup(i);}#endif /* MODULE */int __init pm2fb_init(void){	MOD_INC_USE_COUNT;	memset(&fb_info, 0, sizeof(fb_info));	memcpy(&fb_info.current_par, &pm2fb_options.user_mode, sizeof(fb_info.current_par));	if (!pm2fb_conf(&fb_info)) {		MOD_DEC_USE_COUNT;		return -ENXIO;	}	pm2fb_reset(&fb_info);	fb_info.disp.scrollmode=SCROLL_YNOMOVE;	fb_info.gen.parsize=sizeof(struct pm2fb_par);	fb_info.gen.fbhw=&pm2fb_hwswitch;	strcpy(fb_info.gen.info.modename, permedia2_name);	fb_info.gen.info.flags=FBINFO_FLAG_DEFAULT;	fb_info.gen.info.fbops=&pm2fb_ops;	fb_info.gen.info.disp=&fb_info.disp;	strcpy(fb_info.gen.info.fontname, pm2fb_options.font);	fb_info.gen.info.switch_con=&fbgen_switch;	fb_info.gen.info.updatevar=&fbgen_update_var;	fb_info.gen.info.blank=&fbgen_blank;	fbgen_get_var(&fb_info.disp.var, -1, &fb_info.gen.info);	fbgen_do_set_var(&fb_info.disp.var, 1, &fb_info.gen);	fbgen_set_disp(-1, &fb_info.gen);	fbgen_install_cmap(0, &fb_info.gen);	if (register_framebuffer(&fb_info.gen.info)<0) {		printk(KERN_ERR "pm2fb: unable to register.\n");		MOD_DEC_USE_COUNT;		return -EINVAL;	}	printk(KERN_INFO "fb%d: %s (%s), using %uK of video memory.\n",				GET_FB_IDX(fb_info.gen.info.node),				board_table[fb_info.board].name,				permedia2_name,				(u32 )(fb_info.regions.fb_size>>10));	return 0;}static void __init pm2fb_mode_setup(char* options){	int i;	for (i=0; user_mode[i].name[0] &&		strcmp(options, user_mode[i].name); i++);	if (user_mode[i].name[0]) {		memcpy(&pm2fb_options.user_mode, &user_mode[i].par,					sizeof(pm2fb_options.user_mode));		pm2fb_options.flags |= OPTF_USER;	}}static void __init pm2fb_font_setup(char* options){	strncpy(pm2fb_options.font, options, sizeof(pm2fb_options.font));	pm2fb_options.font[sizeof(pm2fb_options.font)-1]='\0';}int __init pm2fb_setup(char* options){	char* next;	while (options) {		if ((next=strchr(options, ',')))			*(next++)='\0';		if (!strncmp(options, "font:", 5))			pm2fb_font_setup(options+5);		else if (!strncmp(options, "mode:", 5))			pm2fb_mode_setup(options+5);		else if (!strcmp(options, "ypan"))			pm2fb_options.flags |= OPTF_YPAN;		else if (!strcmp(options, "oldmem"))			pm2fb_options.flags |= OPTF_OLD_MEM;		else if (!strcmp(options, "virtual"))			pm2fb_options.flags |= OPTF_VIRTUAL;		else if (!strcmp(options, "noblink"))			curblink = 0;		options=next;	}	return 0;}/*************************************************************************** * Begin of module functions ***************************************************************************/#ifdef MODULEMODULE_LICENSE("GPL");static char *mode = NULL;MODULE_PARM(mode, "s");int __init init_module(void) {	if (mode) pm2fb_mode_setup(mode);	return pm2fb_init();}void cleanup_module(void) {	pm2fb_cleanup();}#endif /* MODULE *//*************************************************************************** * That's all folks! ***************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久99久久精品国产片果冻 | 亚洲成人综合网站| 国产精品视频在线看| 国产片一区二区三区| 日本一区二区成人在线| 国产日产亚洲精品系列| 中文子幕无线码一区tr| 亚洲欧美影音先锋| 国产精品久久久久9999吃药| 亚洲欧洲综合另类| 午夜精品免费在线观看| 免费成人在线视频观看| 国产一区二区在线电影| 大美女一区二区三区| 91视频观看视频| 91麻豆精品国产91久久久久久久久 | 精品在线播放午夜| 国产成人精品aa毛片| 99精品欧美一区二区蜜桃免费 | 风间由美一区二区av101 | 亚洲二区在线观看| 免费在线观看不卡| 国产91精品久久久久久久网曝门 | 亚洲高清免费观看高清完整版在线观看| 亚洲综合区在线| 精品在线观看免费| 91视视频在线观看入口直接观看www| 色婷婷av一区二区三区大白胸 | 一区二区三区在线免费视频| 首页国产丝袜综合| 成人网页在线观看| 欧美伦理电影网| 国产亚洲欧美日韩俺去了| 亚洲乱码国产乱码精品精小说| 日韩黄色免费电影| 成人动漫中文字幕| 欧美日韩不卡一区二区| 国产精品久久久久一区二区三区| 亚洲高清久久久| 成人免费黄色大片| 欧美一区二区三区电影| 亚洲日本一区二区三区| 久久精品99国产精品| 欧美综合一区二区| 日本一区二区三区四区 | 国产精品妹子av| 日韩高清不卡一区| 在线视频国内自拍亚洲视频| 精品国产免费一区二区三区香蕉| 亚洲午夜久久久久久久久久久| 国产suv精品一区二区883| 777a∨成人精品桃花网| 亚洲在线视频免费观看| av在线不卡免费看| 久久久精品免费网站| 久久99国产精品尤物| 欧美日本在线播放| 一区二区三区毛片| 91免费视频网址| 欧美激情资源网| 国产黄色91视频| 色综合天天综合网国产成人综合天| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产成人免费视频网站 | 视频一区欧美精品| 欧洲精品在线观看| 亚洲欧美视频一区| 色成年激情久久综合| 亚洲激情校园春色| 在线观看亚洲专区| 亚洲不卡一区二区三区| 91九色02白丝porn| 亚洲国产精品久久人人爱| 色综合网色综合| 亚洲一区av在线| 欧美日韩国产在线观看| 亚洲bt欧美bt精品777| 在线观看www91| 丝瓜av网站精品一区二区| 3atv一区二区三区| 捆绑调教一区二区三区| 亚洲精品一区二区三区福利| 久久国产精品第一页| 久久婷婷国产综合国色天香| 懂色av中文字幕一区二区三区| 国产精品你懂的在线| 成人av集中营| 亚洲国产一区二区在线播放| 欧美三级三级三级爽爽爽| 视频一区欧美精品| 日韩精品一区二区三区在线观看 | 另类综合日韩欧美亚洲| 精品国产一区久久| 99热99精品| 亚洲观看高清完整版在线观看 | 国产成人在线网站| 亚洲人一二三区| 欧美日韩一区不卡| 国产美女一区二区| 一区二区三区美女| 久久蜜桃av一区二区天堂| 99在线视频精品| 天天色综合天天| 久久午夜羞羞影院免费观看| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲一区二区三区四区在线观看| 91精品黄色片免费大全| 丁香啪啪综合成人亚洲小说| 性欧美疯狂xxxxbbbb| 欧美精品一区二区三区四区| av不卡在线播放| 蜜臂av日日欢夜夜爽一区| 国产精品视频看| 日韩视频一区二区三区| 一本久道久久综合中文字幕| 久久99精品国产麻豆不卡| 亚洲欧美另类小说| 国产女人aaa级久久久级| 欧美日韩综合在线| 成人avav影音| 狠狠色狠狠色综合| 亚洲一级二级三级在线免费观看| 欧美激情一区三区| 精品国产精品网麻豆系列| 色综合咪咪久久| 国产精品一卡二卡在线观看| 午夜精品久久久久久久久久久 | 国产欧美一区二区三区在线看蜜臀| 在线观看www91| 99麻豆久久久国产精品免费优播| 日本伊人色综合网| 一区二区三区免费在线观看| 欧美激情一区二区三区在线| 精品国产乱码久久久久久久久| 制服丝袜在线91| 欧美在线不卡一区| 91麻豆成人久久精品二区三区| 国产激情一区二区三区桃花岛亚洲| 视频在线在亚洲| 日韩不卡手机在线v区| 午夜精品久久久久久久| 亚洲国产精品一区二区久久恐怖片 | 在线观看国产日韩| 91在线丨porny丨国产| 成人午夜视频网站| 国产精品综合久久| 国产一区二区三区精品视频| 精品一区二区三区在线播放| 人人狠狠综合久久亚洲| 美女网站视频久久| 免费在线欧美视频| 久久精品国产第一区二区三区| 日韩1区2区3区| 日韩精彩视频在线观看| 免费成人在线影院| 久久国产精品露脸对白| 极品少妇xxxx精品少妇| 国产一区二区在线观看视频| 国产精品原创巨作av| 国产美女在线观看一区| 成人国产精品免费观看| 91亚洲国产成人精品一区二区三 | 日韩经典中文字幕一区| 男男gaygay亚洲| 精品无人区卡一卡二卡三乱码免费卡| 久久草av在线| 国产伦理精品不卡| 91网站在线播放| 欧美三级午夜理伦三级中视频| 欧美日韩国产精品成人| 日韩一级视频免费观看在线| 久久综合九色综合欧美就去吻| 国产欧美视频一区二区| 中文字幕佐山爱一区二区免费| 一区二区三区丝袜| 免费观看30秒视频久久| 国产aⅴ综合色| 欧美网站大全在线观看| 日韩一区二区电影在线| 久久九九久精品国产免费直播| 亚洲图片激情小说| 日日夜夜精品视频免费| 国产91精品露脸国语对白| 色婷婷综合久久久久中文一区二区| 欧美视频一区在线观看| 日韩精品一区二区三区视频播放 | 国产成人av影院| 日本精品一区二区三区高清| 欧美一区二区视频在线观看2022| 久久久精品人体av艺术| 亚洲高清不卡在线观看| 成人在线视频首页| 51午夜精品国产| 亚洲日韩欧美一区二区在线| 美女在线视频一区| 欧洲人成人精品| 国产精品美女久久福利网站| 奇米精品一区二区三区在线观看一| 成人蜜臀av电影| 欧美成人欧美edvon|