如果没有要在情况下,模块被编译进内核或者模块卸载是不允许的,那么为什么首先使用它的内存分配?如果我错了/假设有任何问题,请纠正我。为什么__exit在内核模块编程中使用?
编辑 - 我也无法理解什么目的呢__exit服务。 module_exit()应该足够或不是?
如果没有要在情况下,模块被编译进内核或者模块卸载是不允许的,那么为什么首先使用它的内存分配?如果我错了/假设有任何问题,请纠正我。为什么__exit在内核模块编程中使用?
编辑 - 我也无法理解什么目的呢__exit服务。 module_exit()应该足够或不是?
简单的回答:它在那里,因此如果您的模块不是可卸载的(例如它是内置的,或者内核不支持模块卸载),您可以使模块无需加载而不会受到惩罚。
不是所有的模块是有意义的卸载,但如果你的驱动程序可以实用卸载,对于增加的支持有意义,会让其他人(谁使用您的驱动)更快乐。
至于宏本身:__exit
扩展为一个特殊的指令,它告诉编译器丢弃功能模块是否无法卸载。如果退出函数不被调用,这节省了代码空间。
好的,明白了。谢啦 :) – hakunamatata
是啊,我建议,这是适当的地方将它张贴 – hakunamatata
你指的,或者已经读过,第9页的[Linux内核模块编程指南(的http://www.tldp.org /LDP/lkmpg/2.6/lkmpg.pdf)? – localhost
我刚刚在那里看过,但还是不清楚。 Sry – hakunamatata