内核中有众多__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段中所有的函数.