unlocked_ioctl explanation