module_platform_driver()是一个Linux内核的宏,用于简化驱动程序的编写。该宏将驱动程序与平台设备驱动程序挂钩,并自动进行模块初始化和卸载。
使用module_platform_driver(),驱动程序开发人员只需要提供一个platform_driver结构体和两个函数即可,而不必实现module_init()和module_exit()等函数。
以下是使用module_platform_driver()定义一个平台驱动程序的示例代码:
#include <linux/platform_device.h>
#include <linux/module.h>
static int my_platform_probe(struct platform_device *pdev)
{
/* Platform probe code here */
return 0;
}
static int my_platform_remove(struct platform_device *pdev)
{
/* Platform remove code here */
return 0;
}
static struct platform_driver my_platform_driver = {
.probe = my_platform_probe,
.remove = my_platform_remove,
.driver = {
.name = "my_platform_driver",
.owner = THIS_MODULE,
},
};
module_platform_driver(my_platform_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("My Platform Driver");