OLD | NEW |
(Empty) | |
| 1 //------------------------------------------------------------------------------ |
| 2 // <copyright file="wlan_api.h" company="Atheros"> |
| 3 // Copyright (c) 2004-2010 Atheros Corporation. All rights reserved. |
| 4 // |
| 5 // This program is free software; you can redistribute it and/or modify |
| 6 // it under the terms of the GNU General Public License version 2 as |
| 7 // published by the Free Software Foundation; |
| 8 // |
| 9 // Software distributed under the License is distributed on an "AS |
| 10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
| 11 // implied. See the License for the specific language governing |
| 12 // rights and limitations under the License. |
| 13 // |
| 14 // |
| 15 //------------------------------------------------------------------------------ |
| 16 //============================================================================== |
| 17 // This file contains the API for the host wlan module |
| 18 // |
| 19 // Author(s): ="Atheros" |
| 20 //============================================================================== |
| 21 #ifndef _HOST_WLAN_API_H_ |
| 22 #define _HOST_WLAN_API_H_ |
| 23 |
| 24 #ifdef __cplusplus |
| 25 extern "C" { |
| 26 #endif |
| 27 |
| 28 #include <a_osapi.h> |
| 29 |
| 30 struct ieee80211_node_table; |
| 31 struct ieee80211_frame; |
| 32 |
| 33 struct ieee80211_common_ie { |
| 34 A_UINT16 ie_chan; |
| 35 A_UINT8 *ie_tstamp; |
| 36 A_UINT8 *ie_ssid; |
| 37 A_UINT8 *ie_rates; |
| 38 A_UINT8 *ie_xrates; |
| 39 A_UINT8 *ie_country; |
| 40 A_UINT8 *ie_wpa; |
| 41 A_UINT8 *ie_rsn; |
| 42 A_UINT8 *ie_wmm; |
| 43 A_UINT8 *ie_ath; |
| 44 A_UINT16 ie_capInfo; |
| 45 A_UINT16 ie_beaconInt; |
| 46 A_UINT8 *ie_tim; |
| 47 A_UINT8 *ie_chswitch; |
| 48 A_UINT8 ie_erp; |
| 49 A_UINT8 *ie_wsc; |
| 50 A_UINT8 *ie_htcap; |
| 51 A_UINT8 *ie_htop; |
| 52 #ifdef WAPI_ENABLE |
| 53 A_UINT8 *ie_wapi; |
| 54 #endif |
| 55 }; |
| 56 |
| 57 typedef struct bss { |
| 58 A_UINT8 ni_macaddr[6]; |
| 59 A_UINT8 ni_snr; |
| 60 A_INT16 ni_rssi; |
| 61 struct bss *ni_list_next; |
| 62 struct bss *ni_list_prev; |
| 63 struct bss *ni_hash_next; |
| 64 struct bss *ni_hash_prev; |
| 65 struct ieee80211_common_ie ni_cie; |
| 66 A_UINT8 *ni_buf; |
| 67 A_UINT16 ni_framelen; |
| 68 struct ieee80211_node_table *ni_table; |
| 69 A_UINT32 ni_refcnt; |
| 70 int ni_scangen; |
| 71 |
| 72 A_UINT32 ni_tstamp; |
| 73 #ifdef OS_ROAM_MANAGEMENT |
| 74 A_UINT32 ni_si_gen; |
| 75 #endif |
| 76 } bss_t; |
| 77 |
| 78 typedef void wlan_node_iter_func(void *arg, bss_t *); |
| 79 |
| 80 bss_t *wlan_node_alloc(struct ieee80211_node_table *nt, int wh_size); |
| 81 void wlan_node_free(bss_t *ni); |
| 82 void wlan_setup_node(struct ieee80211_node_table *nt, bss_t *ni, |
| 83 const A_UINT8 *macaddr); |
| 84 bss_t *wlan_find_node(struct ieee80211_node_table *nt, const A_UINT8 *macaddr); |
| 85 void wlan_node_reclaim(struct ieee80211_node_table *nt, bss_t *ni); |
| 86 void wlan_free_allnodes(struct ieee80211_node_table *nt); |
| 87 void wlan_iterate_nodes(struct ieee80211_node_table *nt, wlan_node_iter_func *f, |
| 88 void *arg); |
| 89 |
| 90 void wlan_node_table_init(void *wmip, struct ieee80211_node_table *nt); |
| 91 void wlan_node_table_reset(struct ieee80211_node_table *nt); |
| 92 void wlan_node_table_cleanup(struct ieee80211_node_table *nt); |
| 93 |
| 94 A_STATUS wlan_parse_beacon(A_UINT8 *buf, int framelen, |
| 95 struct ieee80211_common_ie *cie); |
| 96 |
| 97 A_UINT16 wlan_ieee2freq(int chan); |
| 98 A_UINT32 wlan_freq2ieee(A_UINT16 freq); |
| 99 |
| 100 void wlan_set_nodeage(struct ieee80211_node_table *nt, A_UINT32 nodeAge); |
| 101 |
| 102 |
| 103 bss_t * |
| 104 wlan_find_Ssidnode (struct ieee80211_node_table *nt, A_UCHAR *pSsid, |
| 105 A_UINT32 ssidLength, A_BOOL bIsWPA2, A_BOOL bMatchSSID); |
| 106 |
| 107 void |
| 108 wlan_node_return (struct ieee80211_node_table *nt, bss_t *ni); |
| 109 |
| 110 bss_t *wlan_node_remove(struct ieee80211_node_table *nt, A_UINT8 *bssid); |
| 111 |
| 112 #ifdef __cplusplus |
| 113 } |
| 114 #endif |
| 115 |
| 116 #endif /* _HOST_WLAN_API_H_ */ |
OLD | NEW |