diff options
author | Arnd Bergmann <arnd@arndb.de> | 2009-11-08 23:57:03 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-08 23:57:03 -0500 |
commit | 7a50a240c495478179f01c9df4bd75e39cff79c7 (patch) | |
tree | 729ac5edbcf93dd4ddc502925b7fe4357a004098 /include/linux/compat.h | |
parent | fab2532ba50b287647d95046c4f3b37bf6379d37 (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.h | 41 |
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 | ||
168 | struct 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 | |||
168 | struct compat_ifreq { | 175 | struct 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 | ||
189 | struct compat_ifconf { | 196 | struct compat_ifconf { |