blob: da392e26b53d171f69a079cc69abd20f8bd8c510 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include "common/kmod.h"
#include "common/strutil.h"
#include <sys/modctl.h>
#include <errno.h>
bool ffKmodLoaded(const char* modName) {
struct modinfo modinfo = {
.mi_id = -1,
.mi_nextid = -1,
.mi_info = MI_INFO_ALL,
};
for (int id = -1; modctl(MODINFO, id, &modinfo) == 0; id = modinfo.mi_id) {
modinfo.mi_name[MODMAXNAMELEN - 1] = '\0';
if (ffStrEquals(modinfo.mi_name, modName)) {
return true;
}
}
return !(errno == EINVAL || errno == ENOENT);
}
|