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

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

?? rtl8139.c

?? linux_8139驅(qū)動源碼,研究一遍
?? C
?? 第 1 頁 / 共 5 頁
字號:
	diff=rxPhyAddr-((rxPhyAddr >> 8)<< 8);	diff=256-diff;	rxPhyAddr +=diff;	tp->rxDescArray = (struct CPlusRxDesc *)(tp->rxDescArrays + diff);	rtl8139cp_init_ring(dev);		tp->full_duplex = tp->duplex_lock;	tp->tx_flag = (TX_FIFO_THRESH<<TX_FIFO_THRESH_SHIFT) & 0x003f0000;	tp->rx_config =	(RX_FIFO_THRESH << RX_FIFO_THRESH_SHIFT) | (RX_BUF_LEN_IDX << RX_BUF_LEN_IDX_SHIFT)	 					| (RX_DMA_BURST << RX_DMA_BURST_SHIFT);	/* Check that the chip has finished the reset. */	for (i = 1000; i > 0; i--)		if ((inb(ioaddr + ChipCmd) & CmdReset) == 0)			break;	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 0)), ioaddr + MAC0 + 0);	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 4)), ioaddr + MAC0 + 4);	/* Must enable Tx/Rx before setting transfer thresholds! */	outb( CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);	outw( CpCmdRxEnb | CpCmdTxEnb, ioaddr + CPlusCmd);	outb( CPEarlyTxThld, ioaddr + CPlusEarlyTxThld);	outl(tp->rx_config, ioaddr + RxConfig);	/* The manual contradicts itself describing the proper IFG setting. */	outl((TX_DMA_BURST << TX_DMA_BURST_SHIFT) | 0x03000000, ioaddr + TxConfig);	if (tp->phys[0] >= 0  ||  (tp->drv_flags & HAS_MII_XCVR)) {		u16 mii_reg5 = mdio_read(dev, tp->phys[0], 5);		if (mii_reg5 == 0xffff)			;					/* Not there */		else if ((mii_reg5 & 0x0100) == 0x0100				 || (mii_reg5 & 0x00C0) == 0x0040)			tp->full_duplex = 1;		if (debug > 1)			printk(KERN_INFO"%s: Setting %s%s-duplex based on"				   " auto-negotiated partner ability %4.4x.\n", dev->name,				   mii_reg5 == 0 ? "" :				   (mii_reg5 & 0x0180) ? "100mbps " : "10mbps ",				   tp->full_duplex ? "full" : "half", mii_reg5);	}	outb(Cfg9346_Unlock, ioaddr + Cfg9346);	outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1);	outl(rxPhyAddr, ioaddr + CPlusRxStartAddr);	outl(txPhyAddr, ioaddr + CPlusTxStartAddr);	outb(Cfg9346_Lock, ioaddr + Cfg9346);	/* Start the chip's Tx and Rx process. */	outl(0, ioaddr + RxMissed);	set_rx_mode(dev);	outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);	dev->tbusy = 0;	dev->interrupt = 0;	dev->start = 1;	/* Enable all known interrupts by setting the interrupt mask. */	outw(PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver		 | TxErr | TxOK | RxErr | RxOK, ioaddr + IntrMask);	if (debug > 1)		printk(KERN_DEBUG"%s: rtl8129_open() ioaddr %#lx IRQ %d"			   " GP Pins %2.2x %s-duplex.\n",			   dev->name, ioaddr, dev->irq, inb(ioaddr + GPPinData),			   tp->full_duplex ? "full" : "half");	/* Set the timer to switch to check for link beat and perhaps switch	   to an alternate media type. */	init_timer(&tp->timer);	tp->timer.expires = jiffies + 3*HZ;	tp->timer.data = (unsigned long)dev;	tp->timer.function = &rtl8129_timer;	add_timer(&tp->timer);	return 0;}static int rtl8129_open(struct net_device *dev){	struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv;	long ioaddr = dev->base_addr;	int i;	/* Soft reset the chip. */	outb(CmdReset, ioaddr + ChipCmd);	MOD_INC_USE_COUNT;	if (request_irq(dev->irq, &rtl8129_interrupt, SA_SHIRQ, dev->name, dev)) {		MOD_DEC_USE_COUNT;		return -EAGAIN;	}	/* The Rx ring allocation size is 2^N + delta, which is worst-case for	   the kernel binary-buddy allocation.  We allocate the Tx bounce buffers	   at the same time to use some of the otherwise wasted space.	   The delta of +16 is required for dribble-over because the receiver does	   not wrap when the packet terminates just beyond the end of the ring. */	tp->rx_ring = kmalloc(RX_BUF_LEN + 16 + (TX_BUF_SIZE * NUM_TX_DESC),						  GFP_KERNEL);	if (tp->rx_ring == NULL) {		if (debug > 0)			printk(KERN_ERR "%s: Couldn't allocate a %d byte receive ring.\n",				   dev->name, RX_BUF_LEN);		MOD_DEC_USE_COUNT;		return -ENOMEM;	}	tp->tx_bufs = tp->rx_ring + RX_BUF_LEN + 16;	rtl8129_init_ring(dev);	tp->full_duplex = tp->duplex_lock;	tp->tx_flag = (TX_FIFO_THRESH<<TX_FIFO_THRESH_SHIFT) & 0x003f0000;	tp->rx_config =		(RX_FIFO_THRESH << RX_FIFO_THRESH_SHIFT) | (RX_BUF_LEN_IDX << RX_BUF_LEN_IDX_SHIFT) | (RX_DMA_BURST<<RX_DMA_BURST_SHIFT);	/* Check that the chip has finished the reset. */	for (i = 1000; i > 0; i--)		if ((inb(ioaddr + ChipCmd) & CmdReset) == 0)			break;	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 0)), ioaddr + MAC0 + 0);	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 4)), ioaddr + MAC0 + 4);	/* Must enable Tx/Rx before setting transfer thresholds! */	outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);	outl(tp->rx_config, ioaddr + RxConfig);	/* The manual contradicts itself describing the proper IFG setting. */	outl((TX_DMA_BURST<<TX_DMA_BURST_SHIFT)|0x00000000, ioaddr + TxConfig);	if (tp->phys[0] >= 0  ||  (tp->drv_flags & HAS_MII_XCVR)) {		u16 mii_reg5 = mdio_read(dev, tp->phys[0], 5);		if (mii_reg5 == 0xffff)			;					/* Not there */		else if ((mii_reg5 & 0x0100) == 0x0100				 || (mii_reg5 & 0x00C0) == 0x0040)			tp->full_duplex = 1;		if (debug > 1)			printk(KERN_INFO"%s: Setting %s%s-duplex based on"				   " auto-negotiated partner ability %4.4x.\n", dev->name,				   mii_reg5 == 0 ? "" :				   (mii_reg5 & 0x0180) ? "100mbps " : "10mbps ",				   tp->full_duplex ? "full" : "half", mii_reg5);	}	outb(Cfg9346_Unlock, ioaddr + Cfg9346);	outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1);	outb(Cfg9346_Lock, ioaddr + Cfg9346);	outl(virt_to_bus(tp->rx_ring), ioaddr + RxBuf);	/* Start the chip's Tx and Rx process. */	outl(0, ioaddr + RxMissed);	set_rx_mode(dev);	outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);	dev->tbusy = 0;	dev->interrupt = 0;	dev->start = 1;	/* Enable all known interrupts by setting the interrupt mask. */	outw(PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver		 | TxErr | TxOK | RxErr | RxOK, ioaddr + IntrMask);	if (debug > 1)		printk(KERN_DEBUG"%s: rtl8129_open() ioaddr %#lx IRQ %d"			   " GP Pins %2.2x %s-duplex.\n",			   dev->name, ioaddr, dev->irq, inb(ioaddr + GPPinData),			   tp->full_duplex ? "full" : "half");	/* Set the timer to switch to check for link beat and perhaps switch	   to an alternate media type. */	init_timer(&tp->timer);	tp->timer.expires = jiffies + 3*HZ;	tp->timer.data = (unsigned long)dev;	tp->timer.function = &rtl8129_timer;	add_timer(&tp->timer);	return 0;}/* Start the hardware at open or resume. */static void rtl_hw_start(struct net_device *dev){	struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv;	long ioaddr = dev->base_addr;	int i;	/* Soft reset the chip. */	outb(CmdReset, ioaddr + ChipCmd);	/* Check that the chip has finished the reset. */	for (i = 1000; i > 0; i--)		if ((inb(ioaddr + ChipCmd) & CmdReset) == 0)			break;	/* Restore our idea of the MAC address. */ 	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 0)), ioaddr + MAC0 + 0);	outl(cpu_to_le32(*(u32*)(dev->dev_addr + 4)), ioaddr + MAC0 + 4);	/* Hmmm, do these belong here? */	outb(Cfg9346_Lock, ioaddr + Cfg9346);	tp->cur_rx = 0;	/* Must enable Tx/Rx before setting transfer thresholds! */	outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);//add for 8139C+		if(CPFlag == 1){		outw( CpCmdRxEnb | CpCmdTxEnb, ioaddr + CPlusCmd);		outb( CPEarlyTxThld, ioaddr + CPlusEarlyTxThld);	}		outl(tp->rx_config, ioaddr + RxConfig);	/* Check this value: the documentation contradicts ifself.  Is the	   IFG correct with bit 28:27 zero, or with |0x03000000 ? */	outl((TX_DMA_BURST<<TX_DMA_BURST_SHIFT), ioaddr + TxConfig);	/* check_duplex() here. */	outb(Cfg9346_Unlock, ioaddr + Cfg9346);	outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1);	outb(Cfg9346_Lock, ioaddr + Cfg9346);//add for 8139C+	if( CPFlag != 1 )		outl(virt_to_bus(tp->rx_ring), ioaddr + RxBuf);	/* Start the chip's Tx and Rx process. */	outl(0, ioaddr + RxMissed);	set_rx_mode(dev);	outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);	/* Enable all known interrupts by setting the interrupt mask. */	outw(PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver		 | TxErr | TxOK | RxErr | RxOK, ioaddr + IntrMask);}static void rtl8129_timer(unsigned long data){	struct net_device *dev = (struct net_device *)data;	struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv;	long ioaddr = dev->base_addr;	int next_tick = 60*HZ;	int mii_reg5 = mdio_read(dev, tp->phys[0], 5);	if (! tp->duplex_lock  &&  mii_reg5 != 0xffff) {		int duplex = (mii_reg5&0x0100) || (mii_reg5 & 0x01C0) == 0x0040;		if (tp->full_duplex != duplex) {			tp->full_duplex = duplex;			printk(KERN_INFO "%s: Setting %s-duplex based on MII #%d link"				   " partner ability of %4.4x.\n", dev->name,				   tp->full_duplex ? "full" : "half", tp->phys[0], mii_reg5);			outb(Cfg9346_Unlock, ioaddr + Cfg9346);			outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1);			outb(Cfg9346_Lock, ioaddr + Cfg9346);		}	}	/* Check for bogusness. */	if (inw(ioaddr + IntrStatus) & (TxOK | RxOK)) {		int status = inw(ioaddr + IntrStatus);			/* Double check */		if (status & (TxOK | RxOK)  &&  ! dev->interrupt) {			printk(KERN_ERR "%s: RTL8139 Interrupt line blocked, status %x.\n",				   dev->name, status);//add for 8139C+			if( CPFlag ==1 ) rtl8139CP_interrupt(dev->irq, dev, 0);			else rtl8129_interrupt(dev->irq, dev, 0);		}	}	if (dev->tbusy  &&  jiffies - dev->trans_start >= 2*TX_TIMEOUT)		rtl8129_tx_timeout(dev);#if defined(RTL_TUNE_TWISTER)	/* This is a complicated state machine to configure the "twister" for	   impedance/echos based on the cable length.	   All of this is magic and undocumented.	   */	if (tp->twistie) switch(tp->twistie) {	case 1: {		if (inw(ioaddr + CSCR) & CSCR_LinkOKBit) {			/* We have link beat, let us tune the twister. */			outw(CSCR_LinkDownOffCmd, ioaddr + CSCR);			tp->twistie = 2;	/* Change to state 2. */			next_tick = HZ/10;		} else {			/* Just put in some reasonable defaults for when beat returns. */			outw(CSCR_LinkDownCmd, ioaddr + CSCR);			outl(0x20,ioaddr + FIFOTMS);	/* Turn on cable test mode. */			outl(PARA78_default ,ioaddr + PARA78);			outl(PARA7c_default ,ioaddr + PARA7c);			tp->twistie = 0;	/* Bail from future actions. */		}	} break;	case 2: {		/* Read how long it took to hear the echo. */		int linkcase = inw(ioaddr + CSCR) & CSCR_LinkStatusBits;		if (linkcase == 0x7000) tp->twist_row = 3;		else if (linkcase == 0x3000) tp->twist_row = 2;		else if (linkcase == 0x1000) tp->twist_row = 1;		else tp->twist_row = 0;		tp->twist_col = 0;		tp->twistie = 3;	/* Change to state 2. */		next_tick = HZ/10;	} break;	case 3: {		/* Put out four tuning parameters, one per 100msec. */		if (tp->twist_col == 0) outw(0, ioaddr + FIFOTMS);		outl(param[(int)tp->twist_row][(int)tp->twist_col], ioaddr + PARA7c);		next_tick = HZ/10;		if (++tp->twist_col >= 4) {			/* For short cables we are done.			   For long cables (row == 3) check for mistune. */			tp->twistie = (tp->twist_row == 3) ? 4 : 0;		}	} break;	case 4: {		/* Special case for long cables: check for mistune. */		if ((inw(ioaddr + CSCR) & CSCR_LinkStatusBits) == 0x7000) {			tp->twistie = 0;			break;		} else {			outl(0xfb38de03, ioaddr + PARA7c);			tp->twistie = 5;			next_tick = HZ/10;		}	} break;	case 5: {		/* Retune for shorter cable (column 2). */		outl(0x20,ioaddr + FIFOTMS);		outl(PARA78_default,  ioaddr + PARA78);		outl(PARA7c_default,  ioaddr + PARA7c);		outl(0x00,ioaddr + FIFOTMS);		tp->twist_row = 2;		tp->twist_col = 0;		tp->twistie = 3;		next_tick = HZ/10;	} break;	}#endif	if (debug > 2) {		if (tp->drv_flags & HAS_MII_XCVR)			printk(KERN_DEBUG"%s: Media selection tick, GP pins %2.2x.\n",				   dev->name, inb(ioaddr + GPPinData));		else			printk(KERN_DEBUG"%s: Media selection tick, Link partner %4.4x.\n",				   dev->name, inw(ioaddr + NWayLPAR));		printk(KERN_DEBUG"%s:  Other registers are IntMask %4.4x IntStatus %4.4x"			   " RxStatus %4.4x.\n",			   dev->name, inw(ioaddr + IntrMask), inw(ioaddr + IntrStatus),			   inl(ioaddr + RxEarlyStatus));		printk(KERN_DEBUG"%s:  Chip config %2.2x %2.2x.\n",			   dev->name, inb(ioaddr + Config0), inb(ioaddr + Config1));	}	tp->timer.expires = jiffies + next_tick;	add_timer(&tp->timer);}static void rtl8129_tx_timeout(struct net_device *dev){	struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv;	long ioaddr = dev->base_addr;	int mii_reg, i;	if (debug > 0)		printk(KERN_ERR "%s: Transmit timeout, status %2.2x %4.4x "			   "media %2.2x.\n",			   dev->name, inb(ioaddr + ChipCmd), inw(ioaddr + IntrStatus),			   inb(ioaddr + GPPinData));	/* Disable interrupts by clearing the interrupt mask. */	outw(0x0000, ioaddr + IntrMask);	/* Emit info to figure out what went wrong. */	printk(KERN_DEBUG "%s: Tx queue start entry %d  dirty entry %d%s.\n",		   dev->name, tp->cur_tx, tp->dirty_tx, tp->tx_full ? ", full" : "");	for (i = 0; i < NUM_TX_DESC; i++)		printk(KERN_DEBUG "%s:  Tx descriptor %d is %8.8x.%s\n",			   dev->name, i, inl(ioaddr + TxStatus0 + i*4),			   i == tp->dirty_tx % NUM_TX_DESC ? " (queue head)" : "");	printk(KERN_DEBUG "%s: MII #%d registers are:", dev->name, tp->phys[0]);	for (mii_reg = 0; mii_reg < 8; mii_reg++)		printk(" %4.4x", mdio_read(dev, tp->phys[0], mii_reg));	printk(".\n");	/* Stop a shared interrupt from scavenging while we are. */	tp->dirty_tx = tp->cur_tx = 0;	/* Dump the unsent Tx packets. *///add for 8139C+.	if( CPFlag == 1 ){		for (i = 0; i < NUM_CP_TX_DESC; i++) {			if (tp->tx_skbuff[i]) {				dev_free_skb(tp->tx_skbuff[i]);				tp->tx_skbuff[i] = 0;				tp->stats.tx_dropped++;			}		}	} else{		for (i = 0; i < NUM_TX_DESC; i++) {			if (tp->tx_skbuffa[i]) {				dev_free_skb(tp->tx_skbuffa[i]);				tp->tx_skbuffa[i] = 0;				tp->stats.tx_dropped++;			}		}	}	rtl_hw_start(dev);	tp->tx_full = dev->tbusy = 0;	return;}/* Initialize the Rx and Tx rings, along with various 'dev' bits. */static void rtl8139cp_init_ring(struct net_device *dev){	struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv;	int i;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡影院免费观看| 色欧美片视频在线观看| 久久国产生活片100| 国产乱码精品一区二区三区五月婷| 成人av在线播放网站| 国产欧美日韩视频在线观看| 亚洲一区二区三区免费视频| 美美哒免费高清在线观看视频一区二区 | 欧美视频中文字幕| 久久亚洲精华国产精华液 | 91麻豆国产精品久久| 欧美精品vⅰdeose4hd| 欧美高清在线视频| 久久av资源网| 国产精品久久久久一区| 久久99精品国产麻豆婷婷 | 一区二区三区中文在线观看| 精品在线免费视频| 国产嫩草影院久久久久| 日本韩国欧美三级| **欧美大码日韩| 国产精品一线二线三线| 亚洲欧洲三级电影| 91麻豆精品国产自产在线观看一区 | 欧美老肥妇做.爰bbww视频| 日韩一区精品视频| 欧美亚洲国产怡红院影院| 免费观看在线色综合| 欧美一区二区三区免费视频| 亚洲一区二区在线免费看| 欧美一区二区日韩| 不卡电影一区二区三区| 男男成人高潮片免费网站| 国产精品沙发午睡系列990531| 国产剧情在线观看一区二区| 亚洲美女屁股眼交3| 91久久精品一区二区三| 久久99国产精品麻豆| 中文字幕在线不卡| 欧美成人三级电影在线| 日韩在线卡一卡二| 亚洲女爱视频在线| 久久久久久久久蜜桃| 春色校园综合激情亚洲| 国产精品伦理一区二区| 日韩欧美一区二区久久婷婷| 精品一区二区在线视频| 亚洲一区二区三区四区在线| 久久久精品国产99久久精品芒果| 欧美日韩精品一区视频| 五月婷婷综合网| 91精品久久久久久久久99蜜臂| 成人av免费在线播放| 久草这里只有精品视频| 亚洲国产视频一区二区| 日韩视频一区二区| 国产成人午夜高潮毛片| 亚洲乱码国产乱码精品精的特点| 欧美日韩国产在线播放网站| 99热这里都是精品| 天天综合天天做天天综合| 亚洲美女免费在线| 国产精品电影一区二区三区| 久久―日本道色综合久久| 欧美一级久久久| 91精品国产高清一区二区三区蜜臀| 一本大道av伊人久久综合| fc2成人免费人成在线观看播放| 国产综合久久久久影院| 亚洲色图在线视频| 欧美电视剧在线看免费| 91精品在线免费| 777奇米四色成人影色区| 欧美日韩专区在线| 国产成人在线观看| 国产一区二区三区观看| 一区二区三区不卡在线观看| 亚洲人精品午夜| 亚洲日本成人在线观看| 亚洲精品视频在线| 一区二区三区免费| 亚洲va国产va欧美va观看| 国产三级久久久| 国产欧美一区二区在线| 青青青伊人色综合久久| 亚洲成人免费电影| 日韩在线一二三区| 男人的天堂久久精品| 久久成人精品无人区| 国产精品影视天天线| www.成人网.com| 91官网在线免费观看| 欧美肥大bbwbbw高潮| 日韩午夜激情电影| 久久综合成人精品亚洲另类欧美| 国产日韩欧美麻豆| 亚洲视频一区二区免费在线观看| 亚洲最新在线观看| 蜜臀久久99精品久久久久宅男| 激情另类小说区图片区视频区| 国产精品77777| 91原创在线视频| 欧美日韩国产大片| 久久久久久久久久看片| 亚洲日本在线a| 美腿丝袜一区二区三区| 国产成人免费视频网站| 色激情天天射综合网| 日韩视频免费观看高清完整版 | 久久精品国产在热久久| 国产999精品久久久久久绿帽| 日日噜噜夜夜狠狠视频欧美人 | 在线精品观看国产| 成人免费看黄yyy456| 91视频免费观看| 欧美一级高清片在线观看| 国产日韩精品一区二区浪潮av| 亚洲老妇xxxxxx| 玖玖九九国产精品| 91蝌蚪porny成人天涯| 欧美一区日韩一区| 国产精品每日更新| 免费不卡在线视频| 99vv1com这只有精品| av一区二区三区在线| 91精品久久久久久久99蜜桃| 中国av一区二区三区| 日韩电影免费一区| 免费观看30秒视频久久| 99久久久精品| 久久九九久久九九| 亚洲国产精品99久久久久久久久| 亚洲国产日韩a在线播放| 国产成人午夜片在线观看高清观看| 在线观看日韩高清av| 国产精品你懂的在线欣赏| 喷白浆一区二区| 日本丶国产丶欧美色综合| 久久亚洲综合色| 青青草国产精品97视觉盛宴| 91猫先生在线| 久久精品亚洲一区二区三区浴池| 亚洲第四色夜色| 色综合咪咪久久| 国产欧美一区二区精品仙草咪| 日本va欧美va精品| 精品1区2区3区| 亚洲另类中文字| 91看片淫黄大片一级在线观看| 久久色在线观看| 久久精品国产精品亚洲精品| 欧美色偷偷大香| 亚洲一区二区三区四区在线免费观看| 成人黄色av电影| 欧美极品少妇xxxxⅹ高跟鞋| 久久99国产精品成人| 日韩欧美一区中文| 青娱乐精品在线视频| 日韩一区二区三区免费看| 亚洲国产综合色| 欧美四级电影在线观看| 亚洲主播在线播放| 欧美综合在线视频| 一区二区在线观看av| 色综合一个色综合亚洲| 欧美大肚乱孕交hd孕妇| 免费精品视频最新在线| 日韩亚洲欧美中文三级| 日本伊人午夜精品| 欧美精品丝袜中出| 丝袜美腿亚洲一区| 69堂精品视频| 蜜臀a∨国产成人精品| 欧美一区二区三区在线观看| 日本中文一区二区三区| 欧美xxx久久| 国产乱子伦一区二区三区国色天香| 精品国产a毛片| 亚洲成人第一页| 91精品国产美女浴室洗澡无遮挡| 美女视频黄a大片欧美| 久久色中文字幕| 99久久精品一区| 亚洲国产成人av网| 日韩欧美国产精品| 国产伦精品一区二区三区在线观看| 久久精品视频在线看| aaa国产一区| 首页国产欧美久久| 欧美xfplay| 不卡的av中国片| 一区二区三区免费观看| 欧美一级黄色大片| 国产91精品一区二区麻豆网站| 亚洲视频免费在线| 欧美日韩日本视频| 国产资源在线一区| 一区二区在线观看视频| 欧美一激情一区二区三区| 国产91精品久久久久久久网曝门|