aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Kholaif <akholaif@qca.qualcomm.com>2015-07-24 08:23:24 +0000
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-04-01 16:46:52 +0530
commitd8dfb429d1b8e8428926daf83d066d29645a6a1c (patch)
tree66591b69ff893ebcb1c7f9169b4dfe05ba9e6782
parenta6743919b14c851bc906cd159ba95b5bffb9a3c7 (diff)
downloadandroid_external_wpa_supplicant_8-d8dfb429d1b8e8428926daf83d066d29645a6a1c.tar.gz
android_external_wpa_supplicant_8-d8dfb429d1b8e8428926daf83d066d29645a6a1c.tar.bz2
android_external_wpa_supplicant_8-d8dfb429d1b8e8428926daf83d066d29645a6a1c.zip
P2P: Expose driver preferred frequency list fetch to P2P
This adds a callback function that can be used from the P2P module to request the current preferred list of operating channels from the driver. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Git-commit: fc71f7d99db620097296720af1d46b1b94afb0f8 Git-repo: git://w1.fi/srv/git/hostap.git Change-Id: I8135b44c91bdaa89fe80a3e4f802dadfbe557662 CRs-fixed: 842468
-rw-r--r--src/p2p/p2p.h14
-rw-r--r--wpa_supplicant/p2p_supplicant.c12
2 files changed, 26 insertions, 0 deletions
diff --git a/src/p2p/p2p.h b/src/p2p/p2p.h
index f12419fb..ca53aebd 100644
--- a/src/p2p/p2p.h
+++ b/src/p2p/p2p.h
@@ -1034,6 +1034,20 @@ struct p2p_config {
* P2PS_SETUP_* bitmap is used as the parameters and return value.
*/
u8 (*p2ps_group_capability)(void *ctx, u8 incoming, u8 role);
+
+ /**
+ * get_pref_freq_list - Get preferred frequency list for an interface
+ * @ctx: Callback context from cb_ctx
+ * @go: Whether the use if for GO role
+ * @len: Length of freq_list in entries (both IN and OUT)
+ * @freq_list: Buffer for returning the preferred frequencies (MHz)
+ * Returns: 0 on success, -1 on failure
+ *
+ * This function can be used to query the preferred frequency list from
+ * the driver specific to a particular interface type.
+ */
+ int (*get_pref_freq_list)(void *ctx, int go,
+ unsigned int *len, unsigned int *freq_list);
};
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index bbdee0ff..6d8b63c2 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -3881,6 +3881,17 @@ static int wpas_prov_disc_resp_cb(void *ctx)
}
+static int wpas_p2p_get_pref_freq_list(void *ctx, int go,
+ unsigned int *len,
+ unsigned int *freq_list)
+{
+ struct wpa_supplicant *wpa_s = ctx;
+
+ return wpa_drv_get_pref_freq_list(wpa_s, go ? WPA_IF_P2P_GO :
+ WPA_IF_P2P_CLIENT, len, freq_list);
+}
+
+
/**
* wpas_p2p_init - Initialize P2P module for %wpa_supplicant
* @global: Pointer to global data from wpa_supplicant_init()
@@ -3934,6 +3945,7 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s)
p2p.p2ps_prov_complete = wpas_p2ps_prov_complete;
p2p.prov_disc_resp_cb = wpas_prov_disc_resp_cb;
p2p.p2ps_group_capability = p2ps_group_capability;
+ p2p.get_pref_freq_list = wpas_p2p_get_pref_freq_list;
os_memcpy(wpa_s->global->p2p_dev_addr, wpa_s->own_addr, ETH_ALEN);
os_memcpy(p2p.dev_addr, wpa_s->global->p2p_dev_addr, ETH_ALEN);