[haiku-commits] r34821 - haiku/trunk/src/libs/compat/freebsd_wlan/net80211

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 30 Dec 2009 01:37:23 +0100 (CET)

Author: colin
Date: 2009-12-30 01:37:23 +0100 (Wed, 30 Dec 2009)
New Revision: 34821
Changeset: http://dev.haiku-os.org/changeset/34821/haiku

Modified:
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c
Log:
* Reworked scanner registration. Scanners are getting cleanly unregistered
  on wlan stack shutdown, now.
* Added patch by mmlr to support IBSS (aka Ad-hoc) mode. To activate IBSS mode
  one would need recompile the wlan stack, though, once the constant in
  start_wlan() is switched from IEEE80211_M_STA to IEEE80211_M_IBSS. There is
  no runtime configuration, yet.


Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h 
2009-12-30 00:30:56 UTC (rev 34820)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h 
2009-12-30 00:37:23 UTC (rev 34821)
@@ -268,25 +268,19 @@
  */
 #define        _IEEE80211_POLICY_MODULE(policy, name, version)                 
\
 typedef void (*policy##_setup)(int);                                   \
-SET_DECLARE(policy##_set, policy##_setup);                             \
+SET_DECLARE(policy##_set, policy##_setup);
 
 /*
  * Scanner modules provide scanning policy.
  */
-#define        IEEE80211_SCANNER_MODULE(name, version)                         
\
-       _IEEE80211_POLICY_MODULE(scanner, name, version)
+#define        IEEE80211_SCANNER_MODULE(name, version)
+#define        IEEE80211_SCANNER_ALG(name, alg, v)
 
-#define        IEEE80211_SCANNER_ALG(name, alg, v)                             
\
-static void                                                            \
-name##_modevent(int type)                                              \
-{                                                                      \
-       if (type == MOD_LOAD)                                           \
-               ieee80211_scanner_register(alg, &v);                    \
-       else                                                            \
-               ieee80211_scanner_unregister(alg, &v);                  \
-}                                                                      \
-TEXT_SET(scanner_set, name##_modevent);                                        
\
 
+void   ieee80211_scan_sta_init(void);
+void   ieee80211_scan_sta_uninit(void);
+
+
 struct ieee80211req;
 typedef int ieee80211_ioctl_getfunc(struct ieee80211vap *,
     struct ieee80211req *);

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c  
2009-12-30 00:30:56 UTC (rev 34820)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c  
2009-12-30 00:37:23 UTC (rev 34821)
@@ -117,8 +117,9 @@
        ic->ic_scan_curchan = scan_curchan;
        ic->ic_scan_mindwell = scan_mindwell;
 
+#if defined(__HAIKU__)
        ieee80211_scan_sta_init();
-
+#endif
 }
 
 void
@@ -142,6 +143,11 @@
                ic->ic_scan = NULL;
                free(SCAN_PRIVATE(ss), M_80211_SCAN);
        }
+       
+
+#if defined(__HAIKU__)
+       ieee80211_scan_sta_uninit();
+#endif
 }
 
 static const struct ieee80211_roamparam defroam[IEEE80211_MODE_MAX] = {

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h  
2009-12-30 00:30:56 UTC (rev 34820)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h  
2009-12-30 00:37:23 UTC (rev 34821)
@@ -123,7 +123,6 @@
 #define        IEEE80211_SCAN_NOSSID   0x80000000      /* don't update ssid 
list */
 
 struct ieee80211com;
-void   ieee80211_scan_sta_init(void);
 void   ieee80211_scan_attach(struct ieee80211com *);
 void   ieee80211_scan_detach(struct ieee80211com *);
 void   ieee80211_scan_vattach(struct ieee80211vap *);

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c      
2009-12-30 00:30:56 UTC (rev 34820)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c      
2009-12-30 00:37:23 UTC (rev 34821)
@@ -1450,12 +1450,6 @@
        .scan_assoc_success     = sta_assoc_success,
 };
 
-void ieee80211_scan_sta_init()
-{
-       ieee80211_scanner_register(IEEE80211_M_STA, &sta_default);
-}
-
-
 /*
  * Adhoc mode-specific support.
  */
@@ -1929,3 +1923,19 @@
 };
 IEEE80211_SCANNER_ALG(mesh, IEEE80211_M_MBSS, mesh_default);
 #endif /* IEEE80211_SUPPORT_MESH */
+
+#if defined(__HAIKU__)
+void
+ieee80211_scan_sta_init()
+{
+       ieee80211_scanner_register(IEEE80211_M_STA, &sta_default);
+       ieee80211_scanner_register(IEEE80211_M_IBSS, &adhoc_default);
+}
+
+void
+ieee80211_scan_sta_uninit()
+{
+       ieee80211_scanner_unregister(IEEE80211_M_STA, &sta_default);
+       ieee80211_scanner_unregister(IEEE80211_M_IBSS, &adhoc_default);
+}
+#endif /* __HAIKU__ */


Other related posts:

  • » [haiku-commits] r34821 - haiku/trunk/src/libs/compat/freebsd_wlan/net80211 - coling