aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/compat.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2009-11-08 23:57:03 -0500
committerDavid S. Miller <davem@davemloft.net>2009-11-08 23:57:03 -0500
commit7a50a240c495478179f01c9df4bd75e39cff79c7 (patch)
tree729ac5edbcf93dd4ddc502925b7fe4357a004098 /include/linux/compat.h
parentfab2532ba50b287647d95046c4f3b37bf6379d37 (diff)
net/compat_ioctl: support SIOCWANDEV
This adds compat_ioctl support for SIOCWANDEV, which has always been missing. The definition of struct compat_ifreq was missing an ifru_settings fields that is needed to support SIOCWANDEV, so add that and clean up the whitespace damage in the struct definition. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/compat.h')
-rw-r--r--include/linux/compat.h41
1 files changed, 24 insertions, 17 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h
index 224c7a896172..ef68119a4fd2 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -165,25 +165,32 @@ struct compat_ifmap {
165 unsigned char port; 165 unsigned char port;
166}; 166};
167 167
168struct compat_if_settings
169{
170 unsigned int type; /* Type of physical device or protocol */
171 unsigned int size; /* Size of the data allocated by the caller */
172 compat_uptr_t ifs_ifsu; /* union of pointers */
173};
174
168struct compat_ifreq { 175struct compat_ifreq {
169 union { 176 union {
170 char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */ 177 char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */
171 } ifr_ifrn; 178 } ifr_ifrn;
172 union { 179 union {
173 struct sockaddr ifru_addr; 180 struct sockaddr ifru_addr;
174 struct sockaddr ifru_dstaddr; 181 struct sockaddr ifru_dstaddr;
175 struct sockaddr ifru_broadaddr; 182 struct sockaddr ifru_broadaddr;
176 struct sockaddr ifru_netmask; 183 struct sockaddr ifru_netmask;
177 struct sockaddr ifru_hwaddr; 184 struct sockaddr ifru_hwaddr;
178 short ifru_flags; 185 short ifru_flags;
179 compat_int_t ifru_ivalue; 186 compat_int_t ifru_ivalue;
180 compat_int_t ifru_mtu; 187 compat_int_t ifru_mtu;
181 struct compat_ifmap ifru_map; 188 struct compat_ifmap ifru_map;
182 char ifru_slave[IFNAMSIZ]; /* Just fits the size */ 189 char ifru_slave[IFNAMSIZ]; /* Just fits the size */
183 char ifru_newname[IFNAMSIZ]; 190 char ifru_newname[IFNAMSIZ];
184 compat_caddr_t ifru_data; 191 compat_caddr_t ifru_data;
185 /* XXXX? ifru_settings should be here */ 192 struct compat_if_settings ifru_settings;
186 } ifr_ifru; 193 } ifr_ifru;
187}; 194};
188 195
189struct compat_ifconf { 196struct compat_ifconf {