2014-09-30 135 views
3
/* Each module must use one module_init(). */ 
#define module_init(initfn)     \ 
    static inline initcall_t __inittest(void)  \ 
    { return initfn; }     \ 
    int init_module(void) __attribute__((alias(#initfn))); 

回答

0

所生成__inittest()函數它來在編譯時期間檢查的唯一目的,該函數傳遞給module_init()宏與initcall_t類型兼容。

所有模塊初始化函數必須符合類型,因爲(從init_module()定義可以看出)它們不是直接調用,而是通過特殊別名init_module()調用。