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

📄 wmi.h

📁 linux下的SDIO 驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2004-2006 Atheros Communications Inc. * All rights reserved. * * This file contains the definitions of the WMI protocol specified in the * Wireless Module Interface (WMI).  It includes definitions of all the * commands and events. Commands are messages from the host to the WM. * Events and Replies are messages from the WM to the host. * * Ownership of correctness in regards to WMI commands * belongs to the host driver and the WM is not required to validate * parameters for value, proper range, or any other checking. * * $Id: //depot/sw/releases/etnaGPL1.1/include/wmi.h#1 $ * */#ifndef _WMI_H_#define _WMI_H_#include "wmix.h"#ifdef __cplusplusextern "C" {#endif#define WMI_PROTOCOL_VERSION    0x0001#define WMI_PROTOCOL_REVISION   0x0000#define ATH_MAC_LEN             6               /* length of mac in bytes */#define WMI_CMD_MAX_LEN         100#define WMI_CONTROL_MSG_MAX_LEN     256#define WMI_OPT_CONTROL_MSG_MAX_LEN 1536#define IS_ETHERTYPE(_typeOrLen)        ((_typeOrLen) >= 0x0600)#define RFC1042OUI      {0x00, 0x00, 0x00}#define IP_ETHERTYPE 0x0800/* * Data Path */typedef struct {    A_UINT8     dstMac[ATH_MAC_LEN];    A_UINT8     srcMac[ATH_MAC_LEN];    A_UINT16    typeOrLen;} __ATTRIB_PACK ATH_MAC_HDR;typedef struct {    A_UINT8     dsap;    A_UINT8     ssap;    A_UINT8     cntl;    A_UINT8     orgCode[3];    A_UINT16    etherType;} __ATTRIB_PACK ATH_LLC_SNAP_HDR;typedef enum {    DATA_MSGTYPE = 0x0,    CNTL_MSGTYPE,    SYNC_MSGTYPE} WMI_MSG_TYPE;typedef struct {    A_INT8      rssi;    A_UINT8     info;            /* WMI_MSG_TYPE in lower 2 bits - b1b0 */                                 /* UP in next 3 bits - b4b3b2 */#define WMI_DATA_HDR_MSG_TYPE_MASK  0x03#define WMI_DATA_HDR_MSG_TYPE_SHIFT 0#define WMI_DATA_HDR_UP_MASK        0x07#define WMI_DATA_HDR_UP_SHIFT       2#define WMI_DATA_HDR_IS_MSG_TYPE(h, t)  (((h)->info & (WMI_DATA_HDR_MSG_TYPE_MASK)) == (t))} __ATTRIB_PACK WMI_DATA_HDR;/* * Control Path */typedef struct {    A_UINT16    commandId;} __ATTRIB_PACK WMI_CMD_HDR;        /* used for commands and events *//* * List of Commnands */typedef enum {    WMI_CONNECT_CMDID           = 0x0001,    WMI_RECONNECT_CMDID,    WMI_DISCONNECT_CMDID,    WMI_SYNCHRONIZE_CMDID,    WMI_CREATE_PSTREAM_CMDID,    WMI_DELETE_PSTREAM_CMDID,    WMI_START_SCAN_CMDID,    WMI_SET_SCAN_PARAMS_CMDID,    WMI_SET_BSS_FILTER_CMDID,    WMI_SET_PROBED_SSID_CMDID,    WMI_SET_LISTEN_INT_CMDID,    WMI_SET_BMISS_TIME_CMDID,    WMI_SET_DISC_TIMEOUT_CMDID,    WMI_GET_CHANNEL_LIST_CMDID,    WMI_SET_BEACON_INT_CMDID,    WMI_GET_STATISTICS_CMDID,    WMI_SET_CHANNEL_PARAMS_CMDID,    WMI_SET_POWER_MODE_CMDID,    WMI_SET_IBSS_PM_CAPS_CMDID,    WMI_SET_POWER_PARAMS_CMDID,    WMI_SET_POWERSAVE_TIMERS_CMDID,    WMI_ADD_CIPHER_KEY_CMDID,    WMI_DELETE_CIPHER_KEY_CMDID,    WMI_ADD_KRK_CMDID,    WMI_DELETE_KRK_CMDID,    WMI_SET_PMKID_CMDID,    WMI_SET_TX_PWR_CMDID,    WMI_GET_TX_PWR_CMDID,    WMI_SET_ASSOC_INFO_CMDID,    WMI_ADD_BAD_AP_CMDID,    WMI_DELETE_BAD_AP_CMDID,    WMI_SET_TKIP_COUNTERMEASURES_CMDID,    WMI_RSSI_THRESHOLD_PARAMS_CMDID,    WMI_TARGET_ERROR_REPORT_BITMASK_CMDID,    WMI_SET_ACCESS_PARAMS_CMDID,    WMI_SET_RETRY_LIMITS_CMDID,    WMI_SET_OPT_MODE_CMDID,    WMI_OPT_TX_FRAME_CMDID,    WMI_SET_VOICE_PKT_SIZE_CMDID,    WMI_SET_MAX_SP_LEN_CMDID,    WMI_SET_ROAM_CTRL_CMDID,    WMI_GET_ROAM_TBL_CMDID,    WMI_GET_ROAM_DATA_CMDID,    WMI_ENABLE_RM_CMDID,    WMI_SET_MAX_OFFHOME_DURATION_CMDID,    WMI_EXTENSION_CMDID,                        /* Non-wireless extensions */    WMI_SNR_THRESHOLD_PARAMS_CMDID,    WMI_LQ_THRESHOLD_PARAMS_CMDID,    WMI_SET_LPREAMBLE_CMDID,    WMI_SET_RTS_CMDID,    WMI_CLR_RSSI_SNR_CMDID,    WMI_SET_FIXRATES_CMDID,    WMI_GET_FIXRATES_CMDID,    WMI_SET_AUTH_MODE_CMDID,    /*     * Developer commands starts at 0xF000     */    WMI_SET_BITRATE_CMDID = 0xF000,    WMI_GET_BITRATE_CMDID,} WMI_COMMAND_ID;/* * Connect Command */typedef enum {    INFRA_NETWORK       = 0x01,    ADHOC_NETWORK       = 0x02,} NETWORK_TYPE;typedef enum {    OPEN_AUTH           = 0x01,    SHARED_AUTH         = 0x02,    LEAP_AUTH           = 0x04,} DOT11_AUTH_MODE;typedef enum {    NONE_AUTH           = 0x01,    WPA_AUTH            = 0x02,    WPA_PSK_AUTH        = 0x03,    WPA2_AUTH           = 0x04,    WPA2_PSK_AUTH       = 0x05,    WPA_AUTH_CCKM       = 0x06,    WPA2_AUTH_CCKM      = 0x07,} AUTH_MODE;typedef enum {    NONE_CRYPT          = 0x01,    WEP_CRYPT           = 0x02,    TKIP_CRYPT          = 0x03,    AES_CRYPT           = 0x04,} CRYPTO_TYPE;#define WMI_MIN_CRYPTO_TYPE NONE_CRYPT#define WMI_MAX_CRYPTO_TYPE (AES_CRYPT + 1)#define WMI_MIN_KEY_INDEX   0#define WMI_MAX_KEY_INDEX   3#define WMI_MAX_KEY_LEN     32#define WMI_MAX_SSID_LEN    32typedef struct {    A_UINT8     networkType;    A_UINT8     dot11AuthMode;    A_UINT8     authMode;    A_UINT8     pairwiseCryptoType;    A_UINT8     pairwiseCryptoLen;    A_UINT8     groupCryptoType;    A_UINT8     groupCryptoLen;    A_UINT8     ssidLength;    A_UCHAR     ssid[WMI_MAX_SSID_LEN];    A_UINT16    channel;    A_UINT8     bssid[ATH_MAC_LEN];} __ATTRIB_PACK WMI_CONNECT_CMD;/* * WMI_RECONNECT_CMDID */typedef struct {    A_UINT16    channel;                    /* hint */    A_UINT8     bssid[ATH_MAC_LEN];         /* mandatory if set */} __ATTRIB_PACK WMI_RECONNECT_CMD;/* * WMI_ADD_CIPHER_KEY_CMDID */typedef enum {    PAIRWISE_USAGE      = 0x00,    GROUP_USAGE         = 0x01,    TX_USAGE            = 0x02,     /* default Tx Key - Static WEP only */} KEY_USAGE;typedef struct {    A_UINT8     keyIndex;    A_UINT8     keyType;    A_UINT8     keyUsage;           /* KEY_USAGE */    A_UINT8     keyLength;    A_UINT8     keyRSC[8];          /* key replay sequence counter */    A_UINT8     key[WMI_MAX_KEY_LEN];} __ATTRIB_PACK WMI_ADD_CIPHER_KEY_CMD;/* * WMI_DELETE_CIPHER_KEY_CMDID */typedef struct {    A_UINT8     keyIndex;} __ATTRIB_PACK WMI_DELETE_CIPHER_KEY_CMD;#define WMI_KRK_LEN     16/* * WMI_ADD_KRK_CMDID */typedef struct {    A_UINT8     krk[WMI_KRK_LEN];} __ATTRIB_PACK WMI_ADD_KRK_CMD;/* * WMI_SET_TKIP_COUNTERMEASURES_CMDID */typedef enum {    WMI_TKIP_CM_DISABLE = 0x0,    WMI_TKIP_CM_ENABLE  = 0x1,} WMI_TKIP_CM_CONTROL;typedef struct {    A_UINT8  cm_en;                     /* WMI_TKIP_CM_CONTROL */} __ATTRIB_PACK WMI_SET_TKIP_COUNTERMEASURES_CMD;/* * WMI_SET_PMKID_CMDID */typedef enum {   PMKID_DISABLE = 0,   PMKID_ENABLE  = 1,} PMKID_ENABLE_FLG;typedef struct {    A_UINT8     bssid[ATH_MAC_LEN];    A_UINT8     enable;                 /* PMKID_ENABLE_FLG */    A_UINT8     pmkid[16];} __ATTRIB_PACK WMI_SET_PMKID_CMD;/* * WMI_START_SCAN_CMD */typedef enum {    WMI_LONG_SCAN  = 0,    WMI_SHORT_SCAN = 1,} WMI_SCAN_TYPE;typedef struct {    A_UINT8 scanType;           /* WMI_SCAN_TYPE */} __ATTRIB_PACK WMI_START_SCAN_CMD;/* * WMI_SET_SCAN_PARAMS_CMDID */#define WMI_SHORTSCANRATIO_DEFAULT      3typedef struct {    A_UINT16    fg_start_period;        /* seconds */    A_UINT16    fg_end_period;          /* seconds */    A_UINT16    bg_period;              /* seconds */    A_UINT16    act_chdwell_time;       /* msec */    A_UINT16    pas_chdwell_time;       /* msec */    A_UINT8     shortScanRatio;         /* how many shorts scan for one long */} __ATTRIB_PACK WMI_SCAN_PARAMS_CMD;/* * WMI_SET_BSS_FILTER_CMDID */typedef enum {    NONE_BSS_FILTER = 0x0,              /* no beacons forwarded */    ALL_BSS_FILTER,                     /* all beacons forwarded */    PROFILE_FILTER,                     /* only beacons matching profile */    ALL_BUT_PROFILE_FILTER,             /* all but beacons matching profile */    CURRENT_BSS_FILTER,                 /* only beacons matching current BSS */    ALL_BUT_BSS_FILTER,                 /* all but beacons matching BSS */    PROBED_SSID_FILTER,                 /* beacons matching probed ssid */    LAST_BSS_FILTER,                    /* marker only */} WMI_BSS_FILTER;typedef struct {    A_UINT8    bssFilter;                      /* see WMI_BSS_FILTER */} __ATTRIB_PACK WMI_BSS_FILTER_CMD;/* * WMI_SET_PROBED_SSID_CMDID */#define MAX_PROBED_SSID_INDEX   5typedef enum {    DISABLE_SSID_FLAG  = 0,                  /* disables entry */    SPECIFIC_SSID_FLAG = 0x01,               /* probes specified ssid */    ANY_SSID_FLAG      = 0x02,               /* probes for any ssid */} WMI_SSID_FLAG;typedef struct {    A_UINT8     entryIndex;                     /* 0 to MAX_PROBED_SSID_INDEX */    A_UINT8     flag;                           /* WMI_SSID_FLG */    A_UINT8     ssidLength;    A_UINT8     ssid[32];} __ATTRIB_PACK WMI_PROBED_SSID_CMD;/* * WMI_SET_LISTEN_INT_CMDID * The Listen interval is between 100 and 1000 TUs */#define MIN_LISTEN_INTERVAL 100#define MAX_LISTEN_INTERVAL 1000#define MIN_LISTEN_BEACONS 1#define MAX_LISTEN_BEACONS 50typedef struct {    A_UINT16     listenInterval;    A_UINT16     numBeacons;} __ATTRIB_PACK WMI_LISTEN_INT_CMD;/* * WMI_SET_BEACON_INT_CMDID */typedef struct {    A_UINT16     beaconInterval;} __ATTRIB_PACK WMI_BEACON_INT_CMD;/* * WMI_SET_BMISS_TIME_CMDID * valid values are between 1000 and 5000 TUs */#define MIN_BMISS_TIME     1000#define MAX_BMISS_TIME     5000#define MIN_BMISS_BEACONS  5#define MAX_BMISS_BEACONS  50typedef struct {    A_UINT16     bmissTime;    A_UINT16     numBeacons;} __ATTRIB_PACK WMI_BMISS_TIME_CMD;/* * WMI_SET_POWER_MODE_CMDID */typedef enum {    REC_POWER = 0x01,    MAX_PERF_POWER,} WMI_POWER_MODE;typedef struct {    A_UINT8     powerMode;      /* WMI_POWER_MODE */} __ATTRIB_PACK WMI_POWER_MODE_CMD;/* * WMI_SET_POWER_PARAMS_CMDID */typedef enum {    IGNORE_DTIM = 0x01,    NORMAL_DTIM = 0x02,    STICK_DTIM  = 0x03,} WMI_DTIM_POLICY;typedef struct {    A_UINT16    idle_period;             /* msec */    A_UINT16    pspoll_number;    A_UINT16    dtim_policy;} __ATTRIB_PACK WMI_POWER_PARAMS_CMD;typedef struct {    A_UINT8    power_saving;    A_UINT8    ttl; /* number of beacon periods */    A_UINT16   atim_windows;          /* msec */    A_UINT16   timeout_value;         /* msec */} __ATTRIB_PACK WMI_IBSS_PM_CAPS_CMD;/* * WMI_SET_POWERSAVE_TIMERS_CMDID */typedef struct {    A_UINT16    psPollTimeout;          /* msec */    A_UINT16    eospTimeout;            /* msec */} __ATTRIB_PACK WMI_POWERSAVE_TIMERS_CMD;/* * WMI_SET_VOICE_PKT_SIZE_CMDID */typedef struct {    A_UINT16    voicePktSize;} __ATTRIB_PACK WMI_SET_VOICE_PKT_SIZE_CMD;/* * WMI_SET_MAX_SP_LEN_CMDID */typedef enum {    DELIVER_ALL_PKT = 0x0,    DELIVER_2_PKT = 0x1,    DELIVER_4_PKT = 0x2,    DELIVER_6_PKT = 0x3,} APSD_SP_LEN_TYPE;typedef struct {    A_UINT8    maxSPLen;} __ATTRIB_PACK WMI_SET_MAX_SP_LEN_CMD;/* * WMI_SET_DISC_TIMEOUT_CMDID */typedef struct {    A_UINT8     disconnectTimeout;          /* seconds */} __ATTRIB_PACK WMI_DISC_TIMEOUT_CMD;typedef enum {    UPLINK_TRAFFIC = 0,    DNLINK_TRAFFIC = 1,    BIDIR_TRAFFIC = 2,} DIR_TYPE;/* * WMI_CREATE_PSTREAM_CMDID */typedef enum {    DISABLE_FOR_THIS_AC = 0,    ENABLE_FOR_THIS_AC  = 1,    ENABLE_FOR_ALL_AC   = 2,} VOICEPS_CAP_TYPE;typedef enum {    TRAFFIC_TYPE_APERIODIC = 0,    TRAFFIC_TYPE_PERIODIC = 1,}TRAFFIC_TYPE;typedef struct {    A_UINT8         trafficClass;    A_UINT8         trafficDirection;        /* DIR_TYPE */    A_UINT8         rxQueueNum;    A_UINT8         trafficType;             /* TRAFFIC_TYPE */    A_UINT8         voicePSCapability;       /* VOICEPS_CAP_TYPE */    A_UINT8         tsid;    A_UINT8         userPriority;            /* 802.1D user priority */    A_UINT16        nominalMSDU;             /* in octects */    A_UINT16        maxMSDU;                 /* in octects */    A_UINT32        minServiceInt;           /* in milli-sec */    A_UINT32        maxServiceInt;           /* in milli-sec */    A_UINT32        inactivityInt;           /* in milli-sec */    A_UINT32        suspensionInt;           /* in milli-sec */    A_UINT32        serviceStartTime;    A_UINT32        minDataRate;             /* in bps */    A_UINT32        meanDataRate;            /* in bps */    A_UINT32        peakDataRate;            /* in bps */    A_UINT32        maxBurstSize;    A_UINT32        delayBound;    A_UINT32        minPhyRate;              /* in bps */    A_UINT32        sba;    A_UINT32        mediumTime;} __ATTRIB_PACK WMI_CREATE_PSTREAM_CMD;/* * WMI_DELETE_PSTREAM_CMDID */typedef struct {    A_UINT8     txQueueNumber;    A_UINT8     rxQueueNumber;    A_UINT8     trafficDirection;    A_UINT8     trafficClass;} __ATTRIB_PACK WMI_DELETE_PSTREAM_CMD;/* * WMI_SET_CHANNEL_PARAMS_CMDID */typedef enum {    WMI_11A_MODE  = 0x1,    WMI_11G_MODE  = 0x2,    WMI_11AG_MODE = 0x3,    WMI_11B_MODE  = 0x4,    WMI_11GONLY_MODE = 0x5,} WMI_PHY_MODE;#define WMI_MAX_CHANNELS        32typedef struct {    A_UINT8     phyMode;                /* see WMI_PHY_MODE */    A_UINT8     numChannels;            /* how many channels follow */    A_UINT16    channelList[1];         /* channels in Mhz */} __ATTRIB_PACK WMI_CHANNEL_PARAMS_CMD;/* *  WMI_RSSI_THRESHOLD_PARAMS_CMDID *  Setting the polltime to 0 would disable polling. *  Threshold values are in the ascending order, and should agree to: *  (lowThreshold_lowerVal < lowThreshold_upperVal < highThreshold_lowerVal *      < highThreshold_upperVal) */typedef struct WMI_RSSI_THRESHOLD_PARAMS{    A_UINT8     highThreshold_upperVal;    A_UINT8     highThreshold_lowerVal;    A_UINT8     lowThreshold_upperVal;    A_UINT8     lowThreshold_lowerVal;    A_UINT32    pollTime;               /* Polling time in seconds */} __ATTRIB_PACK  WMI_RSSI_THRESHOLD_PARAMS_CMD;/* *  WMI_TARGET_ERROR_REPORT_BITMASK_CMDID *  Sets the error reporting event bitmask in target. Target clears it *  upon an error. Subsequent errors are counted, but not reported *  via event, unless the bitmask is set again. */typedef struct {    A_UINT32    bitmask;} __ATTRIB_PACK  WMI_TARGET_ERROR_REPORT_BITMASK;/* * WMI_SET_TX_PWR_CMDID */typedef struct {    A_UINT8     dbM;                  /* in dbM units */} __ATTRIB_PACK WMI_SET_TX_PWR_CMD, WMI_TX_PWR_REPLY;/* * WMI_SET_ASSOC_INFO_CMDID * * A maximum of 2 private IEs can be sent in the [Re]Assoc request. * A 3rd one, the CCX version IE can also be set from the host. */#define WMI_MAX_ASSOC_INFO_TYPE    2#define WMI_CCX_VER_IE             2 /* ieType to set CCX Version IE */#define WMI_MAX_ASSOC_INFO_LEN     240typedef struct {    A_UINT8     ieType;    A_UINT8     bufferSize;    A_UINT8     assocInfo[1];       /* up to WMI_MAX_ASSOC_INFO_LEN */} __ATTRIB_PACK WMI_SET_ASSOC_INFO_CMD;/* * WMI_GET_TX_PWR_CMDID does not take any parameters *//* * WMI_ADD_BAD_AP_CMDID */#define WMI_MAX_BAD_AP_INDEX      1typedef struct {    A_UINT8     badApIndex;         /* 0 to WMI_MAX_BAD_AP_INDEX */

⌨️ 快捷键说明

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