Add ar6000 wireless driver.
[kernel.git] / drivers / ar6000 / ar6000 / ar6xapi_linux.h
1 #ifndef _AR6XAPI_LINUX_H
2 #define _AR6XAPI_LINUX_H
3 /*
4  *
5  * Copyright (c) 2004-2007 Atheros Communications Inc.
6  * All rights reserved.
7  *
8  *
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;
12  *
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.
17  *
18  *
19  *
20  */
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 struct ar6_softc;
27
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,
40                               A_BOOL ismcast);
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,
53                                 A_INT16 rssi);
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);
58 void
59 ar6000_roam_tbl_event(struct ar6_softc *ar, WMI_TARGET_ROAM_TBL *pTbl);
60
61 void
62 ar6000_roam_data_event(struct ar6_softc *ar, WMI_TARGET_ROAM_DATA *p);
63
64 void
65 ar6000_wow_list_event(struct ar6_softc *ar, A_UINT8 num_filters,
66                       WMI_GET_WOW_LIST_REPLY *wow_reply);
67
68 void ar6000_pmkid_list_event(void *devt, A_UINT8 numPMKID,
69                              WMI_PMKID *pmkidList);
70
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);
74
75 void ar6000_dbglog_init_done(struct ar6_softc *ar);
76
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);
79 #endif
80
81 #ifdef CONFIG_HOST_TCMD_SUPPORT
82 void ar6000_tcmd_rx_report_event(void *devt, A_UINT8 * results, int len);
83 #endif
84
85 void ar6000_tx_retry_err_event(void *devt);
86
87 void ar6000_snrThresholdEvent_rx(void *devt,
88                                  WMI_SNR_THRESHOLD_VAL newThreshold,
89                                  A_UINT8 snr);
90
91 void ar6000_lqThresholdEvent_rx(void *devt, WMI_LQ_THRESHOLD_VAL range, A_UINT8 lqVal);
92
93
94 void ar6000_ratemask_rx(void *devt, A_UINT16 ratemask);
95
96 A_STATUS ar6000_get_driver_cfg(struct net_device *dev,
97                                 A_UINT16 cfgParam,
98                                 void *result);
99 void ar6000_bssInfo_event_rx(struct ar6_softc *ar, A_UINT8 *data, int len);
100
101 void ar6000_dbglog_event(struct ar6_softc *ar, A_UINT32 dropped,
102                          A_INT8 *buffer, A_UINT32 length);
103
104 int ar6000_dbglog_get_debug_logs(struct ar6_softc *ar);
105
106 void ar6000_indicate_tx_activity(void *devt, A_UINT8 trafficClass, A_BOOL Active);
107
108 void ar6000_dset_open_req(void *devt,
109                           A_UINT32 id,
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,
116                           A_UINT32 offset,
117                           A_UINT32 length,
118                           A_UINT32 targ_buf,
119                           A_UINT32 targ_reply_fn,
120                           A_UINT32 targ_reply_arg);
121
122
123
124 #ifdef __cplusplus
125 }
126 #endif
127
128 #endif