module_softdep
所谓的MODULE_SOFTDEP,就是两个两个模块之间本有依赖,但是一定要要加载顺序的要求。
用法很简单。
#define MODULE_SOFTDEP(_softdep) MODULE_INFO(softdep, _softdep)
举例如下:
MODULE_SOFTDEP("pre: module-foo post: module-baz")
这个例子说明module-foo 这个模块。module-foo是这个模块的名字,因此这个模块就是module-foo.ko 必须要在
module-baz.ko 之前加载。
如果是在module-foo.ko 中包含的源文件中调用MODULE_SOFTDEP。则可以简化成MODULE_SOFTDEP("pre: module-foo"),反之既然.
在kernel中用到的例子。MODULE_SOFTDEP("pre: crct10dif");
会生成一个module.softdep的文件.文件中的内容如下:
softdep sctp_probe pre: sctp
这样调用modprobe的时候会从参考这个文件中的信息,在加载sctp_probe.ko 之前会线加载sctp.ko