net/compat_ioctl: support SIOCWANDEV
[firefly-linux-kernel-4.4.55.git] / include / linux / compat.h
index af931ee43dd8e43454b9cd9d389ec0bd5b1a7b21..ef68119a4fd2ffd28444dba7ca97d551ab563222 100644 (file)
@@ -10,6 +10,8 @@
 #include <linux/stat.h>
 #include <linux/param.h>       /* for HZ */
 #include <linux/sem.h>
+#include <linux/socket.h>
+#include <linux/if.h>
 
 #include <asm/compat.h>
 #include <asm/siginfo.h>
@@ -154,6 +156,48 @@ typedef struct compat_sigevent {
        } _sigev_un;
 } compat_sigevent_t;
 
+struct compat_ifmap {
+       compat_ulong_t mem_start;
+       compat_ulong_t mem_end;
+       unsigned short base_addr;
+       unsigned char irq;
+       unsigned char dma;
+       unsigned char port;
+};
+
+struct compat_if_settings
+{
+       unsigned int type;      /* Type of physical device or protocol */
+       unsigned int size;      /* Size of the data allocated by the caller */
+       compat_uptr_t ifs_ifsu; /* union of pointers */
+};
+
+struct compat_ifreq {
+       union {
+               char    ifrn_name[IFNAMSIZ];    /* if name, e.g. "en0" */
+       } ifr_ifrn;
+       union {
+               struct  sockaddr ifru_addr;
+               struct  sockaddr ifru_dstaddr;
+               struct  sockaddr ifru_broadaddr;
+               struct  sockaddr ifru_netmask;
+               struct  sockaddr ifru_hwaddr;
+               short   ifru_flags;
+               compat_int_t    ifru_ivalue;
+               compat_int_t    ifru_mtu;
+               struct  compat_ifmap ifru_map;
+               char    ifru_slave[IFNAMSIZ];   /* Just fits the size */
+               char    ifru_newname[IFNAMSIZ];
+               compat_caddr_t  ifru_data;
+               struct  compat_if_settings ifru_settings;
+       } ifr_ifru;
+};
+
+struct compat_ifconf {
+        compat_int_t   ifc_len;                        /* size of buffer       */
+        compat_caddr_t  ifcbuf;
+};
+
 struct compat_robust_list {
        compat_uptr_t                   next;
 };