21,616
社区成员




在PCI驱动中的probe函数里申请驱动私有数据空间,并且用pci_set_drvdata设置后,在file_operations的open函数中,如何获得私有数据指针呢?因为filp->private_data在open函数中设置,目前我的方法是申请了一个全局指针变量数组,然后使用 MINOR( inode->i_rdev )函数获得数组索引,但是我觉得这样有些粗暴,我希望在open函数中不使用全局变量,直接调用类似pci_get_drvdata的方法来获得驱动私有数据结构,请问有什么好办法吗?
找到方法了,在open函数里面这样写就可以了:
struct pl2108_dev *pl2108_dev;
pl2108_dev = container_of(inode->i_cdev, struct pl2108_dev, cdev);
linux驱动编程第三版里面就有的方法,还得看书啊
找到方法了,在open函数里面这样写就可以了:
struct pl2108_dev *pl2108_dev;
pl2108_dev = container_of(inode->i_cdev, struct pl2108_dev, cdev);
linux驱动编程第三版里面就有的方法,还得看书啊
还没有解决问题,mark一下