背景
PCIe驱动可以通过内核模块标准的init exit里面调用注册接口注册,也可以通过更高效的pcie模块专用初始化定义接口。本文以rtl8168网卡为例简要说明。
两种接口:
# 1
int __init rtl8168_init_module(void){
pci_register_driver(&rtl8168_pci_driver);
}
module_init(rtl8168_init_module);
# 2
module_pci_driver(rtl8169_pci_driver);
两种注册方式
通过module_init函数
static struct pci_driver rtl8168_pci_driver = {
.name = MODULENAME,
.id_table = rtl8168_pci_tbl,
.probe = rtl8168_init_one,
.remove = __devexit_p(rtl8168_remove_one),
};
static int __init
rtl8168_init_module(void)
{
return pci_register_dri

最低0.47元/天 解锁文章
193

被折叠的 条评论
为什么被折叠?



