-2
由於每個要插入內核的模塊都需要__init函數。我在哪裏可以找到由linus torvalds編寫的原始ext4模塊的__init函數?我想對其進行一些更改。ext4的__init函數在哪裏?
由於每個要插入內核的模塊都需要__init函數。我在哪裏可以找到由linus torvalds編寫的原始ext4模塊的__init函數?我想對其進行一些更改。ext4的__init函數在哪裏?
我想你要找的這個方法:https://github.com/torvalds/linux/blob/master/fs/ext4/super.c#L5781
MODULE_ALIAS_FS("ext4");
.....
static int __init ext4_init_fs(void)
{
....
這__init
方法是模塊的主要原因之一,因爲它僅僅是官方聲明MODULE_ALIAS_FS("ext4")
其聲明fs-ext4
模塊之後定義。
正如@MarkPlotnick提到的,__init
和__exit
方法也引用並公佈爲與module_init(ext4_init_fs)
呼叫(和下一個對出口)的模塊進入/退出funcs中。
非常感謝您的回答。如果你能告訴我你是如何指出這個功能的,我也會很感激。源代碼中有很多用於ext4的__init函數。以及爲什麼我不應該對__init ext4_init_sysfs(void)進行任何更改? –
@AvishekGhosh因爲這個init被定義在'MODULE_ALIAS_FS(「ext4」);''正式聲明的ext4模塊 –
之後'還有一個事實,那就是宏調用[module_init(ext4_init_fs)](http://elixir.free-electrons .com/linux/latest/source/fs/ext4/super.c#L5832),它擴展爲[兩個函數](http://elixir.free-electrons.com/linux/latest/source/include/linux/ module.h#L128),它使它成爲init函數。 –