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

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

?? usb_ohci.c

?? 改寫的U-boot for s3c4510 (注意此源碼是在windows下壓縮了)。 1、支持串口下載
?? C
?? 第 1 頁 / 共 3 頁
字號:
		}		break;	case PIPE_BULK:		if (ed->ed_prev == NULL) {			if (!ed->hwNextED) {				ohci->hc_control &= ~OHCI_CTRL_BLE;				writel (ohci->hc_control, &ohci->regs->control);			}			writel (m32_swap (*((__u32 *)&ed->hwNextED)), &ohci->regs->ed_bulkhead);		} else {			ed->ed_prev->hwNextED = ed->hwNextED;		}		if (ohci->ed_bulktail == ed) {			ohci->ed_bulktail = ed->ed_prev;		} else {			((ed_t *)m32_swap (*((__u32 *)&ed->hwNextED)))->ed_prev = ed->ed_prev;		}		break;	}	ed->state = ED_UNLINK;	return 0;}/*-------------------------------------------------------------------------*//* add/reinit an endpoint; this should be done once at the usb_set_configuration command, * but the USB stack is a little bit stateless	so we do it at every transaction * if the state of the ed is ED_NEW then a dummy td is added and the state is changed to ED_UNLINK * in all other cases the state is left unchanged * the ed info fields are setted anyway even though most of them should not change */static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe){	td_t *td;	ed_t *ed_ret;	volatile ed_t *ed;	ed = ed_ret = &ohci_dev.ed[(usb_pipeendpoint (pipe) << 1) |			(usb_pipecontrol (pipe)? 0: usb_pipeout (pipe))];	if ((ed->state & ED_DEL) || (ed->state & ED_URB_DEL)) {		err("ep_add_ed: pending delete");		/* pending delete request */		return NULL;	}	if (ed->state == ED_NEW) {		ed->hwINFO = m32_swap (OHCI_ED_SKIP); /* skip ed */		/* dummy td; end of td list for ed */		td = td_alloc (usb_dev);		ed->hwTailP = m32_swap (td);		ed->hwHeadP = ed->hwTailP;		ed->state = ED_UNLINK;		ed->type = usb_pipetype (pipe);		ohci_dev.ed_cnt++;	}	ed->hwINFO = m32_swap (usb_pipedevice (pipe)			| usb_pipeendpoint (pipe) << 7			| (usb_pipeisoc (pipe)? 0x8000: 0)			| (usb_pipecontrol (pipe)? 0: (usb_pipeout (pipe)? 0x800: 0x1000))			| usb_pipeslow (pipe) << 13			| usb_maxpacket (usb_dev, pipe) << 16);	return ed_ret;}/*-------------------------------------------------------------------------* * TD handling functions *-------------------------------------------------------------------------*//* enqueue next TD for this URB (OHCI spec 5.2.8.2) */static void td_fill (ohci_t *ohci, unsigned int info,	void *data, int len,	struct usb_device *dev, int index, urb_priv_t *urb_priv){	volatile td_t  *td, *td_pt;#ifdef OHCI_FILL_TRACE	int i;#endif	if (index > urb_priv->length) {		err("index > length");		return;	}	/* use this td as the next dummy */	td_pt = urb_priv->td [index];	td_pt->hwNextTD = 0;	/* fill the old dummy TD */	td = urb_priv->td [index] = (td_t *)(m32_swap (urb_priv->ed->hwTailP) & ~0xf);	td->ed = urb_priv->ed;	td->next_dl_td = NULL;	td->index = index;	td->data = (__u32)data;#ifdef OHCI_FILL_TRACE	if ((usb_pipetype(urb_priv->pipe) == PIPE_BULK) && usb_pipeout(urb_priv->pipe)) {		for (i = 0; i < len; i++)		printf("td->data[%d] %#2x ",i, ((unsigned char *)td->data)[i]);		printf("\n");	}#endif	if (!len)		data = 0;	td->hwINFO = m32_swap (info);	td->hwCBP = m32_swap (data);	if (data)		td->hwBE = m32_swap (data + len - 1);	else		td->hwBE = 0;	td->hwNextTD = m32_swap (td_pt);	td->hwPSW [0] = m16_swap (((__u32)data & 0x0FFF) | 0xE000);	/* append to queue */	td->ed->hwTailP = td->hwNextTD;}/*-------------------------------------------------------------------------*//* prepare all TDs of a transfer */static void td_submit_job (struct usb_device *dev, unsigned long pipe, void *buffer,	int transfer_len, struct devrequest *setup, urb_priv_t *urb, int interval){	ohci_t *ohci = &gohci;	int data_len = transfer_len;	void *data;	int cnt = 0;	__u32 info = 0;	unsigned int toggle = 0;	/* OHCI handles the DATA-toggles itself, we just use the USB-toggle bits for reseting */	if(usb_gettoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe))) {		toggle = TD_T_TOGGLE;	} else {		toggle = TD_T_DATA0;		usb_settoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe), 1);	}	urb->td_cnt = 0;	if (data_len)		data = buffer;	else		data = 0;	switch (usb_pipetype (pipe)) {	case PIPE_BULK:		info = usb_pipeout (pipe)?			TD_CC | TD_DP_OUT : TD_CC | TD_DP_IN ;		while(data_len > 4096) {			td_fill (ohci, info | (cnt? TD_T_TOGGLE:toggle), data, 4096, dev, cnt, urb);			data += 4096; data_len -= 4096; cnt++;		}		info = usb_pipeout (pipe)?			TD_CC | TD_DP_OUT : TD_CC | TD_R | TD_DP_IN ;		td_fill (ohci, info | (cnt? TD_T_TOGGLE:toggle), data, data_len, dev, cnt, urb);		cnt++;		if (!ohci->sleeping)			writel (OHCI_BLF, &ohci->regs->cmdstatus); /* start bulk list */		break;	case PIPE_CONTROL:		info = TD_CC | TD_DP_SETUP | TD_T_DATA0;		td_fill (ohci, info, setup, 8, dev, cnt++, urb);		if (data_len > 0) {			info = usb_pipeout (pipe)?				TD_CC | TD_R | TD_DP_OUT | TD_T_DATA1 : TD_CC | TD_R | TD_DP_IN | TD_T_DATA1;			/* NOTE:  mishandles transfers >8K, some >4K */			td_fill (ohci, info, data, data_len, dev, cnt++, urb);		}		info = usb_pipeout (pipe)?			TD_CC | TD_DP_IN | TD_T_DATA1: TD_CC | TD_DP_OUT | TD_T_DATA1;		td_fill (ohci, info, data, 0, dev, cnt++, urb);		if (!ohci->sleeping)			writel (OHCI_CLF, &ohci->regs->cmdstatus); /* start Control list */		break;	}	if (urb->length != cnt)		dbg("TD LENGTH %d != CNT %d", urb->length, cnt);}/*-------------------------------------------------------------------------* * Done List handling functions *-------------------------------------------------------------------------*//* calculate the transfer length and update the urb */static void dl_transfer_length(td_t * td){	__u32 tdINFO, tdBE, tdCBP;	urb_priv_t *lurb_priv = &urb_priv;	tdINFO = m32_swap (td->hwINFO);	tdBE   = m32_swap (td->hwBE);	tdCBP  = m32_swap (td->hwCBP);	if (!(usb_pipetype (lurb_priv->pipe) == PIPE_CONTROL &&	    ((td->index == 0) || (td->index == lurb_priv->length - 1)))) {		if (tdBE != 0) {			if (td->hwCBP == 0)				lurb_priv->actual_length += tdBE - td->data + 1;			else				lurb_priv->actual_length += tdCBP - td->data;		}	}}/*-------------------------------------------------------------------------*//* replies to the request have to be on a FIFO basis so * we reverse the reversed done-list */static td_t * dl_reverse_done_list (ohci_t *ohci){	__u32 td_list_hc;	td_t *td_rev = NULL;	td_t *td_list = NULL;	urb_priv_t *lurb_priv = NULL;	td_list_hc = m32_swap (ohci->hcca->done_head) & 0xfffffff0;	ohci->hcca->done_head = 0;	while (td_list_hc) {		td_list = (td_t *)td_list_hc;		if (TD_CC_GET (m32_swap (td_list->hwINFO))) {			lurb_priv = &urb_priv;			dbg(" USB-error/status: %x : %p",					TD_CC_GET (m32_swap (td_list->hwINFO)), td_list);			if (td_list->ed->hwHeadP & m32_swap (0x1)) {				if (lurb_priv && ((td_list->index + 1) < lurb_priv->length)) {					td_list->ed->hwHeadP =						(lurb_priv->td[lurb_priv->length - 1]->hwNextTD & m32_swap (0xfffffff0)) |									(td_list->ed->hwHeadP & m32_swap (0x2));					lurb_priv->td_cnt += lurb_priv->length - td_list->index - 1;				} else					td_list->ed->hwHeadP &= m32_swap (0xfffffff2);			}		}		td_list->next_dl_td = td_rev;		td_rev = td_list;		td_list_hc = m32_swap (td_list->hwNextTD) & 0xfffffff0;	}	return td_list;}/*-------------------------------------------------------------------------*//* td done list */static int dl_done_list (ohci_t *ohci, td_t *td_list){	td_t *td_list_next = NULL;	ed_t *ed;	int cc = 0;	int stat = 0;	/* urb_t *urb; */	urb_priv_t *lurb_priv;	__u32 tdINFO, edHeadP, edTailP;	while (td_list) {		td_list_next = td_list->next_dl_td;		lurb_priv = &urb_priv;		tdINFO = m32_swap (td_list->hwINFO);		ed = td_list->ed;		dl_transfer_length(td_list);		/* error code of transfer */		cc = TD_CC_GET (tdINFO);		if (cc != 0) {			dbg("ConditionCode %#x", cc);			stat = cc_to_error[cc];		}		if (ed->state != ED_NEW) {			edHeadP = m32_swap (ed->hwHeadP) & 0xfffffff0;			edTailP = m32_swap (ed->hwTailP);			/* unlink eds if they are not busy */			if ((edHeadP == edTailP) && (ed->state == ED_OPER))				ep_unlink (ohci, ed);		}		td_list = td_list_next;	}	return stat;}/*-------------------------------------------------------------------------* * Virtual Root Hub *-------------------------------------------------------------------------*//* Device descriptor */static __u8 root_hub_dev_des[] ={	0x12,	    /*	__u8  bLength; */	0x01,	    /*	__u8  bDescriptorType; Device */	0x10,	    /*	__u16 bcdUSB; v1.1 */	0x01,	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */	0x00,	    /*	__u8  bDeviceSubClass; */	0x00,	    /*	__u8  bDeviceProtocol; */	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */	0x00,	    /*	__u16 idVendor; */	0x00,	0x00,	    /*	__u16 idProduct; */	0x00,	0x00,	    /*	__u16 bcdDevice; */	0x00,	0x00,	    /*	__u8  iManufacturer; */	0x01,	    /*	__u8  iProduct; */	0x00,	    /*	__u8  iSerialNumber; */	0x01	    /*	__u8  bNumConfigurations; */};/* Configuration descriptor */static __u8 root_hub_config_des[] ={	0x09,	    /*	__u8  bLength; */	0x02,	    /*	__u8  bDescriptorType; Configuration */	0x19,	    /*	__u16 wTotalLength; */	0x00,	0x01,	    /*	__u8  bNumInterfaces; */	0x01,	    /*	__u8  bConfigurationValue; */	0x00,	    /*	__u8  iConfiguration; */	0x40,	    /*	__u8  bmAttributes;		 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */	0x00,	    /*	__u8  MaxPower; */	/* interface */	0x09,	    /*	__u8  if_bLength; */	0x04,	    /*	__u8  if_bDescriptorType; Interface */	0x00,	    /*	__u8  if_bInterfaceNumber; */	0x00,	    /*	__u8  if_bAlternateSetting; */	0x01,	    /*	__u8  if_bNumEndpoints; */	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */	0x00,	    /*	__u8  if_bInterfaceSubClass; */	0x00,	    /*	__u8  if_bInterfaceProtocol; */	0x00,	    /*	__u8  if_iInterface; */	/* endpoint */	0x07,	    /*	__u8  ep_bLength; */	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */	0x00,	0xff	    /*	__u8  ep_bInterval; 255 ms */};static unsigned char root_hub_str_index0[] ={	0x04,			/*  __u8  bLength; */	0x03,			/*  __u8  bDescriptorType; String-descriptor */	0x09,			/*  __u8  lang ID */	0x04,			/*  __u8  lang ID */};static unsigned char root_hub_str_index1[] ={	28,			/*  __u8  bLength; */	0x03,			/*  __u8  bDescriptorType; String-descriptor */	'O',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'H',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'C',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'I',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	' ',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'R',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'o',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'o',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	't',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	' ',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'H',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'u',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */	'b',			/*  __u8  Unicode */	0,				/*  __u8  Unicode */};/* Hub class-specific descriptor is constructed dynamically *//*-------------------------------------------------------------------------*/#define OK(x)			len = (x); break#ifdef DEBUG#define WR_RH_STAT(x)		{info("WR:status %#8x", (x));writel((x), &gohci.regs->roothub.status);}#define WR_RH_PORTSTAT(x)	{info("WR:portstatus[%d] %#8x", wIndex-1, (x));writel((x), &gohci.regs->roothub.portstatus[wIndex-1]);}#else#define WR_RH_STAT(x)		writel((x), &gohci.regs->roothub.status)#define WR_RH_PORTSTAT(x)	writel((x), &gohci.regs->roothub.portstatus[wIndex-1])#endif#define RD_RH_STAT		roothub_status(&gohci)#define RD_RH_PORTSTAT		roothub_portstatus(&gohci,wIndex-1)/* request to virtual root hub */int rh_check_port_status(ohci_t *controller){	__u32 temp, ndp, i;	int res;	res = -1;	temp = roothub_a (controller);	ndp = (temp & RH_A_NDP);#ifdef CONFIG_AT91C_PQFP_UHPBUG	ndp = (ndp == 2) ? 1:0;#endif	for (i = 0; i < ndp; i++) {		temp = roothub_portstatus (controller, i);		/* check for a device disconnect */		if (((temp & (RH_PS_PESC | RH_PS_CSC)) ==			(RH_PS_PESC | RH_PS_CSC)) &&			((temp & RH_PS_CCS) == 0)) {			res = i;			break;		}	}	return res;}static int ohci_submit_rh_msg(struct usb_device *dev, unsigned long pipe,		void *buffer, int transfer_len, struct devrequest *cmd){	void * data = buffer;	int leni = transfer_len;	int len = 0;	int stat = 0;	__u32 datab[4];	__u8 *data_buf = (__u8 *)datab;	__u16 bmRType_bReq;	__u16 wValue;	__u16 wIndex;	__u16 wLength;#ifdef DEBUGurb_priv.actual_length = 0;pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe));#else	wait_ms(1);#endif	if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) {		info("Root-Hub submit IRQ: NOT implemented");		return 0;	}	bmRType_bReq  = cmd->requesttype | (cmd->request << 8);	wValue	      = m16_swap (cmd->value);	wIndex	      = m16_swap (cmd->index);	wLength	      = m16_swap (cmd->length);	info("Root-Hub: adr: %2x cmd(%1x): %08x %04x %04x %04x",		dev->devnum, 8, bmRType_bReq, wValue, wIndex, wLength);	switch (bmRType_bReq) {	/* Request Destination:	   without flags: Device,	   RH_INTERFACE: interface,	   RH_ENDPOINT: endpoint,	   RH_CLASS means HUB here,	   RH_OTHER | RH_CLASS	almost ever means HUB_PORT here	*/	case RH_GET_STATUS:			*(__u16 *) data_buf = m16_swap (1); OK (2);	case RH_GET_STATUS | RH_INTERFACE:			*(__u16 *) data_buf = m16_swap (0); OK (2);	case RH_GET_STATUS | RH_ENDPOINT:			*(__u16 *) data_buf = m16_swap (0); OK (2);	case RH_GET_STATUS | RH_CLASS:			*(__u32 *) data_buf = m32_swap (				RD_RH_STAT & ~(RH_HS_CRWE | RH_HS_DRWE));			OK (4);	case RH_GET_STATUS | RH_OTHER | RH_CLASS:			*(__u32 *) data_buf = m32_swap (RD_RH_PORTSTAT); OK (4);	case RH_CLEAR_FEATURE | RH_ENDPOINT:		switch (wValue) {			case (RH_ENDPOINT_STALL): OK (0);		}		break;	case RH_CLEAR_FEATURE | RH_CLASS:		switch (wValue) {			case RH_C_HUB_LOCAL_POWER:				OK(0);			case (RH_C_HUB_OVER_CURRENT):					WR_RH_STAT(RH_HS_OCIC); OK (0);		}		break;	case RH_CLEAR_FEATURE | RH_OTHER | RH_CLASS:		switch (wValue) {			case (RH_PORT_ENABLE):					WR_RH_PORTSTAT (RH_PS_CCS ); OK (0);			case (RH_PORT_SUSPEND):					WR_RH_PORTSTAT (RH_PS_POCI); OK (0);			case (RH_PORT_POWER):					WR_RH_PORTSTAT (RH_PS_LSDA); OK (0);			case (RH_C_PORT_CONNECTION):					WR_RH_PORTSTAT (RH_PS_CSC ); OK (0);			case (RH_C_PORT_ENABLE):					WR_RH_PORTSTAT (RH_PS_PESC); OK (0);			case (RH_C_PORT_SUSPEND):					WR_RH_PORTSTAT (RH_PS_PSSC); OK (0);			case (RH_C_PORT_OVER_CURRENT):					WR_RH_PORTSTAT (RH_PS_OCIC); OK (0);			case (RH_C_PORT_RESET):					WR_RH_PORTSTAT (RH_PS_PRSC); OK (0);		}		break;	case RH_SET_FEATURE | RH_OTHER | RH_CLASS:		switch (wValue) {			case (RH_PORT_SUSPEND):					WR_RH_PORTSTAT (RH_PS_PSS ); OK (0);			case (RH_PORT_RESET): /* BUG IN HUP CODE *********/					if (RD_RH_PORTSTAT & RH_PS_CCS)					    WR_RH_PORTSTAT (RH_PS_PRS);					OK (0);			case (RH_PORT_POWER):					WR_RH_PORTSTAT (RH_PS_PPS ); OK (0);			case (RH_PORT_ENABLE): /* BUG IN HUP CODE *********/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合久久久精品综合 | 欧美在线|欧美| 国产欧美日韩另类一区| 精品1区2区3区| 成人ar影院免费观看视频| 奇米影视在线99精品| 国产精品久久久久9999吃药| 亚洲国产成人一区二区三区| 国产婷婷色一区二区三区四区| 精品国产一区二区三区av性色| 日韩欧美一级特黄在线播放| 日韩精品一区国产麻豆| 欧美岛国在线观看| 日本一区二区三区四区在线视频| 国产午夜精品一区二区三区视频| 国产精品三级电影| 亚洲欧美另类久久久精品| 怡红院av一区二区三区| 亚洲激情校园春色| 日本成人中文字幕在线视频| 精品一区二区三区不卡| 粉嫩嫩av羞羞动漫久久久| 成人h动漫精品一区二| 91福利资源站| 精品1区2区在线观看| 中文一区一区三区高中清不卡| 日韩美女视频一区| 奇米色一区二区三区四区| 国产乱码精品一区二区三| 91麻豆视频网站| 日韩一级高清毛片| 欧美韩日一区二区三区四区| 亚洲国产美女搞黄色| 国产剧情在线观看一区二区 | 久久久三级国产网站| 国产精品丝袜91| 天天做天天摸天天爽国产一区 | 国产亚洲精品久| 一区二区三区产品免费精品久久75| 日本色综合中文字幕| caoporen国产精品视频| 欧美精品一二三| 中文字幕成人av| 日韩电影在线免费看| 国产99久久久国产精品潘金网站| 欧美亚洲一区三区| 国产农村妇女毛片精品久久麻豆| 亚洲午夜免费视频| 成人app下载| 精品美女在线播放| 首页亚洲欧美制服丝腿| 色综合天天性综合| 国产无遮挡一区二区三区毛片日本| 一级中文字幕一区二区| 成人一级视频在线观看| 日韩欧美电影一二三| 亚洲成人www| 91麻豆文化传媒在线观看| 欧美大片在线观看| 日韩中文字幕区一区有砖一区| 99re在线精品| 日本一区二区三区免费乱视频| 免费成人在线视频观看| 欧美色偷偷大香| 亚洲欧美另类小说视频| 北条麻妃一区二区三区| 国产亚洲成av人在线观看导航| 亚洲成av人**亚洲成av**| 91久久免费观看| 亚洲色图色小说| 不卡的av电影| 天天影视涩香欲综合网| 欧美情侣在线播放| 亚洲国产cao| 欧美三级蜜桃2在线观看| 亚洲精品亚洲人成人网在线播放| 不卡的av网站| 亚洲三级在线观看| 在线看国产一区| 亚洲bt欧美bt精品| 91麻豆精品国产综合久久久久久| 性欧美疯狂xxxxbbbb| 欧美日韩精品欧美日韩精品一| 亚洲第一狼人社区| 4438x成人网最大色成网站| 日韩黄色在线观看| 日韩三级精品电影久久久| 久久激情五月激情| 久久综合九色综合97婷婷| 大胆亚洲人体视频| 亚洲精品国产精品乱码不99| 91国产免费看| 日韩**一区毛片| 久久精品视频免费| 色综合久久综合网| 性做久久久久久| 精品福利视频一区二区三区| 国产精品99久久不卡二区| 国产精品久久久久桃色tv| 欧美性一二三区| 另类欧美日韩国产在线| 国产欧美一区二区精品性色| 91色porny| 香蕉加勒比综合久久| 精品国产在天天线2019| 成人精品视频一区二区三区| 亚洲蜜桃精久久久久久久| 欧美一级高清片| 丰满白嫩尤物一区二区| 亚洲美女一区二区三区| 欧美mv和日韩mv的网站| 91麻豆免费观看| 麻豆精品视频在线观看| 中文字幕亚洲在| 欧美大片在线观看一区二区| bt欧美亚洲午夜电影天堂| 日韩高清在线一区| 日韩一区中文字幕| 精品国产一区二区三区忘忧草 | 亚洲成人动漫一区| 中文字幕乱码久久午夜不卡| 3d动漫精品啪啪| 不卡区在线中文字幕| 久久成人免费网站| 亚洲成人免费视频| 国产精品久久久久久久午夜片| 日韩精品中文字幕在线不卡尤物| 色综合中文字幕国产 | 久久se精品一区精品二区| 亚洲免费观看高清完整版在线观看熊| 欧美肥大bbwbbw高潮| 91香蕉视频在线| 国产精品一区二区果冻传媒| 日本亚洲欧美天堂免费| 一区二区三区日韩精品| 国产精品久久国产精麻豆99网站| 日韩三级视频中文字幕| 欧美人与z0zoxxxx视频| 色噜噜偷拍精品综合在线| 国产精品一品视频| 久久97超碰国产精品超碰| 亚洲成av人片在线| 亚洲一二三级电影| 亚洲与欧洲av电影| 欧美美女激情18p| 香蕉成人啪国产精品视频综合网| 国产日韩一级二级三级| 精品免费视频.| 日韩欧美国产精品一区| 在线成人av网站| 欧美精品黑人性xxxx| 欧美怡红院视频| 在线观看三级视频欧美| 一本到不卡精品视频在线观看| 成人免费视频一区| 国产+成+人+亚洲欧洲自线| 国产一区二区三区免费在线观看| 亚洲大片在线观看| 亚洲午夜精品一区二区三区他趣| 一区二区三区丝袜| 亚洲最大成人网4388xx| 一区二区不卡在线播放| 亚洲综合久久av| 亚洲丶国产丶欧美一区二区三区| 亚洲妇熟xx妇色黄| 天天色天天操综合| 精品一区二区三区免费播放| 韩国一区二区三区| 成人综合婷婷国产精品久久| 丁香一区二区三区| 色婷婷综合五月| 欧美精品三级日韩久久| 日韩精品专区在线| 国产精品三级在线观看| 一区二区三区不卡视频| 免费观看在线综合色| 国产精品一二三区| 97久久精品人人爽人人爽蜜臀| 欧美综合一区二区| 欧美va日韩va| 国产精品国产三级国产三级人妇| 怡红院av一区二区三区| 青青草91视频| 波多野结衣中文字幕一区二区三区| 欧美性受xxxx| wwwwww.欧美系列| 亚洲天天做日日做天天谢日日欢| 丝袜亚洲另类欧美综合| 国产东北露脸精品视频| 欧美视频精品在线观看| 久久亚洲一区二区三区四区| 亚洲免费视频成人| 另类的小说在线视频另类成人小视频在线| 国产精品一区免费在线观看| 91在线精品一区二区| 日韩精品一区二区在线观看| 亚洲色图欧美在线| 黄一区二区三区| 欧美日韩久久一区二区| 久久久久9999亚洲精品|