diff options
author | Eric Andersen | 2001-04-05 03:14:39 +0000 |
---|---|---|
committer | Eric Andersen | 2001-04-05 03:14:39 +0000 |
commit | e76c3b08e105147e3cef7e8d38d65da2fac6b2e1 (patch) | |
tree | 87f705b9e4e4e48700ac61e9538c637ae2b395a7 /libbb/syscalls.c | |
parent | 3c0364f3911ec9f43e1c8c96ec2c8e30b1b52c47 (diff) | |
download | busybox-e76c3b08e105147e3cef7e8d38d65da2fac6b2e1.zip busybox-e76c3b08e105147e3cef7e8d38d65da2fac6b2e1.tar.gz |
A number of cleanups. Now compiles with libc5, glibc, and uClibc. Fix a few
shadowed variables. Move (almost) all syscalls to libbb/syscalls.c, so I can
handle them sanely and all at once.
-Erik
Diffstat (limited to 'libbb/syscalls.c')
-rw-r--r-- | libbb/syscalls.c | 72 |
1 files changed, 60 insertions, 12 deletions
diff --git a/libbb/syscalls.c b/libbb/syscalls.c index 0211546..efca399 100644 --- a/libbb/syscalls.c +++ b/libbb/syscalls.c @@ -32,18 +32,63 @@ #include "libbb.h" +_syscall3(int, sysfs, int, option, unsigned int, fs_index, char *, buf); -_syscall1(int, sysinfo, struct sysinfo *, info); +#ifndef __NR_pivot_root +#warning This kernel does not support the pivot_root syscall +#warning -> The pivot_root system call is being stubbed out... +int pivot_root(const char * new_root,const char * put_old) +{ + /* BusyBox was compiled against a kernel that did not support + * the pivot_root system call. To make this application work, + * you will need to recompile with a kernel supporting the + * pivot_root system call. + */ + fprintf(stderr, "\n\nTo make this application work, you will need to recompile\n"); + fprintf(stderr, "with a kernel supporting the pivot_root system call. -Erik\n\n"); + errno=ENOSYS; + return -1; +} +#else +_syscall2(int,pivot_root,const char *,new_root,const char *,put_old) +#endif + + + + +#if __GNU_LIBRARY__ < 5 +/* These syscalls are not included as part of libc5 */ +_syscall2(int, bdflush, int, func, int, data); +_syscall1(int, delete_module, const char *, name) + +#ifndef __NR_query_module +#warning This kernel does not support the query_module syscall +#warning -> The query_module system call is being stubbed out... +int query_module(const char *name, int which, void *buf, size_t bufsize, size_t *ret) +{ + /* BusyBox was compiled against a kernel that did not support + * the query_module system call. To make this application work, + * you will need to recompile with a kernel supporting the + * query_module system call. + */ + fprintf(stderr, "\n\nTo make this application work, you will need to recompile\n"); + fprintf(stderr, "with a kernel supporting the query_module system call. -Erik\n\n"); + errno=ENOSYS; + return -1; +} +#else +_syscall5(int, query_module, const char *, name, int, which, + void *, buf, size_t, bufsize, size_t*, ret); +#endif -/* Include our own version of <sys/mount.h>, since libc5 doesn't - * know about umount2 */ -extern _syscall1(int, umount, const char *, special_file); -extern _syscall5(int, mount, const char *, special_file, const char *, dir, - const char *, fstype, unsigned long int, rwflag, const void *, data); +#ifndef __alpha__ +# define __NR_klogctl __NR_syslog + _syscall3(int, klogctl, int, type, char *, b, int, len); +#endif #ifndef __NR_umount2 # warning This kernel does not support the umount2 syscall -# warning The umount2 system call is being stubbed out... +# warning -> The umount2 system call is being stubbed out... int umount2(const char * special_file, int flags) { /* BusyBox was compiled against a kernel that did not support @@ -57,14 +102,17 @@ int umount2(const char * special_file, int flags) return -1; } # else -extern _syscall2(int, umount2, const char *, special_file, int, flags); +_syscall2(int, umount2, const char *, special_file, int, flags); #endif -#ifndef __NR_query_module -static const int __NR_query_module = 167; + +#endif /* __GNU_LIBRARY__ < 5 */ + + +#if 0 +_syscall1(int, sysinfo, struct sysinfo *, info); #endif -_syscall5(int, query_module, const char *, name, int, which, - void *, buf, size_t, bufsize, size_t*, ret); + /* END CODE */ /* |