Skip to content

Commit 86458ab

Browse files
committed
Kmod (SunOS): adds support
1 parent 67ca907 commit 86458ab

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1088,7 +1088,7 @@ elseif(SunOS)
10881088
src/common/impl/processing_linux.c
10891089
src/common/impl/FFPlatform_unix.c
10901090
src/common/impl/binary_linux.c
1091-
src/common/impl/kmod_nosupport.c
1091+
src/common/impl/kmod_sunos.c
10921092
src/detection/battery/battery_nosupport.c
10931093
src/detection/bios/bios_windows.c
10941094
src/detection/board/board_windows.c

src/common/impl/kmod_sunos.c

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

0 commit comments

Comments
 (0)