blob: aa192a6703048487c92b0bbd496bf3359403edc9 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Johannes Berg295f4a12007-04-26 20:43:56 -07002#ifndef __NET_WEXT_H
3#define __NET_WEXT_H
4
Johannes Berg3d23e342009-09-29 23:27:28 +02005#include <net/iw_handler.h>
Johannes Berg295f4a12007-04-26 20:43:56 -07006
Eric W. Biederman881d9662007-09-17 11:56:21 -07007struct net;
8
Johannes Berg3d23e342009-09-29 23:27:28 +02009#ifdef CONFIG_WEXT_CORE
Al Virob1b0c242017-10-01 20:13:08 -040010int wext_handle_ioctl(struct net *net, unsigned int cmd,
Joe Perches9e4638c2013-09-23 11:33:42 -070011 void __user *arg);
12int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
13 unsigned long arg);
Johannes Berg3d23e342009-09-29 23:27:28 +020014
Joe Perches9e4638c2013-09-23 11:33:42 -070015struct iw_statistics *get_wireless_stats(struct net_device *dev);
16int call_commit_handler(struct net_device *dev);
Johannes Berg295f4a12007-04-26 20:43:56 -070017#else
Al Virob1b0c242017-10-01 20:13:08 -040018static inline int wext_handle_ioctl(struct net *net, unsigned int cmd,
Johannes Berg295f4a12007-04-26 20:43:56 -070019 void __user *arg)
20{
21 return -EINVAL;
22}
David S. Miller87de87d2008-06-03 09:14:03 -070023static inline int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
24 unsigned long arg)
25{
26 return -EINVAL;
27}
Johannes Berg295f4a12007-04-26 20:43:56 -070028#endif
29
Johannes Berg3d23e342009-09-29 23:27:28 +020030#ifdef CONFIG_WEXT_PROC
Joe Perches9e4638c2013-09-23 11:33:42 -070031int wext_proc_init(struct net *net);
32void wext_proc_exit(struct net *net);
Johannes Berg3d23e342009-09-29 23:27:28 +020033#else
34static inline int wext_proc_init(struct net *net)
35{
36 return 0;
37}
38static inline void wext_proc_exit(struct net *net)
39{
40 return;
41}
42#endif
43
44#ifdef CONFIG_WEXT_PRIV
45int ioctl_private_call(struct net_device *dev, struct iwreq *iwr,
46 unsigned int cmd, struct iw_request_info *info,
47 iw_handler handler);
48int compat_private_call(struct net_device *dev, struct iwreq *iwr,
49 unsigned int cmd, struct iw_request_info *info,
50 iw_handler handler);
51int iw_handler_get_private(struct net_device * dev,
52 struct iw_request_info * info,
53 union iwreq_data * wrqu,
54 char * extra);
55#else
56#define ioctl_private_call NULL
57#define compat_private_call NULL
58#endif
59
60
Johannes Berg295f4a12007-04-26 20:43:56 -070061#endif /* __NET_WEXT_H */