#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)
{ … }
static inline int rdev_resume(struct cfg80211_registered_device *rdev)
{ … }
static inline void rdev_set_wakeup(struct cfg80211_registered_device *rdev,
bool enabled)
{ … }
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)
{ … }
static inline int
rdev_del_virtual_intf(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline int
rdev_change_virtual_intf(struct cfg80211_registered_device *rdev,
struct net_device *dev, enum nl80211_iftype type,
struct vif_params *params)
{ … }
static inline int rdev_add_key(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int link_id,
u8 key_index, bool pairwise, const u8 *mac_addr,
struct key_params *params)
{ … }
static inline int
rdev_get_key(struct cfg80211_registered_device *rdev, struct net_device *netdev,
int link_id, u8 key_index, bool pairwise, const u8 *mac_addr,
void *cookie,
void (*callback)(void *cookie, struct key_params*))
{ … }
static inline int rdev_del_key(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int link_id,
u8 key_index, bool pairwise, const u8 *mac_addr)
{ … }
static inline int
rdev_set_default_key(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int link_id, u8 key_index,
bool unicast, bool multicast)
{ … }
static inline int
rdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int link_id, u8 key_index)
{ … }
static inline int
rdev_set_default_beacon_key(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int link_id,
u8 key_index)
{ … }
static inline int rdev_start_ap(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_ap_settings *settings)
{ … }
static inline int rdev_change_beacon(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_ap_update *info)
{ … }
static inline int rdev_stop_ap(struct cfg80211_registered_device *rdev,
struct net_device *dev, unsigned int link_id)
{ … }
static inline int rdev_add_station(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *mac,
struct station_parameters *params)
{ … }
static inline int rdev_del_station(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct station_del_parameters *params)
{ … }
static inline int rdev_change_station(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *mac,
struct station_parameters *params)
{ … }
static inline int rdev_get_station(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *mac,
struct station_info *sinfo)
{ … }
static inline int rdev_dump_station(struct cfg80211_registered_device *rdev,
struct net_device *dev, int idx, u8 *mac,
struct station_info *sinfo)
{ … }
static inline int rdev_add_mpath(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *dst, u8 *next_hop)
{ … }
static inline int rdev_del_mpath(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *dst)
{ … }
static inline int rdev_change_mpath(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *dst,
u8 *next_hop)
{ … }
static inline int rdev_get_mpath(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *dst, u8 *next_hop,
struct mpath_info *pinfo)
{ … }
static inline int rdev_get_mpp(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *dst, u8 *mpp,
struct mpath_info *pinfo)
{ … }
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)
{ … }
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)
{ … }
static inline int
rdev_get_mesh_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, struct mesh_config *conf)
{ … }
static inline int
rdev_update_mesh_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, u32 mask,
const struct mesh_config *nconf)
{ … }
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)
{ … }
static inline int rdev_leave_mesh(struct cfg80211_registered_device *rdev,
struct net_device *dev)
{ … }
static inline int rdev_join_ocb(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct ocb_setup *setup)
{ … }
static inline int rdev_leave_ocb(struct cfg80211_registered_device *rdev,
struct net_device *dev)
{ … }
static inline int rdev_change_bss(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct bss_parameters *params)
{ … }
static inline void rdev_inform_bss(struct cfg80211_registered_device *rdev,
struct cfg80211_bss *bss,
const struct cfg80211_bss_ies *ies,
void *drv_data)
{ … }
static inline int rdev_set_txq_params(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct ieee80211_txq_params *params)
{ … }
static inline int
rdev_libertas_set_mesh_channel(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct ieee80211_channel *chan)
{ … }
static inline int
rdev_set_monitor_channel(struct cfg80211_registered_device *rdev,
struct cfg80211_chan_def *chandef)
{ … }
static inline int rdev_scan(struct cfg80211_registered_device *rdev,
struct cfg80211_scan_request *request)
{ … }
static inline void rdev_abort_scan(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline int rdev_auth(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_auth_request *req)
{ … }
static inline int rdev_assoc(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_assoc_request *req)
{ … }
static inline int rdev_deauth(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_deauth_request *req)
{ … }
static inline int rdev_disassoc(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_disassoc_request *req)
{ … }
static inline int rdev_connect(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_connect_params *sme)
{ … }
static inline int
rdev_update_connect_params(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_connect_params *sme, u32 changed)
{ … }
static inline int rdev_disconnect(struct cfg80211_registered_device *rdev,
struct net_device *dev, u16 reason_code)
{ … }
static inline int rdev_join_ibss(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_ibss_params *params)
{ … }
static inline int rdev_leave_ibss(struct cfg80211_registered_device *rdev,
struct net_device *dev)
{ … }
static inline int
rdev_set_wiphy_params(struct cfg80211_registered_device *rdev, u32 changed)
{ … }
static inline int rdev_set_tx_power(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
enum nl80211_tx_power_setting type, int mbm)
{ … }
static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev, int *dbm)
{ … }
static inline int
rdev_set_multicast_to_unicast(struct cfg80211_registered_device *rdev,
struct net_device *dev,
const bool enabled)
{ … }
static inline int
rdev_get_txq_stats(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_txq_stats *txqstats)
{ … }
static inline void rdev_rfkill_poll(struct cfg80211_registered_device *rdev)
{ … }
#ifdef CONFIG_NL80211_TESTMODE
static inline int rdev_testmode_cmd(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
void *data, int len)
{ … }
static inline int rdev_testmode_dump(struct cfg80211_registered_device *rdev,
struct sk_buff *skb,
struct netlink_callback *cb, void *data,
int len)
{ … }
#endif
static inline int
rdev_set_bitrate_mask(struct cfg80211_registered_device *rdev,
struct net_device *dev, unsigned int link_id,
const u8 *peer,
const struct cfg80211_bitrate_mask *mask)
{ … }
static inline int rdev_dump_survey(struct cfg80211_registered_device *rdev,
struct net_device *netdev, int idx,
struct survey_info *info)
{ … }
static inline int rdev_set_pmksa(struct cfg80211_registered_device *rdev,
struct net_device *netdev,
struct cfg80211_pmksa *pmksa)
{ … }
static inline int rdev_del_pmksa(struct cfg80211_registered_device *rdev,
struct net_device *netdev,
struct cfg80211_pmksa *pmksa)
{ … }
static inline int rdev_flush_pmksa(struct cfg80211_registered_device *rdev,
struct net_device *netdev)
{ … }
static inline int
rdev_remain_on_channel(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct ieee80211_channel *chan,
unsigned int duration, u64 *cookie)
{ … }
static inline int
rdev_cancel_remain_on_channel(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev, u64 cookie)
{ … }
static inline int rdev_mgmt_tx(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_mgmt_tx_params *params,
u64 *cookie)
{ … }
static inline int rdev_tx_control_port(struct cfg80211_registered_device *rdev,
struct net_device *dev,
const void *buf, size_t len,
const u8 *dest, __be16 proto,
const bool noencrypt, int link,
u64 *cookie)
{ … }
static inline int
rdev_mgmt_tx_cancel_wait(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev, u64 cookie)
{ … }
static inline int rdev_set_power_mgmt(struct cfg80211_registered_device *rdev,
struct net_device *dev, bool enabled,
int timeout)
{ … }
static inline int
rdev_set_cqm_rssi_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, s32 rssi_thold, u32 rssi_hyst)
{ … }
static inline int
rdev_set_cqm_rssi_range_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, s32 low, s32 high)
{ … }
static inline int
rdev_set_cqm_txe_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, u32 rate, u32 pkts, u32 intvl)
{ … }
static inline void
rdev_update_mgmt_frame_registrations(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct mgmt_frame_regs *upd)
{ … }
static inline int rdev_set_antenna(struct cfg80211_registered_device *rdev,
u32 tx_ant, u32 rx_ant)
{ … }
static inline int rdev_get_antenna(struct cfg80211_registered_device *rdev,
u32 *tx_ant, u32 *rx_ant)
{ … }
static inline int
rdev_sched_scan_start(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_sched_scan_request *request)
{ … }
static inline int rdev_sched_scan_stop(struct cfg80211_registered_device *rdev,
struct net_device *dev, u64 reqid)
{ … }
static inline int rdev_set_rekey_data(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_gtk_rekey_data *data)
{ … }
static inline int rdev_tdls_mgmt(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *peer,
int link_id, u8 action_code,
u8 dialog_token, u16 status_code,
u32 peer_capability, bool initiator,
const u8 *buf, size_t len)
{ … }
static inline int rdev_tdls_oper(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 *peer,
enum nl80211_tdls_operation oper)
{ … }
static inline int rdev_probe_client(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *peer,
u64 *cookie)
{ … }
static inline int rdev_set_noack_map(struct cfg80211_registered_device *rdev,
struct net_device *dev, u16 noack_map)
{ … }
static inline int
rdev_get_channel(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
unsigned int link_id,
struct cfg80211_chan_def *chandef)
{ … }
static inline int rdev_start_p2p_device(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline void rdev_stop_p2p_device(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline int rdev_start_nan(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_nan_conf *conf)
{ … }
static inline void rdev_stop_nan(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline int
rdev_add_nan_func(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_nan_func *nan_func)
{ … }
static inline void rdev_del_nan_func(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev, u64 cookie)
{ … }
static inline int
rdev_nan_change_conf(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_nan_conf *conf, u32 changes)
{ … }
static inline int rdev_set_mac_acl(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_acl_data *params)
{ … }
static inline int rdev_update_ft_ies(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_update_ft_ies_params *ftie)
{ … }
static inline int rdev_crit_proto_start(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
enum nl80211_crit_proto_id protocol,
u16 duration)
{ … }
static inline void rdev_crit_proto_stop(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{ … }
static inline int rdev_channel_switch(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_csa_settings *params)
{ … }
static inline int rdev_set_qos_map(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_qos_map *qos_map)
{ … }
static inline int
rdev_set_ap_chanwidth(struct cfg80211_registered_device *rdev,
struct net_device *dev,
unsigned int link_id,
struct cfg80211_chan_def *chandef)
{ … }
static inline int
rdev_add_tx_ts(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 tsid, const u8 *peer,
u8 user_prio, u16 admitted_time)
{ … }
static inline int
rdev_del_tx_ts(struct cfg80211_registered_device *rdev,
struct net_device *dev, u8 tsid, const u8 *peer)
{ … }
static inline int
rdev_tdls_channel_switch(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *addr,
u8 oper_class, struct cfg80211_chan_def *chandef)
{ … }
static inline void
rdev_tdls_cancel_channel_switch(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *addr)
{ … }
static inline int
rdev_start_radar_detection(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_chan_def *chandef,
u32 cac_time_ms)
{ … }
static inline void
rdev_end_cac(struct cfg80211_registered_device *rdev,
struct net_device *dev)
{ … }
static inline int
rdev_set_mcast_rate(struct cfg80211_registered_device *rdev,
struct net_device *dev,
int mcast_rate[NUM_NL80211_BANDS])
{ … }
static inline int
rdev_set_coalesce(struct cfg80211_registered_device *rdev,
struct cfg80211_coalesce *coalesce)
{ … }
static inline int rdev_set_pmk(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_pmk_conf *pmk_conf)
{ … }
static inline int rdev_del_pmk(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *aa)
{ … }
static inline int
rdev_external_auth(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_external_auth_params *params)
{ … }
static inline int
rdev_get_ftm_responder_stats(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_ftm_responder_stats *ftm_stats)
{ … }
static inline int
rdev_start_pmsr(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_pmsr_request *request)
{ … }
static inline void
rdev_abort_pmsr(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
struct cfg80211_pmsr_request *request)
{ … }
static inline int rdev_update_owe_info(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_update_owe_info *oweinfo)
{ … }
static inline int
rdev_probe_mesh_link(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *dest,
const void *buf, size_t len)
{ … }
static inline int rdev_set_tid_config(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_tid_config *tid_conf)
{ … }
static inline int rdev_reset_tid_config(struct cfg80211_registered_device *rdev,
struct net_device *dev, const u8 *peer,
u8 tids)
{ … }
static inline int rdev_set_sar_specs(struct cfg80211_registered_device *rdev,
struct cfg80211_sar_specs *sar)
{ … }
static inline int rdev_color_change(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_color_change_settings *params)
{ … }
static inline int
rdev_set_fils_aad(struct cfg80211_registered_device *rdev,
struct net_device *dev, struct cfg80211_fils_aad *fils_aad)
{ … }
static inline int
rdev_set_radar_background(struct cfg80211_registered_device *rdev,
struct cfg80211_chan_def *chandef)
{ … }
static inline int
rdev_add_intf_link(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
unsigned int link_id)
{ … }
static inline void
rdev_del_intf_link(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev,
unsigned int link_id)
{ … }
static inline int
rdev_add_link_station(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct link_station_parameters *params)
{ … }
static inline int
rdev_mod_link_station(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct link_station_parameters *params)
{ … }
static inline int
rdev_del_link_station(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct link_station_del_parameters *params)
{ … }
static inline int
rdev_set_hw_timestamp(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_set_hw_timestamp *hwts)
{ … }
static inline int
rdev_set_ttlm(struct cfg80211_registered_device *rdev,
struct net_device *dev,
struct cfg80211_ttlm_params *params)
{ … }
static inline u32
rdev_get_radio_mask(struct cfg80211_registered_device *rdev,
struct net_device *dev)
{ … }
#endif