歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

嵌入式:關於Linux下_init與_exit的解釋

原始定義:include/Linux/init.h
 
  
 #define __init __attribute__ ((__section__ (".init.text")))
#define __initdata __attribute__ ((__section__ (".init.data")))

#define __exitdata __attribute__ ((__section__(".exit.data")))

#define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit")))

#ifdef MODULE

#define __exit __attribute__ ((__section__(".exit.text")))

#else

#define __exit __attribute_used__ __attribute__ ((__section__(".exit.text")))

#endif__init和__exit標記函數,__initdata和__exitdata標記數據。
 
  此宏定義可知標記後的函數與數據其實是放到了特定的(代碼或數據)段中。
 
  標記為初始化的函數,表明該函數供在初始化期間使用。
 
  在模塊裝載之後,模塊裝載就會將初始化函數扔掉。這樣可以將該函數占用的內存釋放出來。
 
  __exit修飾詞標記函數只在模塊卸載時使用。
 
  如果模塊被直接編進內核則該函數就不會被調用。如果內核編譯時沒有包含該模塊,則此標記的函數將被簡單地丟棄。
Copyright © Linux教程網 All Rights Reserved