Hi David, On Wed, Oct 26, 2016 at 7:12 PM, David Laight <david.lai...@aculab.com> wrote: > From: f...@ikuai8.com >> Sent: 25 October 2016 13:56 >> The current codes use _IOC_TYPE(cmd) == 0x89 to check if the cmd is one >> socket ioctl command like SIOCGIFHWADDR. But the literal number 0x89 may >> confuse readers. So create one macro SOCK_IOC_MAGIC like SPI_IOC_MAGIC to >> enhance the readability. >> >> Signed-off-by: Gao Feng <f...@ikuai8.com> >> --- >> drivers/net/tun.c | 2 +- >> include/uapi/linux/sockios.h | 2 ++ >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/tun.c b/drivers/net/tun.c >> index 9328568..9efd185 100644 >> --- a/drivers/net/tun.c >> +++ b/drivers/net/tun.c >> @@ -1985,7 +1985,7 @@ static long __tun_chr_ioctl(struct file *file, >> unsigned int cmd, >> int le; >> int ret; >> >> - if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == 0x89) { >> + if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == >> SOCK_IOC_MAGIC) { >> if (copy_from_user(&ifr, argp, ifreq_len)) >> return -EFAULT; >> } else { >> diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h >> index 8e7890b..b8f42f2 100644 >> --- a/include/uapi/linux/sockios.h >> +++ b/include/uapi/linux/sockios.h >> @@ -24,6 +24,8 @@ >> #define SIOCINQ FIONREAD >> #define SIOCOUTQ TIOCOUTQ /* output queue size (not sent + not >> acked) */ >> >> +#define SOCK_IOC_MAGIC 0x89 >> + >> /* Routing table calls. */ >> #define SIOCADDRT 0x890B /* add routing table entry */ >> #define SIOCDELRT 0x890C /* delete routing table entry */ > > Shouldn't these constants be defined in terms of SOCK_IOC_MAGIC? > And there must be a better name! > > David >
How about the SOCK_IOC_TYPE or SOCK_IOC_BASE ? There are ETRAXGPIO_IOCTYPE and HARDWALL_IOCTL_BASE already. Regards Feng