Linux Kernel
3.7.1
|
#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 "ethtool.h"
Go to the source code of this file.
Macros | |
#define | pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
#define | PHY_NAME "phy" |
Variables | |
int | cfg80211_rdev_list_generation |
struct workqueue_struct * | cfg80211_wq |
void cfg80211_dev_free | ( | struct cfg80211_registered_device * | rdev | ) |
int cfg80211_dev_rename | ( | struct cfg80211_registered_device * | rdev, |
char * | newname | ||
) |
|
read |
|
read |
int cfg80211_switch_netns | ( | struct cfg80211_registered_device * | rdev, |
struct net * | net | ||
) |
void cfg80211_unregister_wdev | ( | struct wireless_dev * | wdev | ) |
cfg80211_unregister_wdev - remove the given wdev : struct wireless_dev to remove
Call this function only for wdevs that have no netdev assigned, e.g. P2P Devices. It removes the device from the list so that it can no longer be used. It is necessary to call this function even when cfg80211 requests the removal of the interface by calling the del_virtual_intf() callback. The function must also be called when the driver wishes to unregister the wdev, e.g. when the device is unbound from the driver.
Requires the RTNL to be held.
void cfg80211_update_iface_num | ( | struct cfg80211_registered_device * | rdev, |
enum nl80211_iftype | iftype, | ||
int | num | ||
) |
DEFINE_MUTEX | ( | cfg80211_mutex | ) |
EXPORT_SYMBOL | ( | wiphy_new | ) |
EXPORT_SYMBOL | ( | wiphy_register | ) |
EXPORT_SYMBOL | ( | wiphy_rfkill_start_polling | ) |
EXPORT_SYMBOL | ( | wiphy_rfkill_stop_polling | ) |
EXPORT_SYMBOL | ( | wiphy_unregister | ) |
EXPORT_SYMBOL | ( | wiphy_free | ) |
EXPORT_SYMBOL | ( | wiphy_rfkill_set_hw_state | ) |
EXPORT_SYMBOL | ( | cfg80211_unregister_wdev | ) |
LIST_HEAD | ( | cfg80211_rdev_list | ) |
MODULE_AUTHOR | ( | "Johannes Berg" | ) |
MODULE_DESCRIPTION | ( | "wireless configuration support" | ) |
module_exit | ( | cfg80211_exit | ) |
MODULE_LICENSE | ( | "GPL" | ) |
module_param | ( | cfg80211_disable_40mhz_24ghz | , |
bool | , | ||
0644 | |||
) |
MODULE_PARM_DESC | ( | cfg80211_disable_40mhz_24ghz | , |
"Disable 40MHz support in the 2.4GHz band" | |||
) |
subsys_initcall | ( | cfg80211_init | ) |
wiphy_new - create a new wiphy for use with cfg80211
: The configuration operations for this device : The size of the private area to allocate
Create a new wiphy and associate the given operations with it. bytes are allocated for private use.
The returned pointer must be assigned to each netdev's ieee80211_ptr for proper operation.
DOC: RFkill integration
RFkill integration in cfg80211 is almost invisible to drivers, as cfg80211 automatically registers an rfkill instance for each wireless device it knows about. Soft kill is also translated into disconnecting and turning all interfaces off, drivers are expected to turn off the device when all interfaces are down.
However, devices may have a hard RFkill line, in which case they also need to interact with the rfkill subsystem, via cfg80211. They can do this with a few helper functions documented here. wiphy_rfkill_set_hw_state - notify cfg80211 about hw block state : the wiphy : block status
struct workqueue_struct* cfg80211_wq |