为什么在内核模块编程中使用__exit?

时间:2015-09-04 04:51:01

标签: linux-kernel initialization init

如果模块没有内置到内核中,或者如果不允许模块卸载,那么就没有任何内存分配,那么为什么要首先使用它呢?如果我错了/做错了,请纠正我。

编辑 - 我也无法理解__exit的用途。 module_exit()应该足够吗?

1 个答案:

答案 0 :(得分:2)

简单回答:它就在那里你可以让模块卸载而不会因为你的模块不可卸载而受到惩罚(例如它是内置的,或者内核不支持模块卸载)。

并非所有模块都可以卸载,但是如果你的驱动程序可以卸载,那么添加对它的支持是有意义的,并会让其他人(使用你的驱动程序)更快乐。

对于宏本身:__exit扩展为一个特殊的指令,告诉编译器在无法卸载模块时丢弃该函数。如果不调用退出函数,这将节省代码空间。