module_platform_driver注销函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Linux 内核中,module_platform_driver 宏用于简化一些通用驱动程序的编写。
它为平台驱动程序提供了一个方便的方式,可以注册一个platform_driver 结构,并将其与设备树匹配的设备相关联。
此外,它还提供了一个函数用于自动注销驱动程序,即platform_driver_unregister 函数。
module_platform_driver 宏定义如下:
c
Copy code
#define module_platform_driver(__platform_driver) \
module_driver(__platform_driver, platform_driver_register, \
platform_driver_unregister)
这个宏接受一个platform_driver 结构体作为参数,这个结构体必须包含probe 函数和remove 函数。
然后,该宏定义了一个platform_driver_register 函数和一个platform_driver_unregister 函数,它们分别用于注册和注销平台驱动程序。
这两个函数都是由module_driver 宏自动提供的,因此无需手动编写。
使用module_platform_driver 宏时,还需要在模块初始化函数中调用它,如下所示:
c
Copy code
static int __init my_driver_init(void)
{
return module_platform_driver(my_platform_driver);
}
在模块退出函数中,不需要调用platform_driver_unregister 函数,因为这个函数已经被module_platform_driver 宏自动提供了。