首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

_exit和_init的迷惑,该怎么解决

2012-04-02 
__exit和__init的迷惑1) __init:是内建模块的时候,初始化会使用到,用完之后就释放内存空间。当编译成模块时

__exit和__init的迷惑
1) __init:是内建模块的时候,初始化会使用到,用完之后就释放内存空间。当编译成模块时,insmod肯定也要用到,但是不会把函数占用的内存释放???
2) __exit:是内建模块的时候,肯定不会用到,因为根本就不要去卸载该模块。当编译成模块时,rmmod的时候,要调用吗???
请各位大侠指教下,谢谢

[解决办法]
#ifdef MODULE
#define __exitused
#else
#define __exitused __used
#endif

#define __exit __section(.exit.text) __exitused __cold

/**
 * module_exit() - driver exit entry point
 * @x: function to be run when driver is removed
 * 
 * module_exit() will wrap the driver clean-up code
 * with cleanup_module() when used with rmmod when
 * the driver is a module. If the driver is statically
 * compiled into the kernel, module_exit() has no effect.
 * There can only be one per module.
 */

根据init.h里的内容,__exit在模块时,肯定会调用的

热点排行