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