pci_request_regions是干啥的,在驱动中需要调用吗?
今天看Linux内核中自带的e1000网卡驱动,发现它在probe中有如下操作:
if ((err = pci_request_regions(pdev, e1000_driver_name))) return err; |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
自己踢一下,没人知道?在内核自带的驱动中发现许多地方做了这个操作。
建议LZ先看看LDD3中PCI的那一章啊。里面应该讲得比较清楚
1. LDD3中提都没提到这个函数,我是在看e1000网上驱动时看到的。从代码知道它做了什么操作,但它的作用不怎么清楚,因为我也见过许多驱动不做这一操作的。
2. 说句实话,LDD3对于PCI驱动很是走马观花,不怎么样,我是看了一本PCI Express System Architecture和一些实际驱动的代码,然后再看标准规范才逐渐理解了的。
我记得ldd3是讲了的, 你确信没有?
我在PDF格式的电子中搜索过的但没找到,另外后面的索引中也没找到。
自己踢一脚。真的没人知道?
驱动板置顶的电子书中就有LDD3的英文和中文版,LZ确实查找了吗。我看LDD3的时候,PCI那一章是讲过这个函数的。
Essential Linux Device Drivers 这本书对这个函数有讲解,而且我觉得讲得也很不错。我把那一章都拷贝出来:
Thanks. 这本书我以前下载了,但从来没看过,只看过LDD3,看来要多看一些不同的书及代码才行。
不过在实际的驱动中还是看到过没有调用这一函数处理的,是一个错误,还是不调用关系也不大?