所謂的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