added some glue to register correctly rate control modules
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41247 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -59,7 +59,6 @@ KernelStaticLibrary libfreebsd_wlan.a :
|
||||
# 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
|
||||
|
||||
@@ -293,6 +293,9 @@ ieee80211_ifattach(struct ieee80211com *ic,
|
||||
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_ifdetach(struct ieee80211com *ic)
|
||||
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);
|
||||
|
||||
@@ -64,9 +64,9 @@ extern "C" {
|
||||
|
||||
#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
|
||||
|
||||
|
||||
|
||||
@@ -326,17 +326,20 @@ void ieee80211_scan_sta_uninit(void);
|
||||
*/
|
||||
#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 *,
|
||||
|
||||
@@ -49,6 +49,31 @@ static const char *ratectl_modnames[IEEE80211_RATECTL_MAX] = {
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -60,6 +60,17 @@ void ieee80211_ratectl_unregister(int);
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user