⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sta_ioctl.c

📁 Linux下的RT系列无线网卡驱动,可以直接在x86平台上编译
💻 C
📖 第 1 页 / 共 5 页
字号:
/* ************************************************************************* * Ralink Tech Inc. * 4F, No. 2 Technology 5th Rd. * Science-based Industrial Park * Hsin-chu, Taiwan, R.O.C. * * (c) Copyright 2002-2007, Ralink Technology, Inc. * * This program is free software; you can redistribute it and/or modify  *  * it under the terms of the GNU General Public License as published by  *  * the Free Software Foundation; either version 2 of the License, or     *  * (at your option) any later version.                                   *  *                                                                       *  * This program is distributed in the hope that it will be useful,       *  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *  * GNU General Public License for more details.                          *  *                                                                       *  * You should have received a copy of the GNU General Public License     *  * along with this program; if not, write to the                         *  * Free Software Foundation, Inc.,                                       *  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *  *                                                                       *  *************************************************************************    Module Name:    sta_ioctl.c    Abstract:    IOCTL related subroutines    Revision History:    Who         When          What    --------    ----------    ----------------------------------------------    Rory Chen   01-03-2003    created	Rory Chen   02-14-2005    modify to support RT61*/#include	"rt_config.h"#if WIRELESS_EXT <= 11#ifndef SIOCDEVPRIVATE#define SIOCDEVPRIVATE                              0x8BE0#endif#define SIOCIWFIRSTPRIV								SIOCDEVPRIVATE#endif#define RTPRIV_IOCTL_SET							(SIOCIWFIRSTPRIV + 0x02)#ifdef DBG#define RTPRIV_IOCTL_BBP                            (SIOCIWFIRSTPRIV + 0x03)#define RTPRIV_IOCTL_MAC                            (SIOCIWFIRSTPRIV + 0x05)#define RTPRIV_IOCTL_E2P                            (SIOCIWFIRSTPRIV + 0x07)#endif#ifdef RALINK_ATE#ifdef RALINK_2860_QA#define RTPRIV_IOCTL_ATE							(SIOCIWFIRSTPRIV + 0x08)#endif // RALINK_2860_QA //#endif // RALINK_ATE //#define RTPRIV_IOCTL_STATISTICS                     (SIOCIWFIRSTPRIV + 0x09)#define RTPRIV_IOCTL_ADD_PMKID_CACHE                (SIOCIWFIRSTPRIV + 0x0A)#define RTPRIV_IOCTL_RADIUS_DATA                    (SIOCIWFIRSTPRIV + 0x0C)#define RTPRIV_IOCTL_GSITESURVEY					(SIOCIWFIRSTPRIV + 0x0D)#define RT_PRIV_IOCTL								(SIOCIWFIRSTPRIV + 0x0E) // Sync. with RT61 (for wpa_supplicant)#define RTPRIV_IOCTL_GET_MAC_TABLE					(SIOCIWFIRSTPRIV + 0x0F)#define RTPRIV_IOCTL_SHOW							(SIOCIWFIRSTPRIV + 0x11)enum {        SHOW_CONN_STATUS = 4,    SHOW_DRVIER_VERION = 5,};#ifdef DBGextern ULONG    RTDebugLevel;#endif#define NR_WEP_KEYS 				4#define WEP_SMALL_KEY_LEN 			(40/8)#define WEP_LARGE_KEY_LEN 			(104/8)#define GROUP_KEY_NO                4extern UCHAR    CipherWpa2Template[];extern UCHAR    CipherWpaPskTkip[];extern UCHAR    CipherWpaPskTkipLen;typedef struct PACKED _RT_VERSION_INFO{    UCHAR       DriverVersionW;    UCHAR       DriverVersionX;    UCHAR       DriverVersionY;    UCHAR       DriverVersionZ;    UINT        DriverBuildYear;    UINT        DriverBuildMonth;    UINT        DriverBuildDay;} RT_VERSION_INFO, *PRT_VERSION_INFO;struct iw_priv_args privtab[] = {{ RTPRIV_IOCTL_SET,   IW_PRIV_TYPE_CHAR | 1024, 0,  "set"},/* --- sub-ioctls relations --- */{ RTPRIV_IOCTL_SHOW,  0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,  ""},/* --- sub-ioctls definitions --- */       { SHOW_CONN_STATUS,	  0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "connStatus" },	{ SHOW_DRVIER_VERION,	  0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "driverVer" },#ifdef DBG{ RTPRIV_IOCTL_BBP,  IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,  "bbp"},{ RTPRIV_IOCTL_MAC,  IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,  "mac"},  { RTPRIV_IOCTL_E2P,  IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,  "e2p"},#endif  /* DBG */{ RTPRIV_IOCTL_STATISTICS,  0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,  "stat"}, { RTPRIV_IOCTL_GSITESURVEY,  0, IW_PRIV_TYPE_CHAR | 1024,  "get_site_survey"},};INT Set_DriverVersion_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);INT Set_CountryRegion_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);INT Set_CountryRegionABand_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);INT Set_SSID_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_WirelessMode_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_TxRate_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_Channel_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_BGProtection_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_TxPreamble_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_RTSThreshold_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_FragThreshold_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_TxBurst_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT	Set_TxPower_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);#ifdef AGGREGATION_SUPPORTINT	Set_PktAggregate_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);#endif#ifdef WMM_SUPPORTINT	Set_WmmCapable_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);#endifINT	Set_IEEE80211H_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);INT Set_NetworkType_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_AuthMode_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_EncrypType_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_DefaultKeyID_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_Key1_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_Key2_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_Key3_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_Key4_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT Set_WPAPSK_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);INT	Set_ResetStatCounter_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);INT Set_PSMode_Proc(    IN  PRTMP_ADAPTER   pAdapter,     IN  PUCHAR          arg);#ifdef DBGINT	Set_Debug_Proc(	IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);#endif#ifdef WPA_SUPPLICANT_SUPPORTINT Set_Wpa_Support(    IN	PRTMP_ADAPTER	pAd, 	IN	PUCHAR			arg);#endif // WPA_SUPPLICANT_SUPPORT //VOID    RTMPSetDesiredRates(    IN  PRTMP_ADAPTER   pAdapter,    IN  LONG            Rates);VOID RTMPIoctlStatistics(    struct net_device *dev,     struct iw_request_info *info,	struct iw_point *dwrq, 	char *extra);#ifdef DBGVOID RTMPIoctlBBP(	IN	PRTMP_ADAPTER	pAdapter,	IN	struct iwreq	*wrq);VOID RTMPIoctlMAC(	IN	PRTMP_ADAPTER	pAdapter, 	IN	struct iwreq	*wrq);VOID RTMPIoctlE2PROM(    IN  PRTMP_ADAPTER   pAdapter,    IN  struct iwreq    *wrq);#endif // DBG //NDIS_STATUS RTMPWPANoneAddKeyProc(    IN  PRTMP_ADAPTER   pAd,    IN	PVOID			pBuf);	static struct {	CHAR *name;	INT (*set_proc)(PRTMP_ADAPTER pAdapter, PUCHAR arg);} *PRTMP_PRIVATE_SET_PROC, RTMP_PRIVATE_SUPPORT_PROC[] = {	{"DriverVersion",				Set_DriverVersion_Proc},	{"CountryRegion",				Set_CountryRegion_Proc},		{"CountryRegionABand",			Set_CountryRegionABand_Proc},      	{"SSID",						Set_SSID_Proc}, 	{"WirelessMode",				Set_WirelessMode_Proc},       	{"TxBurst",						Set_TxBurst_Proc},	{"TxRate",						Set_TxRate_Proc},          	{"TxPreamble",					Set_TxPreamble_Proc},	{"TxPower",						Set_TxPower_Proc},	{"Channel",						Set_Channel_Proc},            	{"BGProtection",				Set_BGProtection_Proc},	{"RTSThreshold",				Set_RTSThreshold_Proc},       	{"FragThreshold",				Set_FragThreshold_Proc},      	{"HtBw",		                Set_HtBw_Proc},	{"HtMcs",		                Set_HtMcs_Proc},	{"HtGi",		                Set_HtGi_Proc},	{"HtOpMode",		            Set_HtOpMode_Proc},	{"HtExtcha",		            Set_HtExtcha_Proc},	{"HtMpduDensity",		        Set_HtMpduDensity_Proc},	{"HtBaWinSize",		        	Set_HtBaWinSize_Proc},	{"HtRdg",		        		Set_HtRdg_Proc},	{"HtAmsdu",		        		Set_HtAmsdu_Proc},	{"HtAutoBa",		        	Set_HtAutoBa_Proc},	{"HtProtect",		        	Set_HtProtect_Proc},	{"HtMimoPs",		        	Set_HtMimoPs_Proc},	#ifdef AGGREGATION_SUPPORT	{"PktAggregate",				Set_PktAggregate_Proc},       #endif#ifdef WMM_SUPPORT	{"WmmCapable",					Set_WmmCapable_Proc},         #endif         //	{"ShortSlot",					Set_ShortSlot_Proc},	{"IEEE80211H",					Set_IEEE80211H_Proc},    {"NetworkType",                 Set_NetworkType_Proc},        	{"AuthMode",					Set_AuthMode_Proc},           	{"EncrypType",					Set_EncrypType_Proc},         	{"DefaultKeyID",				Set_DefaultKeyID_Proc},       	{"Key1",						Set_Key1_Proc},               	{"Key2",						Set_Key2_Proc},               	{"Key3",						Set_Key3_Proc},               	{"Key4",						Set_Key4_Proc},               	{"WPAPSK",						Set_WPAPSK_Proc},	{"ResetCounter",				Set_ResetStatCounter_Proc},	{"PSMode",                      Set_PSMode_Proc},#ifdef DBG	{"Debug",						Set_Debug_Proc},             #endif          #ifdef RALINK_ATE	{"ATE",							Set_ATE_Proc},	{"ATEDA",						Set_ATE_DA_Proc},	{"ATESA",						Set_ATE_SA_Proc},	{"ATEBSSID",					Set_ATE_BSSID_Proc},	{"ATECHANNEL",					Set_ATE_CHANNEL_Proc},	{"ATETXPOW0",					Set_ATE_TX_POWER0_Proc},	{"ATETXPOW1",					Set_ATE_TX_POWER1_Proc},	{"ATETXANT",					Set_ATE_TX_Antenna_Proc},	{"ATERXANT",					Set_ATE_RX_Antenna_Proc},	{"ATETXFREQOFFSET",				Set_ATE_TX_FREQOFFSET_Proc},	{"ATETXBW",						Set_ATE_TX_BW_Proc},	{"ATETXLEN",					Set_ATE_TX_LENGTH_Proc},	{"ATETXCNT",					Set_ATE_TX_COUNT_Proc},//	{"ATETXRATE",					Set_ATE_TX_RATE_Proc},	{"ATETXMCS",					Set_ATE_TX_MCS_Proc},	{"ATETXMODE",					Set_ATE_TX_MODE_Proc},	{"ATETXGI",						Set_ATE_TX_GI_Proc},	{"ATERXFER",					Set_ATE_RX_FER_Proc},	{"ATERRF",						Set_ATE_Read_RF_Proc},	{"ATEWRF1",						Set_ATE_Write_RF1_Proc},	{"ATEWRF2",						Set_ATE_Write_RF2_Proc},	{"ATEWRF3",						Set_ATE_Write_RF3_Proc},	{"ATEWRF4",						Set_ATE_Write_RF4_Proc},	{"ATESHOW",						Set_ATE_Show_Proc},	{"ATEHELP",						Set_ATE_Help_Proc},#ifdef RALINK_2860_QA#if 0	{"TxStart",						Set_TxStart_Proc},#endif	{"TxStop",						Set_TxStop_Proc},#if 0	{"EERead",						Set_EERead_Proc},	{"EEWrite",						Set_EEWrite_Proc},	{"BBPRead",						Set_BBPRead_Proc},	{"BBPWrite",					Set_BBPWrite_Proc},	{"RFWrite",						Set_RFWrite_Proc},#endif#endif // RALINK_2860_QA //#endif // RALINK_ATE //#ifdef WPA_SUPPLICANT_SUPPORT    {"WpaSupport",                  Set_Wpa_Support},#endif // WPA_SUPPLICANT_SUPPORT //	{NULL,}};VOID N_ChannelCheck(	IN PRTMP_ADAPTER pAd)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -