Parcourir la source

Cope gracefully with missing module syscalls

Eric Andersen il y a 20 ans
Parent
commit
a740502a3d

+ 6 - 0
libc/sysdeps/linux/common/create_module.c

@@ -66,5 +66,11 @@ unsigned long create_module(const char *name, size_t size)
 _syscall2(unsigned long, create_module, const char *, name, size_t, size);
 #endif
 
+#else
+unsigned long create_module(const char *name, size_t size)
+{
+	__set_errno(ENOSYS);
+	return (unsigned long)-1;
+}
 #endif
 

+ 3 - 3
libc/sysdeps/linux/common/delete_module.c

@@ -8,12 +8,12 @@
  */
 
 #include "syscalls.h"
-#	ifdef __NR_delete_module
+#ifdef __NR_delete_module
 _syscall1(int, delete_module, const char *, name);
-#	else
+#else
 int delete_module(const char *name)
 {
 	__set_errno(ENOSYS);
 	return -1;
 }
-#	endif
+#endif

+ 9 - 0
libc/sysdeps/linux/common/init_module.c

@@ -8,8 +8,17 @@
  */
 
 #include "syscalls.h"
+#ifdef __NR_init_module
 /* 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);
+#else
+int init_module(void *first, void *second, void *third, void *fourth, void *fifth)
+{
+	__set_errno(ENOSYS);
+	return -1;
+}
+#endif
+

+ 3 - 3
libc/sysdeps/linux/common/query_module.c

@@ -8,14 +8,14 @@
  */
 
 #include "syscalls.h"
-#	ifdef __NR_query_module
+#ifdef __NR_query_module
 _syscall5(int, query_module, const char *, name, int, which,
 		  void *, buf, size_t, bufsize, size_t *, ret);
-#	else
+#else
 int query_module(const char *name, int which,
 				 void *buf, size_t bufsize, size_t * ret)
 {
 	__set_errno(ENOSYS);
 	return -1;
 }
-#	endif
+#endif