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

📄 athdrv.h

📁 Linux下SDIO设备的驱动程序
💻 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 + -