内核宏定义module_platform_driver展开
时间: 2023-02-10 16:41:57 浏览: 146
module_platform_driver 是一个宏定义,它主要用于注册一个平台驱动。具体来说,它会创建一个特殊的字符设备,并在内核中注册一个平台驱动程序。这个宏定义的展开大致如下:
```
#define module_platform_driver(__platform_driver) \
static int __init __platform_driver##_init(void) \
{ \
return platform_driver_register(&(__platform_driver)); \
} \
module_init(__platform_driver##_init); \
static void __exit __platform_driver##_exit(void) \
{ \
platform_driver_unregister(&(__platform_driver)); \
} \
module_exit(__platform_driver##_exit);
```
这个宏定义在内核中用来简化注册平台驱动的过程,常见的用法如下:
```
static struct platform_driver my_driver = {
.probe = my_probe,
.remove = my_remove,
.driver = {
.name = "my_driver",
.of_match_table = of_match_ptr(my_of_match),
},
};
module_platform_driver(my_driver);
```
在这段代码中,我们定义了一个平台驱动 my_driver,然后使用 module_platform_driver 宏定义注册了这个平台驱动。
阅读全文