1e28a4053SRui Paulo /* 2e28a4053SRui Paulo * hostapd / AP table 3e28a4053SRui Paulo * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi> 4e28a4053SRui Paulo * Copyright (c) 2003-2004, Instant802 Networks, Inc. 5e28a4053SRui Paulo * Copyright (c) 2006, Devicescape Software, Inc. 6e28a4053SRui Paulo * 7f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 8f05cddf9SRui Paulo * See README for more details. 9e28a4053SRui Paulo */ 10e28a4053SRui Paulo 11e28a4053SRui Paulo #ifndef AP_LIST_H 12e28a4053SRui Paulo #define AP_LIST_H 13e28a4053SRui Paulo 14e28a4053SRui Paulo struct ap_info { 15e28a4053SRui Paulo /* Note: next/prev pointers are updated whenever a new beacon is 16e28a4053SRui Paulo * received because these are used to find the least recently used 175b9c547cSRui Paulo * entries. */ 18e28a4053SRui Paulo struct ap_info *next; /* next entry in AP list */ 19e28a4053SRui Paulo struct ap_info *prev; /* previous entry in AP list */ 20e28a4053SRui Paulo struct ap_info *hnext; /* next entry in hash table list */ 21e28a4053SRui Paulo u8 addr[6]; 22e28a4053SRui Paulo u8 supported_rates[WLAN_SUPP_RATES_MAX]; 23e28a4053SRui Paulo int erp; /* ERP Info or -1 if ERP info element not present */ 24e28a4053SRui Paulo 25e28a4053SRui Paulo int channel; 26e28a4053SRui Paulo 27e28a4053SRui Paulo int ht_support; 28e28a4053SRui Paulo 295b9c547cSRui Paulo struct os_reltime last_beacon; 30e28a4053SRui Paulo }; 31e28a4053SRui Paulo 32e28a4053SRui Paulo struct ieee802_11_elems; 33e28a4053SRui Paulo struct hostapd_frame_info; 34e28a4053SRui Paulo 35e28a4053SRui Paulo void ap_list_process_beacon(struct hostapd_iface *iface, 36e28a4053SRui Paulo const struct ieee80211_mgmt *mgmt, 37e28a4053SRui Paulo struct ieee802_11_elems *elems, 38e28a4053SRui Paulo struct hostapd_frame_info *fi); 39e28a4053SRui Paulo #ifdef NEED_AP_MLME 40e28a4053SRui Paulo int ap_list_init(struct hostapd_iface *iface); 41e28a4053SRui Paulo void ap_list_deinit(struct hostapd_iface *iface); 42*325151a3SRui Paulo void ap_list_timer(struct hostapd_iface *iface); 43e28a4053SRui Paulo #else /* NEED_AP_MLME */ ap_list_init(struct hostapd_iface * iface)44e28a4053SRui Paulostatic inline int ap_list_init(struct hostapd_iface *iface) 45e28a4053SRui Paulo { 46e28a4053SRui Paulo return 0; 47e28a4053SRui Paulo } 48e28a4053SRui Paulo ap_list_deinit(struct hostapd_iface * iface)49e28a4053SRui Paulostatic inline void ap_list_deinit(struct hostapd_iface *iface) 50e28a4053SRui Paulo { 51e28a4053SRui Paulo } 52*325151a3SRui Paulo ap_list_timer(struct hostapd_iface * iface)53*325151a3SRui Paulostatic inline void ap_list_timer(struct hostapd_iface *iface) 54*325151a3SRui Paulo { 55*325151a3SRui Paulo } 56e28a4053SRui Paulo #endif /* NEED_AP_MLME */ 57e28a4053SRui Paulo 58e28a4053SRui Paulo #endif /* AP_LIST_H */ 59