内核中有众多__init属性的函数,这些函数被用作初始化。
比如:
/*******************************************************
Function:
Driver Install function.
Input:
None.
Output:
* Executive Outcomes. 0---succeed.
********************************************************/
static int __init goodix_ts_init(void)
{
GTP_DEBUG_FUNC();
GTP_INFO("GTP driver installing...");
return i2c_add_driver(&goodix_ts_driver);
}
include/linux/init.h
#define __init __section(.init.text) __cold notrace
编译的时候__init属性的函数就会被放到.init.text段.
系统启动初期调用:do_initcalls函数会执行.init.text段中所有的函数.
本文深入探讨内核中__init属性的函数及其作用,详细解释了这些函数如何在系统启动初期通过do_initcalls函数执行,并将其放到.init.text段进行初始化。文章结合实例,如DriverInstall函数,阐述了其在内核初始化过程中的具体实现。
4481

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



