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_ddb.c
|
||||||
# NOT SUPPORTED YET ieee80211_hwmp.c
|
# NOT SUPPORTED YET ieee80211_hwmp.c
|
||||||
# NOT SUPPORTED YET ieee80211_mesh.c
|
# NOT SUPPORTED YET ieee80211_mesh.c
|
||||||
# NOT SUPPORTED YET ieee80211_rssadapt.c
|
|
||||||
# NOT SUPPORTED YET ieee80211_superg.c
|
# NOT SUPPORTED YET ieee80211_superg.c
|
||||||
# NOT SUPPORTED YET ieee80211_tdma.c
|
# NOT SUPPORTED YET ieee80211_tdma.c
|
||||||
ieee80211_xauth.c
|
ieee80211_xauth.c
|
||||||
|
|||||||
@@ -293,6 +293,9 @@ ieee80211_ifattach(struct ieee80211com *ic,
|
|||||||
ieee80211_scan_attach(ic);
|
ieee80211_scan_attach(ic);
|
||||||
ieee80211_regdomain_attach(ic);
|
ieee80211_regdomain_attach(ic);
|
||||||
ieee80211_dfs_attach(ic);
|
ieee80211_dfs_attach(ic);
|
||||||
|
#if defined(__HAIKU__)
|
||||||
|
ieee80211_ratectl_attach(ic);
|
||||||
|
#endif
|
||||||
|
|
||||||
ieee80211_sysctl_attach(ic);
|
ieee80211_sysctl_attach(ic);
|
||||||
|
|
||||||
@@ -337,6 +340,9 @@ ieee80211_ifdetach(struct ieee80211com *ic)
|
|||||||
ieee80211_waitfor_parent(ic);
|
ieee80211_waitfor_parent(ic);
|
||||||
|
|
||||||
ieee80211_sysctl_detach(ic);
|
ieee80211_sysctl_detach(ic);
|
||||||
|
#if defined(__HAIKU__)
|
||||||
|
ieee80211_ratectl_detach(ic);
|
||||||
|
#endif
|
||||||
ieee80211_dfs_detach(ic);
|
ieee80211_dfs_detach(ic);
|
||||||
ieee80211_regdomain_detach(ic);
|
ieee80211_regdomain_detach(ic);
|
||||||
ieee80211_scan_detach(ic);
|
ieee80211_scan_detach(ic);
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ extern "C" {
|
|||||||
|
|
||||||
#define TRACE_WLAN
|
#define TRACE_WLAN
|
||||||
#ifdef TRACE_WLAN
|
#ifdef TRACE_WLAN
|
||||||
# define TRACE(x, ...) dprintf(x, __VA_ARGS__);
|
# define TRACE(x...) dprintf(x);
|
||||||
#else
|
#else
|
||||||
# define TRACE(x, ...) ;
|
# define TRACE(x...) ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -326,17 +326,20 @@ void ieee80211_scan_sta_uninit(void);
|
|||||||
*/
|
*/
|
||||||
#define IEEE80211_RATECTL_MODULE(alg, version) \
|
#define IEEE80211_RATECTL_MODULE(alg, version) \
|
||||||
_IEEE80211_POLICY_MODULE(ratectl, 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;
|
struct ieee80211req;
|
||||||
typedef int ieee80211_ioctl_getfunc(struct ieee80211vap *,
|
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");
|
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
|
void
|
||||||
ieee80211_ratectl_register(int type, const struct ieee80211_ratectl *ratectl)
|
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_init(struct ieee80211vap *);
|
||||||
void ieee80211_ratectl_set(struct ieee80211vap *, int);
|
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);
|
MALLOC_DECLARE(M_80211_RATECTL);
|
||||||
|
|
||||||
static void __inline
|
static void __inline
|
||||||
|
|||||||
Reference in New Issue
Block a user