PERFORCE change 135186 for review
Sepherosa Ziehau
sephe at FreeBSD.org
Sun Feb 10 19:08:34 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=135186
Change 135186 by sephe at sephe_zealot:sam_wifi on 2008/02/11 03:07:52
Promote change_channel() in ieee80211_scan.c to public interface
ieee80211_set_channel(); more things would be done in this function
Affected files ...
.. //depot/projects/wifi/sys/net80211/ieee80211.c#62 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#89 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.c#99 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#65 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#20 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_var.h#64 edit
Differences ...
==== //depot/projects/wifi/sys/net80211/ieee80211.c#62 (text+ko) ====
@@ -1225,3 +1225,10 @@
ieeerates[IFM_SUBTYPE(mword)] : 0;
#undef N
}
+
+void
+ieee80211_set_channel(struct ieee80211com *ic, struct ieee80211_channel *c)
+{
+ ic->ic_curchan = c;
+ ic->ic_set_channel(ic);
+}
==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#89 (text+ko) ====
@@ -1757,9 +1757,10 @@
/*
* Monitor and wds modes can switch directly.
*/
- ic->ic_curchan = ic->ic_des_chan;
if (ic->ic_state == IEEE80211_S_RUN)
- ic->ic_set_channel(ic);
+ ieee80211_set_channel(ic, ic->ic_des_chan);
+ else
+ ic->ic_curchan = ic->ic_des_chan;
} else {
/*
* Need to go through the state machine in case we
==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#99 (text+ko) ====
@@ -542,9 +542,8 @@
ieee80211_setbsschan(struct ieee80211com *ic, struct ieee80211_channel *c)
{
ic->ic_bsschan = c;
- ic->ic_curchan = ic->ic_bsschan;
- ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan);
- ic->ic_set_channel(ic);
+ ic->ic_curmode = ieee80211_chan2mode(ic->ic_bsschan);
+ ieee80211_set_channel(ic, ic->ic_bsschan);
}
/*
==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#65 (text+ko) ====
@@ -953,8 +953,7 @@
ic->ic_bsschan = chan;
ic->ic_prevchan = ic->ic_curchan;
- ic->ic_curchan = chan;
- ic->ic_set_channel(ic);
+ ieee80211_set_channel(ic, chan);
/* NB: do not need to reset ERP state 'cuz we're in sta mode */
}
==== //depot/projects/wifi/sys/net80211/ieee80211_scan.c#20 (text+ko) ====
@@ -232,14 +232,6 @@
return (scan != NULL);
}
-static void
-change_channel(struct ieee80211com *ic,
- struct ieee80211_channel *chan)
-{
- ic->ic_curchan = chan;
- ic->ic_set_channel(ic);
-}
-
static char
channel_type(const struct ieee80211_channel *c)
{
@@ -742,7 +734,7 @@
/*
* Potentially change channel and phy mode.
*/
- change_channel(ic, chan);
+ ieee80211_set_channel(ic, chan);
/*
* Scan curchan. Drivers for "intelligent hardware"
@@ -768,7 +760,7 @@
/* return to the bss channel */
if (ic->ic_bsschan != IEEE80211_CHAN_ANYC &&
ic->ic_curchan != ic->ic_bsschan)
- change_channel(ic, ic->ic_bsschan);
+ ieee80211_set_channel(ic, ic->ic_bsschan);
/* clear internal flags and any indication of a pick */
SCAN_PRIVATE(ss)->ss_iflags &= ~ISCAN_REP;
ss->ss_flags &= ~IEEE80211_SCAN_GOTPICK;
==== //depot/projects/wifi/sys/net80211/ieee80211_var.h#64 (text+ko) ====
@@ -428,6 +428,8 @@
int ieee, int flags);
int ieee80211_setmode(struct ieee80211com *, enum ieee80211_phymode);
enum ieee80211_phymode ieee80211_chan2mode(const struct ieee80211_channel *);
+void ieee80211_set_channel(struct ieee80211com *,
+ struct ieee80211_channel *);
/*
* Key update synchronization methods. XXX should not be visible.
More information about the p4-projects
mailing list