From a740502a3d857a70f64fe31fda87b775d4cf1126 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 12 Mar 2004 00:21:20 +0000 Subject: Cope gracefully with missing module syscalls --- libc/sysdeps/linux/common/create_module.c | 6 ++++++ libc/sysdeps/linux/common/delete_module.c | 6 +++--- libc/sysdeps/linux/common/init_module.c | 9 +++++++++ libc/sysdeps/linux/common/query_module.c | 6 +++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/libc/sysdeps/linux/common/create_module.c b/libc/sysdeps/linux/common/create_module.c index 1283503fe..e1a4cfb04 100644 --- a/libc/sysdeps/linux/common/create_module.c +++ b/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 diff --git a/libc/sysdeps/linux/common/delete_module.c b/libc/sysdeps/linux/common/delete_module.c index bcdb7a811..e739a7a4f 100644 --- a/libc/sysdeps/linux/common/delete_module.c +++ b/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 diff --git a/libc/sysdeps/linux/common/init_module.c b/libc/sysdeps/linux/common/init_module.c index aa217ac38..bca233b69 100644 --- a/libc/sysdeps/linux/common/init_module.c +++ b/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 + diff --git a/libc/sysdeps/linux/common/query_module.c b/libc/sysdeps/linux/common/query_module.c index 54cf28275..be8923d63 100644 --- a/libc/sysdeps/linux/common/query_module.c +++ b/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 -- cgit v1.2.3