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

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 13 Apr 2011 20:27:37 +0200 (CEST)

Author: korli
Date: 2011-04-13 20:27:36 +0200 (Wed, 13 Apr 2011)
New Revision: 41247
Changeset: https://dev.haiku-os.org/changeset/41247

Modified:
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/Jamfile
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211.c
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c
   haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h
Log:
added some glue to register correctly rate control modules


Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/Jamfile
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/Jamfile   2011-04-13 
08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/Jamfile   2011-04-13 
18:27:36 UTC (rev 41247)
@@ -59,7 +59,6 @@
        # NOT SUPPORTED YET ieee80211_ddb.c
        # NOT SUPPORTED YET ieee80211_hwmp.c
        # NOT SUPPORTED YET ieee80211_mesh.c
-       # NOT SUPPORTED YET ieee80211_rssadapt.c
        # NOT SUPPORTED YET ieee80211_superg.c
        # NOT SUPPORTED YET ieee80211_tdma.c
        ieee80211_xauth.c

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211.c
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211.c       
2011-04-13 08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211.c       
2011-04-13 18:27:36 UTC (rev 41247)
@@ -293,6 +293,9 @@
        ieee80211_scan_attach(ic);
        ieee80211_regdomain_attach(ic);
        ieee80211_dfs_attach(ic);
+#if defined(__HAIKU__)
+       ieee80211_ratectl_attach(ic);
+#endif
 
        ieee80211_sysctl_attach(ic);
 
@@ -337,6 +340,9 @@
        ieee80211_waitfor_parent(ic);
 
        ieee80211_sysctl_detach(ic);
+#if defined(__HAIKU__)
+       ieee80211_ratectl_detach(ic);
+#endif
        ieee80211_dfs_detach(ic);
        ieee80211_regdomain_detach(ic);
        ieee80211_scan_detach(ic);

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp       
2011-04-13 08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp       
2011-04-13 18:27:36 UTC (rev 41247)
@@ -64,9 +64,9 @@
 
 #define TRACE_WLAN
 #ifdef TRACE_WLAN
-#      define TRACE(x, ...) dprintf(x, __VA_ARGS__);
+#      define TRACE(x...) dprintf(x);
 #else
-#      define TRACE(x, ...) ;
+#      define TRACE(x...) ;
 #endif
 
 

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h 
2011-04-13 08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h 
2011-04-13 18:27:36 UTC (rev 41247)
@@ -326,17 +326,20 @@
  */
 #define        IEEE80211_RATECTL_MODULE(alg, version)                          
\
        _IEEE80211_POLICY_MODULE(ratectl, alg, version);                \
+       
+#define IEEE80211_RATECTL_ALG(name, alg, v) \
+       void \
+       ieee80211_ratectl_##name##_load() { \
+               ieee80211_ratectl_register(alg, &v); \
+       } \
+\
+\
+       void \
+       ieee80211_ratectl_##name##_unload() \
+       { \
+               ieee80211_ratectl_unregister(alg); \
+       }
 
-#define        IEEE80211_RATECTL_ALG(name, alg, v)                             
\
-static void                                                            \
-alg##_modevent(int type)                                               \
-{                                                                      \
-       if (type == MOD_LOAD)                                           \
-               ieee80211_ratectl_register(alg, &v);                    \
-       else                                                            \
-               ieee80211_ratectl_unregister(alg);                      \
-}                                                                      \
-TEXT_SET(ratectl##_set, alg##_modevent)
 
 struct ieee80211req;
 typedef int ieee80211_ioctl_getfunc(struct ieee80211vap *,

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c       
2011-04-13 08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c       
2011-04-13 18:27:36 UTC (rev 41247)
@@ -49,7 +49,32 @@
 
 MALLOC_DEFINE(M_80211_RATECTL, "80211ratectl", "802.11 rate control");
 
+
+#if defined(__HAIKU__)
+/*
+ * Setup ratectl support for a device/shared instance.
+ */
 void
+ieee80211_ratectl_attach(struct ieee80211com *ic)
+{
+       ieee80211_ratectl_none_load();
+       ieee80211_ratectl_amrr_load();
+       ieee80211_ratectl_rssadapt_load();
+}
+
+/*
+ * Teardown ratectl support.
+ */
+void
+ieee80211_ratectl_detach(struct ieee80211com *ic)
+{
+       ieee80211_ratectl_none_unload();
+       ieee80211_ratectl_amrr_unload();
+       ieee80211_ratectl_rssadapt_unload();
+}
+#endif
+
+void
 ieee80211_ratectl_register(int type, const struct ieee80211_ratectl *ratectl)
 {
        if (type >= IEEE80211_RATECTL_MAX)

Modified: haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h       
2011-04-13 08:22:03 UTC (rev 41246)
+++ haiku/trunk/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h       
2011-04-13 18:27:36 UTC (rev 41247)
@@ -60,6 +60,17 @@
 void   ieee80211_ratectl_init(struct ieee80211vap *);
 void   ieee80211_ratectl_set(struct ieee80211vap *, int);
 
+#if defined (__HAIKU__)
+void ieee80211_ratectl_attach(struct ieee80211com *ic);
+void ieee80211_ratectl_detach(struct ieee80211com *ic);
+void ieee80211_ratectl_none_load(void);
+void ieee80211_ratectl_none_unload(void);
+void ieee80211_ratectl_amrr_load(void);
+void ieee80211_ratectl_amrr_unload(void);
+void ieee80211_ratectl_rssadapt_load(void);
+void ieee80211_ratectl_rssadapt_unload(void);
+#endif
+
 MALLOC_DECLARE(M_80211_RATECTL);
 
 static void __inline


Other related posts: