00001 /* 00002 * WPA Supplicant - background scan and roaming interface 00003 * Copyright (c) 2009-2010, Jouni Malinen <j@w1.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation. 00008 * 00009 * Alternatively, this software may be distributed under the terms of BSD 00010 * license. 00011 * 00012 * See README and COPYING for more details. 00013 */ 00014 00015 #ifndef BGSCAN_H 00016 #define BGSCAN_H 00017 00018 struct wpa_supplicant; 00019 struct wpa_ssid; 00020 00021 struct bgscan_ops { 00022 const char *name; 00023 00024 void * (*init)(struct wpa_supplicant *wpa_s, const char *params, 00025 const struct wpa_ssid *ssid); 00026 void (*deinit)(void *priv); 00027 00028 int (*notify_scan)(void *priv); 00029 void (*notify_beacon_loss)(void *priv); 00030 void (*notify_signal_change)(void *priv, int above); 00031 }; 00032 00033 #ifdef CONFIG_BGSCAN 00034 00035 int bgscan_init(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid); 00036 void bgscan_deinit(struct wpa_supplicant *wpa_s); 00037 int bgscan_notify_scan(struct wpa_supplicant *wpa_s); 00038 void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s); 00039 void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, int above); 00040 00041 #else /* CONFIG_BGSCAN */ 00042 00043 static inline int bgscan_init(struct wpa_supplicant *wpa_s, 00044 struct wpa_ssid *ssid) 00045 { 00046 return 0; 00047 } 00048 00049 static inline void bgscan_deinit(struct wpa_supplicant *wpa_s) 00050 { 00051 } 00052 00053 static inline int bgscan_notify_scan(struct wpa_supplicant *wpa_s) 00054 { 00055 return 0; 00056 } 00057 00058 static inline void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s) 00059 { 00060 } 00061 00062 static inline void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, 00063 int above) 00064 { 00065 } 00066 00067 #endif /* CONFIG_BGSCAN */ 00068 00069 #endif /* BGSCAN_H */