summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2013-04-09 04:00:20 -0300
committerLucas De Marchi <lucas.de.marchi@gmail.com>2013-04-09 04:05:09 -0300
commit1407064e730732dd20952671077007dd4133f7db (patch)
tree381d5ca0aa992cd4c60973f0a2ea8bc16de8b2eb
parent41a51c2af915bc99851446cf604fac99eca1848f (diff)
downloadkmod-1407064e730732dd20952671077007dd4133f7db.tar.gz
libkmod: Add missing definitions
Depending on kernel header and simply not passing the flags in finit_module() if this header is not found is not good. Add a missing.h header in which stuff like this should be added.
-rw-r--r--Makefile.am1
-rw-r--r--libkmod/libkmod-module.c2
-rw-r--r--libkmod/libkmod-private.h1
-rw-r--r--libkmod/missing.h13
4 files changed, 15 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 9feaf96..1680fe6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -55,6 +55,7 @@ libkmod_libkmod_la_SOURCES =\
libkmod/libkmod.h \
libkmod/libkmod-private.h \
libkmod/macro.h \
+ libkmod/missing.h \
libkmod/libkmod.c \
libkmod/libkmod-list.c \
libkmod/libkmod-config.c \
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index 7b38e64..f701d47 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -819,12 +819,10 @@ KMOD_EXPORT int kmod_module_insert_module(struct kmod_module *mod,
if (kmod_file_get_direct(file)) {
unsigned int kernel_flags = 0;
-#ifdef HAVE_LINUX_MODULE_H
if (flags & KMOD_INSERT_FORCE_VERMAGIC)
kernel_flags |= MODULE_INIT_IGNORE_VERMAGIC;
if (flags & KMOD_INSERT_FORCE_MODVERSION)
kernel_flags |= MODULE_INIT_IGNORE_MODVERSIONS;
-#endif
err = finit_module(kmod_file_get_fd(file), args, kernel_flags);
if (err == 0 || errno != ENOSYS)
diff --git a/libkmod/libkmod-private.h b/libkmod/libkmod-private.h
index 8d8599a..078a51a 100644
--- a/libkmod/libkmod-private.h
+++ b/libkmod/libkmod-private.h
@@ -5,6 +5,7 @@
#include <syslog.h>
#include <limits.h>
+#include "missing.h"
#include "macro.h"
#include "libkmod.h"
diff --git a/libkmod/missing.h b/libkmod/missing.h
new file mode 100644
index 0000000..6ff754f
--- /dev/null
+++ b/libkmod/missing.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#ifdef HAVE_LINUX_MODULE_H
+#include <linux/module.h>
+#endif
+
+#ifndef MODULE_INIT_IGNORE_MODVERSIONS
+# define MODULE_INIT_IGNORE_MODVERSIONS 1
+#endif
+
+#ifndef MODULE_INIT_IGNORE_VERMAGIC
+# define MODULE_INIT_IGNORE_VERMAGIC 2
+#endif