#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/rtnetlink.h>
#include <linux/slab.h>
#include <linux/wireless.h>
#include <linux/uaccess.h>
#include <linux/export.h>
#include <net/cfg80211.h>
#include <net/iw_handler.h>
#include <net/netlink.h>
#include <net/wext.h>
#include <net/net_namespace.h>
wext_ioctl_func;
static const struct iw_ioctl_description standard_ioctl[] = …;
static const unsigned int standard_ioctl_num = …;
static const struct iw_ioctl_description standard_event[] = …;
static const unsigned int standard_event_num = …;
static const int event_type_size[] = …;
#ifdef CONFIG_COMPAT
static const int compat_event_type_size[] = …;
#endif
void wireless_nlevent_flush(void)
{ … }
EXPORT_SYMBOL_GPL(…);
static int wext_netdev_notifier_call(struct notifier_block *nb,
unsigned long state, void *ptr)
{ … }
static struct notifier_block wext_netdev_notifier = …;
static int __net_init wext_pernet_init(struct net *net)
{ … }
static void __net_exit wext_pernet_exit(struct net *net)
{ … }
static struct pernet_operations wext_pernet_ops = …;
static int __init wireless_nlevent_init(void)
{ … }
subsys_initcall(wireless_nlevent_init);
static void wireless_nlevent_process(struct work_struct *work)
{ … }
static DECLARE_WORK(wireless_nlevent_work, wireless_nlevent_process);
static struct nlmsghdr *rtnetlink_ifinfo_prep(struct net_device *dev,
struct sk_buff *skb)
{ … }
void wireless_send_event(struct net_device * dev,
unsigned int cmd,
union iwreq_data * wrqu,
const char * extra)
{ … }
EXPORT_SYMBOL(…);
#ifdef CONFIG_CFG80211_WEXT
static void wireless_warn_cfg80211_wext(void)
{ … }
#endif
struct iw_statistics *get_wireless_stats(struct net_device *dev)
{ … }
static noinline int iw_handler_get_iwstats(struct net_device * dev,
struct iw_request_info * info,
union iwreq_data * wrqu,
char * extra)
{ … }
static iw_handler get_handler(struct net_device *dev, unsigned int cmd)
{ … }
static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
const struct iw_ioctl_description *descr,
iw_handler handler, struct net_device *dev,
struct iw_request_info *info)
{ … }
int call_commit_handler(struct net_device *dev)
{ … }
static int wireless_process_ioctl(struct net *net, struct iwreq *iwr,
unsigned int cmd,
struct iw_request_info *info,
wext_ioctl_func standard,
wext_ioctl_func private)
{ … }
static int wext_permission_check(unsigned int cmd)
{ … }
static int wext_ioctl_dispatch(struct net *net, struct iwreq *iwr,
unsigned int cmd, struct iw_request_info *info,
wext_ioctl_func standard,
wext_ioctl_func private)
{ … }
static int ioctl_standard_call(struct net_device * dev,
struct iwreq *iwr,
unsigned int cmd,
struct iw_request_info *info,
iw_handler handler)
{ … }
int wext_handle_ioctl(struct net *net, unsigned int cmd, void __user *arg)
{ … }
#ifdef CONFIG_COMPAT
static int compat_standard_call(struct net_device *dev,
struct iwreq *iwr,
unsigned int cmd,
struct iw_request_info *info,
iw_handler handler)
{ … }
int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
unsigned long arg)
{ … }
#endif
char *iwe_stream_add_event(struct iw_request_info *info, char *stream,
char *ends, struct iw_event *iwe, int event_len)
{ … }
EXPORT_SYMBOL(…);
char *iwe_stream_add_point(struct iw_request_info *info, char *stream,
char *ends, struct iw_event *iwe, char *extra)
{ … }
EXPORT_SYMBOL(…);
char *iwe_stream_add_value(struct iw_request_info *info, char *event,
char *value, char *ends, struct iw_event *iwe,
int event_len)
{ … }
EXPORT_SYMBOL(…);