亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美日本在线看| 婷婷成人综合网| 久久婷婷国产综合精品青草 | 在线综合+亚洲+欧美中文字幕| 一本一道久久a久久精品 | 欧美国产综合色视频| 久久婷婷一区二区三区| 国产日韩欧美a| 国产女人18毛片水真多成人如厕| 中文字幕 久热精品 视频在线| 亚洲国产高清在线观看视频| 国产精品情趣视频| 亚洲人成亚洲人成在线观看图片 | 国产传媒久久文化传媒| 国产九色精品成人porny| 国产九色sp调教91| 91视频免费观看| 欧美丝袜自拍制服另类| 欧美人妖巨大在线| 欧美草草影院在线视频| 亚洲国产精品精华液2区45| 国产精品麻豆一区二区 | 成年人国产精品| 色婷婷激情一区二区三区| 在线视频观看一区| 91精品国产欧美一区二区18| 久久综合九色综合欧美98| 国产女人水真多18毛片18精品视频| 国产精品网曝门| 亚洲一区欧美一区| 麻豆国产欧美一区二区三区| 国产精品亚洲一区二区三区妖精 | 精品捆绑美女sm三区| 久久无码av三级| 亚洲免费在线观看视频| 婷婷成人激情在线网| 狂野欧美性猛交blacked| av中文字幕亚洲| 精品视频在线看| 亚洲精品在线三区| 亚洲免费观看高清完整版在线 | 亚洲成av人片在线| 精品一区二区免费| 91亚洲精品一区二区乱码| 欧美肥妇毛茸茸| 欧美高清在线一区| 日韩成人伦理电影在线观看| 国产精品系列在线观看| 欧美性受xxxx| 国产精品美女www爽爽爽| 亚洲第一电影网| 国产1区2区3区精品美女| 欧美日韩成人综合| 国产精品色婷婷| 视频在线在亚洲| av在线一区二区三区| 日韩视频国产视频| 亚洲日本中文字幕区| 久99久精品视频免费观看| 在线看不卡av| 中文一区二区在线观看| 日韩1区2区日韩1区2区| av中文一区二区三区| 精品久久人人做人人爰| 亚洲精品欧美在线| 国产福利一区二区三区视频| 欧美色网站导航| 中文字幕日韩欧美一区二区三区| 美女在线一区二区| 欧美日韩一区二区欧美激情| 中文字幕一区二区三区不卡在线 | 99re视频这里只有精品| 日韩欧美综合在线| 亚洲高清免费观看| 成人动漫一区二区三区| 久久综合久久综合亚洲| 奇米777欧美一区二区| 欧美性xxxxxx少妇| 亚洲人成网站精品片在线观看| 国产成人精品一区二区三区四区| 欧美精品一二三四| 亚洲激情图片qvod| 99久久国产综合精品色伊| 欧美国产日韩a欧美在线观看| 麻豆视频一区二区| 欧美一级夜夜爽| 日韩精品五月天| 欧美精品乱人伦久久久久久| 一级日本不卡的影视| 99久精品国产| 亚洲国产精品二十页| 国产91精品露脸国语对白| 2021中文字幕一区亚洲| 麻豆精品精品国产自在97香蕉| 91 com成人网| 日本在线不卡视频| 日韩午夜在线播放| 免费成人在线观看视频| 6080日韩午夜伦伦午夜伦| 午夜视频一区在线观看| 欧美日韩国产一级二级| 亚洲线精品一区二区三区| 91高清视频免费看| 亚洲香肠在线观看| 欧美日韩美少妇| 天天色综合天天| 欧美精品日韩一本| 蜜臀av性久久久久蜜臀av麻豆| 日韩一区二区三区四区| 日韩av一二三| 欧美一区二区三区公司| 蜜桃av一区二区三区电影| 欧美va亚洲va香蕉在线| 久久99国产精品免费| 久久久久国产精品人| 国产xxx精品视频大全| 国产精品久久网站| 成人av在线资源网| 伊人夜夜躁av伊人久久| 欧美亚洲国产一区二区三区| 亚洲大片在线观看| 日韩一区二区三区av| 免费观看30秒视频久久| 精品国产一区二区三区av性色| 国产一区在线视频| 国产精品毛片久久久久久久 | 亚洲人精品一区| 欧美揉bbbbb揉bbbbb| 奇米888四色在线精品| 久久久久久久久岛国免费| 99精品国产一区二区三区不卡| 一区二区三区四区不卡视频| 欧美一区二区三区视频在线观看 | 欧美精品在欧美一区二区少妇| 视频一区二区三区入口| 精品国产成人在线影院| 成人免费观看av| 亚洲精品成a人| 日韩一卡二卡三卡四卡| 国产精品一区二区三区网站| 亚洲美女偷拍久久| 51精品久久久久久久蜜臀| 国产美女在线观看一区| 亚洲图片另类小说| 欧美电视剧在线看免费| 99久久婷婷国产| 免费成人在线视频观看| 国产精品久久午夜夜伦鲁鲁| 欧美妇女性影城| 懂色av中文字幕一区二区三区| 亚洲一区二区高清| 26uuu久久综合| 日本高清不卡视频| 激情综合网av| 亚洲精品久久久蜜桃| 精品国产自在久精品国产| 91麻豆免费在线观看| 精品一区免费av| 亚洲欧美日韩久久| 欧美电影免费观看高清完整版在| 色综合久久久久| 国产一区在线精品| 亚洲一二三四久久| 国产精品无码永久免费888| 91精品国产综合久久精品app| 不卡高清视频专区| 久久爱另类一区二区小说| 亚洲欧美日韩在线播放| 久久精品网站免费观看| 91精品国产综合久久久久久| 91小视频免费看| 国产一区二区美女| 日韩电影在线一区二区| 一区在线播放视频| 久久久久久久一区| 7777精品伊人久久久大香线蕉经典版下载| aaa国产一区| 国产美女娇喘av呻吟久久| 三级久久三级久久久| 亚洲精品视频在线观看免费 | 日本欧美一区二区三区| 亚洲女与黑人做爰| 国产欧美一区二区三区在线老狼 | 毛片av一区二区| 亚洲狠狠爱一区二区三区| 国产精品久久久久久久久免费丝袜 | 尤物av一区二区| 国产精品午夜久久| 久久久精品国产免费观看同学| 欧美哺乳videos| 日韩一区二区三区av| 这里是久久伊人| 91麻豆精品国产91久久久久久| 色噜噜久久综合| 99在线精品视频| 不卡区在线中文字幕| 成人高清视频在线| 9i在线看片成人免费| 国产成人午夜99999| 激情亚洲综合在线|