diff options
Diffstat (limited to 'libbb/module_syscalls.c')
-rw-r--r-- | libbb/module_syscalls.c | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/libbb/module_syscalls.c b/libbb/module_syscalls.c deleted file mode 100644 index a2ff5284a..000000000 --- a/libbb/module_syscalls.c +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * some system calls possibly missing from libc | ||
4 | * | ||
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
15 | * General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <stdio.h> | ||
24 | #include <errno.h> | ||
25 | #include <unistd.h> | ||
26 | #include <sys/syscall.h> | ||
27 | #include "libbb.h" | ||
28 | |||
29 | /* uClibc always supplies (possibly ENOSYS) versions of these functions. */ | ||
30 | #ifndef __UCLIBC__ | ||
31 | |||
32 | /* These syscalls are not included in very old glibc versions */ | ||
33 | int delete_module(const char *name) | ||
34 | { | ||
35 | #ifndef __NR_delete_module | ||
36 | #warning This kernel does not support the delete_module syscall | ||
37 | #warning -> The delete_module system call is being stubbed out... | ||
38 | errno=ENOSYS; | ||
39 | return -1; | ||
40 | #else | ||
41 | return(syscall(__NR_delete_module, name)); | ||
42 | #endif | ||
43 | } | ||
44 | |||
45 | int get_kernel_syms(__ptr_t ks) | ||
46 | { | ||
47 | #ifndef __NR_get_kernel_syms | ||
48 | #warning This kernel does not support the get_kernel_syms syscall | ||
49 | #warning -> The get_kernel_syms system call is being stubbed out... | ||
50 | errno=ENOSYS; | ||
51 | return -1; | ||
52 | #else | ||
53 | return(syscall(__NR_get_kernel_syms, ks)); | ||
54 | #endif | ||
55 | } | ||
56 | |||
57 | /* This may have 5 arguments (for old 2.0 kernels) or 2 arguments | ||
58 | * (for 2.2 and 2.4 kernels). Use the greatest common denominator, | ||
59 | * and let the kernel cope with whatever it gets. Its good at that. */ | ||
60 | int init_module(void *first, void *second, void *third, void *fourth, void *fifth) | ||
61 | { | ||
62 | #ifndef __NR_init_module | ||
63 | #warning This kernel does not support the init_module syscall | ||
64 | #warning -> The init_module system call is being stubbed out... | ||
65 | errno=ENOSYS; | ||
66 | return -1; | ||
67 | #else | ||
68 | return(syscall(__NR_init_module, first, second, third, fourth, fifth)); | ||
69 | #endif | ||
70 | } | ||
71 | |||
72 | int query_module(const char *name, int which, void *buf, size_t bufsize, size_t *ret) | ||
73 | { | ||
74 | #ifndef __NR_query_module | ||
75 | #warning This kernel does not support the query_module syscall | ||
76 | #warning -> The query_module system call is being stubbed out... | ||
77 | bb_error_msg("\n\nTo make this application work, you will need to recompile\n" | ||
78 | "BusyBox with a kernel supporting the query_module system call.\n"); | ||
79 | errno=ENOSYS; | ||
80 | return -1; | ||
81 | #else | ||
82 | return(syscall(__NR_query_module, name, which, buf, bufsize, ret)); | ||
83 | #endif | ||
84 | } | ||
85 | |||
86 | /* Jump through hoops to fixup error return codes */ | ||
87 | unsigned long create_module(const char *name, size_t size) | ||
88 | { | ||
89 | #ifndef __NR_create_module | ||
90 | #warning This kernel does not support the create_module syscall | ||
91 | #warning -> The create_module system call is being stubbed out... | ||
92 | errno=ENOSYS; | ||
93 | return -1; | ||
94 | #else | ||
95 | long ret = syscall(__NR_create_module, name, size); | ||
96 | |||
97 | if (ret == -1 && errno > 125) { | ||
98 | ret = -errno; | ||
99 | errno = 0; | ||
100 | } | ||
101 | return ret; | ||
102 | #endif | ||
103 | } | ||
104 | |||
105 | |||
106 | #endif /* __UCLIBC__ */ | ||
107 | |||
108 | /* END CODE */ | ||
109 | /* | ||
110 | Local Variables: | ||
111 | c-file-style: "linux" | ||
112 | c-basic-offset: 4 | ||
113 | tab-width: 4 | ||
114 | End: | ||
115 | */ | ||
116 | |||