1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

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

      更新時間: 2008-03-14 10:52:03來源: 粵嵌教育瀏覽量:614

        原始定義: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標記數據。


      #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修飾詞標記函數只在模塊卸載時使用。

        如果模塊被直接編進內核則該函數就不會被調用。如果內核編譯時沒有包含該模塊,則此標記的函數將被簡單地丟棄。



      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚欧洲乱码视频在线专区网站 | 碰在线视频免费播放 | 亚洲欧美国产日韩中文丝袜 | 中文字幕一区二区三区日韩 | 日本免费一区二区三区久久 | 亚洲网中文字幕 |