/* * Copyright (c) 2004-2006 Atheros Communications Inc. * All rights reserved. * * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * * */ #ifndef _ATHDRV_LINUX_H #define _ATHDRV_LINUX_H #ifdef __cplusplus extern "C" { #endif /* * There are two types of ioctl's here: Standard ioctls and * eXtended ioctls. All extended ioctls (XIOCTL) are multiplexed * off of the single ioctl command, AR6000_IOCTL_EXTENDED. The * arguments for every XIOCTL starts with a 32-bit command word * that is used to select which extended ioctl is in use. After * the command word are command-specific arguments. */ /* Linux standard Wireless Extensions, private ioctl interfaces */ #define IEEE80211_IOCTL_SETPARAM (SIOCIWFIRSTPRIV+0) #define IEEE80211_IOCTL_GETPARAM (SIOCIWFIRSTPRIV+1) #define IEEE80211_IOCTL_SETKEY (SIOCIWFIRSTPRIV+2) #define IEEE80211_IOCTL_SETWMMPARAMS (SIOCIWFIRSTPRIV+3) #define IEEE80211_IOCTL_DELKEY (SIOCIWFIRSTPRIV+4) #define IEEE80211_IOCTL_GETWMMPARAMS (SIOCIWFIRSTPRIV+5) #define IEEE80211_IOCTL_SETOPTIE (SIOCIWFIRSTPRIV+6) #define IEEE80211_IOCTL_SETMLME (SIOCIWFIRSTPRIV+7) //#define IEEE80211_IOCTL_GETOPTIE (SIOCIWFIRSTPRIV+7) #define IEEE80211_IOCTL_ADDPMKID (SIOCIWFIRSTPRIV+8) //#define IEEE80211_IOCTL_SETAUTHALG (SIOCIWFIRSTPRIV+10) #define IEEE80211_IOCTL_LASTONE (SIOCIWFIRSTPRIV+9) /* ====WMI Ioctls==== */ /* * * Many ioctls simply provide WMI services to application code: * an application makes such an ioctl call with a set of arguments * that are packaged into the corresponding WMI message, and sent * to the Target. */ #define AR6000_IOCTL_WMI_GETREV (SIOCIWFIRSTPRIV+10) /* * arguments: * ar6000_version *revision */ #define AR6000_IOCTL_WMI_SETPWR (SIOCIWFIRSTPRIV+11) /* * arguments: * WMI_POWER_MODE_CMD pwrModeCmd (see include/wmi.h) * uses: WMI_SET_POWER_MODE_CMDID */ #define AR6000_IOCTL_WMI_SETSCAN (SIOCIWFIRSTPRIV+12) /* * arguments: * WMI_SCAN_PARAMS_CMD scanParams (see include/wmi.h) * uses: WMI_SET_SCAN_PARAMS_CMDID */ #define AR6000_IOCTL_WMI_SETLISTENINT (SIOCIWFIRSTPRIV+13) /* * arguments: * UINT32 listenInterval * uses: WMI_SET_LISTEN_INT_CMDID */ #define AR6000_IOCTL_WMI_SETBSSFILTER (SIOCIWFIRSTPRIV+14) /* * arguments: * WMI_BSS_FILTER filter (see include/wmi.h) * uses: WMI_SET_BSS_FILTER_CMDID */ #define AR6000_IOCTL_WMI_SET_CHANNELPARAMS (SIOCIWFIRSTPRIV+16) /* * arguments: * WMI_CHANNEL_PARAMS_CMD chParams * uses: WMI_SET_CHANNEL_PARAMS_CMDID */ #define AR6000_IOCTL_WMI_SET_PROBEDSSID (SIOCIWFIRSTPRIV+17) /* * arguments: * WMI_PROBED_SSID_CMD probedSsids (see include/wmi.h) * uses: WMI_SETPROBED_SSID_CMDID */ #define AR6000_IOCTL_WMI_SET_PMPARAMS (SIOCIWFIRSTPRIV+18) /* * arguments: * WMI_POWER_PARAMS_CMD powerParams (see include/wmi.h) * uses: WMI_SET_POWER_PARAMS_CMDID */ #define AR6000_IOCTL_WMI_SET_BADAP (SIOCIWFIRSTPRIV+19) /* * arguments: * WMI_ADD_BAD_AP_CMD badAPs (see include/wmi.h) * uses: WMI_ADD_BAD_AP_CMDID */ #define AR6000_IOCTL_WMI_GET_QOS_QUEUE (SIOCIWFIRSTPRIV+20) /* * arguments: * ar6000_queuereq queueRequest (see below) */ #define AR6000_IOCTL_WMI_CREATE_QOS (SIOCIWFIRSTPRIV+21) /* * arguments: * WMI_CREATE_PSTREAM createPstreamCmd (see include/wmi.h) * uses: WMI_CREATE_PSTREAM_CMDID */ #define AR6000_IOCTL_WMI_DELETE_QOS (SIOCIWFIRSTPRIV+22) /* * arguments: * WMI_DELETE_PSTREAM_CMD deletePstreamCmd (see include/wmi.h) * uses: WMI_DELETE_PSTREAM_CMDID */ #define AR6000_IOCTL_WMI_SET_SNRTHRESHOLD (SIOCIWFIRSTPRIV+23) /* * arguments: * WMI_SNR_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h) * uses: WMI_SNR_THRESHOLD_PARAMS_CMDID */ #define AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK (SIOCIWFIRSTPRIV+24) /* * arguments: * WMI_TARGET_ERROR_REPORT_BITMASK errorReportBitMask (see include/wmi.h) * uses: WMI_TARGET_ERROR_REPORT_BITMASK_CMDID */ #define AR6000_IOCTL_WMI_GET_TARGET_STATS (SIOCIWFIRSTPRIV+25) /* * arguments: * TARGET_STATS *targetStats (see below) * uses: WMI_GET_STATISTICS_CMDID */ #define AR6000_IOCTL_WMI_SET_ASSOC_INFO (SIOCIWFIRSTPRIV+26) /* * arguments: * WMI_SET_ASSOC_INFO_CMD setAssocInfoCmd * uses: WMI_SET_ASSOC_INFO_CMDID */ #define AR6000_IOCTL_WMI_SET_ACCESS_PARAMS (SIOCIWFIRSTPRIV+27) /* * arguments: * WMI_SET_ACCESS_PARAMS_CMD setAccessParams (see include/wmi.h) * uses: WMI_SET_ACCESS_PARAMS_CMDID */ #define AR6000_IOCTL_WMI_SET_BMISS_TIME (SIOCIWFIRSTPRIV+28) /* * arguments: * UINT32 beaconMissTime * uses: WMI_SET_BMISS_TIME_CMDID */ #define AR6000_IOCTL_WMI_SET_DISC_TIMEOUT (SIOCIWFIRSTPRIV+29) /* * arguments: * WMI_DISC_TIMEOUT_CMD disconnectTimeoutCmd (see include/wmi.h) * uses: WMI_SET_DISC_TIMEOUT_CMDID */ #define AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS (SIOCIWFIRSTPRIV+30) /* * arguments: * WMI_IBSS_PM_CAPS_CMD ibssPowerMgmtCapsCmd * uses: WMI_SET_IBSS_PM_CAPS_CMDID */ /* * There is a very small space available for driver-private * wireless ioctls. In order to circumvent this limitation, * we multiplex a bunch of ioctls (XIOCTLs) on top of a * single AR6000_IOCTL_EXTENDED ioctl. */ #define AR6000_IOCTL_EXTENDED (SIOCIWFIRSTPRIV+31) /* ====BMI Extended Ioctls==== */ #define AR6000_XIOCTL_BMI_DONE 1 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_BMI_DONE) * uses: BMI_DONE */ #define AR6000_XIOCTL_BMI_READ_MEMORY 2 /* * arguments: * union { * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_READ_MEMORY) * UINT32 address * UINT32 length * } * char results[length] * } * uses: BMI_READ_MEMORY */ #define AR6000_XIOCTL_BMI_WRITE_MEMORY 3 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_MEMORY) * UINT32 address * UINT32 length * char data[length] * uses: BMI_WRITE_MEMORY */ #define AR6000_XIOCTL_BMI_EXECUTE 4 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_BMI_EXECUTE) * UINT32 TargetAddress * UINT32 parameter * uses: BMI_EXECUTE */ #define AR6000_XIOCTL_BMI_SET_APP_START 5 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_BMI_SET_APP_START) * UINT32 TargetAddress * uses: BMI_SET_APP_START */ #define AR6000_XIOCTL_BMI_READ_SOC_REGISTER 6 /* * arguments: * union { * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_READ_SOC_REGISTER) * UINT32 TargetAddress, 32-bit aligned * } * UINT32 result * } * uses: BMI_READ_SOC_REGISTER */ #define AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER 7 /* * arguments: * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER) * UINT32 TargetAddress, 32-bit aligned * UINT32 newValue * } * uses: BMI_WRITE_SOC_REGISTER */ #define AR6000_XIOCTL_BMI_TEST 8 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_BMI_TEST) * UINT32 address * UINT32 length * UINT32 count */ /* Historical Host-side DataSet support */ #define AR6000_XIOCTL_UNUSED9 9 #define AR6000_XIOCTL_UNUSED10 10 #define AR6000_XIOCTL_UNUSED11 11 /* ====Misc Extended Ioctls==== */ #define AR6000_XIOCTL_FORCE_TARGET_RESET 12 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_FORCE_TARGET_RESET) */ #ifdef HTC_RAW_INTERFACE /* HTC Raw Interface Ioctls */ #define AR6000_XIOCTL_HTC_RAW_OPEN 13 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_OPEN) */ #define AR6000_XIOCTL_HTC_RAW_CLOSE 14 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_CLOSE) */ #define AR6000_XIOCTL_HTC_RAW_READ 15 /* * arguments: * union { * struct { * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_READ) * UINT32 mailboxID * UINT32 length * } * results[length] * } */ #define AR6000_XIOCTL_HTC_RAW_WRITE 16 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_WRITE) * UINT32 mailboxID * UINT32 length * char buffer[length] */ #endif /* HTC_RAW_INTERFACE */ #define AR6000_XIOCTL_CHECK_TARGET_READY 17 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_CHECK_TARGET_READY) */ /* ====GPIO (General Purpose I/O) Extended Ioctls==== */ #define AR6000_XIOCTL_GPIO_OUTPUT_SET 18 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_OUTPUT_SET) * ar6000_gpio_output_set_cmd_s (see below) * uses: WMIX_GPIO_OUTPUT_SET_CMDID */ #define AR6000_XIOCTL_GPIO_INPUT_GET 19 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_INPUT_GET) * uses: WMIX_GPIO_INPUT_GET_CMDID */ #define AR6000_XIOCTL_GPIO_REGISTER_SET 20 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_SET) * ar6000_gpio_register_cmd_s (see below) * uses: WMIX_GPIO_REGISTER_SET_CMDID */ #define AR6000_XIOCTL_GPIO_REGISTER_GET 21 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_GET) * ar6000_gpio_register_cmd_s (see below) * uses: WMIX_GPIO_REGISTER_GET_CMDID */ #define AR6000_XIOCTL_GPIO_INTR_ACK 22 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_ACK) * ar6000_cpio_intr_ack_cmd_s (see below) * uses: WMIX_GPIO_INTR_ACK_CMDID */ #define AR6000_XIOCTL_GPIO_INTR_WAIT 23 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_WAIT) */ /* ====more wireless commands==== */ #define AR6000_XIOCTL_SET_ADHOC_BSSID 24 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BSSID) * WMI_SET_ADHOC_BSSID_CMD setAdHocBssidCmd (see include/wmi.h) */ #define AR6000_XIOCTL_SET_OPT_MODE 25 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_SET_OPT_MODE) * WMI_SET_OPT_MODE_CMD setOptModeCmd (see include/wmi.h) * uses: WMI_SET_OPT_MODE_CMDID */ #define AR6000_XIOCTL_OPT_SEND_FRAME 26 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_OPT_SEND_FRAME) * WMI_OPT_TX_FRAME_CMD optTxFrameCmd (see include/wmi.h) * uses: WMI_OPT_TX_FRAME_CMDID */ #define AR6000_XIOCTL_SET_ADHOC_BEACON_INTVAL 27 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BEACON_INTVAL) * WMI_BEACON_INT_CMD beaconIntCmd (see include/wmi.h) * uses: WMI_SET_BEACON_INT_CMDID */ #define IEEE80211_IOCTL_SETAUTHALG 28 #define AR6000_XIOCTL_SET_VOICE_PKT_SIZE 29 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_SET_VOICE_PKT_SIZE) * WMI_SET_VOICE_PKT_SIZE_CMD setVoicePktSizeCmd (see include/wmi.h) * uses: WMI_SET_VOICE_PKT_SIZE_CMDID */ #define AR6000_XIOCTL_SET_MAX_SP 30 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_SET_MAX_SP) * WMI_SET_MAX_SP_LEN_CMD maxSPLen(see include/wmi.h) * uses: WMI_SET_MAX_SP_LEN_CMDID */ #define AR6000_XIOCTL_WMI_GET_ROAM_TBL 31 #define AR6000_XIOCTL_WMI_SET_ROAM_CTRL 32 #define AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS 33 /* * arguments: * UINT32 cmd (AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS) * WMI_SET_POWERSAVE_TIMERS_CMD powerSaveTimers(see include/wmi.h) * WMI_SET_POWERSAVE_TIMERS_CMDID */ #define AR6000_XIOCTRL_WMI_GET_POWER_MODE 34 /* * arguments: * UINT32 cmd (AR6000_XIOCTRL_WMI_GET_POWER_MODE) */ #define AR6000_XIOCTRL_WMI_SET_WLAN_STATE 35 typedef enum { WLAN_DISABLED, WLAN_ENABLED } AR6000_WLAN_STATE; /* * arguments: * enable/disable */ #define AR6000_XIOCTL_WMI_GET_ROAM_DATA 36 #define AR6000_XIOCTL_WMI_SETRETRYLIMITS 37 /* * arguments: * WMI_SET_RETRY_LIMITS_CMD ibssSetRetryLimitsCmd * uses: WMI_SET_RETRY_LIMITS_CMDID */ #ifdef CONFIG_HOST_TCMD_SUPPORT /* ====extended commands for radio test ==== */ #define AR6000_XIOCTL_TCMD_CONT_TX 38 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_TX) * WMI_TCMD_CONT_TX_CMD contTxCmd (see include/wmi.h) * uses: WMI_TCMD_CONT_TX_CMDID */ #define AR6000_XIOCTL_TCMD_CONT_RX 39 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_RX) * WMI_TCMD_CONT_RX_CMD rxCmd (see include/wmi.h) * uses: WMI_TCMD_CONT_RX_CMDID */ #define AR6000_XIOCTL_TCMD_PM 40 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_TCMD_PM) * WMI_TCMD_PM_CMD pmCmd (see include/wmi.h) * uses: WMI_TCMD_PM_CMDID */ #endif /* CONFIG_HOST_TCMD_SUPPORT */ #define AR6000_XIOCTL_WMI_STARTSCAN 41 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_STARTSCAN) * UINT8 scanType * UINT8 scanConnected * A_BOOL forceFgScan * uses: WMI_START_SCAN_CMDID */ #define AR6000_XIOCTL_WMI_SETFIXRATES 42 #define AR6000_XIOCTL_WMI_GETFIXRATES 43 #define AR6000_XIOCTL_WMI_SET_RSSITHRESHOLD 44 /* * arguments: * WMI_RSSI_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h) * uses: WMI_RSSI_THRESHOLD_PARAMS_CMDID */ #define AR6000_XIOCTL_WMI_CLR_RSSISNR 45 /* * arguments: * WMI_CLR_RSSISNR_CMD thresholdParams (see include/wmi.h) * uses: WMI_CLR_RSSISNR_CMDID */ #define AR6000_XIOCTL_WMI_SET_LQTHRESHOLD 46 /* * arguments: * WMI_LQ_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h) * uses: WMI_LQ_THRESHOLD_PARAMS_CMDID */ #define AR6000_XIOCTL_WMI_SET_RTS 47 /* * arguments: * WMI_SET_RTS_MODE_CMD (see include/wmi.h) * uses: WMI_SET_RTS_MODE_CMDID */ #define AR6000_XIOCTL_WMI_SET_LPREAMBLE 48 #define AR6000_XIOCTL_WMI_SET_AUTHMODE 49 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_SET_AUTHMODE) * UINT8 mode * uses: WMI_SET_RECONNECT_AUTH_MODE_CMDID */ #define AR6000_XIOCTL_WMI_SET_REASSOCMODE 50 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_SET_WMM) * UINT8 mode * uses: WMI_SET_WMM_CMDID */ #define AR6000_XIOCTL_WMI_SET_WMM 51 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS) * UINT32 frequency * UINT8 threshold */ #define AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS 52 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP) * UINT32 cookie */ #define AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP 53 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_GET_RD) * UINT32 regDomain */ #define AR6000_XIOCTL_WMI_GET_RD 54 #define AR6000_XIOCTL_DIAG_READ 55 #define AR6000_XIOCTL_DIAG_WRITE 56 /* * arguments cmd (AR6000_XIOCTL_SET_TXOP) * WMI_TXOP_CFG txopEnable */ #define AR6000_XIOCTL_WMI_SET_TXOP 57 #ifdef USER_KEYS /* * arguments: * UINT32 cmd (AR6000_XIOCTL_USER_SETKEYS) * UINT32 keyOpCtrl * uses AR6000_USER_SETKEYS_INFO */ #define AR6000_XIOCTL_USER_SETKEYS 58 #endif /* USER_KEYS */ #define AR6000_XIOCTL_WMI_SET_KEEPALIVE 59 /* * arguments: * UINT8 cmd (AR6000_XIOCTL_WMI_SET_KEEPALIVE) * UINT8 keepaliveInterval * uses: WMI_SET_KEEPALIVE_CMDID */ #define AR6000_XIOCTL_WMI_GET_KEEPALIVE 60 /* * arguments: * UINT8 cmd (AR6000_XIOCTL_WMI_GET_KEEPALIVE) * UINT8 keepaliveInterval * A_BOOL configured * uses: WMI_GET_KEEPALIVE_CMDID */ /* ====ROM Patching Extended Ioctls==== */ #define AR6000_XIOCTL_BMI_ROMPATCH_INSTALL 61 /* * arguments: * union { * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_INSTALL) * UINT32 ROM Address * UINT32 RAM Address * UINT32 number of bytes * UINT32 activate? (0 or 1) * } * A_UINT32 resulting rompatch ID * } * uses: BMI_ROMPATCH_INSTALL */ #define AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL 62 /* * arguments: * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL) * UINT32 rompatch ID * } * uses: BMI_ROMPATCH_UNINSTALL */ #define AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE 63 /* * arguments: * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE) * UINT32 rompatch count * UINT32 rompatch IDs[rompatch count] * } * uses: BMI_ROMPATCH_ACTIVATE */ #define AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE 64 /* * arguments: * struct { * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE) * UINT32 rompatch count * UINT32 rompatch IDs[rompatch count] * } * uses: BMI_ROMPATCH_DEACTIVATE */ #define AR6000_XIOCTL_WMI_SET_APPIE 65 /* * arguments: * struct { * UINT32 cmd (AR6000_XIOCTL_WMI_SET_APPIE) * UINT32 app_frmtype; * UINT32 app_buflen; * UINT8 app_buf[]; * } */ #define AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER 66 /* * arguments: * A_UINT32 filter_type; */ #define AR6000_XIOCTL_DBGLOG_CFG_MODULE 67 #define AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS 68 #define AR6000_XIOCTL_WMI_SET_WSC_STATUS 70 /* * arguments: * A_UINT32 wsc_status; * (WSC_REG_INACTIVE or WSC_REG_ACTIVE) */ /* * arguments: * struct { * A_UINT8 streamType; * A_UINT8 status; * } * uses: WMI_SET_BT_STATUS_CMDID */ #define AR6000_XIOCTL_WMI_SET_BT_STATUS 71 /* * arguments: * struct { * A_UINT8 paramType; * union { * A_UINT8 noSCOPkts; * BT_PARAMS_A2DP a2dpParams; * BT_COEX_REGS regs; * }; * } * uses: WMI_SET_BT_PARAM_CMDID */ #define AR6000_XIOCTL_WMI_SET_BT_PARAMS 72 #define AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE 73 #define AR6000_XIOCTL_WMI_SET_WOW_MODE 74 #define AR6000_XIOCTL_WMI_GET_WOW_LIST 75 #define AR6000_XIOCTL_WMI_ADD_WOW_PATTERN 76 #define AR6000_XIOCTL_WMI_DEL_WOW_PATTERN 77 #define AR6000_XIOCTL_TARGET_INFO 78 /* * arguments: * UINT32 cmd (AR6000_XIOCTL_TARGET_INFO) * A_UINT32 TargetVersion (returned) * A_UINT32 TargetType (returned) * (See also bmi_msg.h target_ver and target_type) */ #define AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE 79 /* * arguments: * none */ #define AR6000_XIOCTL_TRAFFIC_ACTIVITY_CHANGE 80 /* * This ioctl is used to emulate traffic activity * timeouts. Activity/inactivity will trigger the driver * to re-balance credits. * * arguments: * ar6000_traffic_activity_change */ #define AR6000_XIOCTL_WMI_SET_CONNECT_CTRL_FLAGS 81 /* * This ioctl is used to set the connect control flags * * arguments: * A_UINT32 connectCtrlFlags */ #define AR6000_XIOCTL_WMI_SET_AKMP_PARAMS 82 /* * This IOCTL sets any Authentication,Key Management and Protection * related parameters. This is used along with the information set in * Connect Command. * Currently this enables Multiple PMKIDs to an AP. * * arguments: * struct { * A_UINT32 akmpInfo; * } * uses: WMI_SET_AKMP_PARAMS_CMD */ #define AR6000_XIOCTL_WMI_GET_PMKID_LIST 83 #define AR6000_XIOCTL_WMI_SET_PMKID_LIST 84 /* * This IOCTL is used to set a list of PMKIDs. This list of * PMKIDs is used in the [Re]AssocReq Frame. This list is used * only if the MultiPMKID option is enabled via the * AR6000_XIOCTL_WMI_SET_AKMP_PARAMS IOCTL. * * arguments: * struct { * A_UINT32 numPMKID; * WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE]; * } * uses: WMI_SET_PMKIDLIST_CMD */ /* Historical DSETPATCH support for INI patches */ #define AR6000_XIOCTL_UNUSED90 90 /* used by AR6000_IOCTL_WMI_GETREV */ struct ar6000_version { A_UINT32 host_ver; A_UINT32 target_ver; }; /* used by AR6000_IOCTL_WMI_GET_QOS_QUEUE */ struct ar6000_queuereq { A_UINT8 trafficClass; A_UINT16 activeTsids; }; /* used by AR6000_IOCTL_WMI_GET_TARGET_STATS */ typedef struct targetStats_t { A_UINT64 tx_packets; A_UINT64 tx_bytes; A_UINT64 tx_unicast_pkts; A_UINT64 tx_unicast_bytes; A_UINT64 tx_multicast_pkts; A_UINT64 tx_multicast_bytes; A_UINT64 tx_broadcast_pkts; A_UINT64 tx_broadcast_bytes; A_UINT64 tx_rts_success_cnt; A_UINT64 tx_packet_per_ac[4]; A_UINT64 tx_errors; A_UINT64 tx_failed_cnt; A_UINT64 tx_retry_cnt; A_UINT64 tx_rts_fail_cnt; A_INT32 tx_unicast_rate; A_UINT64 rx_packets; A_UINT64 rx_bytes; A_UINT64 rx_unicast_pkts; A_UINT64 rx_unicast_bytes; A_UINT64 rx_multicast_pkts; A_UINT64 rx_multicast_bytes; A_UINT64 rx_broadcast_pkts; A_UINT64 rx_broadcast_bytes; A_UINT64 rx_fragment_pkt; A_UINT64 rx_errors; A_UINT64 rx_crcerr; A_UINT64 rx_key_cache_miss; A_UINT64 rx_decrypt_err; A_UINT64 rx_duplicate_frames; A_INT32 rx_unicast_rate; A_UINT64 tkip_local_mic_failure; A_UINT64 tkip_counter_measures_invoked; A_UINT64 tkip_replays; A_UINT64 tkip_format_errors; A_UINT64 ccmp_format_errors; A_UINT64 ccmp_replays; A_UINT64 power_save_failure_cnt; A_INT16 noise_floor_calibation; A_UINT64 cs_bmiss_cnt; A_UINT64 cs_lowRssi_cnt; A_UINT64 cs_connect_cnt; A_UINT64 cs_disconnect_cnt; A_UINT8 cs_aveBeacon_snr; A_INT16 cs_aveBeacon_rssi; A_UINT8 cs_lastRoam_msec; A_UINT8 cs_snr; A_INT16 cs_rssi; A_UINT32 lq_val; A_UINT32 wow_num_pkts_dropped; A_UINT8 wow_num_host_pkt_wakeups; A_UINT8 wow_num_host_event_wakeups; A_UINT16 wow_num_events_discarded; }TARGET_STATS; typedef struct targetStats_cmd_t { TARGET_STATS targetStats; int clearStats; } TARGET_STATS_CMD; /* used by AR6000_XIOCTL_USER_SETKEYS */ /* * Setting this bit to 1 doesnot initialize the RSC on the firmware */ #define AR6000_XIOCTL_USER_SETKEYS_RSC_CTRL 1 #define AR6000_USER_SETKEYS_RSC_UNCHANGED 0x00000002 typedef struct { A_UINT32 keyOpCtrl; /* Bit Map of Key Mgmt Ctrl Flags */ } AR6000_USER_SETKEYS_INFO; /* used by AR6000_XIOCTL_GPIO_OUTPUT_SET */ struct ar6000_gpio_output_set_cmd_s { A_UINT32 set_mask; A_UINT32 clear_mask; A_UINT32 enable_mask; A_UINT32 disable_mask; }; /* * used by AR6000_XIOCTL_GPIO_REGISTER_GET and AR6000_XIOCTL_GPIO_REGISTER_SET */ struct ar6000_gpio_register_cmd_s { A_UINT32 gpioreg_id; A_UINT32 value; }; /* used by AR6000_XIOCTL_GPIO_INTR_ACK */ struct ar6000_gpio_intr_ack_cmd_s { A_UINT32 ack_mask; }; /* used by AR6000_XIOCTL_GPIO_INTR_WAIT */ struct ar6000_gpio_intr_wait_cmd_s { A_UINT32 intr_mask; A_UINT32 input_values; }; /* used by the AR6000_XIOCTL_DBGLOG_CFG_MODULE */ typedef struct ar6000_dbglog_module_config_s { A_UINT32 valid; A_UINT16 mmask; A_UINT16 tsr; A_BOOL rep; A_UINT16 size; } DBGLOG_MODULE_CONFIG; typedef struct user_rssi_thold_t { A_INT16 tag; A_INT16 rssi; } USER_RSSI_THOLD; typedef struct user_rssi_params_t { A_UINT8 weight; A_UINT32 pollTime; USER_RSSI_THOLD tholds[12]; } USER_RSSI_PARAMS; /* * Host driver may have some config parameters. Typically, these * config params are one time config parameters. These could * correspond to any of the underlying modules. Host driver exposes * an api for the underlying modules to get this config. */ #define AR6000_DRIVER_CFG_BASE 0x8000 /* Should driver perform wlan node caching? */ #define AR6000_DRIVER_CFG_GET_WLANNODECACHING 0x8001 /*Should we log raw WMI msgs */ #define AR6000_DRIVER_CFG_LOG_RAW_WMI_MSGS 0x8002 /* used by AR6000_XIOCTL_DIAG_READ & AR6000_XIOCTL_DIAG_WRITE */ struct ar6000_diag_window_cmd_s { unsigned int addr; unsigned int value; }; struct ar6000_traffic_activity_change { A_UINT32 StreamID; /* stream ID to indicate activity change */ A_UINT32 Active; /* active (1) or inactive (0) */ }; #ifdef __cplusplus } #endif #endif