linux/net/wireless/core.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * This is the linux wireless configuration interface.
 *
 * Copyright 2006-2010		Johannes Berg <[email protected]>
 * Copyright 2013-2014  Intel Mobile Communications GmbH
 * Copyright 2015-2017	Intel Deutschland GmbH
 * Copyright (C) 2018-2024 Intel Corporation
 */

#define pr_fmt(fmt)

#include <linux/if.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/nl80211.h>
#include <linux/debugfs.h>
#include <linux/notifier.h>
#include <linux/device.h>
#include <linux/etherdevice.h>
#include <linux/rtnetlink.h>
#include <linux/sched.h>
#include <net/genetlink.h>
#include <net/cfg80211.h>
#include "nl80211.h"
#include "core.h"
#include "sysfs.h"
#include "debugfs.h"
#include "wext-compat.h"
#include "rdev-ops.h"

/* name for sysfs, %d is appended */
#define PHY_NAME

MODULE_AUTHOR();
MODULE_LICENSE();
MODULE_DESCRIPTION();
MODULE_ALIAS_GENL_FAMILY();

/* RCU-protected (and RTNL for writers) */
LIST_HEAD();
int cfg80211_rdev_list_generation;

/* for debugfs */
static struct dentry *ieee80211_debugfs_dir;

/* for the cleanup, scan and event works */
struct workqueue_struct *cfg80211_wq;

static bool cfg80211_disable_40mhz_24ghz;
module_param(cfg80211_disable_40mhz_24ghz, bool, 0644);
MODULE_PARM_DESC();

struct cfg80211_registered_device *cfg80211_rdev_by_wiphy_idx(int wiphy_idx)
{}

int get_wiphy_idx(struct wiphy *wiphy)
{}

struct wiphy *wiphy_idx_to_wiphy(int wiphy_idx)
{}

static int cfg80211_dev_check_name(struct cfg80211_registered_device *rdev,
				   const char *newname)
{}

int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
			char *newname)
{}

int cfg80211_switch_netns(struct cfg80211_registered_device *rdev,
			  struct net *net)
{}

static void cfg80211_rfkill_poll(struct rfkill *rfkill, void *data)
{}

void cfg80211_stop_p2p_device(struct cfg80211_registered_device *rdev,
			      struct wireless_dev *wdev)
{}

void cfg80211_stop_nan(struct cfg80211_registered_device *rdev,
		       struct wireless_dev *wdev)
{}

void cfg80211_shutdown_all_interfaces(struct wiphy *wiphy)
{}
EXPORT_SYMBOL_GPL();

static int cfg80211_rfkill_set_block(void *data, bool blocked)
{}

static void cfg80211_rfkill_block_work(struct work_struct *work)
{}

static void cfg80211_event_work(struct work_struct *work)
{}

void cfg80211_destroy_ifaces(struct cfg80211_registered_device *rdev)
{}

static void cfg80211_destroy_iface_wk(struct work_struct *work)
{}

static void cfg80211_sched_scan_stop_wk(struct wiphy *wiphy,
					struct wiphy_work *work)
{}

static void cfg80211_propagate_radar_detect_wk(struct work_struct *work)
{}

static void cfg80211_propagate_cac_done_wk(struct work_struct *work)
{}

static void cfg80211_wiphy_work(struct work_struct *work)
{}

/* exported functions */

struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv,
			   const char *requested_name)
{}
EXPORT_SYMBOL();

static int wiphy_verify_combinations(struct wiphy *wiphy)
{}

int wiphy_register(struct wiphy *wiphy)
{}
EXPORT_SYMBOL();

void wiphy_rfkill_start_polling(struct wiphy *wiphy)
{}
EXPORT_SYMBOL();

void cfg80211_process_wiphy_works(struct cfg80211_registered_device *rdev,
				  struct wiphy_work *end)
{}

void wiphy_unregister(struct wiphy *wiphy)
{}
EXPORT_SYMBOL();

void cfg80211_dev_free(struct cfg80211_registered_device *rdev)
{}

void wiphy_free(struct wiphy *wiphy)
{}
EXPORT_SYMBOL();

void wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked,
				      enum rfkill_hard_block_reasons reason)
{}
EXPORT_SYMBOL();

static void _cfg80211_unregister_wdev(struct wireless_dev *wdev,
				      bool unregister_netdev)
{}

void cfg80211_unregister_wdev(struct wireless_dev *wdev)
{}
EXPORT_SYMBOL();

static const struct device_type wiphy_type =;

void cfg80211_update_iface_num(struct cfg80211_registered_device *rdev,
			       enum nl80211_iftype iftype, int num)
{}

void cfg80211_leave(struct cfg80211_registered_device *rdev,
		    struct wireless_dev *wdev)
{}

void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev,
			 gfp_t gfp)
{}
EXPORT_SYMBOL();

void cfg80211_init_wdev(struct wireless_dev *wdev)
{}

void cfg80211_register_wdev(struct cfg80211_registered_device *rdev,
			    struct wireless_dev *wdev)
{}

int cfg80211_register_netdevice(struct net_device *dev)
{}
EXPORT_SYMBOL();

static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
					 unsigned long state, void *ptr)
{}

static struct notifier_block cfg80211_netdev_notifier =;

static void __net_exit cfg80211_pernet_exit(struct net *net)
{}

static struct pernet_operations cfg80211_pernet_ops =;

void wiphy_work_queue(struct wiphy *wiphy, struct wiphy_work *work)
{}
EXPORT_SYMBOL_GPL();

void wiphy_work_cancel(struct wiphy *wiphy, struct wiphy_work *work)
{}
EXPORT_SYMBOL_GPL();

void wiphy_work_flush(struct wiphy *wiphy, struct wiphy_work *work)
{}
EXPORT_SYMBOL_GPL();

void wiphy_delayed_work_timer(struct timer_list *t)
{}
EXPORT_SYMBOL();

void wiphy_delayed_work_queue(struct wiphy *wiphy,
			      struct wiphy_delayed_work *dwork,
			      unsigned long delay)
{}
EXPORT_SYMBOL_GPL();

void wiphy_delayed_work_cancel(struct wiphy *wiphy,
			       struct wiphy_delayed_work *dwork)
{}
EXPORT_SYMBOL_GPL();

void wiphy_delayed_work_flush(struct wiphy *wiphy,
			      struct wiphy_delayed_work *dwork)
{}
EXPORT_SYMBOL_GPL();

static int __init cfg80211_init(void)
{}
fs_initcall(cfg80211_init);

static void __exit cfg80211_exit(void)
{}
module_exit(cfg80211_exit);