1639 lines · 46.4 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 *//* * Portions of this file * Copyright(c) 2016-2017 Intel Deutschland GmbH * Copyright (C) 2018, 2021-2026 Intel Corporation */#ifndef __CFG80211_RDEV_OPS#define __CFG80211_RDEV_OPS #include <linux/rtnetlink.h>#include <net/cfg80211.h>#include "core.h"#include "trace.h" static inline int rdev_suspend(struct cfg80211_registered_device *rdev,			       struct cfg80211_wowlan *wowlan){	int ret;	trace_rdev_suspend(&rdev->wiphy, wowlan);	ret = rdev->ops->suspend(&rdev->wiphy, wowlan);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_resume(struct cfg80211_registered_device *rdev){	int ret;	trace_rdev_resume(&rdev->wiphy);	ret = rdev->ops->resume(&rdev->wiphy);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline void rdev_set_wakeup(struct cfg80211_registered_device *rdev,				   bool enabled){	trace_rdev_set_wakeup(&rdev->wiphy, enabled);	rdev->ops->set_wakeup(&rdev->wiphy, enabled);	trace_rdev_return_void(&rdev->wiphy);} static inline struct wireless_dev*rdev_add_virtual_intf(struct cfg80211_registered_device *rdev, char *name,		       unsigned char name_assign_type,		       enum nl80211_iftype type,		       struct vif_params *params){	struct wireless_dev *ret;	trace_rdev_add_virtual_intf(&rdev->wiphy, name, type);	ret = rdev->ops->add_virtual_intf(&rdev->wiphy, name, name_assign_type,					  type, params);	trace_rdev_return_wdev(&rdev->wiphy, ret);	return ret;} static inline intrdev_del_virtual_intf(struct cfg80211_registered_device *rdev,		      struct wireless_dev *wdev){	int ret;	trace_rdev_del_virtual_intf(&rdev->wiphy, wdev);	ret = rdev->ops->del_virtual_intf(&rdev->wiphy, wdev);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_change_virtual_intf(struct cfg80211_registered_device *rdev,			 struct net_device *dev, enum nl80211_iftype type,			 struct vif_params *params){	int ret;	trace_rdev_change_virtual_intf(&rdev->wiphy, dev, type);	ret = rdev->ops->change_virtual_intf(&rdev->wiphy, dev, type, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_add_key(struct cfg80211_registered_device *rdev,			       struct wireless_dev *wdev, int link_id,			       u8 key_index, bool pairwise, const u8 *mac_addr,			       struct key_params *params){	int ret;	trace_rdev_add_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,			   mac_addr, params->mode);	ret = rdev->ops->add_key(&rdev->wiphy, wdev, link_id, key_index,				  pairwise, mac_addr, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_get_key(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev,	     int link_id, u8 key_index, bool pairwise, const u8 *mac_addr,	     void *cookie,	     void (*callback)(void *cookie, struct key_params*)){	int ret;	trace_rdev_get_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,			   mac_addr);	ret = rdev->ops->get_key(&rdev->wiphy, wdev, link_id, key_index,				  pairwise, mac_addr, cookie, callback);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_del_key(struct cfg80211_registered_device *rdev,			       struct wireless_dev *wdev, int link_id,			       u8 key_index, bool pairwise, const u8 *mac_addr){	int ret;	trace_rdev_del_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,			   mac_addr);	ret = rdev->ops->del_key(&rdev->wiphy, wdev, link_id, key_index,				  pairwise, mac_addr);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_set_default_key(struct cfg80211_registered_device *rdev,		     struct net_device *netdev, int link_id, u8 key_index,		     bool unicast, bool multicast){	int ret;	trace_rdev_set_default_key(&rdev->wiphy, netdev, link_id, key_index,				   unicast, multicast);	ret = rdev->ops->set_default_key(&rdev->wiphy, netdev, link_id,					  key_index, unicast, multicast);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev,			  struct wireless_dev *wdev, int link_id, u8 key_index){	int ret;	trace_rdev_set_default_mgmt_key(&rdev->wiphy, wdev, link_id,					key_index);	ret = rdev->ops->set_default_mgmt_key(&rdev->wiphy, wdev, link_id,					       key_index);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_set_default_beacon_key(struct cfg80211_registered_device *rdev,			    struct wireless_dev *wdev, int link_id,			    u8 key_index){	int ret; 	trace_rdev_set_default_beacon_key(&rdev->wiphy, wdev, link_id,					  key_index);	ret = rdev->ops->set_default_beacon_key(&rdev->wiphy, wdev, link_id,						 key_index);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_start_ap(struct cfg80211_registered_device *rdev,				struct net_device *dev,				struct cfg80211_ap_settings *settings){	int ret;	trace_rdev_start_ap(&rdev->wiphy, dev, settings);	ret = rdev->ops->start_ap(&rdev->wiphy, dev, settings);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_change_beacon(struct cfg80211_registered_device *rdev,				     struct net_device *dev,				     struct cfg80211_ap_update *info){	int ret;	trace_rdev_change_beacon(&rdev->wiphy, dev, info);	ret = rdev->ops->change_beacon(&rdev->wiphy, dev, info);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_stop_ap(struct cfg80211_registered_device *rdev,			       struct net_device *dev, unsigned int link_id){	int ret;	trace_rdev_stop_ap(&rdev->wiphy, dev, link_id);	ret = rdev->ops->stop_ap(&rdev->wiphy, dev, link_id);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_add_station(struct cfg80211_registered_device *rdev,				   struct wireless_dev *wdev, u8 *mac,				   struct station_parameters *params){	int ret;	trace_rdev_add_station(&rdev->wiphy, wdev, mac, params);	ret = rdev->ops->add_station(&rdev->wiphy, wdev, mac, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_del_station(struct cfg80211_registered_device *rdev,				   struct wireless_dev *wdev,				   struct station_del_parameters *params){	int ret;	trace_rdev_del_station(&rdev->wiphy, wdev, params);	ret = rdev->ops->del_station(&rdev->wiphy, wdev, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_change_station(struct cfg80211_registered_device *rdev,				      struct wireless_dev *wdev, u8 *mac,				      struct station_parameters *params){	int ret;	trace_rdev_change_station(&rdev->wiphy, wdev, mac, params);	ret = rdev->ops->change_station(&rdev->wiphy, wdev, mac, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_get_station(struct cfg80211_registered_device *rdev,				   struct wireless_dev *wdev, const u8 *mac,				   struct station_info *sinfo){	int ret;	trace_rdev_get_station(&rdev->wiphy, wdev, mac);	ret = rdev->ops->get_station(&rdev->wiphy, wdev, mac, sinfo);	trace_rdev_return_int_station_info(&rdev->wiphy, ret, sinfo);	return ret;} static inline int rdev_dump_station(struct cfg80211_registered_device *rdev,				    struct wireless_dev *wdev, int idx, u8 *mac,				    struct station_info *sinfo){	int ret;	trace_rdev_dump_station(&rdev->wiphy, wdev, idx, mac);	ret = rdev->ops->dump_station(&rdev->wiphy, wdev, idx, mac, sinfo);	trace_rdev_return_int_station_info(&rdev->wiphy, ret, sinfo);	return ret;} static inline int rdev_add_mpath(struct cfg80211_registered_device *rdev,				 struct net_device *dev, u8 *dst, u8 *next_hop){	int ret;	trace_rdev_add_mpath(&rdev->wiphy, dev, dst, next_hop);	ret = rdev->ops->add_mpath(&rdev->wiphy, dev, dst, next_hop);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_del_mpath(struct cfg80211_registered_device *rdev,				 struct net_device *dev, u8 *dst){	int ret;	trace_rdev_del_mpath(&rdev->wiphy, dev, dst);	ret = rdev->ops->del_mpath(&rdev->wiphy, dev, dst);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_change_mpath(struct cfg80211_registered_device *rdev,				    struct net_device *dev, u8 *dst,				    u8 *next_hop){	int ret;	trace_rdev_change_mpath(&rdev->wiphy, dev, dst, next_hop);	ret = rdev->ops->change_mpath(&rdev->wiphy, dev, dst, next_hop);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_get_mpath(struct cfg80211_registered_device *rdev,				 struct net_device *dev, u8 *dst, u8 *next_hop,				 struct mpath_info *pinfo){	int ret;	trace_rdev_get_mpath(&rdev->wiphy, dev, dst, next_hop);	ret = rdev->ops->get_mpath(&rdev->wiphy, dev, dst, next_hop, pinfo);	trace_rdev_return_int_mpath_info(&rdev->wiphy, ret, pinfo);	return ret; } static inline int rdev_get_mpp(struct cfg80211_registered_device *rdev,			       struct net_device *dev, u8 *dst, u8 *mpp,			       struct mpath_info *pinfo){	int ret; 	trace_rdev_get_mpp(&rdev->wiphy, dev, dst, mpp);	ret = rdev->ops->get_mpp(&rdev->wiphy, dev, dst, mpp, pinfo);	trace_rdev_return_int_mpath_info(&rdev->wiphy, ret, pinfo);	return ret;} static inline int rdev_dump_mpath(struct cfg80211_registered_device *rdev,				  struct net_device *dev, int idx, u8 *dst,				  u8 *next_hop, struct mpath_info *pinfo) {	int ret;	trace_rdev_dump_mpath(&rdev->wiphy, dev, idx, dst, next_hop);	ret = rdev->ops->dump_mpath(&rdev->wiphy, dev, idx, dst, next_hop,				    pinfo);	trace_rdev_return_int_mpath_info(&rdev->wiphy, ret, pinfo);	return ret;} static inline int rdev_dump_mpp(struct cfg80211_registered_device *rdev,				struct net_device *dev, int idx, u8 *dst,				u8 *mpp, struct mpath_info *pinfo) {	int ret; 	trace_rdev_dump_mpp(&rdev->wiphy, dev, idx, dst, mpp);	ret = rdev->ops->dump_mpp(&rdev->wiphy, dev, idx, dst, mpp, pinfo);	trace_rdev_return_int_mpath_info(&rdev->wiphy, ret, pinfo);	return ret;} static inline intrdev_get_mesh_config(struct cfg80211_registered_device *rdev,		     struct net_device *dev, struct mesh_config *conf){	int ret;	trace_rdev_get_mesh_config(&rdev->wiphy, dev);	ret = rdev->ops->get_mesh_config(&rdev->wiphy, dev, conf);	trace_rdev_return_int_mesh_config(&rdev->wiphy, ret, conf);	return ret;} static inline intrdev_update_mesh_config(struct cfg80211_registered_device *rdev,			struct net_device *dev, u32 mask,			const struct mesh_config *nconf){	int ret;	trace_rdev_update_mesh_config(&rdev->wiphy, dev, mask, nconf);	ret = rdev->ops->update_mesh_config(&rdev->wiphy, dev, mask, nconf);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_join_mesh(struct cfg80211_registered_device *rdev,				 struct net_device *dev,				 const struct mesh_config *conf,				 const struct mesh_setup *setup){	int ret;	trace_rdev_join_mesh(&rdev->wiphy, dev, conf, setup);	ret = rdev->ops->join_mesh(&rdev->wiphy, dev, conf, setup);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;}  static inline int rdev_leave_mesh(struct cfg80211_registered_device *rdev,				  struct net_device *dev){	int ret;	trace_rdev_leave_mesh(&rdev->wiphy, dev);	ret = rdev->ops->leave_mesh(&rdev->wiphy, dev);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_join_ocb(struct cfg80211_registered_device *rdev,				struct net_device *dev,				struct ocb_setup *setup){	int ret;	trace_rdev_join_ocb(&rdev->wiphy, dev, setup);	ret = rdev->ops->join_ocb(&rdev->wiphy, dev, setup);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_leave_ocb(struct cfg80211_registered_device *rdev,				 struct net_device *dev){	int ret;	trace_rdev_leave_ocb(&rdev->wiphy, dev);	ret = rdev->ops->leave_ocb(&rdev->wiphy, dev);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_change_bss(struct cfg80211_registered_device *rdev,				  struct net_device *dev,				  struct bss_parameters *params) {	int ret;	trace_rdev_change_bss(&rdev->wiphy, dev, params);	ret = rdev->ops->change_bss(&rdev->wiphy, dev, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline void rdev_inform_bss(struct cfg80211_registered_device *rdev,				   struct cfg80211_bss *bss,				   const struct cfg80211_bss_ies *ies,				   void *drv_data) {	trace_rdev_inform_bss(&rdev->wiphy, bss);	if (rdev->ops->inform_bss)		rdev->ops->inform_bss(&rdev->wiphy, bss, ies, drv_data);	trace_rdev_return_void(&rdev->wiphy);} static inline int rdev_set_txq_params(struct cfg80211_registered_device *rdev,				      struct net_device *dev,				      struct ieee80211_txq_params *params) {	int ret;	trace_rdev_set_txq_params(&rdev->wiphy, dev, params);	ret = rdev->ops->set_txq_params(&rdev->wiphy, dev, params);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_libertas_set_mesh_channel(struct cfg80211_registered_device *rdev,			       struct net_device *dev,			       struct ieee80211_channel *chan){	int ret;	trace_rdev_libertas_set_mesh_channel(&rdev->wiphy, dev, chan);	ret = rdev->ops->libertas_set_mesh_channel(&rdev->wiphy, dev, chan);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline intrdev_set_monitor_channel(struct cfg80211_registered_device *rdev,			 struct net_device *dev,			 struct cfg80211_chan_def *chandef){	int ret;	trace_rdev_set_monitor_channel(&rdev->wiphy, dev, chandef);	ret = rdev->ops->set_monitor_channel(&rdev->wiphy, dev, chandef);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_scan(struct cfg80211_registered_device *rdev,			    struct cfg80211_scan_request_int *request){	int ret; 	if (WARN_ON_ONCE(!request->req.n_ssids && request->req.ssids))		return -EINVAL; 	trace_rdev_scan(&rdev->wiphy, request);	ret = rdev->ops->scan(&rdev->wiphy, &request->req);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline void rdev_abort_scan(struct cfg80211_registered_device *rdev,				   struct wireless_dev *wdev){	trace_rdev_abort_scan(&rdev->wiphy, wdev);	rdev->ops->abort_scan(&rdev->wiphy, wdev);	trace_rdev_return_void(&rdev->wiphy);} static inline int rdev_auth(struct cfg80211_registered_device *rdev,			    struct net_device *dev,			    struct cfg80211_auth_request *req){	int ret;	trace_rdev_auth(&rdev->wiphy, dev, req);	ret = rdev->ops->auth(&rdev->wiphy, dev, req);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;} static inline int rdev_assoc(struct cfg80211_registered_device *rdev,			     struct net_device *dev,			     struct cfg80211_assoc_request *req){	int ret; 	trace_rdev_assoc(&rdev->wiphy, dev, req);	ret = rdev->ops->assoc(&rdev->wiphy, dev, req);	trace_rdev_return_int(&rdev->wiphy, ret);	return ret;

Lines 1–500 of 1639.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t