static int misc_open(struct inode *inode, struct file *file)
{
......
struct miscdevice *c;
......
/*
* Place the miscdevice in the file's
* private_data so it can be used by the
* file operations, including f_op->open below
*/
file->private_data = c;
}
3条答案
按热度按时间5jvtdoz21#
如果您有多个设备,那么您可能会使用IDR来分配和跟踪次要的开发节点ID。对
idr_alloc
的调用接受一个指针,与ID一起存储以备将来使用。在ioctl处理程序中,您可以使用
idr_find
从idr中查找指针。举例来说:分配一个IDR并存储
info
全局定义
在您的PCI探针处理程序中
从IDR中删除存储的指针
请确保在删除设备时释放您的IDR
lmvvr0a82#
使用
ioctl()
驱动程序将接受命令并处理这些命令,如何使用struct file * pFile取回数据?你想做什么手术?您可以使用
ioctl.h
中的命令来执行此操作。例如IOR
(如果命令需要从内核空间读取某些内容)mzaanser3#
struct file
也有private_data
,所以你可以在这里存储pci_dev
,就像struct miscdev
一样: