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

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

?? wt_ioctl.c

?? linux,red ,test,driver,need
?? C
?? 第 1 頁 / 共 4 頁
字號:
    #include "wtprecomp.h"//#define dbg_info_str(x) printk("<0>In function %s in line %d the pramater x = %s \n\r",__FUNCTION__,__LINE__,x);#define dbg_info_num(x) printk("<0>In function %s in line %d the pramater x = %d \n\r",__FUNCTION__,__LINE__,x);const int frequency_list_bg[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442,	2447, 2452, 2457, 2462, 2467, 2472, 2484};const int frequency_list_a[] = { 5170, 5180, 5190, 5200, 5210, 5220, 5230,	5240, 5260, 5280, 5300, 5320};intwt4_mib_mode_helper(WT_ADAPTER *priv, u32 iw_mode){	WTWLAN_MACMODE mode;	FN_ENTER;	/*check valide check */	if (iw_mode == IW_MODE_REPEAT  || iw_mode == IW_MODE_SECOND 		|| iw_mode == IW_MODE_MONITOR  || iw_mode == IW_MODE_MASTER ) {		printk(KERN_DEBUG		       "%s(): Sorry, Repeater mode , Secondary mode, Master mode and  Monitor mode"		       "are not yet supported by this driver.\n", __FUNCTION__);		return -EOPNOTSUPP;	}	/*swap linux mode to our define*/	switch (iw_mode) {	case IW_MODE_AUTO:		mode = WLAN_MACMODE_NONE;		break;	case IW_MODE_ADHOC:		mode = WLAN_MACMODE_IBSS_STA;		break;	case IW_MODE_INFRA:		mode = WLAN_MACMODE_ESS_STA;		break;	case IW_MODE_MASTER:		mode = WLAN_MACMODE_ESS_AP;		break;	case IW_MODE_SECOND:		mode = WLAN_MACMODE_SECOND;		break;	case IW_MODE_MONITOR:		mode = WLAN_MACMODE_MONITOR;		break;	default:		return -EINVAL;	} 	/*commit to global*/	if( mode != priv->MacParameter.macmode )	{				// init mac stat when change mode		InitMacStat( priv );		LoadDefaultFlag( priv );		priv->MacParameter.macmode = mode;		priv->Ndis80211Parameter.ABGMode = priv->RegMacParameter.ABGMode;	}		//RegParaDefault.TxRate		FN_EXIT(0,0);	return 0;	}/* map this function to register restore in windows */voidwt4_mib_init(WT_ADAPTER *priv){	REG_MAC_PARAMETER RegParaDefault;        FN_ENTER;	 	memset( 	&RegParaDefault, 0, sizeof( REG_MAC_PARAMETER ) );		RegParaDefault.ABGMode = CARD_DEFAULT_ABGMODE;	RegParaDefault.AIFS = CARD_DEFAULT_AIFS;	RegParaDefault.BeaconPeriod = CARD_DEFAULT_BEACON_PEROID;	RegParaDefault.Channel = CARD_DEFAULT_CHANNEL;	RegParaDefault.CWMax = CARD_DEFAULT_CWMAX;	RegParaDefault.CWMin = CARD_DEFAULT_CWMIN;	RegParaDefault.EncryptionType = CARD_DEFAULT_CRYPTTYPE;	RegParaDefault.FragThreshold = CARD_DEFAULT_FRAGTHRESHOLD;	RegParaDefault.IsPassiveScan = CARD_DEFAULT_ISPASSIVESCAN;	RegParaDefault.IsProtectionEnable = CARD_DEFAULT_PROTECTION_MODE;	RegParaDefault.IsQosEnable = CARD_DEFAULT_QOSMODE;	RegParaDefault.PreambleType = CARD_DEFAULT_PREAMBLETYPE;	RegParaDefault.ProtectionMode = CARD_DEFAULT_PROTECTION_MODE;	RegParaDefault.RetryNum = CARD_DEFAULT_RETRYNUM;	RegParaDefault.RfType = CARD_DEFAULT_RFTYPE;	RegParaDefault.RtsThreshold = CARD_DEFAULT_RTSTHRESHOLD;	RegParaDefault.TxPower = CARD_DEFAULT_TXPOWER;	RegParaDefault.TxRate = CARD_DEFAULT_TXRATE;	RegParaDefault.Country = CARD_DEFAULT_COUNTRY;		/*swap to macparameter*/	memcpy( &priv->RegMacParameter,  &RegParaDefault, sizeof( REG_MAC_PARAMETER ) );	/* This sets all of the mode-dependent values */	//printk("In File %s Function %s Line %d abgmode  = %d\n",  __FILE__, __FUNCTION__, __LINE__, priv->RegMacParameter.ABGMode);		wt4_mib_mode_helper(priv, IW_MODE_INFRA );	FN_EXIT(0,0);	}/* this will be executed outside of atomic context thanks to * schedule_work(), thus we can as well use sleeping semaphore * locking */voidwt4_update_stats(WT_ADAPTER *priv){         FN_ENTER;		if (down_interruptible(&priv->stats_sem))	return;	/* Noise floor. * I'm not sure if the unit is dBm. * Note : If we are not connected, this value seems to be irrelevant. */	 //printk("In wt4_update_stats\n");	priv->local_iwstatistics.qual.noise = 0;  // maybe configure of RSSI_L_Threash or RSSI_L_Threash, check later/* Get the rssi of the link. To do this we need to retrieve a bss. */	priv->local_iwstatistics.qual.level = wtwlan_get_level_from_dbm( priv, priv->Ndis80211Parameter.RSSI );#if 0	if( ( priv->Ndis80211Parameter.RSSI <= 0 ) || (( priv->Ndis80211Parameter.RSSI > 100 )) )	{		priv->local_iwstatistics.qual.level = 80;	}	else	{		priv->local_iwstatistics.qual.level = priv->Ndis80211Parameter.RSSI;		}#endif	priv->local_iwstatistics.qual.qual = priv->local_iwstatistics.qual.level  - priv->iwstatistics.qual.noise;	/* report that the stats are new */	priv->local_iwstatistics.qual.updated = 0x7;    // updated	priv->local_iwstatistics.discard.nwid = 0;   	priv->local_iwstatistics.discard.code = 0;    // unable code/decode need soft counter,check later	priv->local_iwstatistics.discard.fragment = 0;    // defrag error counter ,soft counter check later	priv->local_iwstatistics.discard.retries = 0;  // need soft counter in txsenddone, check later	priv->local_iwstatistics.discard.misc = priv->MainMemAddress->HwCSMem.HwStatistic.RcvMissedCounter;	priv->local_iwstatistics.miss.beacon = 0;  // should be 0 in our system.			up(&priv->stats_sem);	 	FN_EXIT(0,0);	return;}struct iw_statistics *wt4_get_wireless_stats(struct net_device *ndev){	WT_ADAPTER *priv = netdev_priv(ndev);	 FN_ENTER;	// printk("<0>  In function %s Line %d ",__FUNCTION__,__LINE__);	/* If the stats are being updated return old data */	if (down_trylock(&priv->stats_sem) == 0) 	{		memcpy(&priv->iwstatistics, &priv->local_iwstatistics,		       sizeof (struct iw_statistics));		/* They won't be marked updated for the next time */		priv->local_iwstatistics.qual.updated = 0;				up(&priv->stats_sem);			} 	else		priv->iwstatistics.qual.updated = 0;	/* Update our wireless stats, but do not schedule to often 	 * (max 1 HZ) */	if ((priv->stats_timestamp == 0) ||	    time_after(jiffies, priv->stats_timestamp + 1 * HZ)) 	{		schedule_work(&priv->stats_work);		priv->stats_timestamp = jiffies;	}        	FN_EXIT(0,0);	return &priv->iwstatistics;}static intwt4_commit(struct net_device *ndev, struct iw_request_info *info,	       char *cwrq, char *extra){	//WT_ADAPTER *priv = netdev_priv(ndev);		// we donot need commit	// set ssid proc set here	FN_ENTER;	FN_EXIT(0,0);	return 0;}/**************************get name from driver**************************/static intwt4_get_name(struct net_device *ndev, struct iw_request_info *info,		 char *cwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);	char *capabilities;	 FN_ENTER; 	switch ( priv->Ndis80211Parameter.ABGMode )	{		case IEEE80211A_ONLY:			capabilities = "WT4abg a mode";			break;		case IEEE80211B_AND_G:			capabilities = "WT4abg bg mode";			break;		case IEEE80211G_ONLY:			capabilities = "WT4abg g mode";			break;		case IEEE80211B_ONLY:		default:			capabilities = "WT4abg b mode";	/* Default */			break;	}	strncpy(cwrq, capabilities, IFNAMSIZ);	//	dbg_info_str(cwrq)	 	FN_EXIT(0,0);	return 0;}// for ibss use onlystatic intwt4_set_freq(struct net_device *ndev, struct iw_request_info *info,		 struct iw_freq *fwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);	u32 c = 0;	 FN_ENTER;	 	dbg_info_num(fwrq->m)		 	if (fwrq->m < 1000)		/* we have a channel number */		c = fwrq->m;	else		c = (fwrq->e == 1) ? channel_of_freq(fwrq->m / 100000) : 0;	priv->RegMacParameter.Channel = c ;//	printk(" <0>  priv->RegMacParameter.Channel= %d \r\n",c);	 	//added by hk 2006.7.12	SwChnl( priv,  c);	FN_EXIT(0,0);	return 0;}static intwt4_get_freq(struct net_device *ndev, struct iw_request_info *info,		 struct iw_freq *fwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);         FN_ENTER;//	printk("<0>In function %s in line %d\n\r",__FUNCTION__,__LINE__); 	fwrq->i = priv->NdisCurNet.WlanDesc.ie_ds.curr_channel ;	if((fwrq->i>=14)&&(fwrq->i<36))		fwrq->i=1;	//	printk("<0> Function %s Line %d CurrChannel = %d\r\n",__FUNCTION__,__LINE__,fwrq->i);	fwrq->m = freq_of_channel(fwrq->i );	fwrq->e = 6;//	printk(" <0>  priv->RegMacParameter.Channel= %d ,fwrq->m = =%d\r\n",fwrq->i, fwrq->m  );	//dbg_info_num(fwrq->m)			  	FN_EXIT(0,0);	return 0;}static intwt4_set_mode(struct net_device *ndev, struct iw_request_info *info,		 __u32 * uwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);	u32 iw_mode;	int result = 0;		iw_mode = *uwrq;		//dbg_info_num(iw_mode)	result = ( wt4_mib_mode_helper( priv,  iw_mode ) );		return result;}static int wt_swap_mode( __u32 mode ){	return mode;}/* Use mib cache */static intwt4_get_mode(struct net_device *ndev, struct iw_request_info *info,		 __u32 * uwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);	u32 iw_mode;	*uwrq=	wt_swap_mode(priv->MacParameter.macmode);	iw_mode = *uwrq;	 	//dbg_info_num(iw_mode)	return 0;}/* we use DOT11_OID_EDTHRESHOLD. From what I guess the card will not try to * emit data if (sensitivity > rssi - noise) (in dBm). * prism54_set_sens does not seem to work. */static intwt4_set_sens(struct net_device *ndev, struct iw_request_info *info,		 struct iw_param *vwrq, char *extra){//	WT_ADAPTER *priv = netdev_priv(ndev);	u32 sens;        FN_ENTER;	 	/* by default  the card sets this to 20. */	sens = vwrq->disabled ? 20 : vwrq->value;       //dbg_info_num(sens)	// can use this value to set rssi_thresh, need swap, check later	//priv->MainMemAddress->HwCSMem.BBCSMem.RGBRSSILThresh= vwrq->value;		// 	 	FN_EXIT(0,0);	return 0;}static intwt4_get_sens(struct net_device *ndev, struct iw_request_info *info,		 struct iw_param *vwrq, char *extra){	WT_ADAPTER *priv = netdev_priv(ndev);         FN_ENTER;	//printk("<0>*******Function %s Line %d******** \n\r",__FUNCTION__,__LINE__);	 	vwrq->value=priv->MainMemAddress->HwCSMem.BBCSMem.RGBRSSILThresh ;	vwrq->disabled = (vwrq->value == 0);	vwrq->fixed = 1;	//dbg_info_num(vwrq->value)	  	FN_EXIT(0,0);	return 0;}static int wt4_get_support_freq( IN PWT_ADAPTER priv,  struct obj_frequencies *freq ){	u16 nr_a, nr_b, nr;	int i;         FN_ENTER;	 	nr_b = sizeof( frequency_list_bg )/sizeof( frequency_list_bg[0]);	nr_a = sizeof( frequency_list_a ) / sizeof( frequency_list_a[0] );	nr = nr_a + nr_b;		nr = min( IW_MAX_FREQUENCIES, ( int )nr );		freq->nr = nr;		for( i = 0; i < nr ; i++ )	{		if( i < nr_b )			{				freq->mhz[ i ] = frequency_list_bg[i];			}		else			{				freq->mhz[  i ] = frequency_list_a[ i - nr_b];			}	}	 	FN_EXIT(0,0);	return 0;}static int rates_string[]={ 2,4,11,22, 12, 18, 24,36, 48,72,96,108 };static int wt4_get_support_rates( IN PWT_ADAPTER priv,  u32 *rates ){	u32 n_rates ;	int i;	int result = -EINVAL;        	 FN_ENTER;	 	do{		if( priv->NdisCurNet.WlanDesc.ie_rates.length != 0 )		{			if( ( priv->NdisCurNet.WlanDesc.ie_rates.length >= ELE_LEN_SUPPORT_RATES ) ||				( priv->NdisCurNet.WlanDesc.ie_extendrates.len >= MAX_EXTEND_RATES ) )				break;							if( IW_MAX_BITRATES < ( priv->NdisCurNet.WlanDesc.ie_rates.length +				priv->NdisCurNet.WlanDesc.ie_extendrates.len ) )				break;		n_rates = 0;		for( i = 0; i < priv->NdisCurNet.WlanDesc.ie_rates.length ; i++ )		{			rates[ n_rates++] = priv->NdisCurNet.WlanDesc.ie_rates.sup_rates[ i ];//			printk("in function %s rates[%d]=%d \n",__FUNCTION__,i,rates[ n_rates ]);		}				for( i = 0; i < priv->NdisCurNet.WlanDesc.ie_extendrates.len; i++ )		{			rates[ n_rates++] = priv->NdisCurNet.WlanDesc.ie_extendrates.extrates[ i ];		}		result = 0;					}	   }while( 0 );//	printk("in function %s ie_rates.length=%d \n",__FUNCTION__,priv->NdisCurNet.WlanDesc.ie_rates.length);//	printk("in function %s ie_rates.length=%d \n",__FUNCTION__,priv->NdisCurNet.WlanDesc.ie_extendrates.len);//	printk("in function %s n_rates=%d \n",__FUNCTION__,n_rates );	   if( result != 0 )	   	{// default rates, or not in net//			printk("in function %s using default rates \n",__FUNCTION__ );			memcpy( rates, rates_string, (sizeof(rates_string)/sizeof(rates_string[0]))*sizeof(u32)); 	   	}          	FN_EXIT(0,0);	return 0;}static intwt4_get_range(struct net_device *ndev, struct iw_request_info *info,		  struct iw_point *dwrq, char *extra){	struct iw_range *range = (struct iw_range *) extra;	WT_ADAPTER *priv = netdev_priv(ndev);	//u8 *data;	int i, m/*, rvalue*/;	struct obj_frequencies *freq;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品伊人久久久久7777人| 国产suv精品一区二区883| 国产精品嫩草99a| 精品电影一区二区三区| 日韩视频在线你懂得| 欧美精品九九99久久| 91 com成人网| 日韩欧美国产电影| 久久无码av三级| 中文字幕欧美日韩一区| 中文字幕一区在线观看| 亚洲人成精品久久久久| 亚洲一区二三区| 日本美女一区二区| 激情图片小说一区| 北岛玲一区二区三区四区| 成人黄色一级视频| 日本电影亚洲天堂一区| 欧美老肥妇做.爰bbww视频| 91精品国产综合久久精品麻豆| 欧美日韩国产成人在线免费| 日韩一区二区电影网| 精品久久国产字幕高潮| 欧美国产视频在线| 亚洲精品成人天堂一二三| 亚洲国产视频a| 极品美女销魂一区二区三区 | 亚洲国产精品精华液网站| 亚洲成人激情自拍| 美国av一区二区| 国产大片一区二区| 一本到不卡精品视频在线观看| 欧美日韩精品一区二区三区 | 亚洲国产精品久久人人爱蜜臀| 亚洲一区电影777| 久久精品久久99精品久久| 福利一区福利二区| 欧美日韩午夜影院| 国产人久久人人人人爽| 亚洲欧洲av另类| 久久成人免费网| 91久久精品一区二区二区| 精品福利一区二区三区免费视频| 国产精品久久久久久久岛一牛影视| 亚洲一级二级在线| 国产激情精品久久久第一区二区| 欧美在线啊v一区| 欧美精品一区在线观看| 亚洲小少妇裸体bbw| 国产精品资源网| 在线成人午夜影院| 久久精品夜色噜噜亚洲a∨| 亚洲欧美国产三级| 成人18视频在线播放| 精品人伦一区二区色婷婷| 亚洲永久精品大片| 91视频www| 国产精品美女久久久久久2018| 狠狠狠色丁香婷婷综合激情| 成人av电影在线| 久久精品免费在线观看| 美女视频网站久久| 91精品国产综合久久蜜臀 | 性做久久久久久免费观看 | 日韩在线一二三区| 色8久久人人97超碰香蕉987| 欧美国产一区视频在线观看| 国产尤物一区二区| 欧美mv日韩mv| 国产一区二区精品久久91| 欧美一区二区视频免费观看| 亚洲国产你懂的| 欧美日韩亚洲丝袜制服| 一个色妞综合视频在线观看| 色哟哟一区二区三区| 亚洲美女视频一区| 色老汉一区二区三区| 亚洲日本丝袜连裤袜办公室| 91最新地址在线播放| 亚洲人快播电影网| 91传媒视频在线播放| 亚洲高清不卡在线| 91精品国产综合久久婷婷香蕉| 亚洲国产精品天堂| 欧美一级电影网站| 精品一区二区三区视频| 26uuu亚洲| 国产成人免费视频 | 91成人看片片| 亚洲影视在线观看| 欧美精品久久久久久久多人混战| 图片区小说区国产精品视频 | 狠狠色丁香久久婷婷综合丁香| 亚洲精品在线观看网站| 国产成人超碰人人澡人人澡| 国产精品乱人伦中文| 99久久综合99久久综合网站| 一区二区三区中文在线观看| 777欧美精品| 国产麻豆成人传媒免费观看| 亚洲国产精品ⅴa在线观看| 色呦呦国产精品| 日本不卡高清视频| 久久久久久99精品| 欧美在线不卡一区| 激情文学综合丁香| 伊人开心综合网| 日韩精品中午字幕| 99久久免费视频.com| 首页国产丝袜综合| 欧美经典一区二区| 欧美精品久久天天躁| 成人午夜av电影| 日本在线不卡视频| 日韩美女视频一区| www久久精品| 欧美日韩aaa| 不卡一区二区三区四区| 日韩av在线播放中文字幕| 国产精品天美传媒| 日韩午夜av电影| 色噜噜狠狠成人中文综合| 国产一区二区电影| 日韩av中文在线观看| 最新欧美精品一区二区三区| 欧美本精品男人aⅴ天堂| 色噜噜狠狠一区二区三区果冻| 国产精品1区二区.| 人人精品人人爱| 亚洲国产你懂的| 亚洲图片你懂的| 久久人人爽爽爽人久久久| 91.成人天堂一区| 欧美亚洲另类激情小说| 99久久99久久综合| 成人午夜电影网站| 国产精品综合久久| 另类专区欧美蜜桃臀第一页| 亚洲成av人综合在线观看| 亚洲欧美日韩国产成人精品影院| 久久久美女艺术照精彩视频福利播放| 欧美男女性生活在线直播观看| 91麻豆swag| 99热在这里有精品免费| 国产激情精品久久久第一区二区| 伦理电影国产精品| 秋霞电影网一区二区| 亚洲国产精品人人做人人爽| 一区二区久久久久久| 日韩理论片中文av| 亚洲欧美色综合| 一区二区三区蜜桃网| 一区二区三区加勒比av| 亚洲精品国产a久久久久久| 亚洲欧洲国产日本综合| 国产精品久久久久7777按摩| 久久久噜噜噜久久人人看| www一区二区| 日本一区二区视频在线观看| 国产日韩欧美电影| 国产精品超碰97尤物18| 中文字幕日韩一区| 亚洲欧美色图小说| 亚洲一区二区影院| 日本女人一区二区三区| 另类中文字幕网| 国产精品自拍av| 一本色道久久综合亚洲精品按摩| 色综合久久综合网| 欧美日韩激情一区二区三区| 91麻豆精品国产91久久久| 精品精品欲导航| 国产精品国产自产拍高清av| 亚洲欧美激情小说另类| 日韩精品电影在线| 国精品**一区二区三区在线蜜桃| 国产69精品久久99不卡| 99精品热视频| 91精品国产欧美一区二区成人| 26uuu亚洲综合色欧美| 中文字幕一区二区三区乱码在线 | 日本一区二区三区四区| 自拍偷拍欧美激情| 日本不卡一区二区三区| 国产精品自拍毛片| 欧美日韩在线精品一区二区三区激情 | 国产成+人+日韩+欧美+亚洲| va亚洲va日韩不卡在线观看| 欧美日韩国产另类不卡| 久久亚洲影视婷婷| 亚洲国产精品精华液网站| 精一区二区三区| 日本精品一级二级| 久久久久国产精品人| 亚洲综合久久av| 粉嫩高潮美女一区二区三区| 欧美三级视频在线播放| 日本一区二区三区国色天香| 日韩精品三区四区| 在线看日本不卡|