aboutsummaryrefslogtreecommitdiff
path: root/libbb/module_syscalls.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2005-09-07 06:39:02 +0000
committerRob Landley <rob@landley.net>2005-09-07 06:39:02 +0000
commit90ca6b2878bacfb9a92742aa54255295aa25cf6f (patch)
treef3af342196b9349f130bff3c640c7d1404a2e103 /libbb/module_syscalls.c
parent14efdc58ce064fd4e0601e7099aec1c54bdaba0b (diff)
downloadbusybox-w32-90ca6b2878bacfb9a92742aa54255295aa25cf6f.tar.gz
busybox-w32-90ca6b2878bacfb9a92742aa54255295aa25cf6f.tar.bz2
busybox-w32-90ca6b2878bacfb9a92742aa54255295aa25cf6f.zip
This code exists to compensate for ancient broken build environments which,
as far as I can tell, are no longer relevant. Modern busybox refuses to build under libc5 (there's a specific test and #error for that), and I'm not sure building against 2.1 kernel headers on Alpha was ever relevant. I'm happy to put any of this back if anybody can point to a real need for it, but if so we need to specifically document what environment is being compensated for. (And we should quarrantine the build environment code into one place, anyway. Maybe "quirks.h" for known compiler and libc quirks?)
Diffstat (limited to 'libbb/module_syscalls.c')
-rw-r--r--libbb/module_syscalls.c116
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 */
33int 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
45int 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. */
60int 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
72int 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 */
87unsigned 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/*
110Local Variables:
111c-file-style: "linux"
112c-basic-offset: 4
113tab-width: 4
114End:
115*/
116