1 #ifndef _AR6XAPI_LINUX_H
2 #define _AR6XAPI_LINUX_H
5 * Copyright (c) 2004-2007 Atheros Communications Inc.
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation;
13 * Software distributed under the License is distributed on an "AS
14 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
15 * implied. See the License for the specific language governing
16 * rights and limitations under the License.
28 void ar6000_ready_event(void *devt, A_UINT8 *datap, A_UINT8 phyCap);
29 A_UINT8 ar6000_iptos_to_userPriority(A_UINT8 *pkt);
30 A_STATUS ar6000_control_tx(void *devt, void *osbuf, WMI_PRI_STREAM_ID streamID);
31 void ar6000_connect_event(struct ar6_softc *ar, A_UINT16 channel,
32 A_UINT8 *bssid, A_UINT16 listenInterval,
33 A_UINT16 beaconInterval, NETWORK_TYPE networkType,
34 A_UINT8 beaconIeLen, A_UINT8 assocReqLen,
35 A_UINT8 assocRespLen,A_UINT8 *assocInfo);
36 void ar6000_disconnect_event(struct ar6_softc *ar, A_UINT8 reason,
37 A_UINT8 *bssid, A_UINT8 assocRespLen,
38 A_UINT8 *assocInfo, A_UINT16 protocolReasonStatus);
39 void ar6000_tkip_micerr_event(struct ar6_softc *ar, A_UINT8 keyid,
41 void ar6000_bitrate_rx(void *devt, A_INT32 rateKbps);
42 void ar6000_channelList_rx(void *devt, A_INT8 numChan, A_UINT16 *chanList);
43 void ar6000_regDomain_event(struct ar6_softc *ar, A_UINT32 regCode);
44 void ar6000_txPwr_rx(void *devt, A_UINT8 txPwr);
45 void ar6000_keepalive_rx(void *devt, A_UINT8 configured);
46 void ar6000_neighborReport_event(struct ar6_softc *ar, int numAps,
47 WMI_NEIGHBOR_INFO *info);
48 void ar6000_set_numdataendpts(struct ar6_softc *ar, A_UINT32 num);
49 void ar6000_scanComplete_event(struct ar6_softc *ar, A_STATUS status);
50 void ar6000_targetStats_event(struct ar6_softc *ar, WMI_TARGET_STATS *pStats);
51 void ar6000_rssiThreshold_event(struct ar6_softc *ar,
52 WMI_RSSI_THRESHOLD_VAL newThreshold,
54 void ar6000_reportError_event(struct ar6_softc *, WMI_TARGET_ERROR_VAL errorVal);
55 void ar6000_cac_event(struct ar6_softc *ar, A_UINT8 ac, A_UINT8 cac_indication,
56 A_UINT8 statusCode, A_UINT8 *tspecSuggestion);
57 void ar6000_hbChallengeResp_event(struct ar6_softc *, A_UINT32 cookie, A_UINT32 source);
59 ar6000_roam_tbl_event(struct ar6_softc *ar, WMI_TARGET_ROAM_TBL *pTbl);
62 ar6000_roam_data_event(struct ar6_softc *ar, WMI_TARGET_ROAM_DATA *p);
65 ar6000_wow_list_event(struct ar6_softc *ar, A_UINT8 num_filters,
66 WMI_GET_WOW_LIST_REPLY *wow_reply);
68 void ar6000_pmkid_list_event(void *devt, A_UINT8 numPMKID,
69 WMI_PMKID *pmkidList);
71 void ar6000_gpio_intr_rx(A_UINT32 intr_mask, A_UINT32 input_values);
72 void ar6000_gpio_data_rx(A_UINT32 reg_id, A_UINT32 value);
73 void ar6000_gpio_ack_rx(void);
75 void ar6000_dbglog_init_done(struct ar6_softc *ar);
77 #ifdef SEND_EVENT_TO_APP
78 void ar6000_send_event_to_app(struct ar6_softc *ar, A_UINT16 eventId, A_UINT8 *datap, int len);
81 #ifdef CONFIG_HOST_TCMD_SUPPORT
82 void ar6000_tcmd_rx_report_event(void *devt, A_UINT8 * results, int len);
85 void ar6000_tx_retry_err_event(void *devt);
87 void ar6000_snrThresholdEvent_rx(void *devt,
88 WMI_SNR_THRESHOLD_VAL newThreshold,
91 void ar6000_lqThresholdEvent_rx(void *devt, WMI_LQ_THRESHOLD_VAL range, A_UINT8 lqVal);
94 void ar6000_ratemask_rx(void *devt, A_UINT16 ratemask);
96 A_STATUS ar6000_get_driver_cfg(struct net_device *dev,
99 void ar6000_bssInfo_event_rx(struct ar6_softc *ar, A_UINT8 *data, int len);
101 void ar6000_dbglog_event(struct ar6_softc *ar, A_UINT32 dropped,
102 A_INT8 *buffer, A_UINT32 length);
104 int ar6000_dbglog_get_debug_logs(struct ar6_softc *ar);
106 void ar6000_indicate_tx_activity(void *devt, A_UINT8 trafficClass, A_BOOL Active);
108 void ar6000_dset_open_req(void *devt,
110 A_UINT32 targ_handle,
111 A_UINT32 targ_reply_fn,
112 A_UINT32 targ_reply_arg);
113 void ar6000_dset_close(void *devt, A_UINT32 access_cookie);
114 void ar6000_dset_data_req(void *devt,
115 A_UINT32 access_cookie,
119 A_UINT32 targ_reply_fn,
120 A_UINT32 targ_reply_arg);