📄 athdrv.h
字号:
/* * Copyright (c) 2004-2006 Atheros Communications Inc. * * Wireless Network driver for Atheros AR6001 * * 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. * * * This file contains the definitions for the AR6000 linux driver. * */#ifndef _ATHDRV_H_#define _ATHDRV_H_#ifdef __cplusplusextern "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_SETMLME (SIOCIWFIRSTPRIV+6)#define IEEE80211_IOCTL_SETOPTIE (SIOCIWFIRSTPRIV+6)#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_LINKTHRESHOLD (SIOCIWFIRSTPRIV+23)/* * arguments: * WMI_RSSI_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h) * uses: WMI_RSSI_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 *//* ====DataSet Extended Ioctls==== */#define AR6000_XIOCTL_WMI_DSET_WAIT_REQ 9/* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_DSET_WAIT_REQ) */#define AR6000_XIOCTL_WMI_DSET_OPEN_REPLY 10/* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_DSET_OPEN_REPLY) * dset_open_reply_t (see host/include/app/dset.h) * uses: WMIX_DSETOPEN_REPLY_CMDID */#define AR6000_XIOCTL_WMI_DSET_DATA_REPLY 11/* * arguments: * UINT32 cmd (AR6000_XIOCTL_WMI_DSET_DATA_REPLY) * dset_data_reply_t (see host/include/app/dset.h) * uses: WMIX_DSETDATA_REPLY_CMDID */#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 35typedef enum { WLAN_DISABLED, WLAN_ENABLED} AR6000_WLAN_STATE;/* * arguments: * enable/disable */#define AR6000_XIOCTL_WMI_GET_ROAM_DATA 36/* 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 trafficDirection; A_UINT8 trafficClass; A_INT8 queueNumber;};/* 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_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_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_rssi; A_UINT8 cs_lastRoam_msec;}TARGET_STATS;/* 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;};#ifdef __cplusplus}#endif#endif /* _ATHDRV_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -