快速业务通道

嵌入式:关于Linux下_init与_exit的解释

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-04
原始定义: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修饰词标记函数只在模块卸载时使用.
 
  如果模块被直接编进内核则该函数就不会被调用.如果内核编译时没有包含该模块,则此标记的函数将被简单地丢弃.
 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号