[RFC 07/13] nl80211: Move functions to get rid of forward declarations.

greearb at candelatech.com greearb at candelatech.com
Fri Oct 14 18:34:31 EDT 2011


From: Ben Greear <greearb at candelatech.com>

No functional code changes in this commit.

Signed-off-by: Ben Greear <greearb at candelatech.com>
---
:100644 100644 121bbb9... d1fdfa8... M	src/drivers/driver_nl80211.c
 src/drivers/driver_nl80211.c |  273 +++++++++++++++++++++---------------------
 1 files changed, 135 insertions(+), 138 deletions(-)

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 121bbb9..d1fdfa8 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -43,9 +43,6 @@
 #include "driver.h"
 
 
-static void wpa_driver_nl80211_deinit(void *priv);
-static void nl80211_global_deinit(void *priv);
-
 #ifdef CONFIG_LIBNL20
 /* libnl 2.0 compatibility code */
 #define nl_handle nl_sock
@@ -2054,6 +2051,105 @@ static void nl80211_l2_read(void *ctx, const u8 *src_addr, const u8 *buf,
 #endif /* CONFIG_AP */
 
 
+static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
+{
+	struct nl_msg *msg;
+
+	msg = nlmsg_alloc();
+	if (!msg)
+		return -ENOMEM;
+
+	genlmsg_put(msg, 0, 0, genl_family_get_id(drv->global->nl80211), 0,
+		    0, NL80211_CMD_DEL_BEACON, 0);
+	NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, drv->ifindex);
+
+	return send_and_recv_msgs(drv, msg, NULL, NULL);
+ nla_put_failure:
+	return -ENOBUFS;
+}
+
+
+/**
+ * wpa_driver_nl80211_deinit - Deinitialize nl80211 driver interface
+ * @priv: Pointer to private nl80211 data from wpa_driver_nl80211_init()
+ *
+ * Shut down driver interface and processing of driver events. Free
+ * private data buffer if one was allocated in wpa_driver_nl80211_init().
+ */
+static void wpa_driver_nl80211_deinit(void *priv)
+{
+	struct i802_bss *bss = priv;
+	struct wpa_driver_nl80211_data *drv = bss->drv;
+
+#ifdef CONFIG_AP
+	if (drv->l2)
+		l2_packet_deinit(drv->l2);
+#endif /* CONFIG_AP */
+
+	if (drv->probe_req_report)
+		wpa_driver_nl80211_probe_req_report(bss, 0);
+
+	if (bss->added_if_into_bridge) {
+		if (linux_br_del_if(drv->ioctl_sock, bss->brname, bss->ifname)
+		    < 0)
+			wpa_msg(drv->ctx, MSG_INFO, "nl80211: Failed to remove "
+				"interface %s from bridge %s: %s",
+				bss->ifname, bss->brname, strerror(errno));
+	}
+	if (bss->added_bridge) {
+		if (linux_br_del(drv->ioctl_sock, bss->brname) < 0)
+			wpa_msg(drv->ctx, MSG_INFO, "nl80211: Failed to remove "
+				"bridge %s: %s",
+				bss->brname, strerror(errno));
+	}
+
+	nl80211_remove_monitor_interface(drv);
+
+	if (is_ap_interface(drv->nlmode))
+		wpa_driver_nl80211_del_beacon(drv);
+
+#ifdef HOSTAPD
+	if (drv->last_freq_ht) {
+		/* Clear HT flags from the driver */
+		struct hostapd_freq_params freq;
+		os_memset(&freq, 0, sizeof(freq));
+		freq.freq = drv->last_freq;
+		i802_set_freq(priv, &freq);
+	}
+
+	if (drv->eapol_sock >= 0) {
+		eloop_unregister_read_sock(drv->eapol_sock);
+		close(drv->eapol_sock);
+	}
+
+	if (drv->if_indices != drv->default_if_indices)
+		os_free(drv->if_indices);
+#endif /* HOSTAPD */
+
+	if (drv->disable_11b_rates)
+		nl80211_disable_11b_rates(drv, drv->ifindex, 0);
+
+	netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, 0, IF_OPER_UP);
+	if (drv->rfkill)
+		rfkill_deinit(drv->rfkill);
+
+	eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx);
+
+	(void) linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 0);
+	wpa_driver_nl80211_set_mode(bss, NL80211_IFTYPE_STATION);
+
+	if (drv->ioctl_sock >= 0)
+		close(drv->ioctl_sock);
+
+	os_free(drv->filter_ssids);
+
+	if (drv->global)
+		dl_list_del(&drv->list);
+
+	os_free(drv);
+}
+
+
 /**
  * wpa_driver_nl80211_init - Initialize nl80211 driver interface
  * @ctx: context to be used when calling wpa_supplicant functions,
@@ -2283,105 +2379,6 @@ wpa_driver_nl80211_finish_drv_init(struct wpa_driver_nl80211_data *drv)
 }
 
 
-static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
-{
-	struct nl_msg *msg;
-
-	msg = nlmsg_alloc();
-	if (!msg)
-		return -ENOMEM;
-
-	genlmsg_put(msg, 0, 0, genl_family_get_id(drv->global->nl80211), 0,
-		    0, NL80211_CMD_DEL_BEACON, 0);
-	NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, drv->ifindex);
-
-	return send_and_recv_msgs(drv, msg, NULL, NULL);
- nla_put_failure:
-	return -ENOBUFS;
-}
-
-
-/**
- * wpa_driver_nl80211_deinit - Deinitialize nl80211 driver interface
- * @priv: Pointer to private nl80211 data from wpa_driver_nl80211_init()
- *
- * Shut down driver interface and processing of driver events. Free
- * private data buffer if one was allocated in wpa_driver_nl80211_init().
- */
-static void wpa_driver_nl80211_deinit(void *priv)
-{
-	struct i802_bss *bss = priv;
-	struct wpa_driver_nl80211_data *drv = bss->drv;
-
-#ifdef CONFIG_AP
-	if (drv->l2)
-		l2_packet_deinit(drv->l2);
-#endif /* CONFIG_AP */
-
-	if (drv->probe_req_report)
-		wpa_driver_nl80211_probe_req_report(bss, 0);
-
-	if (bss->added_if_into_bridge) {
-		if (linux_br_del_if(drv->ioctl_sock, bss->brname, bss->ifname)
-		    < 0)
-			wpa_msg(drv->ctx, MSG_INFO, "nl80211: Failed to remove "
-				"interface %s from bridge %s: %s",
-				bss->ifname, bss->brname, strerror(errno));
-	}
-	if (bss->added_bridge) {
-		if (linux_br_del(drv->ioctl_sock, bss->brname) < 0)
-			wpa_msg(drv->ctx, MSG_INFO, "nl80211: Failed to remove "
-				"bridge %s: %s",
-				bss->brname, strerror(errno));
-	}
-
-	nl80211_remove_monitor_interface(drv);
-
-	if (is_ap_interface(drv->nlmode))
-		wpa_driver_nl80211_del_beacon(drv);
-
-#ifdef HOSTAPD
-	if (drv->last_freq_ht) {
-		/* Clear HT flags from the driver */
-		struct hostapd_freq_params freq;
-		os_memset(&freq, 0, sizeof(freq));
-		freq.freq = drv->last_freq;
-		i802_set_freq(priv, &freq);
-	}
-
-	if (drv->eapol_sock >= 0) {
-		eloop_unregister_read_sock(drv->eapol_sock);
-		close(drv->eapol_sock);
-	}
-
-	if (drv->if_indices != drv->default_if_indices)
-		os_free(drv->if_indices);
-#endif /* HOSTAPD */
-
-	if (drv->disable_11b_rates)
-		nl80211_disable_11b_rates(drv, drv->ifindex, 0);
-
-	netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, 0, IF_OPER_UP);
-	if (drv->rfkill)
-		rfkill_deinit(drv->rfkill);
-
-	eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx);
-
-	(void) linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 0);
-	wpa_driver_nl80211_set_mode(bss, NL80211_IFTYPE_STATION);
-
-	if (drv->ioctl_sock >= 0)
-		close(drv->ioctl_sock);
-
-	os_free(drv->filter_ssids);
-
-	if (drv->global)
-		dl_list_del(&drv->list);
-
-	os_free(drv);
-}
-
-
 /**
  * wpa_driver_nl80211_scan_timeout - Scan timeout to report scan completion
  * @eloop_ctx: Driver private data
@@ -6986,6 +6983,42 @@ static int nl80211_set_param(void *priv, const char *param)
 }
 
 
+static void nl80211_global_deinit(void *priv)
+{
+	struct nl80211_global *global = priv;
+	if (global == NULL)
+		return;
+	if (!dl_list_empty(&global->interfaces)) {
+		wpa_msg(NULL, MSG_ERROR, "nl80211: %u interface(s) remain at "
+			"nl80211_global_deinit",
+			dl_list_len(&global->interfaces));
+	}
+
+	nl80211_global_deinit_handle_preq(global);
+
+	if (global->netlink)
+		netlink_deinit(global->netlink);
+
+	if (global->nl_cache_event)
+		nl_cache_free(global->nl_cache_event);
+	if (global->nl_cache)
+		nl_cache_free(global->nl_cache);
+	if (global->nl_handle_event)
+		nl80211_handle_destroy(global->nl_handle_event);
+	if (global->nl_handle)
+		nl80211_handle_destroy(global->nl_handle);
+	if (global->nl_cb)
+		nl_cb_put(global->nl_cb);
+	if (global->nl80211)
+		genl_family_put(global->nl80211);
+
+	if (global == global_ptr)
+		global_ptr = NULL;
+
+	os_free(global);
+}
+
+
 static void * nl80211_global_init(void)
 {
 	struct nl80211_global *global = NULL;
@@ -7128,42 +7161,6 @@ err:
 }
 
 
-static void nl80211_global_deinit(void *priv)
-{
-	struct nl80211_global *global = priv;
-	if (global == NULL)
-		return;
-	if (!dl_list_empty(&global->interfaces)) {
-		wpa_msg(NULL, MSG_ERROR, "nl80211: %u interface(s) remain at "
-			"nl80211_global_deinit",
-			dl_list_len(&global->interfaces));
-	}
-
-	nl80211_global_deinit_handle_preq(global);
-
-	if (global->netlink)
-		netlink_deinit(global->netlink);
-
-	if (global->nl_cache_event)
-		nl_cache_free(global->nl_cache_event);
-	if (global->nl_cache)
-		nl_cache_free(global->nl_cache);
-	if (global->nl_handle_event)
-		nl80211_handle_destroy(global->nl_handle_event);
-	if (global->nl_handle)
-		nl80211_handle_destroy(global->nl_handle);
-	if (global->nl_cb)
-		nl_cb_put(global->nl_cb);
-	if (global->nl80211)
-		genl_family_put(global->nl80211);
-
-	if (global == global_ptr)
-		global_ptr = NULL;
-
-	os_free(global);
-}
-
-
 static const char * nl80211_get_radio_name(void *priv)
 {
 	struct i802_bss *bss = priv;
-- 
1.7.3.4



More information about the HostAP mailing list