#include LDD3 chapter 3 struct file_operations owner = THIS_MODULE read write ioctl vs unlocked_ioctl vs compat_ioctl unlocked_ioctl does not grab the kernel lock unlocked_ioctl and compat_ioctl does not receive the inode structure compat_ioctl (32bit vs 64bit) open release flush mmap poll llseek struct file f_op f_flags f_pos private_data we will not mess with inode struct inode iminor imajor