Browse Source

add init_module/delete_module syscall wrappers

Add the wrappers unconditionally, because kmod package
still uses them.
Waldemar Brodkorb 7 years ago
parent
commit
03884934b3
2 changed files with 24 additions and 0 deletions
  1. 1 0
      libc/sysdeps/linux/common/Makefile.in
  2. 23 0
      libc/sysdeps/linux/common/module.c

+ 1 - 0
libc/sysdeps/linux/common/Makefile.in

@@ -31,6 +31,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
 	ioperm.c \
 	iopl.c \
 	modify_ldt.c \
+	module.c \
 	personality.c \
 	pipe2.c \
 	ppoll.c \

+ 23 - 0
libc/sysdeps/linux/common/module.c

@@ -0,0 +1,23 @@
+/*
+ * init_module()/delete_module() for uClibc
+ *
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+
+#ifdef __NR_init_module
+int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
+/* This may have 5 arguments (for old 2.0 kernels) or 2 arguments
+ * (for 2.2 and 2.4 kernels).  Use the greatest common denominator,
+ * and let the kernel cope with whatever it gets.  It's good at that. */
+_syscall5(int, init_module, void *, first, void *, second, void *, third,
+	  void *, fourth, void *, fifth)
+#endif
+
+#ifdef __NR_delete_module
+int delete_module(const char *name, unsigned int flags);
+_syscall2(int, delete_module, const char *, name, unsigned int, flags)
+#endif