请问在open函数中如何获得驱动私有数据指针?

自由的好好干活 2022-05-02 14:10:10

在PCI驱动中的probe函数里申请驱动私有数据空间,并且用pci_set_drvdata设置后,在file_operations的open函数中,如何获得私有数据指针呢?因为filp->private_data在open函数中设置,目前我的方法是申请了一个全局指针变量数组,然后使用 MINOR( inode->i_rdev )函数获得数组索引,但是我觉得这样有些粗暴,我希望在open函数中不使用全局变量,直接调用类似pci_get_drvdata的方法来获得驱动私有数据结构,请问有什么好办法吗?

...全文
311 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

找到方法了,在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一下

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧