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

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

?? arlan-main.c

?? 優(yōu)龍2410linux2.6.8內(nèi)核源代碼
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/* *  Copyright (C) 1997 Cullen Jennings *  Copyright (C) 1998 Elmer Joandiu, elmer@ylenurme.ee *  GNU General Public License applies * This module provides support for the Arlan 655 card made by Aironet */#include <linux/config.h>#include "arlan.h"#if BITS_PER_LONG != 32#  error FIXME: this driver requires a 32-bit platform#endifstatic const char *arlan_version = "C.Jennigs 97 & Elmer.Joandi@ut.ee  Oct'98, http://www.ylenurme.ee/~elmer/655/";struct net_device *arlan_device[MAX_ARLANS];static int SID = SIDUNKNOWN;static int radioNodeId = radioNodeIdUNKNOWN;static char encryptionKey[12] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};int arlan_debug = debugUNKNOWN;static int spreadingCode = spreadingCodeUNKNOWN;static int channelNumber = channelNumberUNKNOWN;static int channelSet = channelSetUNKNOWN;static int systemId = systemIdUNKNOWN;static int registrationMode = registrationModeUNKNOWN;static int keyStart;static int tx_delay_ms;static int retries = 5;static int tx_queue_len = 1;static int arlan_EEPROM_bad;#ifdef ARLAN_DEBUGGINGstatic int arlan_entry_debug;static int arlan_exit_debug;static int testMemory = testMemoryUNKNOWN;static int irq = irqUNKNOWN;static int txScrambled = 1;static int mdebug;#endifMODULE_PARM(irq, "i");MODULE_PARM(mem, "i");MODULE_PARM(arlan_debug, "i");MODULE_PARM(testMemory, "i");MODULE_PARM(spreadingCode, "i");MODULE_PARM(channelNumber, "i");MODULE_PARM(channelSet, "i");MODULE_PARM(systemId, "i");MODULE_PARM(registrationMode, "i");MODULE_PARM(radioNodeId, "i");MODULE_PARM(SID, "i");MODULE_PARM(txScrambled, "i");MODULE_PARM(keyStart, "i");MODULE_PARM(mdebug, "i");MODULE_PARM(tx_delay_ms, "i");MODULE_PARM(retries, "i");MODULE_PARM(async, "i");MODULE_PARM(tx_queue_len, "i");MODULE_PARM(arlan_entry_debug, "i");MODULE_PARM(arlan_exit_debug, "i");MODULE_PARM(arlan_entry_and_exit_debug, "i");MODULE_PARM(arlan_EEPROM_bad, "i");MODULE_PARM_DESC(irq, "(unused)");MODULE_PARM_DESC(mem, "Arlan memory address for single device probing");MODULE_PARM_DESC(arlan_debug, "Arlan debug enable (0-1)");MODULE_PARM_DESC(testMemory, "(unused)");MODULE_PARM_DESC(mdebug, "Arlan multicast debugging (0-1)");MODULE_PARM_DESC(retries, "Arlan maximum packet retransmisions");#ifdef ARLAN_ENTRY_EXIT_DEBUGGINGMODULE_PARM_DESC(arlan_entry_debug, "Arlan driver function entry debugging");MODULE_PARM_DESC(arlan_exit_debug, "Arlan driver function exit debugging");MODULE_PARM_DESC(arlan_entry_and_exit_debug, "Arlan driver function entry and exit debugging");#elseMODULE_PARM_DESC(arlan_entry_debug, "(ignored)");MODULE_PARM_DESC(arlan_exit_debug, "(ignored)");MODULE_PARM_DESC(arlan_entry_and_exit_debug, "(ignored)");#endifstruct arlan_conf_stru arlan_conf[MAX_ARLANS];static int arlans_found;static  int 	arlan_open(struct net_device *dev);static  int 	arlan_tx(struct sk_buff *skb, struct net_device *dev);static  irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs);static  int 	arlan_close(struct net_device *dev);static  struct net_device_stats *		arlan_statistics		(struct net_device *dev);static  void 	arlan_set_multicast		(struct net_device *dev);static  int 	arlan_hw_tx			(struct net_device* dev, char *buf, int length );static  int	arlan_hw_config			(struct net_device * dev);static  void 	arlan_tx_done_interrupt		(struct net_device * dev, int status);static  void	arlan_rx_interrupt		(struct net_device * dev, u_char rxStatus, u_short, u_short);static  void	arlan_process_interrupt		(struct net_device * dev);static	void	arlan_tx_timeout		(struct net_device *dev);static inline long us2ticks(int us){	return us * (1000000 / HZ);}#ifdef ARLAN_ENTRY_EXIT_DEBUGGING#define ARLAN_DEBUG_ENTRY(name) \	{\	struct timeval timev;\	do_gettimeofday(&timev);\		if (arlan_entry_debug || arlan_entry_and_exit_debug)\			printk("--->>>" name " %ld " "\n",((long int) timev.tv_sec * 1000000 + timev.tv_usec));\	}#define ARLAN_DEBUG_EXIT(name) \	{\	struct timeval timev;\	do_gettimeofday(&timev);\		if (arlan_exit_debug || arlan_entry_and_exit_debug)\			printk("<<<---" name " %ld " "\n",((long int) timev.tv_sec * 1000000 + timev.tv_usec) );\	}#else#define ARLAN_DEBUG_ENTRY(name)#define ARLAN_DEBUG_EXIT(name)#endif#define arlan_interrupt_ack(dev)\        clearClearInterrupt(dev);\        setClearInterrupt(dev);static inline int arlan_drop_tx(struct net_device *dev){	struct arlan_private *priv = dev->priv;	priv->stats.tx_errors++;	if (priv->Conf->tx_delay_ms)	{		priv->tx_done_delayed = jiffies + priv->Conf->tx_delay_ms * HZ / 1000 + 1;	}	else	{		priv->waiting_command_mask &= ~ARLAN_COMMAND_TX;		TXHEAD(dev).offset = 0;		TXTAIL(dev).offset = 0;		priv->txLast = 0;		priv->bad = 0;		if (!priv->under_reset && !priv->under_config)			netif_wake_queue (dev);	}	return 1;}int arlan_command(struct net_device *dev, int command_p){	struct arlan_private *priv = dev->priv;	volatile struct arlan_shmem *arlan = priv->card;	struct arlan_conf_stru *conf = priv->Conf;	int udelayed = 0;	int i = 0;	unsigned long flags;	ARLAN_DEBUG_ENTRY("arlan_command");	if (priv->card_polling_interval)		priv->card_polling_interval = 1;	if (arlan_debug & ARLAN_DEBUG_CHAIN_LOCKS)		printk(KERN_DEBUG "arlan_command, %lx commandByte %x waiting %lx incoming %x \n",		jiffies, READSHMB(arlan->commandByte),		       priv->waiting_command_mask, command_p);	priv->waiting_command_mask |= command_p;	if (priv->waiting_command_mask & ARLAN_COMMAND_RESET)		if (time_after(jiffies, priv->lastReset + 5 * HZ))			priv->waiting_command_mask &= ~ARLAN_COMMAND_RESET;	if (priv->waiting_command_mask & ARLAN_COMMAND_INT_ACK)	{		arlan_interrupt_ack(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_INT_ACK;	}	if (priv->waiting_command_mask & ARLAN_COMMAND_INT_ENABLE)	{		setInterruptEnable(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_INT_ENABLE;	}	/* Card access serializing lock */	spin_lock_irqsave(&priv->lock, flags);	/* Check cards status and waiting */	if (priv->waiting_command_mask & (ARLAN_COMMAND_LONG_WAIT_NOW | ARLAN_COMMAND_WAIT_NOW))	{		while (priv->waiting_command_mask & (ARLAN_COMMAND_LONG_WAIT_NOW | ARLAN_COMMAND_WAIT_NOW))		{			if (READSHMB(arlan->resetFlag) ||				READSHMB(arlan->commandByte))	/* || 								   (readControlRegister(dev) & ARLAN_ACCESS))								 */				udelay(40);			else				priv->waiting_command_mask &= ~(ARLAN_COMMAND_LONG_WAIT_NOW | ARLAN_COMMAND_WAIT_NOW);			udelayed++;			if (priv->waiting_command_mask & ARLAN_COMMAND_LONG_WAIT_NOW)			{				if (udelayed * 40 > 1000000)				{					printk(KERN_ERR "%s long wait too long \n", dev->name);					priv->waiting_command_mask |= ARLAN_COMMAND_RESET;					break;				}			}			else if (priv->waiting_command_mask & ARLAN_COMMAND_WAIT_NOW)			{				if (udelayed * 40 > 1000)				{					printk(KERN_ERR "%s short wait too long \n", dev->name);					goto bad_end;				}			}		}	}	else	{		i = 0;		while ((READSHMB(arlan->resetFlag) ||			READSHMB(arlan->commandByte)) &&			conf->pre_Command_Wait > (i++) * 10)			udelay(10);		if ((READSHMB(arlan->resetFlag) ||			READSHMB(arlan->commandByte)) &&			!(priv->waiting_command_mask & ARLAN_COMMAND_RESET))		{			goto card_busy_end;		}	}	if (priv->waiting_command_mask & ARLAN_COMMAND_RESET)		priv->under_reset = 1;	if (priv->waiting_command_mask & ARLAN_COMMAND_CONF)		priv->under_config = 1;	/* Issuing command */	arlan_lock_card_access(dev);	if (priv->waiting_command_mask & ARLAN_COMMAND_POWERUP)	{	//     if (readControlRegister(dev) & (ARLAN_ACCESS && ARLAN_POWER))		setPowerOn(dev);		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_POWERUP;		priv->waiting_command_mask |= ARLAN_COMMAND_RESET;		priv->card_polling_interval = HZ / 10;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_ACTIVATE)	{		WRITESHMB(arlan->commandByte, ARLAN_COM_ACTIVATE);		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_ACTIVATE;		priv->card_polling_interval = HZ / 10;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_RX_ABORT)	{		if (priv->rx_command_given)		{			WRITESHMB(arlan->commandByte, ARLAN_COM_RX_ABORT);			arlan_interrupt_lancpu(dev);			priv->rx_command_given = 0;		}		priv->waiting_command_mask &= ~ARLAN_COMMAND_RX_ABORT;		priv->card_polling_interval = 1;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_TX_ABORT)	{		if (priv->tx_command_given)		{			WRITESHMB(arlan->commandByte, ARLAN_COM_TX_ABORT);			arlan_interrupt_lancpu(dev);			priv->tx_command_given = 0;		}		priv->waiting_command_mask &= ~ARLAN_COMMAND_TX_ABORT;		priv->card_polling_interval = 1;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_RESET)	{		priv->under_reset=1;		netif_stop_queue (dev);		arlan_drop_tx(dev);		if (priv->tx_command_given || priv->rx_command_given)		{			printk(KERN_ERR "%s: Reset under tx or rx command \n", dev->name);		}		netif_stop_queue (dev);		if (arlan_debug & ARLAN_DEBUG_RESET)			printk(KERN_ERR "%s: Doing chip reset\n", dev->name);		priv->lastReset = jiffies;		WRITESHM(arlan->commandByte, 0, u_char);		/* hold card in reset state */		setHardwareReset(dev);		/* set reset flag and then release reset */		WRITESHM(arlan->resetFlag, 0xff, u_char);		clearChannelAttention(dev);		clearHardwareReset(dev);		priv->card_polling_interval = HZ / 4;		priv->waiting_command_mask &= ~ARLAN_COMMAND_RESET;		priv->waiting_command_mask |= ARLAN_COMMAND_INT_RACK;//		priv->waiting_command_mask |= ARLAN_COMMAND_INT_RENABLE; //		priv->waiting_command_mask |= ARLAN_COMMAND_RX;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_INT_RACK)	{		clearHardwareReset(dev);		clearClearInterrupt(dev);		setClearInterrupt(dev);		setInterruptEnable(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_INT_RACK;		priv->waiting_command_mask |= ARLAN_COMMAND_CONF;		priv->under_config = 1;		priv->under_reset = 0;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_INT_RENABLE)	{		setInterruptEnable(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_INT_RENABLE;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_CONF)	{		if (priv->tx_command_given || priv->rx_command_given)		{			printk(KERN_ERR "%s: Reset under tx or rx command \n", dev->name);		}		arlan_drop_tx(dev);		setInterruptEnable(dev);		arlan_hw_config(dev);		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_CONF;		priv->card_polling_interval = HZ / 10;//		priv->waiting_command_mask |= ARLAN_COMMAND_INT_RACK;   //		priv->waiting_command_mask |= ARLAN_COMMAND_INT_ENABLE; 		priv->waiting_command_mask |= ARLAN_COMMAND_CONF_WAIT;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_CONF_WAIT)	{		if (READSHMB(arlan->configuredStatusFlag) != 0 &&			READSHMB(arlan->diagnosticInfo) == 0xff)		{			priv->waiting_command_mask &= ~ARLAN_COMMAND_CONF_WAIT;			priv->waiting_command_mask |= ARLAN_COMMAND_RX;			priv->waiting_command_mask |= ARLAN_COMMAND_TBUSY_CLEAR;			priv->card_polling_interval = HZ / 10;			priv->tx_command_given = 0;			priv->under_config = 0;		}		else		{			priv->card_polling_interval = 1;			if (arlan_debug & ARLAN_DEBUG_TIMING)				printk(KERN_ERR "configure delayed \n");		}	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_RX)	{		if (!registrationBad(dev))		{			setInterruptEnable(dev);			memset_io((void *) arlan->commandParameter, 0, 0xf);			WRITESHMB(arlan->commandByte, ARLAN_COM_INT | ARLAN_COM_RX_ENABLE);			WRITESHMB(arlan->commandParameter[0], conf->rxParameter);			arlan_interrupt_lancpu(dev);			priv->rx_command_given = 0; // mnjah, bad			priv->waiting_command_mask &= ~ARLAN_COMMAND_RX;			priv->card_polling_interval = 1;		}		else			priv->card_polling_interval = 2;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_TBUSY_CLEAR)	{		if ( !registrationBad(dev) &&		     (netif_queue_stopped(dev) || !netif_running(dev)) )			{				priv->waiting_command_mask &= ~ARLAN_COMMAND_TBUSY_CLEAR;				netif_wake_queue (dev);			}	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_TX)	{		if (!test_and_set_bit(0, (void *) &priv->tx_command_given))		{			if (time_after(jiffies, 				       priv->tx_last_sent + us2ticks(conf->rx_tweak1))			    || time_before(jiffies,					   priv->last_rx_int_ack_time + us2ticks(conf->rx_tweak2)))			{				setInterruptEnable(dev);				memset_io((void *) arlan->commandParameter, 0, 0xf);				WRITESHMB(arlan->commandByte, ARLAN_COM_TX_ENABLE | ARLAN_COM_INT);				memcpy_toio((void *) arlan->commandParameter, &TXLAST(dev), 14);//				for ( i=1 ; i < 15 ; i++) printk("%02x:",READSHMB(arlan->commandParameter[i]));				priv->tx_last_sent = jiffies;				arlan_interrupt_lancpu(dev);				priv->tx_command_given = 1;				priv->waiting_command_mask &= ~ARLAN_COMMAND_TX;				priv->card_polling_interval = 1;			}			else			{				priv->tx_command_given = 0;				priv->card_polling_interval = 1;			}		} 		else if (arlan_debug & ARLAN_DEBUG_CHAIN_LOCKS)			printk(KERN_ERR "tx command when tx chain locked \n");	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_NOOPINT)	{		{			WRITESHMB(arlan->commandByte, ARLAN_COM_NOP | ARLAN_COM_INT);		}		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_NOOPINT;		priv->card_polling_interval = HZ / 3;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_NOOP)	{		WRITESHMB(arlan->commandByte, ARLAN_COM_NOP);		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_NOOP;		priv->card_polling_interval = HZ / 3;	}	else if (priv->waiting_command_mask & ARLAN_COMMAND_SLOW_POLL)	{		WRITESHMB(arlan->commandByte, ARLAN_COM_GOTO_SLOW_POLL);		arlan_interrupt_lancpu(dev);		priv->waiting_command_mask &= ~ARLAN_COMMAND_SLOW_POLL;		priv->card_polling_interval = HZ / 3;	} 	else if (priv->waiting_command_mask & ARLAN_COMMAND_POWERDOWN)	{		setPowerOff(dev);		if (arlan_debug & ARLAN_DEBUG_CARD_STATE)			printk(KERN_WARNING "%s: Arlan Going Standby\n", dev->name);		priv->waiting_command_mask &= ~ARLAN_COMMAND_POWERDOWN;		priv->card_polling_interval = 3 * HZ;	}	arlan_unlock_card_access(dev);	for (i = 0; READSHMB(arlan->commandByte) && i < 20; i++)		udelay(10);	if (READSHMB(arlan->commandByte))		if (arlan_debug & ARLAN_DEBUG_CARD_STATE)			printk(KERN_ERR "card busy leaving command %lx\n", priv->waiting_command_mask);	spin_unlock_irqrestore(&priv->lock, flags);	ARLAN_DEBUG_EXIT("arlan_command");	priv->last_command_buff_free_time = jiffies;	return 0;card_busy_end:	if (time_after(jiffies, priv->last_command_buff_free_time + HZ))		priv->waiting_command_mask |= ARLAN_COMMAND_CLEAN_AND_RESET;	if (arlan_debug & ARLAN_DEBUG_CARD_STATE)		printk(KERN_ERR "%s arlan_command card busy end \n", dev->name);	spin_unlock_irqrestore(&priv->lock, flags);	ARLAN_DEBUG_EXIT("arlan_command");	return 1;bad_end:	printk(KERN_ERR "%s arlan_command bad end \n", dev->name);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色哟哟在线观看一区二区三区| 国产福利一区二区| 福利一区福利二区| 欧美日精品一区视频| 久久新电视剧免费观看| 亚洲国产成人av| 成人黄动漫网站免费app| 日韩精品专区在线影院观看 | 国产中文一区二区三区| 91高清在线观看| 中文字幕的久久| 九九视频精品免费| 欧美久久久久免费| 尤物在线观看一区| 波波电影院一区二区三区| 欧美电视剧在线观看完整版| 亚洲成人精品影院| 色哦色哦哦色天天综合| 国产麻豆精品久久一二三| 色天天综合色天天久久| 国产精品嫩草99a| 国产老妇另类xxxxx| 日韩欧美综合一区| 亚洲不卡一区二区三区| 色94色欧美sute亚洲13| 国产精品九色蝌蚪自拍| 国产精品一二三在| 欧美精品一区二区三区久久久| 亚洲va欧美va国产va天堂影院| 一本到三区不卡视频| 国产精品毛片无遮挡高清| 国产乱码精品一区二区三区av| 欧美一区二区三区视频| 五月婷婷综合网| 欧美日韩一区视频| 亚洲午夜久久久久中文字幕久| 91麻豆蜜桃一区二区三区| 中文字幕中文字幕在线一区 | 亚洲欧美在线视频| 盗摄精品av一区二区三区| 久久精品一区二区三区四区| 狠狠色丁香婷婷综合久久片| 精品免费视频一区二区| 免费成人在线网站| 日韩精品一区二区三区在线播放| 日本特黄久久久高潮| 欧美一区二区三区在线看| 日欧美一区二区| 91精品国产综合久久福利软件| 三级久久三级久久久| 69av一区二区三区| 91精品免费观看| 视频一区二区三区中文字幕| 欧美一级艳片视频免费观看| 奇米777欧美一区二区| 日韩欧美中文字幕公布| 精品在线一区二区三区| 久久综合999| 丁香激情综合国产| 亚洲天堂a在线| 欧美特级限制片免费在线观看| 亚洲自拍另类综合| 欧美二区三区的天堂| 另类小说综合欧美亚洲| 久久久久亚洲蜜桃| 成人爱爱电影网址| 亚洲一区在线看| 欧美一区二区三区影视| 久草热8精品视频在线观看| 国产欧美中文在线| 91美女视频网站| 亚洲国产欧美日韩另类综合| 欧美一区二区三区在线| 国产成人综合在线播放| 一色屋精品亚洲香蕉网站| 欧美伊人久久久久久久久影院 | 国产精品白丝av| 亚洲视频精选在线| 在线播放视频一区| 国产精品资源站在线| 亚洲天堂久久久久久久| 欧美丰满少妇xxxbbb| 国产自产高清不卡| 亚洲蜜桃精久久久久久久| 欧美精品欧美精品系列| 国产精一区二区三区| 亚洲欧美日韩国产综合在线| 7777精品伊人久久久大香线蕉经典版下载 | 不卡的av电影| 五月婷婷久久丁香| 国产亚洲精品超碰| 欧美午夜精品一区二区三区| 理论片日本一区| 国产精品成人一区二区艾草| 欧美日韩国产天堂| 国产成人在线免费| 欧美亚洲日本一区| 精品无码三级在线观看视频| ...av二区三区久久精品| 欧美丰满美乳xxx高潮www| 懂色av一区二区在线播放| 亚洲不卡av一区二区三区| 欧美国产1区2区| 欧美日本韩国一区| 不卡免费追剧大全电视剧网站| 首页欧美精品中文字幕| 国产精品久久久久久久久晋中 | 另类人妖一区二区av| 亚洲男人天堂av| 日韩精品一区在线| 在线观看欧美精品| 国产精品一区一区三区| 天天影视色香欲综合网老头| 国产精品视频线看| 欧美va天堂va视频va在线| 色激情天天射综合网| 国产高清久久久| 奇米影视一区二区三区| 亚洲精选视频免费看| 国产日韩精品一区二区浪潮av| 7777精品久久久大香线蕉| 色综合婷婷久久| 亚洲精品在线观看网站| 欧美综合天天夜夜久久| 成人免费视频网站在线观看| 久久精品久久综合| 香港成人在线视频| 亚洲精品日产精品乱码不卡| 国产日产欧美一区| 精品久久久久久综合日本欧美| 欧美日韩在线播放三区四区| av亚洲产国偷v产偷v自拍| 国产自产v一区二区三区c| 日韩电影免费在线看| 亚洲综合成人在线| 亚洲欧美日韩电影| 国产精品成人在线观看| 久久精品一二三| 欧美精品一区二区三区一线天视频| 欧美日韩一区二区在线观看视频| 91在线丨porny丨国产| 国产成人免费9x9x人网站视频| 麻豆精品一区二区av白丝在线 | 久久综合色之久久综合| 91精品国产一区二区人妖| 欧美日韩精品专区| 在线一区二区视频| 91色婷婷久久久久合中文| 国产色91在线| 精品国产伦一区二区三区观看方式 | 亚洲尤物视频在线| 亚洲免费av观看| 亚洲欧洲www| 国产精品美女www爽爽爽| 欧美激情一区二区在线| 久久精品视频网| 久久久久久97三级| 久久综合久久99| 久久只精品国产| 国产校园另类小说区| 久久久久国产免费免费| 久久久久国产精品麻豆ai换脸 | 99国产欧美另类久久久精品| 波多野结衣欧美| 99久久婷婷国产综合精品| 成人免费一区二区三区在线观看| 国产三级一区二区三区| 日本一区二区三区四区| 国产精品色哟哟| 亚洲天堂a在线| 一区二区高清免费观看影视大全 | 91精品一区二区三区在线观看| 在线播放亚洲一区| 欧美大片日本大片免费观看| 精品免费视频一区二区| 国产欧美日韩不卡免费| 国产精品少妇自拍| 亚洲免费观看高清完整版在线 | 日韩视频在线观看一区二区| 日韩欧美一区二区视频| 精品理论电影在线观看 | 91在线国产福利| 日本久久精品电影| 欧美群妇大交群的观看方式| 91精品国模一区二区三区| 精品久久一二三区| 国产**成人网毛片九色| 成人国产在线观看| 欧美视频中文字幕| 欧美一级久久久久久久大片| 亚洲精品一区二区三区在线观看| 国产香蕉久久精品综合网| 中文字幕一区三区| 亚洲不卡在线观看| 韩日精品视频一区| 99re成人精品视频| 欧美卡1卡2卡| 久久久国产精华| 亚洲欧美国产77777| 奇米色777欧美一区二区|