static int p80211wext_siwfreq(netdevice_t *dev, struct iw_request_info *info, struct iw_freq *freq, char *extra) { wlandevice_t *wlandev = dev->ml_priv; int result; int err = 0; unsigned int value; if (!wlan_wext_write) { err = -EOPNOTSUPP; goto exit; } if ((freq->e == 0) && (freq->m <= 1000)) value = freq->m; else value = p80211_mhz_to_channel(freq->m); result = p80211wext_setmib(wlandev, DIDmib_dot11phy_dot11PhyDSSSTable_dot11CurrentChannel, value); if (result) { err = -EFAULT; goto exit; } exit: return err; }
static int p80211wext_siwfreq(netdevice_t *dev, struct iw_request_info *info, struct iw_freq *freq, char *extra) { wlandevice_t *wlandev = dev->ml_priv; p80211item_uint32_t mibitem; p80211msg_dot11req_mibset_t msg; int result; int err = 0; if (!wlan_wext_write) { err = (-EOPNOTSUPP); goto exit; } msg.msgcode = DIDmsg_dot11req_mibset; mibitem.did = DIDmib_dot11phy_dot11PhyDSSSTable_dot11CurrentChannel; mibitem.status = P80211ENUM_msgitem_status_data_ok; if ((freq->e == 0) && (freq->m <= 1000)) mibitem.data = freq->m; else mibitem.data = p80211_mhz_to_channel(freq->m); memcpy(&msg.mibattribute.data, &mibitem, sizeof(mibitem)); result = p80211req_dorequest(wlandev, (u8 *) & msg); if (result) { err = -EFAULT; goto exit; } exit: return err; }