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

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

?? mesh.c

?? linux 內(nèi)核源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
	}	dlog(ms, "after arb, intr/exc/err/fc=%.8x",	     MKWORD(mr->interrupt, mr->exception, mr->error, mr->fifo_count));	if (in_8(&mr->interrupt) == 0 && (in_8(&mr->bus_status1) & BS1_SEL)	    && (in_8(&mr->bus_status0) & BS0_IO)) {		/* looks like a reselection - try resetting the mesh */		dlog(ms, "resel? after arb, intr/exc/err/fc=%.8x",		     MKWORD(mr->interrupt, mr->exception, mr->error, mr->fifo_count));		out_8(&mr->sequence, SEQ_RESETMESH);		mesh_flush_io(mr);		udelay(10);		out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);		out_8(&mr->intr_mask, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);		out_8(&mr->sequence, SEQ_ENBRESEL);		mesh_flush_io(mr);		for (t = 10; t > 0 && in_8(&mr->interrupt) == 0; --t)			udelay(1);		dlog(ms, "tried reset after arb, intr/exc/err/fc=%.8x",		     MKWORD(mr->interrupt, mr->exception, mr->error, mr->fifo_count));#ifndef MESH_MULTIPLE_HOSTS		if (in_8(&mr->interrupt) == 0 && (in_8(&mr->bus_status1) & BS1_SEL)		    && (in_8(&mr->bus_status0) & BS0_IO)) {			printk(KERN_ERR "mesh: controller not responding"			       " to reselection!\n");			/*			 * If this is a target reselecting us, and the			 * mesh isn't responding, the higher levels of			 * the scsi code will eventually time out and			 * reset the bus.			 */		}#endif	}}/* * Start the next command for a MESH. * Should be called with interrupts disabled. */static void mesh_start(struct mesh_state *ms){	struct scsi_cmnd *cmd, *prev, *next;	if (ms->phase != idle || ms->current_req != NULL) {		printk(KERN_ERR "inappropriate mesh_start (phase=%d, ms=%p)",		       ms->phase, ms);		return;	}	while (ms->phase == idle) {		prev = NULL;		for (cmd = ms->request_q; ; cmd = (struct scsi_cmnd *) cmd->host_scribble) {			if (cmd == NULL)				return;			if (ms->tgts[cmd->device->id].current_req == NULL)				break;			prev = cmd;		}		next = (struct scsi_cmnd *) cmd->host_scribble;		if (prev == NULL)			ms->request_q = next;		else			prev->host_scribble = (void *) next;		if (next == NULL)			ms->request_qtail = prev;		mesh_start_cmd(ms, cmd);	}}static void mesh_done(struct mesh_state *ms, int start_next){	struct scsi_cmnd *cmd;	struct mesh_target *tp = &ms->tgts[ms->conn_tgt];	cmd = ms->current_req;	ms->current_req = NULL;	tp->current_req = NULL;	if (cmd) {		cmd->result = (ms->stat << 16) + cmd->SCp.Status;		if (ms->stat == DID_OK)			cmd->result += (cmd->SCp.Message << 8);		if (DEBUG_TARGET(cmd)) {			printk(KERN_DEBUG "mesh_done: result = %x, data_ptr=%d, buflen=%d\n",			       cmd->result, ms->data_ptr, scsi_bufflen(cmd));#if 0			/* needs to use sg? */			if ((cmd->cmnd[0] == 0 || cmd->cmnd[0] == 0x12 || cmd->cmnd[0] == 3)			    && cmd->request_buffer != 0) {				unsigned char *b = cmd->request_buffer;				printk(KERN_DEBUG "buffer = %x %x %x %x %x %x %x %x\n",				       b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);			}#endif		}		cmd->SCp.this_residual -= ms->data_ptr;		mesh_completed(ms, cmd);	}	if (start_next) {		out_8(&ms->mesh->sequence, SEQ_ENBRESEL);		mesh_flush_io(ms->mesh);		udelay(1);		ms->phase = idle;		mesh_start(ms);	}}static inline void add_sdtr_msg(struct mesh_state *ms){	int i = ms->n_msgout;	ms->msgout[i] = EXTENDED_MESSAGE;	ms->msgout[i+1] = 3;	ms->msgout[i+2] = EXTENDED_SDTR;	ms->msgout[i+3] = mesh_sync_period/4;	ms->msgout[i+4] = (ALLOW_SYNC(ms->conn_tgt)? mesh_sync_offset: 0);	ms->n_msgout = i + 5;}static void set_sdtr(struct mesh_state *ms, int period, int offset){	struct mesh_target *tp = &ms->tgts[ms->conn_tgt];	volatile struct mesh_regs __iomem *mr = ms->mesh;	int v, tr;	tp->sdtr_state = sdtr_done;	if (offset == 0) {		/* asynchronous */		if (SYNC_OFF(tp->sync_params))			printk(KERN_INFO "mesh: target %d now asynchronous\n",			       ms->conn_tgt);		tp->sync_params = ASYNC_PARAMS;		out_8(&mr->sync_params, ASYNC_PARAMS);		return;	}	/*	 * We need to compute ceil(clk_freq * period / 500e6) - 2	 * without incurring overflow.	 */	v = (ms->clk_freq / 5000) * period;	if (v <= 250000) {		/* special case: sync_period == 5 * clk_period */		v = 0;		/* units of tr are 100kB/s */		tr = (ms->clk_freq + 250000) / 500000;	} else {		/* sync_period == (v + 2) * 2 * clk_period */		v = (v + 99999) / 100000 - 2;		if (v > 15)			v = 15;	/* oops */		tr = ((ms->clk_freq / (v + 2)) + 199999) / 200000;	}	if (offset > 15)		offset = 15;	/* can't happen */	tp->sync_params = SYNC_PARAMS(offset, v);	out_8(&mr->sync_params, tp->sync_params);	printk(KERN_INFO "mesh: target %d synchronous at %d.%d MB/s\n",	       ms->conn_tgt, tr/10, tr%10);}static void start_phase(struct mesh_state *ms){	int i, seq, nb;	volatile struct mesh_regs __iomem *mr = ms->mesh;	volatile struct dbdma_regs __iomem *md = ms->dma;	struct scsi_cmnd *cmd = ms->current_req;	struct mesh_target *tp = &ms->tgts[ms->conn_tgt];	dlog(ms, "start_phase nmo/exc/fc/seq = %.8x",	     MKWORD(ms->n_msgout, mr->exception, mr->fifo_count, mr->sequence));	out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);	seq = use_active_neg + (ms->n_msgout? SEQ_ATN: 0);	switch (ms->msgphase) {	case msg_none:		break;	case msg_in:		out_8(&mr->count_hi, 0);		out_8(&mr->count_lo, 1);		out_8(&mr->sequence, SEQ_MSGIN + seq);		ms->n_msgin = 0;		return;	case msg_out:		/*		 * To make sure ATN drops before we assert ACK for		 * the last byte of the message, we have to do the		 * last byte specially.		 */		if (ms->n_msgout <= 0) {			printk(KERN_ERR "mesh: msg_out but n_msgout=%d\n",			       ms->n_msgout);			mesh_dump_regs(ms);			ms->msgphase = msg_none;			break;		}		if (ALLOW_DEBUG(ms->conn_tgt)) {			printk(KERN_DEBUG "mesh: sending %d msg bytes:",			       ms->n_msgout);			for (i = 0; i < ms->n_msgout; ++i)				printk(" %x", ms->msgout[i]);			printk("\n");		}		dlog(ms, "msgout msg=%.8x", MKWORD(ms->n_msgout, ms->msgout[0],						ms->msgout[1], ms->msgout[2]));		out_8(&mr->count_hi, 0);		out_8(&mr->sequence, SEQ_FLUSHFIFO);		mesh_flush_io(mr);		udelay(1);		/*		 * If ATN is not already asserted, we assert it, then		 * issue a SEQ_MSGOUT to get the mesh to drop ACK.		 */		if ((in_8(&mr->bus_status0) & BS0_ATN) == 0) {			dlog(ms, "bus0 was %.2x explicitly asserting ATN", mr->bus_status0);			out_8(&mr->bus_status0, BS0_ATN); /* explicit ATN */			mesh_flush_io(mr);			udelay(1);			out_8(&mr->count_lo, 1);			out_8(&mr->sequence, SEQ_MSGOUT + seq);			out_8(&mr->bus_status0, 0); /* release explicit ATN */			dlog(ms,"hace: after explicit ATN bus0=%.2x",mr->bus_status0);		}		if (ms->n_msgout == 1) {			/*			 * We can't issue the SEQ_MSGOUT without ATN			 * until the target has asserted REQ.  The logic			 * in cmd_complete handles both situations:			 * REQ already asserted or not.			 */			cmd_complete(ms);		} else {			out_8(&mr->count_lo, ms->n_msgout - 1);			out_8(&mr->sequence, SEQ_MSGOUT + seq);			for (i = 0; i < ms->n_msgout - 1; ++i)				out_8(&mr->fifo, ms->msgout[i]);		}		return;	default:		printk(KERN_ERR "mesh bug: start_phase msgphase=%d\n",		       ms->msgphase);	}	switch (ms->phase) {	case selecting:		out_8(&mr->dest_id, ms->conn_tgt);		out_8(&mr->sequence, SEQ_SELECT + SEQ_ATN);		break;	case commanding:		out_8(&mr->sync_params, tp->sync_params);		out_8(&mr->count_hi, 0);		if (cmd) {			out_8(&mr->count_lo, cmd->cmd_len);			out_8(&mr->sequence, SEQ_COMMAND + seq);			for (i = 0; i < cmd->cmd_len; ++i)				out_8(&mr->fifo, cmd->cmnd[i]);		} else {			out_8(&mr->count_lo, 6);			out_8(&mr->sequence, SEQ_COMMAND + seq);			for (i = 0; i < 6; ++i)				out_8(&mr->fifo, 0);		}		break;	case dataing:		/* transfer data, if any */		if (!ms->dma_started) {			set_dma_cmds(ms, cmd);			out_le32(&md->cmdptr, virt_to_phys(ms->dma_cmds));			out_le32(&md->control, (RUN << 16) | RUN);			ms->dma_started = 1;		}		nb = ms->dma_count;		if (nb > 0xfff0)			nb = 0xfff0;		ms->dma_count -= nb;		ms->data_ptr += nb;		out_8(&mr->count_lo, nb);		out_8(&mr->count_hi, nb >> 8);		out_8(&mr->sequence, (tp->data_goes_out?				SEQ_DATAOUT: SEQ_DATAIN) + SEQ_DMA_MODE + seq);		break;	case statusing:		out_8(&mr->count_hi, 0);		out_8(&mr->count_lo, 1);		out_8(&mr->sequence, SEQ_STATUS + seq);		break;	case busfreeing:	case disconnecting:		out_8(&mr->sequence, SEQ_ENBRESEL);		mesh_flush_io(mr);		udelay(1);		dlog(ms, "enbresel intr/exc/err/fc=%.8x",		     MKWORD(mr->interrupt, mr->exception, mr->error,			    mr->fifo_count));		out_8(&mr->sequence, SEQ_BUSFREE);		break;	default:		printk(KERN_ERR "mesh: start_phase called with phase=%d\n",		       ms->phase);		dumpslog(ms);	}}static inline void get_msgin(struct mesh_state *ms){	volatile struct mesh_regs __iomem *mr = ms->mesh;	int i, n;	n = mr->fifo_count;	if (n != 0) {		i = ms->n_msgin;		ms->n_msgin = i + n;		for (; n > 0; --n)			ms->msgin[i++] = in_8(&mr->fifo);	}}static inline int msgin_length(struct mesh_state *ms){	int b, n;	n = 1;	if (ms->n_msgin > 0) {		b = ms->msgin[0];		if (b == 1) {			/* extended message */			n = ms->n_msgin < 2? 2: ms->msgin[1] + 2;		} else if (0x20 <= b && b <= 0x2f) {			/* 2-byte message */			n = 2;		}	}	return n;}static void reselected(struct mesh_state *ms){	volatile struct mesh_regs __iomem *mr = ms->mesh;	struct scsi_cmnd *cmd;	struct mesh_target *tp;	int b, t, prev;	switch (ms->phase) {	case idle:		break;	case arbitrating:		if ((cmd = ms->current_req) != NULL) {			/* put the command back on the queue */			cmd->host_scribble = (void *) ms->request_q;			if (ms->request_q == NULL)				ms->request_qtail = cmd;			ms->request_q = cmd;			tp = &ms->tgts[cmd->device->id];			tp->current_req = NULL;		}		break;	case busfreeing:		ms->phase = reselecting;		mesh_done(ms, 0);		break;	case disconnecting:		break;	default:		printk(KERN_ERR "mesh: reselected in phase %d/%d tgt %d\n",		       ms->msgphase, ms->phase, ms->conn_tgt);		dumplog(ms, ms->conn_tgt);		dumpslog(ms);	}	if (ms->dma_started) {		printk(KERN_ERR "mesh: reselected with DMA started !\n");		halt_dma(ms);	}	ms->current_req = NULL;	ms->phase = dataing;	ms->msgphase = msg_in;	ms->n_msgout = 0;	ms->last_n_msgout = 0;	prev = ms->conn_tgt;	/*	 * We seem to get abortive reselections sometimes.	 */	while ((in_8(&mr->bus_status1) & BS1_BSY) == 0) {		static int mesh_aborted_resels;		mesh_aborted_resels++;		out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);		mesh_flush_io(mr);		udelay(1);		out_8(&mr->sequence, SEQ_ENBRESEL);		mesh_flush_io(mr);		udelay(5);		dlog(ms, "extra resel err/exc/fc = %.6x",		     MKWORD(0, mr->error, mr->exception, mr->fifo_count));	}	out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);       	mesh_flush_io(mr);	udelay(1);	out_8(&mr->sequence, SEQ_ENBRESEL);       	mesh_flush_io(mr);	udelay(1);	out_8(&mr->sync_params, ASYNC_PARAMS);	/*	 * Find out who reselected us.	 */	if (in_8(&mr->fifo_count) == 0) {		printk(KERN_ERR "mesh: reselection but nothing in fifo?\n");		ms->conn_tgt = ms->host->this_id;		goto bogus;	}	/* get the last byte in the fifo */	do {		b = in_8(&mr->fifo);		dlog(ms, "reseldata %x", b);	} while (in_8(&mr->fifo_count));	for (t = 0; t < 8; ++t)		if ((b & (1 << t)) != 0 && t != ms->host->this_id)			break;	if (b != (1 << t) + (1 << ms->host->this_id)) {		printk(KERN_ERR "mesh: bad reselection data %x\n", b);		ms->conn_tgt = ms->host->this_id;		goto bogus;	}	/*	 * Set up to continue with that target's transfer.	 */	ms->conn_tgt = t;	tp = &ms->tgts[t];	out_8(&mr->sync_params, tp->sync_params);	if (ALLOW_DEBUG(t)) {		printk(KERN_DEBUG "mesh: reselected by target %d\n", t);		printk(KERN_DEBUG "mesh: saved_ptr=%x goes_out=%d cmd=%p\n",		       tp->saved_ptr, tp->data_goes_out, tp->current_req);	}	ms->current_req = tp->current_req;	if (tp->current_req == NULL) {		printk(KERN_ERR "mesh: reselected by tgt %d but no cmd!\n", t);		goto bogus;	}	ms->data_ptr = tp->saved_ptr;	dlog(ms, "resel prev tgt=%d", prev);	dlog(ms, "resel err/exc=%.4x", MKWORD(0, 0, mr->error, mr->exception));	start_phase(ms);	return;bogus:	dumplog(ms, ms->conn_tgt);	dumpslog(ms);	ms->data_ptr = 0;	ms->aborting = 1;	start_phase(ms);}static void do_abort(struct mesh_state *ms){	ms->msgout[0] = ABORT;	ms->n_msgout = 1;	ms->aborting = 1;	ms->stat = DID_ABORT;	dlog(ms, "abort", 0);}static void handle_reset(struct mesh_state *ms){	int tgt;	struct mesh_target *tp;	struct scsi_cmnd *cmd;	volatile struct mesh_regs __iomem *mr = ms->mesh;	for (tgt = 0; tgt < 8; ++tgt) {		tp = &ms->tgts[tgt];		if ((cmd = tp->current_req) != NULL) {			cmd->result = DID_RESET << 16;			tp->current_req = NULL;			mesh_completed(ms, cmd);		}		ms->tgts[tgt].sdtr_state = do_sdtr;		ms->tgts[tgt].sync_params = ASYNC_PARAMS;	}	ms->current_req = NULL;	while ((cmd = ms->request_q) != NULL) {		ms->request_q = (struct scsi_cmnd *) cmd->host_scribble;		cmd->result = DID_RESET << 16;		mesh_completed(ms, cmd);	}	ms->phase = idle;	ms->msgphase = msg_none;	out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);	out_8(&mr->sequence, SEQ_FLUSHFIFO);       	mesh_flush_io(mr);	udelay(1);	out_8(&mr->sync_params, ASYNC_PARAMS);	out_8(&mr->sequence, SEQ_ENBRESEL);}static irqreturn_t do_mesh_interrupt(int irq, void *dev_id){	unsigned long flags;	struct mesh_state *ms = dev_id;	struct Scsi_Host *dev = ms->host;		spin_lock_irqsave(dev->host_lock, flags);	mesh_interrupt(ms);	spin_unlock_irqrestore(dev->host_lock, flags);	return IRQ_HANDLED;}static void handle_error(struct mesh_state *ms){	int err, exc, count;	volatile struct mesh_regs __iomem *mr = ms->mesh;	err = in_8(&mr->error);	exc = in_8(&mr->exception);	out_8(&mr->interrupt, INT_ERROR | INT_EXCEPTION | INT_CMDDONE);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产一区二区| 色综合色综合色综合色综合色综合| 日本aⅴ免费视频一区二区三区 | 色欧美88888久久久久久影院| 欧美视频精品在线| 欧美一区二区性放荡片| 国产欧美日韩另类视频免费观看| 成人欧美一区二区三区黑人麻豆 | 亚洲日本在线天堂| 婷婷国产v国产偷v亚洲高清| 激情欧美一区二区| 91网站在线播放| 日韩免费观看高清完整版| 国产精品天美传媒| 视频一区二区不卡| 不卡欧美aaaaa| 欧美一二三四在线| 亚洲日本在线a| 精品一区二区三区的国产在线播放| 成人国产精品免费观看视频| 91麻豆精品国产自产在线观看一区| 欧美国产综合色视频| 日韩精品1区2区3区| caoporn国产一区二区| 欧美一级二级三级蜜桃| 亚洲天堂免费在线观看视频| 经典三级视频一区| 欧美日韩综合色| 国产欧美精品一区二区三区四区| 亚洲成人av电影| 成人黄页在线观看| 欧美mv日韩mv| 亚洲成人动漫在线观看| 成人黄色一级视频| 日韩欧美国产麻豆| 亚洲成人先锋电影| 92精品国产成人观看免费 | 国产精品亚洲一区二区三区妖精| 欧美在线看片a免费观看| 国产片一区二区| 麻豆精品一区二区综合av| 欧美性受极品xxxx喷水| 国产精品美女久久久久久久久久久 | 高潮精品一区videoshd| 日韩一区二区三区电影在线观看| 亚洲激情在线激情| 岛国精品一区二区| 精品区一区二区| 日韩专区中文字幕一区二区| 在线视频你懂得一区二区三区| 国产精品美日韩| 国产高清不卡一区| 精品免费视频.| 日韩高清在线不卡| 欧美日精品一区视频| 中文字幕中文字幕一区| 国模一区二区三区白浆| 日韩午夜三级在线| 秋霞影院一区二区| 777色狠狠一区二区三区| 亚洲成人免费视频| 欧美视频在线一区二区三区| 亚洲日本丝袜连裤袜办公室| 成人激情校园春色| 中文字幕欧美日韩一区| 国产suv精品一区二区三区| 久久色视频免费观看| 老鸭窝一区二区久久精品| 日韩一区二区三区电影| 日韩电影免费一区| 91麻豆精品国产91久久久更新时间| 亚洲高清三级视频| 欧美日韩中文国产| 日日骚欧美日韩| 日韩一区二区免费在线观看| 麻豆精品久久久| 久久影院视频免费| 丁香婷婷深情五月亚洲| 国产精品免费免费| 91麻豆自制传媒国产之光| 亚洲男人的天堂在线aⅴ视频| 91偷拍与自偷拍精品| 亚洲精品一二三四区| 欧美中文字幕一二三区视频| 午夜精品久久久久久久99樱桃| 欧美人与性动xxxx| 久久精品国内一区二区三区| 欧美tk—视频vk| 国产福利一区二区三区视频在线| 中文在线一区二区| 91捆绑美女网站| 亚洲一本大道在线| 欧美一区二区三区婷婷月色 | 久久久久久久综合日本| 国产黄色精品网站| 亚洲视频在线一区二区| 欧美色窝79yyyycom| 日韩精品成人一区二区在线| 2024国产精品| 成人sese在线| 亚洲成av人片在www色猫咪| 欧美一区二区三区免费在线看| 国产一区二区美女诱惑| 亚洲欧洲av一区二区三区久久| 91成人看片片| 蜜桃视频一区二区三区| 中文字幕+乱码+中文字幕一区| 色屁屁一区二区| 裸体歌舞表演一区二区| 国产精品短视频| 欧美日韩国产大片| 国产乱国产乱300精品| 国产精品国产成人国产三级| 欧美色爱综合网| 国产一区二区三区久久久| 亚洲色图制服丝袜| 日韩三级伦理片妻子的秘密按摩| 国产一区二区三区免费在线观看| 亚洲精品午夜久久久| 26uuu亚洲综合色| 欧美这里有精品| 精一区二区三区| 亚洲精品欧美综合四区| 日韩精品专区在线影院重磅| 成人午夜碰碰视频| 日韩国产精品大片| 椎名由奈av一区二区三区| 欧美一区二区三区视频免费 | 综合电影一区二区三区| 51精品秘密在线观看| 成人白浆超碰人人人人| 免费精品视频在线| 亚洲色图.com| 精品av久久707| 欧美亚洲国产怡红院影院| 久久超级碰视频| 夜夜亚洲天天久久| 久久九九久久九九| 91精品国产综合久久精品app| 成人午夜短视频| 久久99蜜桃精品| 无吗不卡中文字幕| 亚洲欧美日韩国产成人精品影院 | 国产精品原创巨作av| 亚洲成人精品一区二区| 中文字幕av不卡| 精品日韩欧美在线| 欧美日韩一区三区四区| 成人av在线资源| 国产一区 二区| 日本视频中文字幕一区二区三区| 亚洲免费高清视频在线| 欧美经典一区二区| 精品乱码亚洲一区二区不卡| 欧美色图在线观看| 91黄色激情网站| av欧美精品.com| 国产精品一二三四| 国内精品国产成人国产三级粉色 | 69堂国产成人免费视频| 91久久久免费一区二区| av色综合久久天堂av综合| 国产乱码精品一区二区三区五月婷 | 99久久伊人久久99| 国产成人av电影免费在线观看| 久久成人免费电影| 另类中文字幕网| 青青草国产精品亚洲专区无| 婷婷综合另类小说色区| 一区二区三区在线免费视频| 国产精品女人毛片| 国产精品久久夜| 国产午夜精品美女毛片视频| 精品国产精品一区二区夜夜嗨| 日韩午夜电影av| 日韩一级大片在线| 欧美一区二区三区视频免费| 欧美人妖巨大在线| 555www色欧美视频| 欧美一区二区免费观在线| 欧美男人的天堂一二区| 欧美日韩高清在线播放| 欧美日韩成人综合在线一区二区| 欧美日韩一级二级三级| 欧美浪妇xxxx高跟鞋交| 91麻豆精品国产91久久久| 欧美一区二区三区视频免费| 欧美电影免费观看高清完整版在线观看| 在线播放日韩导航| 欧美一二三四区在线| 日韩欧美中文字幕一区| 久久综合久久99| 国产日韩精品一区二区三区在线| 国产午夜亚洲精品理论片色戒| 国产亚洲精品福利| 亚洲欧美综合在线精品| 亚洲一区二区三区四区在线| 日韩影院精彩在线| 经典一区二区三区| 波多野结衣中文一区|