diff --git a/sys/compat/linux/linux_ioctl.h b/sys/compat/linux/linux_ioctl.h --- a/sys/compat/linux/linux_ioctl.h +++ b/sys/compat/linux/linux_ioctl.h @@ -237,6 +237,8 @@ #define LINUX_SIOCGIFBRDADDR 0x8919 #define LINUX_SIOCGIFNETMASK 0x891b #define LINUX_SIOCSIFNETMASK 0x891c +#define LINUX_SIOCGIFMETRIC 0x891d +#define LINUX_SIOCSIFMETRIC 0x891e #define LINUX_SIOCGIFMTU 0x8921 #define LINUX_SIOCSIFMTU 0x8922 #define LINUX_SIOCSIFNAME 0x8923 @@ -247,9 +249,10 @@ #define LINUX_SIOCGIFINDEX 0x8933 #define LINUX_SIOGIFINDEX LINUX_SIOCGIFINDEX #define LINUX_SIOCGIFCOUNT 0x8938 +#define LINUX_SIOCSIWCTL 0x8951 #define LINUX_IOCTL_SOCKET_MIN LINUX_FIOSETOWN -#define LINUX_IOCTL_SOCKET_MAX LINUX_SIOCGIFCOUNT +#define LINUX_IOCTL_SOCKET_MAX LINUX_SIOCSIWCTL /* * Device private ioctl calls diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c --- a/sys/compat/linux/linux_ioctl.c +++ b/sys/compat/linux/linux_ioctl.c @@ -2270,6 +2270,12 @@ case LINUX_SIOCGIFHWADDR: cmd = SIOCGHWADDR; break; + case LINUX_SIOCGIFMETRIC: + cmd = SIOCGIFMETRIC; + break; + case LINUX_SIOCSIFMETRIC: + cmd = SIOCSIFMETRIC; + break; /* * XXX This is slightly bogus, but these ioctls are currently * XXX only used by the aironet (if_an) network driver. @@ -2281,6 +2287,8 @@ cmd = SIOCGPRIVATE_1; break; default: + linux_msg(td, "%s cmd=0x%x ('%c',%d) is not implemented", + __func__, cmd, (int)(cmd & 0xff00) >> 8, (int)(cmd & 0xff)); return (ENOIOCTL); } @@ -2435,6 +2443,11 @@ error = 0; break; + case LINUX_SIOCSIWCTL: + args->cmd = SIOCSIWCTL; + error = sys_ioctl(td, (struct ioctl_args *)args); + break; + default: error = linux_ioctl_socket_ifreq(td, args->fd, args->cmd, PTRIN(args->arg)); diff --git a/sys/sys/sockio.h b/sys/sys/sockio.h --- a/sys/sys/sockio.h +++ b/sys/sys/sockio.h @@ -150,4 +150,6 @@ #define SIOCSIFCAPNV _IOW('i', 155, struct ifreq) /* set IF features */ #define SIOCGIFCAPNV _IOWR('i', 156, struct ifreq) /* get IF features */ +#define SIOCSIWCTL _IOWR('i', 237, struct ifreq) /* set IEEE80211 ctrl */ + #endif /* !_SYS_SOCKIO_H_ */