您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ wdev_lock函数代码示例

51自学网 2021-06-03 09:54:30
  C++
这篇教程C++ wdev_lock函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中wdev_lock函数的典型用法代码示例。如果您正苦于以下问题:C++ wdev_lock函数的具体用法?C++ wdev_lock怎么用?C++ wdev_lock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了wdev_lock函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cfg80211_send_disassoc

void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len){	struct wireless_dev *wdev = dev->ieee80211_ptr;	wdev_lock(wdev);	__cfg80211_send_disassoc(dev, buf, len);	wdev_unlock(wdev);}
开发者ID:koh523,项目名称:kernel-pandaboard-ES-RevB3,代码行数:8,


示例2: cfg80211_clear_ibss

void cfg80211_clear_ibss(struct net_device *dev, bool nowext){	struct wireless_dev *wdev = dev->ieee80211_ptr;	wdev_lock(wdev);	__cfg80211_clear_ibss(dev, nowext);	wdev_unlock(wdev);}
开发者ID:3null,项目名称:fastsocket,代码行数:8,


示例3: cfg80211_mgd_wext_siwessid

int cfg80211_mgd_wext_siwessid(struct net_device *dev,			       struct iw_request_info *info,			       struct iw_point *data, char *ssid){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	size_t len = data->length;	int err;	/* call only for station! */	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))		return -EINVAL;	if (!data->flags)		len = 0;	/* iwconfig uses nul termination in SSID.. */	if (len > 0 && ssid[len - 1] == '/0')		len--;	cfg80211_lock_rdev(rdev);	mutex_lock(&rdev->devlist_mtx);	wdev_lock(wdev);	err = 0;	if (wdev->sme_state != CFG80211_SME_IDLE) {		bool event = true;		if (wdev->wext.connect.ssid && len &&		    len == wdev->wext.connect.ssid_len &&		    memcmp(wdev->wext.connect.ssid, ssid, len) == 0)			goto out;		/* if SSID set now, we'll try to connect, avoid event */		if (len)			event = false;		err = __cfg80211_disconnect(rdev, dev,					    WLAN_REASON_DEAUTH_LEAVING, event);		if (err)			goto out;	}	wdev->wext.prev_bssid_valid = false;	wdev->wext.connect.ssid = wdev->wext.ssid;	memcpy(wdev->wext.ssid, ssid, len);	wdev->wext.connect.ssid_len = len;	wdev->wext.connect.crypto.control_port = false;	err = cfg80211_mgd_wext_connect(rdev, wdev); out:	wdev_unlock(wdev);	mutex_unlock(&rdev->devlist_mtx);	cfg80211_unlock_rdev(rdev);	return err;}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:57,


示例4: cfg80211_send_rx_assoc

void cfg80211_send_rx_assoc(struct net_device *dev, struct cfg80211_bss *bss,			    const u8 *buf, size_t len){	u16 status_code;	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct wiphy *wiphy = wdev->wiphy;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)buf;	u8 *ie = mgmt->u.assoc_resp.variable;	int ieoffs = offsetof(struct ieee80211_mgmt, u.assoc_resp.variable);	trace_cfg80211_send_rx_assoc(dev, bss);	wdev_lock(wdev);	status_code = le16_to_cpu(mgmt->u.assoc_resp.status_code);	/*	 * This is a bit of a hack, we don't notify userspace of	 * a (re-)association reply if we tried to send a reassoc	 * and got a reject -- we only try again with an assoc	 * frame instead of reassoc.	 */	if (status_code != WLAN_STATUS_SUCCESS && wdev->conn &&	    cfg80211_sme_failed_reassoc(wdev)) {		cfg80211_put_bss(wiphy, bss);		goto out;	}	nl80211_send_rx_assoc(rdev, dev, buf, len, GFP_KERNEL);	if (status_code != WLAN_STATUS_SUCCESS && wdev->conn) {		cfg80211_sme_failed_assoc(wdev);		/*		 * do not call connect_result() now because the		 * sme will schedule work that does it later.		 */		cfg80211_put_bss(wiphy, bss);		goto out;	}	if (!wdev->conn && wdev->sme_state == CFG80211_SME_IDLE) {		/*		 * This is for the userspace SME, the CONNECTING		 * state will be changed to CONNECTED by		 * __cfg80211_connect_result() below.		 */		wdev->sme_state = CFG80211_SME_CONNECTING;	}	/* this consumes the bss reference */	__cfg80211_connect_result(dev, mgmt->bssid, NULL, 0, ie, len - ieoffs,				  status_code,				  status_code == WLAN_STATUS_SUCCESS, bss); out:	wdev_unlock(wdev);}
开发者ID:Kratos1982,项目名称:UbuntuTouch,代码行数:56,


示例5: cfg80211_mgd_wext_siwap

int cfg80211_mgd_wext_siwap(struct net_device *dev,			    struct iw_request_info *info,			    struct sockaddr *ap_addr, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	u8 *bssid = ap_addr->sa_data;	int err;	/* call only for station! */	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))		return -EINVAL;	if (ap_addr->sa_family != ARPHRD_ETHER)		return -EINVAL;	/* automatic mode */	if (is_zero_ether_addr(bssid) || is_broadcast_ether_addr(bssid))		bssid = NULL;	cfg80211_lock_rdev(rdev);	mutex_lock(&rdev->devlist_mtx);	wdev_lock(wdev);	if (wdev->sme_state != CFG80211_SME_IDLE) {		err = 0;		/* both automatic */		if (!bssid && !wdev->wext.connect.bssid)			goto out;		/* fixed already - and no change */		if (wdev->wext.connect.bssid && bssid &&		    compare_ether_addr(bssid, wdev->wext.connect.bssid) == 0)			goto out;		err = __cfg80211_disconnect(rdev, dev,					    WLAN_REASON_DEAUTH_LEAVING, false);		if (err)			goto out;	}	if (bssid) {		memcpy(wdev->wext.bssid, bssid, ETH_ALEN);		wdev->wext.connect.bssid = wdev->wext.bssid;	} else		wdev->wext.connect.bssid = NULL;	err = cfg80211_mgd_wext_connect(rdev, wdev); out:	wdev_unlock(wdev);	mutex_unlock(&rdev->devlist_mtx);	cfg80211_unlock_rdev(rdev);	return err;}
开发者ID:garwynn,项目名称:I727_JB_Kernel_v1,代码行数:54,


示例6: cfg80211_ibss_wext_siwessid

int cfg80211_ibss_wext_siwessid(struct net_device *dev,                                struct iw_request_info *info,                                struct iw_point *data, char *ssid){    struct wireless_dev *wdev = dev->ieee80211_ptr;    struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);    size_t len = data->length;    int err;    /* call only for ibss! */    if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC))        return -EINVAL;    if (!rdev->ops->join_ibss)        return -EOPNOTSUPP;    wdev_lock(wdev);    err = 0;    if (wdev->ssid_len)        err = __cfg80211_leave_ibss(rdev, dev, true);    wdev_unlock(wdev);    if (err)        return err;    /* iwconfig uses nul termination in SSID.. */    if (len > 0 && ssid[len - 1] == '/0')        len--;    wdev->wext.ibss.ssid = wdev->ssid;    memcpy(wdev->wext.ibss.ssid, ssid, len);    wdev->wext.ibss.ssid_len = len;    mutex_lock(&rdev->devlist_mtx);    wdev_lock(wdev);    err = cfg80211_ibss_wext_join(rdev, wdev);    wdev_unlock(wdev);    mutex_unlock(&rdev->devlist_mtx);    return err;}
开发者ID:rbheromax,项目名称:android_kernel_lge_dory,代码行数:41,


示例7: cfg80211_leave_ibss

int cfg80211_leave_ibss(struct cfg80211_registered_device *rdev,			struct net_device *dev, bool nowext){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	wdev_lock(wdev);	err = __cfg80211_leave_ibss(rdev, dev, nowext);	wdev_unlock(wdev);	return err;}
开发者ID:asmalldev,项目名称:linux,代码行数:12,


示例8: cfg80211_stop_ap

int cfg80211_stop_ap(struct cfg80211_registered_device *rdev,		     struct net_device *dev){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	wdev_lock(wdev);	err = __cfg80211_stop_ap(rdev, dev);	wdev_unlock(wdev);	return err;}
开发者ID:neobuddy89,项目名称:NX-Kernel,代码行数:12,


示例9: cfg80211_mlme_disassoc

int cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev,			   struct net_device *dev, const u8 *bssid,			   const u8 *ie, int ie_len, u16 reason){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	wdev_lock(wdev);	err = __cfg80211_mlme_disassoc(rdev, dev, bssid, ie, ie_len, reason);	wdev_unlock(wdev);	return err;}
开发者ID:valentil,项目名称:CS-411-Group-13,代码行数:13,


示例10: cfg80211_send_rx_auth

void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len){    struct wireless_dev *wdev = dev->ieee80211_ptr;    struct wiphy *wiphy = wdev->wiphy;    struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);    wdev_lock(wdev);    nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL);    cfg80211_sme_rx_auth(dev, buf, len);    wdev_unlock(wdev);}
开发者ID:kerryh,项目名称:cfg80211_v357,代码行数:13,


示例11: cfg80211_join_mesh

int cfg80211_join_mesh(struct cfg80211_registered_device *rdev,		       struct net_device *dev,		       const struct mesh_setup *setup,		       const struct mesh_config *conf){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	wdev_lock(wdev);	err = __cfg80211_join_mesh(rdev, dev, setup, conf);	wdev_unlock(wdev);	return err;}
开发者ID:kerryh,项目名称:cfg80211_v357,代码行数:14,


示例12: cfg80211_set_encryption

static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,				   struct net_device *dev, bool pairwise,				   const u8 *addr, bool remove, bool tx_key,				   int idx, struct key_params *params){	int err;	wdev_lock(dev->ieee80211_ptr);	err = __cfg80211_set_encryption(rdev, dev, pairwise, addr,					remove, tx_key, idx, params);	wdev_unlock(dev->ieee80211_ptr);	return err;}
开发者ID:seanyoncraic,项目名称:linuxRetroPie,代码行数:14,


示例13: cfg80211_wext_siwgenie

int cfg80211_wext_siwgenie(struct net_device *dev,			   struct iw_request_info *info,			   struct iw_point *data, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	u8 *ie = extra;	int ie_len = data->length, err;	if (wdev->iftype != NL80211_IFTYPE_STATION)		return -EOPNOTSUPP;	if (!ie_len)		ie = NULL;	wdev_lock(wdev);	/* no change */	err = 0;	if (wdev->wext.ie_len == ie_len &&	    memcmp(wdev->wext.ie, ie, ie_len) == 0)		goto out;	if (ie_len) {		ie = kmemdup(extra, ie_len, GFP_KERNEL);		if (!ie) {			err = -ENOMEM;			goto out;		}	} else		ie = NULL;	kfree(wdev->wext.ie);	wdev->wext.ie = ie;	wdev->wext.ie_len = ie_len;	if (wdev->sme_state != CFG80211_SME_IDLE) {		err = __cfg80211_disconnect(rdev, dev,					    WLAN_REASON_DEAUTH_LEAVING, false);		if (err)			goto out;	}	/* userspace better not think we'll reconnect */	err = 0; out:	wdev_unlock(wdev);	return err;}
开发者ID:garwynn,项目名称:I727_JB_Kernel_v1,代码行数:49,


示例14: cfg80211_join_ibss

int cfg80211_join_ibss(struct cfg80211_registered_device *rdev,		       struct net_device *dev,		       struct cfg80211_ibss_params *params,		       struct cfg80211_cached_keys *connkeys){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	ASSERT_RTNL();	wdev_lock(wdev);	err = __cfg80211_join_ibss(rdev, dev, params, connkeys);	wdev_unlock(wdev);	return err;}
开发者ID:asmalldev,项目名称:linux,代码行数:16,


示例15: cfg80211_send_disassoc

void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len,			    void *cookie){	struct wireless_dev *wdev = dev->ieee80211_ptr;	BUG_ON(cookie && wdev != cookie);	if (cookie) {		/* called within callback */		__cfg80211_send_disassoc(dev, buf, len);	} else {		wdev_lock(wdev);		__cfg80211_send_disassoc(dev, buf, len);		wdev_unlock(wdev);	}}
开发者ID:285452612,项目名称:ali_kernel,代码行数:16,


示例16: cfg80211_send_assoc_timeout

void cfg80211_send_assoc_timeout(struct net_device *dev, const u8 *addr){    struct wireless_dev *wdev = dev->ieee80211_ptr;    struct wiphy *wiphy = wdev->wiphy;    struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);    wdev_lock(wdev);    nl80211_send_assoc_timeout(rdev, dev, addr, GFP_KERNEL);    if (wdev->sme_state == CFG80211_SME_CONNECTING)        __cfg80211_connect_result(dev, addr, NULL, 0, NULL, 0,                                  WLAN_STATUS_UNSPECIFIED_FAILURE,                                  false, NULL);    wdev_unlock(wdev);}
开发者ID:kerryh,项目名称:cfg80211_v357,代码行数:16,


示例17: cfg80211_mlme_auth

int cfg80211_mlme_auth(struct cfg80211_registered_device *rdev,		       struct net_device *dev, struct ieee80211_channel *chan,		       enum nl80211_auth_type auth_type, const u8 *bssid,		       const u8 *ssid, int ssid_len,		       const u8 *ie, int ie_len,		       const u8 *key, int key_len, int key_idx){	int err;	wdev_lock(dev->ieee80211_ptr);	err = __cfg80211_mlme_auth(rdev, dev, chan, auth_type, bssid,				   ssid, ssid_len, ie, ie_len,				   key, key_len, key_idx);	wdev_unlock(dev->ieee80211_ptr);	return err;}
开发者ID:valentil,项目名称:CS-411-Group-13,代码行数:17,


示例18: cfg80211_set_encryption

static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,				   struct net_device *dev, bool pairwise,				   const u8 *addr, bool remove, bool tx_key,				   int idx, struct key_params *params){	int err;	/* devlist mutex needed for possible IBSS re-join */	mutex_lock(&rdev->devlist_mtx);	wdev_lock(dev->ieee80211_ptr);	err = __cfg80211_set_encryption(rdev, dev, pairwise, addr,					remove, tx_key, idx, params);	wdev_unlock(dev->ieee80211_ptr);	mutex_unlock(&rdev->devlist_mtx);	return err;}
开发者ID:GerardGarcia,项目名称:linux,代码行数:17,


示例19: cfg80211_mlme_assoc

int cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,			struct net_device *dev,			struct ieee80211_channel *chan,			const u8 *bssid,			const u8 *ssid, int ssid_len,			struct cfg80211_assoc_request *req){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	mutex_lock(&rdev->devlist_mtx);	wdev_lock(wdev);	err = __cfg80211_mlme_assoc(rdev, dev, chan, bssid,				    ssid, ssid_len, req);	wdev_unlock(wdev);	mutex_unlock(&rdev->devlist_mtx);	return err;}
开发者ID:Kratos1982,项目名称:UbuntuTouch,代码行数:19,


示例20: cfg80211_wext_giwrate

int cfg80211_wext_giwrate(struct net_device *dev,			  struct iw_request_info *info,			  struct iw_param *rate, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	/* we are under RTNL - globally locked - so can use a static struct */	static struct station_info sinfo;	u8 addr[ETH_ALEN];	int err;	if (wdev->iftype != NL80211_IFTYPE_STATION)		return -EOPNOTSUPP;	if (!rdev->ops->get_station)		return -EOPNOTSUPP;	err = 0;	wdev_lock(wdev);	if (wdev->current_bss)		memcpy(addr, wdev->current_bss->pub.bssid, ETH_ALEN);	else		err = -EOPNOTSUPP;	wdev_unlock(wdev);	if (err)		return err;	err = rdev->ops->get_station(&rdev->wiphy, dev, addr, &sinfo);	if (err)		return err;	if (!(sinfo.filled & STATION_INFO_TX_BITRATE))		return -EOPNOTSUPP;	rate->value = 0;	if (!(sinfo.txrate.flags & RATE_INFO_FLAGS_MCS))		rate->value = 100000 * sinfo.txrate.legacy;	return 0;}
开发者ID:Akinus,项目名称:htc-kernel-msm7x30,代码行数:41,


示例21: cfg80211_mgd_wext_giwap

int cfg80211_mgd_wext_giwap(struct net_device *dev,			    struct iw_request_info *info,			    struct sockaddr *ap_addr, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	/* call only for station! */	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))		return -EINVAL;	ap_addr->sa_family = ARPHRD_ETHER;	wdev_lock(wdev);	if (wdev->current_bss)		memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);	else		memset(ap_addr->sa_data, 0, ETH_ALEN);	wdev_unlock(wdev);	return 0;}
开发者ID:garwynn,项目名称:I727_JB_Kernel_v1,代码行数:21,


示例22: cfg80211_wext_giwrate

static int cfg80211_wext_giwrate(struct net_device *dev,				 struct iw_request_info *info,				 struct iw_param *rate, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);		static struct station_info sinfo;	u8 addr[ETH_ALEN];	int err;	if (wdev->iftype != NL80211_IFTYPE_STATION)		return -EOPNOTSUPP;	if (!rdev->ops->get_station)		return -EOPNOTSUPP;	err = 0;	wdev_lock(wdev);	if (wdev->current_bss)		memcpy(addr, wdev->current_bss->pub.bssid, ETH_ALEN);	else		err = -EOPNOTSUPP;	wdev_unlock(wdev);	if (err)		return err;	err = rdev->ops->get_station(&rdev->wiphy, dev, addr, &sinfo);	if (err)		return err;	if (!(sinfo.filled & STATION_INFO_TX_BITRATE))		return -EOPNOTSUPP;	rate->value = 100000 * cfg80211_calculate_bitrate(&sinfo.txrate);	return 0;}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:38,


示例23: cfg80211_mlme_assoc

int cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,			struct net_device *dev,			struct ieee80211_channel *chan,			const u8 *bssid, const u8 *prev_bssid,			const u8 *ssid, int ssid_len,			const u8 *ie, int ie_len, bool use_mfp,			struct cfg80211_crypto_settings *crypt,			u32 assoc_flags, struct ieee80211_ht_cap *ht_capa,			struct ieee80211_ht_cap *ht_capa_mask){	struct wireless_dev *wdev = dev->ieee80211_ptr;	int err;	mutex_lock(&rdev->devlist_mtx);	wdev_lock(wdev);	err = __cfg80211_mlme_assoc(rdev, dev, chan, bssid, prev_bssid,				    ssid, ssid_len, ie, ie_len, use_mfp, crypt,				    assoc_flags, ht_capa, ht_capa_mask);	wdev_unlock(wdev);	mutex_unlock(&rdev->devlist_mtx);	return err;}
开发者ID:AllenDou,项目名称:linux,代码行数:23,


示例24: cfg80211_ibss_wext_giwap

int cfg80211_ibss_wext_giwap(struct net_device *dev,			     struct iw_request_info *info,			     struct sockaddr *ap_addr, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	/* call only for ibss! */	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC))		return -EINVAL;	ap_addr->sa_family = ARPHRD_ETHER;	wdev_lock(wdev);	if (wdev->current_bss)		memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);	else if (wdev->wext.ibss.bssid)		memcpy(ap_addr->sa_data, wdev->wext.ibss.bssid, ETH_ALEN);	else		eth_zero_addr(ap_addr->sa_data);	wdev_unlock(wdev);	return 0;}
开发者ID:asmalldev,项目名称:linux,代码行数:24,


示例25: wiphy_to_dev

/* Get wireless statistics.  Called by /proc/net/wireless and by SIOCGIWSTATS */static struct iw_statistics *cfg80211_wireless_stats(struct net_device *dev){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	/* we are under RTNL - globally locked - so can use static structs */	static struct iw_statistics wstats;	static struct station_info sinfo;	u8 bssid[ETH_ALEN];	if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION)		return NULL;	if (!rdev->ops->get_station)		return NULL;	/* Grab BSSID of current BSS, if any */	wdev_lock(wdev);	if (!wdev->current_bss) {		wdev_unlock(wdev);		return NULL;	}	memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN);	wdev_unlock(wdev);	if (rdev->ops->get_station(&rdev->wiphy, dev, bssid, &sinfo))		return NULL;	memset(&wstats, 0, sizeof(wstats));	switch (rdev->wiphy.signal_type) {	case CFG80211_SIGNAL_TYPE_MBM:		if (sinfo.filled & STATION_INFO_SIGNAL) {			int sig = sinfo.signal;			wstats.qual.updated |= IW_QUAL_LEVEL_UPDATED;			wstats.qual.updated |= IW_QUAL_QUAL_UPDATED;			wstats.qual.updated |= IW_QUAL_DBM;			wstats.qual.level = sig;			if (sig < -110)				sig = -110;			else if (sig > -40)				sig = -40;			wstats.qual.qual = sig + 110;			break;		}	case CFG80211_SIGNAL_TYPE_UNSPEC:		if (sinfo.filled & STATION_INFO_SIGNAL) {			wstats.qual.updated |= IW_QUAL_LEVEL_UPDATED;			wstats.qual.updated |= IW_QUAL_QUAL_UPDATED;			wstats.qual.level = sinfo.signal;			wstats.qual.qual = sinfo.signal;			break;		}	default:		wstats.qual.updated |= IW_QUAL_LEVEL_INVALID;		wstats.qual.updated |= IW_QUAL_QUAL_INVALID;	}	wstats.qual.updated |= IW_QUAL_NOISE_INVALID;	if (sinfo.filled & STATION_INFO_RX_DROP_MISC)		wstats.discard.misc = sinfo.rx_dropped_misc;	if (sinfo.filled & STATION_INFO_TX_FAILED)		wstats.discard.retries = sinfo.tx_failed;	return &wstats;}
开发者ID:GerardGarcia,项目名称:linux,代码行数:66,


示例26: cfg80211_mgd_wext_siwfreq

int cfg80211_mgd_wext_siwfreq(struct net_device *dev,			      struct iw_request_info *info,			      struct iw_freq *wextfreq, char *extra){	struct wireless_dev *wdev = dev->ieee80211_ptr;	struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);	struct ieee80211_channel *chan = NULL;	int err, freq;	/* call only for station! */	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))		return -EINVAL;	freq = cfg80211_wext_freq(wdev->wiphy, wextfreq);	if (freq < 0)		return freq;	if (freq) {		chan = ieee80211_get_channel(wdev->wiphy, freq);		if (!chan)			return -EINVAL;		if (chan->flags & IEEE80211_CHAN_DISABLED)			return -EINVAL;	}	cfg80211_lock_rdev(rdev);	mutex_lock(&rdev->devlist_mtx);	wdev_lock(wdev);	if (wdev->sme_state != CFG80211_SME_IDLE) {		bool event = true;		if (wdev->wext.connect.channel == chan) {			err = 0;			goto out;		}		/* if SSID set, we'll try right again, avoid event */		if (wdev->wext.connect.ssid_len)			event = false;		err = __cfg80211_disconnect(rdev, dev,					    WLAN_REASON_DEAUTH_LEAVING, event);		if (err)			goto out;	}	wdev->wext.connect.channel = chan;	/* SSID is not set, we just want to switch channel */	if (chan && !wdev->wext.connect.ssid_len) {		err = cfg80211_set_freq(rdev, wdev, freq, NL80211_CHAN_NO_HT);		goto out;	}	err = cfg80211_mgd_wext_connect(rdev, wdev); out:	wdev_unlock(wdev);	mutex_unlock(&rdev->devlist_mtx);	cfg80211_unlock_rdev(rdev);	return err;}
开发者ID:garwynn,项目名称:I727_JB_Kernel_v1,代码行数:62,



注:本文中的wdev_lock函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ wdt_disable函数代码示例
C++ wd_start函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。