diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-03-12 00:21:20 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-03-12 00:21:20 +0000 |
commit | a740502a3d857a70f64fe31fda87b775d4cf1126 (patch) | |
tree | b060d99787e840b5be9ab79479ad7a74e07ca896 /libc/sysdeps/linux | |
parent | 93261cdf00778d5706a72bbbeb3a379bfaad948c (diff) |
Cope gracefully with missing module syscalls
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r-- | libc/sysdeps/linux/common/create_module.c | 6 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/delete_module.c | 6 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/init_module.c | 9 | ||||
-rw-r--r-- | 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 |