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

📄 iocmd.h

📁 VIA VT6656 USB linux source code.
💻 H
字号:
/* * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * All rights reserved. * * This software is copyrighted by and is the sole property of * VIA Networking Technologies, Inc. This software may only be used * in accordance with the corresponding license agreement. Any unauthorized * use, duplication, transmission, distribution, or disclosure of this * software is expressly forbidden. * * This software is provided by VIA Networking Technologies, Inc. "as is" * and any express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular purpose * are disclaimed. In no event shall VIA Networking Technologies, Inc. * be liable for any direct, indirect, incidental, special, exemplary, or * consequential damages.    * * File: iocmd.h * * Purpose: Handles the viawget ioctl private interface functions * * Author: Lyndon Chen * * Date: May 8, 2002 * */  #ifndef __IOCMD_H__#define __IOCMD_H__#if !defined(__TTYPE_H__)#include "ttype.h"#endif/*---------------------  Export Definitions -------------------------*/#if !defined(DEF)#define DEF#endif//typedef int BOOL;//typedef uint32_t u32;//typedef uint16_t u16;//typedef uint8_t u8;// ioctl Command code#define MAGIC_CODE	                 0x3142#define IOCTL_CMD_TEST	            (SIOCDEVPRIVATE + 0)#define IOCTL_CMD_SET			    (SIOCDEVPRIVATE + 1)#define IOCTL_CMD_HOSTAPD           (SIOCDEVPRIVATE + 2)#define IOCTL_CMD_WPA               (SIOCDEVPRIVATE + 3)typedef enum tagWMAC_CMD {        WLAN_CMD_BSS_SCAN,    WLAN_CMD_BSS_JOIN,    WLAN_CMD_DISASSOC,    WLAN_CMD_SET_WEP,	    WLAN_CMD_GET_LINK,    WLAN_CMD_GET_LISTLEN,    WLAN_CMD_GET_LIST,    WLAN_CMD_GET_MIB,    WLAN_CMD_GET_STAT,    WLAN_CMD_STOP_MAC,    WLAN_CMD_START_MAC,    WLAN_CMD_AP_START,    WLAN_CMD_SET_HOSTAPD,    WLAN_CMD_SET_HOSTAPD_STA,    WLAN_CMD_SET_802_1X,    WLAN_CMD_SET_HOST_WEP,    WLAN_CMD_SET_WPA,            WLAN_CMD_GET_NODE_CNT, #ifdef SndEvt_ToAPI    WLAN_CMD_SET_EVT, #endif    WLAN_CMD_GET_NODE_LIST        } WMAC_CMD, DEF* PWMAC_CMD;    #define ADHOC	0#define INFRA	1#define BOTH	2#define AP	    3#define ADHOC_STARTED	   1#define ADHOC_JOINTED	   2   #define PHY80211a 	    0#define PHY80211b       1#define PHY80211g       2   #define SSID_ID                0#define SSID_MAXLEN            32#define BSSID_LEN              6#define WEP_NKEYS              4#define WEP_KEYMAXLEN          29#define WEP_40BIT_LEN          5#define WEP_104BIT_LEN         13 #define WEP_232BIT_LEN         16 #ifdef SndEvt_ToAPI#pragma pack(1)typedef struct tagEvtSubmit {	U8     type;		U8	 value;	U16   content_len;} SEvtSubmit, *PSEvtSubmit;#endif// Ioctl interface structure// Command structure//#pragma pack(1)typedef struct tagSCmdRequest {	U8 	    name[16];		void	*data;	U16	    wResult;	U16     wCmdCode;} SCmdRequest, *PSCmdRequest;//// Scan//typedef struct tagSCmdScan {        U8	    ssid[SSID_MAXLEN + 2];    } SCmdScan, *PSCmdScan;   //// BSS Join// typedef struct tagSCmdBSSJoin {        U16	    wBSSType;    U16     wBBPType;    U8	    ssid[SSID_MAXLEN + 2];    U32	    uChannel;    BOOL    bPSEnable;	    BOOL    bShareKeyAuth;} SCmdBSSJoin, *PSCmdBSSJoin;#ifdef WPA_SM_Transtatustypedef struct tagSWPAResult {         char	ifname[100];         U8		proto;         U8   key_mgmt;         U8   eap_type;         BOOL authenticated;} SWPAResult, *PSWPAResult;#endiftypedef struct tagSCmdStartAP {        U16	    wBSSType;    U16     wBBPType;    U8	    ssid[SSID_MAXLEN + 2];    U32 	uChannel;    U32     uBeaconInt;    BOOL    bShareKeyAuth;    U8      byBasicRate;} SCmdStartAP, *PSCmdStartAP;typedef struct tagSCmdSetWEP {    BOOL    bEnableWep;    U8      byKeyIndex;    U8      abyWepKey[WEP_NKEYS][WEP_KEYMAXLEN];    BOOL    bWepKeyAvailable[WEP_NKEYS];        U32     auWepKeyLength[WEP_NKEYS];} SCmdSetWEP, *PSCmdSetWEP;typedef struct tagSBSSIDItem {	U32	    uChannel;    U8      abyBSSID[BSSID_LEN];    U8      abySSID[SSID_MAXLEN + 1];    U16	    wBeaconInterval;    U16	    wCapInfo;    U8      byNetType;    BOOL    bWEPOn;    U32     uRSSI;    } SBSSIDItem;typedef struct tagSBSSIDList {	U32		    uItem;	SBSSIDItem	sBSSIDList[0];    } SBSSIDList, *PSBSSIDList;typedef struct tagSNodeItem {    // STA info    U16            wAID;        U8             abyMACAddr[6];    U16            wTxDataRate;    U16            wInActiveCount;    U16            wEnQueueCnt;    U16            wFlags;        BOOL           bPWBitOn;        U8             byKeyIndex;    U16            wWepKeyLength;    U8            abyWepKey[WEP_KEYMAXLEN];    // Auto rate fallback vars     BOOL           bIsInFallback;    U32            uTxFailures;    U32            uTxAttempts;    U16            wFailureRatio;    } SNodeItem;typedef struct tagSNodeList {	U32		    uItem;	SNodeItem	sNodeList[0];    	} SNodeList, *PSNodeList;typedef struct tagSCmdLinkStatus {    BOOL    bLink;	U16	    wBSSType;	U8      byState;        U8      abyBSSID[BSSID_LEN];    U8      abySSID[SSID_MAXLEN + 2];    U32     uChannel;    U32     uLinkRate;    } SCmdLinkStatus, *PSCmdLinkStatus;//// 802.11 counter//typedef struct tagSDot11MIBCount {    U32 TransmittedFragmentCount;    U32 MulticastTransmittedFrameCount;    U32 FailedCount;    U32 RetryCount;    U32 MultipleRetryCount;    U32 RTSSuccessCount;    U32 RTSFailureCount;    U32 ACKFailureCount;    U32 FrameDuplicateCount;    U32 ReceivedFragmentCount;    U32 MulticastReceivedFrameCount;    U32 FCSErrorCount;} SDot11MIBCount, DEF* PSDot11MIBCount;//// statistic counter//typedef struct tagSStatMIBCount {    //    // ISR status count    //    U32   dwIsrTx0OK;    U32   dwIsrTx1OK;    U32   dwIsrBeaconTxOK;    U32   dwIsrRxOK;    U32   dwIsrTBTTInt;    U32   dwIsrSTIMERInt;    U32   dwIsrUnrecoverableError;    U32   dwIsrSoftInterrupt;    U32   dwIsrRxNoBuf;    /////////////////////////////////////    U32   dwIsrUnknown;               // unknown interrupt count    // RSR status count    //    U32   dwRsrFrmAlgnErr;    U32   dwRsrErr;    U32   dwRsrCRCErr;    U32   dwRsrCRCOk;    U32   dwRsrBSSIDOk;    U32   dwRsrADDROk;    U32   dwRsrICVOk;    U32   dwNewRsrShortPreamble;    U32   dwRsrLong;    U32   dwRsrRunt;            U32   dwRsrRxControl;    U32   dwRsrRxData;    U32   dwRsrRxManage;    U32   dwRsrRxPacket;    U32   dwRsrRxOctet;    U32   dwRsrBroadcast;    U32   dwRsrMulticast;    U32   dwRsrDirected;    // 64-bit OID    U32   ullRsrOK;        // for some optional OIDs (64 bits) and DMI support        U32   ullRxBroadcastBytes;    U32   ullRxMulticastBytes;    U32   ullRxDirectedBytes;    U32   ullRxBroadcastFrames;    U32   ullRxMulticastFrames;    U32   ullRxDirectedFrames;        U32   dwRsrRxFragment;    U32   dwRsrRxFrmLen64;    U32   dwRsrRxFrmLen65_127;    U32   dwRsrRxFrmLen128_255;    U32   dwRsrRxFrmLen256_511;    U32   dwRsrRxFrmLen512_1023;    U32   dwRsrRxFrmLen1024_1518;    // TSR0,1 status count    //    U32   dwTsrTotalRetry[2];        // total collision retry count    U32   dwTsrOnceRetry[2];         // this packet only occur one collision    U32   dwTsrMoreThanOnceRetry[2]; // this packet occur more than one collision    U32   dwTsrRetry[2];             // this packet has ever occur collision,                                        // that is (dwTsrOnceCollision0 + dwTsrMoreThanOnceCollision0)    U32   dwTsrACKData[2];    U32   dwTsrErr[2];                       U32   dwAllTsrOK[2];    U32   dwTsrRetryTimeout[2];    U32   dwTsrTransmitTimeout[2];    U32   dwTsrTxPacket[2];    U32   dwTsrTxOctet[2];    U32   dwTsrBroadcast[2];    U32   dwTsrMulticast[2];    U32   dwTsrDirected[2];    // RD/TD count    U32   dwCntRxFrmLength;    U32   dwCntTxBufLength;    U8    abyCntRxPattern[16];    U8    abyCntTxPattern[16];    // Software check....    U32   dwCntRxDataErr;             // rx buffer data software compare CRC err count    U32   dwCntDecryptErr;            // rx buffer data software compare CRC err count    U32   dwCntRxICVErr;              // rx buffer data software compare CRC err count    U32    idxRxErrorDesc;             // index for rx data error RD    // 64-bit OID    U32   ullTsrOK[2];        // for some optional OIDs (64 bits) and DMI support    U32   ullTxBroadcastFrames[2];    U32   ullTxMulticastFrames[2];    U32   ullTxDirectedFrames[2];        U32   ullTxBroadcastBytes[2];    U32   ullTxMulticastBytes[2];    U32   ullTxDirectedBytes[2];} SStatMIBCount, DEF* PSStatMIBCount;typedef struct tagSCmdValue {        U32     dwValue;    } SCmdValue,  *PSCmdValue;//// hostapd & viawget ioctl related//// VIAGWET_IOCTL_HOSTAPD ioctl() cmd: enum {	VIAWGET_HOSTAPD_FLUSH = 1,	VIAWGET_HOSTAPD_ADD_STA = 2,	VIAWGET_HOSTAPD_REMOVE_STA = 3,	VIAWGET_HOSTAPD_GET_INFO_STA = 4,	VIAWGET_HOSTAPD_SET_ENCRYPTION = 5,	VIAWGET_HOSTAPD_GET_ENCRYPTION = 6,	VIAWGET_HOSTAPD_SET_FLAGS_STA = 7,	VIAWGET_HOSTAPD_SET_ASSOC_AP_ADDR = 8,	VIAWGET_HOSTAPD_SET_GENERIC_ELEMENT = 9,	VIAWGET_HOSTAPD_MLME = 10,	VIAWGET_HOSTAPD_SCAN_REQ = 11,	VIAWGET_HOSTAPD_STA_CLEAR_STATS = 12,	};#define VIAWGET_HOSTAPD_GENERIC_ELEMENT_HDR_LEN \((int) (&((struct viawget_hostapd_param *) 0)->u.generic_elem.data))// Maximum length for algorithm names (-1 for nul termination) used in ioctl() struct viawget_hostapd_param {	U32 cmd;	U8 sta_addr[6];	union {		struct {			U16 aid;			U16 capability;			U8 tx_supp_rates;		} add_sta;		struct {			U32 inactive_sec;		} get_info_sta;		struct {			U8 alg;			U32 flags;			U32 err;			U8 idx;			U8 seq[8]; 			U16 key_len;			U8 key[0];		} crypt;		struct {			U32 flags_and;			U32 flags_or;		} set_flags_sta;		struct {			U16 rid;			U16 len;			U8 data[0];		} rid;		struct {			U8 len;			U8 data[0];		} generic_elem;		struct {			U16 cmd;			U16 reason_code;		} mlme;		struct {			U8 ssid_len;			U8 ssid[32];		} scan_req;	} u;};/*---------------------  Export Classes  ----------------------------*/    /*---------------------  Export Variables  --------------------------*//*---------------------  Export Types  ------------------------------*//*---------------------  Export Functions  --------------------------*/#endif //__IOCMD_H__

⌨️ 快捷键说明

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