用户空间 ioctl() 系统调用原型 int ioctl(int fd,unsigned long cmd, ...);
驱动中的 ioctl 方法原型 int (*ioctl) (struct inode *inode,struct file *flip,unsigned int cmd,unsigned long arg);
1. ioctl 中的 命令cmd 以及参数 arg
(1) 内核中生成命令的辅助的宏:
_IO an ioctl with no parameters
_IOW an ioctl with write parameters (copy_from_user)
_IOR an ioctl with read parameters (copy_to_user)
_IOWR an ioctl with both write and read parameters
'write' and 'read' are from the user's point of view
(2) 内核中的预定义命令,如果设备驱动中包含了与预定义命令一样的命令码,则这些命令将会被当作预定义命令被内核处理。
FIOCLEX , FIONCLEX , FIOQSIZE , FIONBIO