PERFORCE change 65754 for review

Sam Leffler sam at FreeBSD.org
Tue Nov 23 23:25:10 GMT 2004


http://perforce.freebsd.org/chv.cgi?CH=65754

Change 65754 by sam at sam_ebb on 2004/11/23 23:24:09

	o return all channels, not just active ones, for get chan info
	o add in get chan list to retrieve active channel list

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#19 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#19 (text+ko) ====

@@ -866,6 +866,15 @@
 }
 
 static int
+ieee80211_ioctl_getchanlist(struct ieee80211com *ic, struct ieee80211req *ireq)
+{
+
+	if (sizeof(ic->ic_chan_active) > ireq->i_len)
+		ireq->i_len = sizeof(ic->ic_chan_active);
+	return copyout(&ic->ic_chan_active, ireq->i_data, ireq->i_len);
+}
+
+static int
 ieee80211_ioctl_getchaninfo(struct ieee80211com *ic, struct ieee80211req *ireq)
 {
 	struct ieee80211req_chaninfo chans;	/* XXX off stack? */
@@ -881,7 +890,7 @@
 		i = 0;
 	memset(&chans, 0, sizeof(chans));
 	for (; i <= IEEE80211_CHAN_MAX; i++)
-		if (isset(ic->ic_chan_active, i)) {
+		if (isset(ic->ic_chan_avail, i)) {
 			struct ieee80211_channel *c = &ic->ic_channels[i];
 			chans.ic_chans[chans.ic_nchans].ic_freq = c->ic_freq;
 			chans.ic_chans[chans.ic_nchans].ic_flags = c->ic_flags;
@@ -1307,6 +1316,9 @@
 			break;
 		}
 		break;
+	case IEEE80211_IOC_CHANLIST:
+		error = ieee80211_ioctl_getchanlist(ic, ireq);
+		break;
 	case IEEE80211_IOC_ROAMING:
 		ireq->i_val = ic->ic_roaming;
 		break;
@@ -1638,7 +1650,7 @@
 ieee80211_ioctl_setchanlist(struct ieee80211com *ic, struct ieee80211req *ireq)
 {
 	struct ieee80211req_chanlist list;
-	u_char chanlist[roundup(IEEE80211_CHAN_MAX, NBBY)];
+	u_char chanlist[IEEE80211_CHAN_BYTES];
 	int i, j, error;
 
 	if (ireq->i_len != sizeof(list))


More information about the p4-projects mailing list