goldfish: R.I.P.
[openwrt.git] / target / linux / s3c24xx / files-2.6.30 / drivers / ar6000 / wmi / wmi_host.h
1 #ifndef _WMI_HOST_H_
2 #define _WMI_HOST_H_
3 /*
4  * Copyright (c) 2004-2006 Atheros Communications Inc.
5  * All rights reserved.
6  *
7  * This file contains local definitios for the wmi host module.
8  *
9  * $Id: //depot/sw/releases/olca2.0-GPL/host/wmi/wmi_host.h#1 $
10  *
11  *
12  *  This program is free software; you can redistribute it and/or modify
13  *  it under the terms of the GNU General Public License version 2 as
14  *  published by the Free Software Foundation;
15  *
16  *  Software distributed under the License is distributed on an "AS
17  *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
18  *  implied. See the License for the specific language governing
19  *  rights and limitations under the License.
20  *
21  *
22  *
23  */
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 struct wmi_stats {
30     A_UINT32    cmd_len_err;
31     A_UINT32    cmd_id_err;
32 };
33
34 struct wmi_t {
35     A_BOOL                          wmi_ready;
36     A_BOOL                          wmi_numQoSStream;
37     A_UINT8                         wmi_wmiStream2AcMapping[WMI_PRI_MAX_COUNT];
38     WMI_PRI_STREAM_ID               wmi_ac2WmiStreamMapping[WMM_NUM_AC];
39     A_UINT16                        wmi_streamExistsForAC[WMM_NUM_AC];
40     A_UINT8                         wmi_fatPipeExists;
41     void                           *wmi_devt;
42     struct wmi_stats                wmi_stats;
43     struct ieee80211_node_table     wmi_scan_table;
44     A_UINT8                         wmi_bssid[ATH_MAC_LEN];
45     A_UINT8                         wmi_powerMode;
46     A_UINT8                         wmi_phyMode;
47     A_UINT8                         wmi_keepaliveInterval;
48     A_MUTEX_T                       wmi_lock;
49 };
50
51 #define WMI_INIT_WMISTREAM_AC_MAP(w) \
52 {  (w)->wmi_wmiStream2AcMapping[WMI_BEST_EFFORT_PRI] = WMM_AC_BE; \
53    (w)->wmi_wmiStream2AcMapping[WMI_LOW_PRI] = WMM_AC_BK; \
54    (w)->wmi_wmiStream2AcMapping[WMI_HIGH_PRI] = WMM_AC_VI; \
55    (w)->wmi_wmiStream2AcMapping[WMI_HIGHEST_PRI] = WMM_AC_VO; \
56    (w)->wmi_ac2WmiStreamMapping[WMM_AC_BE] = WMI_BEST_EFFORT_PRI; \
57    (w)->wmi_ac2WmiStreamMapping[WMM_AC_BK] = WMI_LOW_PRI; \
58    (w)->wmi_ac2WmiStreamMapping[WMM_AC_VI] = WMI_HIGH_PRI; \
59    (w)->wmi_ac2WmiStreamMapping[WMM_AC_VO] = WMI_HIGHEST_PRI; }
60
61 #define WMI_WMISTREAM_ACCESSCATEGORY(w,s)      (w)->wmi_wmiStream2AcMapping[s]
62 #define WMI_ACCESSCATEGORY_WMISTREAM(w,ac)       (w)->wmi_ac2WmiStreamMapping[ac]
63
64 #define LOCK_WMI(w)     A_MUTEX_LOCK(&(w)->wmi_lock);
65 #define UNLOCK_WMI(w)   A_MUTEX_UNLOCK(&(w)->wmi_lock);
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif /* _WMI_HOST_H_ */