summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/syscalls.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-10-29 05:47:04 +0000
committerEric Andersen <andersen@codepoet.org>2000-10-29 05:47:04 +0000
commit87108d9ffaa3e4d4bc761453de093011e0d3398d (patch)
tree646702040ce8122cfcb857693671809ba35cacbc /libc/sysdeps/linux/common/syscalls.c
parent4e1ec6cac528de017d8e8696e0442904847bdc54 (diff)
Fix up stat so we translate from kernel stat to libc stat. Try to fix
up a few little things with dir entry reading. busybox now compiles, and seems to basically work... :-) -Erik
Diffstat (limited to 'libc/sysdeps/linux/common/syscalls.c')
-rw-r--r--libc/sysdeps/linux/common/syscalls.c1018
1 files changed, 521 insertions, 497 deletions
diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c
index 8943e76e8..f83932458 100644
--- a/libc/sysdeps/linux/common/syscalls.c
+++ b/libc/sysdeps/linux/common/syscalls.c
@@ -27,338 +27,342 @@
#include <sys/syscall.h>
-//#define __NR_exit 1
+//#define __NR_exit 1
#ifdef L__exit
/* Do not include unistd.h, so gcc doesn't whine about
* _exit returning. It really doesn't return... */
#define __NR__exit __NR_exit
-_syscall1(void,_exit,int,status);
+_syscall1(void, _exit, int, status);
#endif
-//#define __NR_fork 2
+//#define __NR_fork 2
#ifdef L_fork
#include <unistd.h>
-_syscall0(pid_t,fork);
+_syscall0(pid_t, fork);
#endif
-//#define __NR_read 3
-#ifdef L_read
+//#define __NR_read 3
+#ifdef L_read
#include <unistd.h>
-_syscall3(size_t,read,int,fd,char *,buf,size_t,count);
+_syscall3(size_t, read, int, fd, char *, buf, size_t, count);
#endif
-//#define __NR_write 4
-#ifdef L_write
+//#define __NR_write 4
+#ifdef L_write
#include <unistd.h>
-_syscall3(size_t,write,int,fd,const char *,buf,size_t,count);
+_syscall3(size_t, write, int, fd, const char *, buf, size_t, count);
#endif
-//#define __NR_open 5
-#ifdef L___open
+//#define __NR_open 5
+#ifdef L___open
#include <stdarg.h>
#include <fcntl.h>
#define __NR___open __NR_open
-_syscall3(int,__open,const char *,fn,int,flags,mode_t,mode);
+_syscall3(int, __open, const char *, fn, int, flags, mode_t, mode);
-int open (const char *file, int oflag, ...)
+int open(const char *file, int oflag, ...)
{
- int mode=0;
- if (oflag & O_CREAT)
- {
+ int mode = 0;
+
+ if (oflag & O_CREAT) {
va_list args;
+
va_start(args, oflag);
mode = va_arg(args, int);
+
va_end(args);
}
- return __open(file, oflag, mode);
+ return __open(file, oflag, mode);
}
#endif
-//#define __NR_close 6
-#ifdef L_close
+//#define __NR_close 6
+#ifdef L_close
#include <unistd.h>
-_syscall1(int,close,int,fd);
+_syscall1(int, close, int, fd);
#endif
-//#define __NR_waitpid 7
+//#define __NR_waitpid 7
#include <sys/wait.h>
#ifdef L_waitpid
-_syscall3(pid_t,waitpid,pid_t,pid,int *,status,int,options);
+_syscall3(pid_t, waitpid, pid_t, pid, int *, status, int, options);
#endif
-//#define __NR_creat 8
-#ifdef L_creat
+//#define __NR_creat 8
+#ifdef L_creat
#include <fcntl.h>
-_syscall2(int,creat,const char *,file,mode_t,mode);
+_syscall2(int, creat, const char *, file, mode_t, mode);
#endif
-//#define __NR_link 9
-#ifdef L_link
+//#define __NR_link 9
+#ifdef L_link
#include <unistd.h>
-_syscall2(int,link,const char *,oldpath,const char *,newpath);
+_syscall2(int, link, const char *, oldpath, const char *, newpath);
#endif
-//#define __NR_unlink 10
-#ifdef L_unlink
+//#define __NR_unlink 10
+#ifdef L_unlink
#include <unistd.h>
-_syscall1(int,unlink,const char *,pathname);
+_syscall1(int, unlink, const char *, pathname);
#endif
-//#define __NR_execve 11
-#ifdef L_execve
+//#define __NR_execve 11
+#ifdef L_execve
#include <unistd.h>
-_syscall3(int,execve,const char *,filename, char *const *, argv, char *const *, envp);
+_syscall3(int, execve, const char *, filename, char *const *, argv,
+ char *const *, envp);
#endif
-//#define __NR_chdir 12
-#ifdef L_chdir
+//#define __NR_chdir 12
+#ifdef L_chdir
#include <unistd.h>
-_syscall1(int,chdir,const char *,path);
+_syscall1(int, chdir, const char *, path);
#endif
-//#define __NR_time 13
-#ifdef L_time
+//#define __NR_time 13
+#ifdef L_time
#include <time.h>
-_syscall1(time_t,time,time_t *,t);
+_syscall1(time_t, time, time_t *, t);
#endif
-//#define __NR_mknod 14
-#ifdef L_mknod
+//#define __NR_mknod 14
+#ifdef L_mknod
#include <unistd.h>
-_syscall3(int,mknod,const char *,pathname, mode_t, mode, dev_t, dev);
+_syscall3(int, mknod, const char *, pathname, mode_t, mode, dev_t, dev);
#endif
-//#define __NR_chmod 15
-#ifdef L_chmod
+//#define __NR_chmod 15
+#ifdef L_chmod
#include <sys/stat.h>
-_syscall2(int, chmod,const char *,path, mode_t,mode);
+_syscall2(int, chmod, const char *, path, mode_t, mode);
#endif
-//#define __NR_lchown 16
-#ifdef L_lchown
+//#define __NR_lchown 16
+#ifdef L_lchown
#include <unistd.h>
-_syscall3(int,lchown,const char *,path, uid_t,owner, gid_t,group);
+_syscall3(int, lchown, const char *, path, uid_t, owner, gid_t, group);
#endif
-//#define __NR_break 17
+//#define __NR_break 17
-//#define __NR_oldstat 18
+//#define __NR_oldstat 18
-//#define __NR_lseek 19
-#ifdef L_lseek
+//#define __NR_lseek 19
+#ifdef L_lseek
#include <unistd.h>
-_syscall3(off_t,lseek,int,fildes, off_t,offset, int,whence);
+_syscall3(off_t, lseek, int, fildes, off_t, offset, int, whence);
#endif
-//#define __NR_getpid 20
-#ifdef L_getpid
+//#define __NR_getpid 20
+#ifdef L_getpid
#include <unistd.h>
-_syscall0(pid_t,getpid);
+_syscall0(pid_t, getpid);
#endif
-//#define __NR_mount 21
-#ifdef L_mount
+//#define __NR_mount 21
+#ifdef L_mount
#include <sys/mount.h>
-_syscall5(int,mount,const char *,specialfile,const char *,dir,
- const char *,filesystemtype, unsigned long,rwflag,
- const void *,data);
+_syscall5(int, mount, const char *, specialfile, const char *, dir,
+ const char *, filesystemtype, unsigned long, rwflag,
+ const void *, data);
#endif
-//#define __NR_umount 22
-#ifdef L_umount
+//#define __NR_umount 22
+#ifdef L_umount
#include <sys/mount.h>
-_syscall1(int,umount,const char *,specialfile);
+_syscall1(int, umount, const char *, specialfile);
#endif
-//#define __NR_setuid 23
-#ifdef L_setuid
+//#define __NR_setuid 23
+#ifdef L_setuid
#include <unistd.h>
-_syscall1(int,setuid,uid_t,uid);
+_syscall1(int, setuid, uid_t, uid);
#endif
-//#define __NR_getuid 24
-#ifdef L_getuid
+//#define __NR_getuid 24
+#ifdef L_getuid
#include <unistd.h>
-_syscall0(gid_t,getuid);
+_syscall0(gid_t, getuid);
#endif
-//#define __NR_stime 25
+//#define __NR_stime 25
#ifdef L_stime
#include <time.h>
-_syscall1(int,stime,time_t *,t);
+_syscall1(int, stime, time_t *, t);
#endif
-//#define __NR_ptrace 26
+//#define __NR_ptrace 26
-//#define __NR_alarm 27
-#ifdef L_alarm
+//#define __NR_alarm 27
+#ifdef L_alarm
#include <unistd.h>
-_syscall1(unsigned int,alarm,unsigned int,seconds);
+_syscall1(unsigned int, alarm, unsigned int, seconds);
#endif
-//#define __NR_oldfstat 28
+//#define __NR_oldfstat 28
-//#define __NR_pause 29
-#ifdef L_pause
+//#define __NR_pause 29
+#ifdef L_pause
#include <unistd.h>
-_syscall0(int,pause);
+_syscall0(int, pause);
#endif
-//#define __NR_utime 30
-#ifdef L_utime
+//#define __NR_utime 30
+#ifdef L_utime
#include <utime.h>
-_syscall2(int,utime,const char *,filename, struct utimbuf *,buf);
+_syscall2(int, utime, const char *, filename, struct utimbuf *, buf);
#endif
-//#define __NR_stty 31
+//#define __NR_stty 31
-//#define __NR_gtty 32
+//#define __NR_gtty 32
-//#define __NR_access 33
-#ifdef L_access
+//#define __NR_access 33
+#ifdef L_access
#include <unistd.h>
-_syscall2(int,access,const char *,pathname, int,mode);
+_syscall2(int, access, const char *, pathname, int, mode);
#endif
-//#define __NR_nice 34
-#ifdef L_nice
+//#define __NR_nice 34
+#ifdef L_nice
#include <unistd.h>
-_syscall1(int,nice,int,inc);
+_syscall1(int, nice, int, inc);
#endif
-//#define __NR_ftime 35
+//#define __NR_ftime 35
-//#define __NR_sync 36
-#ifdef L_sync
+//#define __NR_sync 36
+#ifdef L_sync
#include <unistd.h>
-_syscall0(int,sync);
+_syscall0(int, sync);
#endif
-//#define __NR_kill 37
-#ifdef L_kill
+//#define __NR_kill 37
+#ifdef L_kill
#include <signal.h>
-_syscall2(int,kill,pid_t,pid,int,sig);
+_syscall2(int, kill, pid_t, pid, int, sig);
#endif
-//#define __NR_rename 38
-#ifdef L_rename
+//#define __NR_rename 38
+#ifdef L_rename
#include <stdio.h>
-_syscall2(int,rename,const char *,oldpath, const char *,newpath);
+_syscall2(int, rename, const char *, oldpath, const char *, newpath);
#endif
-//#define __NR_mkdir 39
-#ifdef L_mkdir
+//#define __NR_mkdir 39
+#ifdef L_mkdir
#include <sys/stat.h>
-_syscall2(int,mkdir,const char *,pathname, mode_t,mode);
+_syscall2(int, mkdir, const char *, pathname, mode_t, mode);
#endif
-//#define __NR_rmdir 40
-#ifdef L_rmdir
+//#define __NR_rmdir 40
+#ifdef L_rmdir
#include <unistd.h>
-_syscall1(int,rmdir,const char *,pathname);
+_syscall1(int, rmdir, const char *, pathname);
#endif
-//#define __NR_dup 41
-#ifdef L_dup
+//#define __NR_dup 41
+#ifdef L_dup
#include <unistd.h>
-_syscall1(int,dup,int,oldfd);
+_syscall1(int, dup, int, oldfd);
#endif
-//#define __NR_pipe 42
-#ifdef L_pipe
+//#define __NR_pipe 42
+#ifdef L_pipe
#include <unistd.h>
-_syscall1(int,pipe,int*,filedes);
+_syscall1(int, pipe, int *, filedes);
#endif
-//#define __NR_times 43
-#ifdef L_times
+//#define __NR_times 43
+#ifdef L_times
#include <sys/times.h>
-_syscall1(clock_t,times,struct tms *,buf);
+_syscall1(clock_t, times, struct tms *, buf);
#endif
-//#define __NR_prof 44
+//#define __NR_prof 44
-//#define __NR_brk 45
+//#define __NR_brk 45
-//#define __NR_setgid 46
-#ifdef L_setgid
+//#define __NR_setgid 46
+#ifdef L_setgid
#include <unistd.h>
-_syscall1(int,setgid,gid_t,gid);
+_syscall1(int, setgid, gid_t, gid);
#endif
-//#define __NR_getgid 47
-#ifdef L_getgid
+//#define __NR_getgid 47
+#ifdef L_getgid
#include <unistd.h>
-_syscall0(gid_t,getgid);
+_syscall0(gid_t, getgid);
#endif
-//#define __NR_signal 48
+//#define __NR_signal 48
-//#define __NR_geteuid 49
+//#define __NR_geteuid 49
#ifdef L_geteuid
#ifdef SYS_geteuid
#include <unistd.h>
-_syscall0(uid_t,geteuid);
+_syscall0(uid_t, geteuid);
#else
uid_t geteuid(void)
{
- return(getuid());
+ return (getuid());
}
#endif
#endif
-//#define __NR_getegid 50
+//#define __NR_getegid 50
#ifdef L_getegid
#ifdef SYS_getegid
#include <unistd.h>
-_syscall0(gid_t,getegid);
+_syscall0(gid_t, getegid);
#else
gid_t getegid(void)
{
- return(getgid());
+ return (getgid());
}
#endif
#endif
-//#define __NR_acct 51
+//#define __NR_acct 51
-//#define __NR_umount2 52
+//#define __NR_umount2 52
#ifdef L_umount2
#include <sys/mount.h>
-_syscall2(int,umount2,const char *,special_file,int,flags);
+_syscall2(int, umount2, const char *, special_file, int, flags);
#endif
-//#define __NR_lock 53
+//#define __NR_lock 53
-//#define __NR_ioctl 54
-#ifdef L__ioctl
+//#define __NR_ioctl 54
+#ifdef L__ioctl
#include <stdarg.h>
#include <sys/ioctl.h>
#define __NR__ioctl __NR_ioctl
-_syscall3(int,_ioctl,int,fd,int,request,void *,arg);
+_syscall3(int, _ioctl, int, fd, int, request, void *, arg);
-int ioctl (int fd, unsigned long int request, ...)
+int ioctl(int fd, unsigned long int request, ...)
{
- void * arg;
+ void *arg;
va_list list;
va_start(list, request);
arg = va_arg(list, void *);
+
va_end(list);
return _ioctl(fd, request, arg);
}
#endif
-//#define __NR_fcntl 55
-#ifdef L__fcntl
+//#define __NR_fcntl 55
+#ifdef L__fcntl
#include <stdarg.h>
#include <fcntl.h>
#define __NR__fcntl __NR_fcntl
-_syscall3(int,_fcntl,int,fd,int,cmd,long,arg);
+_syscall3(int, _fcntl, int, fd, int, cmd, long, arg);
int fcntl(int fd, int command, ...)
{
@@ -367,670 +371,690 @@ int fcntl(int fd, int command, ...)
va_start(list, command);
arg = va_arg(list, long);
+
va_end(list);
return _fcntl(fd, command, arg);
}
#endif
-//#define __NR_mpx 56
+//#define __NR_mpx 56
-//#define __NR_setpgid 57
-#ifdef L_setpgid
+//#define __NR_setpgid 57
+#ifdef L_setpgid
#include <unistd.h>
-_syscall2(int,setpgid,pid_t,pid,pid_t,pgid);
+_syscall2(int, setpgid, pid_t, pid, pid_t, pgid);
#endif
-//#define __NR_ulimit 58
+//#define __NR_ulimit 58
-//#define __NR_oldolduname 59
+//#define __NR_oldolduname 59
-//#define __NR_umask 60
-#ifdef L_umask
+//#define __NR_umask 60
+#ifdef L_umask
#include <sys/stat.h>
-_syscall1(mode_t,umask,mode_t,mask);
+_syscall1(mode_t, umask, mode_t, mask);
#endif
-//#define __NR_chroot 61
-#ifdef L_chroot
+//#define __NR_chroot 61
+#ifdef L_chroot
#include <unistd.h>
-_syscall1(int,chroot,const char *,path);
+_syscall1(int, chroot, const char *, path);
#endif
-//#define __NR_ustat 62
+//#define __NR_ustat 62
-//#define __NR_dup2 63
-#ifdef L_dup2
+//#define __NR_dup2 63
+#ifdef L_dup2
#include <unistd.h>
-_syscall2(int,dup2,int,oldfd,int,newfd);
+_syscall2(int, dup2, int, oldfd, int, newfd);
#endif
-//#define __NR_getppid 64
+//#define __NR_getppid 64
#ifdef L_getppid
#include <unistd.h>
#ifdef SYS_getppid
-_syscall0(pid_t,getppid);
+_syscall0(pid_t, getppid);
#else
pid_t getppid(void)
{
- return(getpid());
+ return (getpid());
}
#endif
#endif
-//#define __NR_getpgrp 65
-#ifdef L_getpgrp
+//#define __NR_getpgrp 65
+#ifdef L_getpgrp
#include <unistd.h>
-_syscall0(pid_t,getpgrp);
+_syscall0(pid_t, getpgrp);
#endif
-//#define __NR_setsid 66
-#ifdef L_setsid
+//#define __NR_setsid 66
+#ifdef L_setsid
#include <unistd.h>
-_syscall0(pid_t,setsid);
+_syscall0(pid_t, setsid);
#endif
-//#define __NR_sigaction 67
-#ifdef L_sigaction
+//#define __NR_sigaction 67
+#ifdef L_sigaction
#include <signal.h>
-_syscall3(int,sigaction,int,signum, const struct sigaction *,act, struct sigaction *,oldact);
+_syscall3(int, sigaction, int, signum, const struct sigaction *, act,
+ struct sigaction *, oldact);
#endif
-//#define __NR_sgetmask 68
+//#define __NR_sgetmask 68
-//#define __NR_ssetmask 69
+//#define __NR_ssetmask 69
-//#define __NR_setreuid 70
-#ifdef L_setreuid
+//#define __NR_setreuid 70
+#ifdef L_setreuid
#include <unistd.h>
-_syscall2(int,setreuid,uid_t,ruid,uid_t,euid);
+_syscall2(int, setreuid, uid_t, ruid, uid_t, euid);
#endif
-//#define __NR_setregid 71
-#ifdef L_setregid
+//#define __NR_setregid 71
+#ifdef L_setregid
#include <unistd.h>
-_syscall2(int,setregid,gid_t,rgid,gid_t,egid);
+_syscall2(int, setregid, gid_t, rgid, gid_t, egid);
#endif
-//#define __NR_sigsuspend 72
+//#define __NR_sigsuspend 72
#ifdef L_sigsuspend
#include <signal.h>
-_syscall1(int,sigsuspend,const sigset_t *,mask);
+_syscall1(int, sigsuspend, const sigset_t *, mask);
#endif
-//#define __NR_sigpending 73
-#ifdef L_sigpending
+//#define __NR_sigpending 73
+#ifdef L_sigpending
#include <signal.h>
-_syscall1(int,sigpending,sigset_t *,set);
+_syscall1(int, sigpending, sigset_t *, set);
#endif
-//#define __NR_sethostname 74
-#ifdef L_sethostname
+//#define __NR_sethostname 74
+#ifdef L_sethostname
#include <unistd.h>
-_syscall2(int,sethostname,const char *,name, size_t,len);
+_syscall2(int, sethostname, const char *, name, size_t, len);
#endif
-//#define __NR_setrlimit 75
-#ifdef L_setrlimit
+//#define __NR_setrlimit 75
+#ifdef L_setrlimit
#include <unistd.h>
#include <sys/resource.h>
-_syscall2(int,setrlimit,int,resource,const struct rlimit *,rlim);
+_syscall2(int, setrlimit, int, resource, const struct rlimit *, rlim);
#endif
-//#define __NR_getrlimit 76
-#ifdef L_getrlimit
+//#define __NR_getrlimit 76
+#ifdef L_getrlimit
#include <unistd.h>
#include <sys/resource.h>
-_syscall2(int,getrlimit,int,resource,struct rlimit *,rlim);
+_syscall2(int, getrlimit, int, resource, struct rlimit *, rlim);
#endif
-//#define __NR_getrusage 77
-#ifdef L_getrusage
+//#define __NR_getrusage 77
+#ifdef L_getrusage
#include <unistd.h>
-_syscall2(int,getrusage,int,who,struct rusage *,usage);
+_syscall2(int, getrusage, int, who, struct rusage *, usage);
#endif
-//#define __NR_gettimeofday 78
-#ifdef L_gettimeofday
+//#define __NR_gettimeofday 78
+#ifdef L_gettimeofday
#include <unistd.h>
-_syscall2(int,gettimeofday,struct timeval *,tv, struct timezone *,tz);
+_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
#endif
-//#define __NR_settimeofday 79
-#ifdef L_settimeofday
+//#define __NR_settimeofday 79
+#ifdef L_settimeofday
#include <unistd.h>
-_syscall2(int,settimeofday,const struct timeval *,tv, const struct timezone *,tz);
+_syscall2(int, settimeofday, const struct timeval *, tv,
+ const struct timezone *, tz);
#endif
-//#define __NR_getgroups 80
-#ifdef L_getgroups
+//#define __NR_getgroups 80
+#ifdef L_getgroups
#include <unistd.h>
-_syscall2(int,getgroups,int,size,gid_t *,list);
+_syscall2(int, getgroups, int, size, gid_t *, list);
#endif
-//#define __NR_setgroups 81
-#ifdef L_setgroups
+//#define __NR_setgroups 81
+#ifdef L_setgroups
#include <unistd.h>
#include <grp.h>
-_syscall2(int,setgroups,size_t,size,const gid_t *,list);
+_syscall2(int, setgroups, size_t, size, const gid_t *, list);
#endif
-//#define __NR_select 82
+//#define __NR_select 82
-//#define __NR_symlink 83
-#ifdef L_symlink
+//#define __NR_symlink 83
+#ifdef L_symlink
#include <unistd.h>
-_syscall2(int,symlink,const char *,oldpath,const char *,newpath);
+_syscall2(int, symlink, const char *, oldpath, const char *, newpath);
#endif
-//#define __NR_oldlstat 84
+//#define __NR_oldlstat 84
-//#define __NR_readlink 85
-#ifdef L_readlink
+//#define __NR_readlink 85
+#ifdef L_readlink
#include <unistd.h>
-_syscall3(int,readlink,const char *,path, char *,buf, size_t,bufsiz);
+_syscall3(int, readlink, const char *, path, char *, buf, size_t, bufsiz);
#endif
-//#define __NR_uselib 86
-#ifdef L_uselib
+//#define __NR_uselib 86
+#ifdef L_uselib
#include <unistd.h>
-_syscall1(int,uselib,const char *,library);
+_syscall1(int, uselib, const char *, library);
#endif
-//#define __NR_swapon 87
-#ifdef L_swapon
+//#define __NR_swapon 87
+#ifdef L_swapon
#include <sys/swap.h>
-_syscall2(int,swapon,const char *,path,int,swapflags);
+_syscall2(int, swapon, const char *, path, int, swapflags);
#endif
-//#define __NR_reboot 88
-#ifdef L__reboot
+//#define __NR_reboot 88
+#ifdef L__reboot
#define __NR__reboot __NR_reboot
-_syscall3(int,_reboot,int,magic,int,magic2,int,flag);
+_syscall3(int, _reboot, int, magic, int, magic2, int, flag);
-int reboot (int flag)
+int reboot(int flag)
{
- return (_reboot( (int)0xfee1dead, 672274793, flag));
+ return (_reboot((int) 0xfee1dead, 672274793, flag));
}
#endif
-//#define __NR_readdir 89
+//#define __NR_readdir 89
-//#define __NR_mmap 90
+//#define __NR_mmap 90
#ifdef L__mmap
#define __NR__mmap __NR_mmap
#include <unistd.h>
#include <sys/mman.h>
-_syscall1(__ptr_t,_mmap,unsigned long *,buffer);
+_syscall1(__ptr_t, _mmap, unsigned long *, buffer);
-__ptr_t mmap(__ptr_t addr, size_t len, int prot,
- int flags, int fd, __off_t offset)
+__ptr_t mmap(__ptr_t addr, size_t len, int prot,
+ int flags, int fd, __off_t offset)
{
unsigned long buffer[6];
- buffer[0] = (unsigned long)addr;
- buffer[1] = (unsigned long)len;
- buffer[2] = (unsigned long)prot;
- buffer[3] = (unsigned long)flags;
- buffer[4] = (unsigned long)fd;
- buffer[5] = (unsigned long)offset;
+ buffer[0] = (unsigned long) addr;
+ buffer[1] = (unsigned long) len;
+ buffer[2] = (unsigned long) prot;
+ buffer[3] = (unsigned long) flags;
+ buffer[4] = (unsigned long) fd;
+ buffer[5] = (unsigned long) offset;
return (__ptr_t) _mmap(buffer);
}
#endif
-//#define __NR_munmap 91
-#ifdef L_munmap
+//#define __NR_munmap 91
+#ifdef L_munmap
#include <unistd.h>
#include <sys/mman.h>
-_syscall2(int,munmap,void *,start,size_t,length);
+_syscall2(int, munmap, void *, start, size_t, length);
#endif
-//#define __NR_truncate 92
-#ifdef L_truncate
+//#define __NR_truncate 92
+#ifdef L_truncate
#include <unistd.h>
-_syscall2(int,truncate,const char *,path, off_t,length);
+_syscall2(int, truncate, const char *, path, off_t, length);
#endif
-//#define __NR_ftruncate 93
-#ifdef L_ftruncate
+//#define __NR_ftruncate 93
+#ifdef L_ftruncate
#include <unistd.h>
-_syscall2(int,ftruncate,int,fd,off_t,length);
+_syscall2(int, ftruncate, int, fd, off_t, length);
#endif
-//#define __NR_fchmod 94
-#ifdef L_fchmod
+//#define __NR_fchmod 94
+#ifdef L_fchmod
#include <sys/stat.h>
-_syscall2(int,fchmod,int,fildes, mode_t,mode);
+_syscall2(int, fchmod, int, fildes, mode_t, mode);
#endif
-//#define __NR_fchown 95
-#ifdef L_fchown
+//#define __NR_fchown 95
+#ifdef L_fchown
#include <unistd.h>
-_syscall3(int,fchown,int,fd,uid_t,owner, gid_t,group);
+_syscall3(int, fchown, int, fd, uid_t, owner, gid_t, group);
#endif
-//#define __NR_getpriority 96
-#ifdef L_getpriority
+//#define __NR_getpriority 96
+#ifdef L_getpriority
#include <sys/resource.h>
-_syscall2(int,getpriority,int,which, int,who);
+_syscall2(int, getpriority, int, which, int, who);
#endif
-//#define __NR_setpriority 97
-#ifdef L_setpriority
+//#define __NR_setpriority 97
+#ifdef L_setpriority
#include <sys/resource.h>
-_syscall3(int,setpriority,int,which, int,who, int,prio);
+_syscall3(int, setpriority, int, which, int, who, int, prio);
#endif
-//#define __NR_profil 98
+//#define __NR_profil 98
-//#define __NR_statfs 99
-#ifdef L_statfs
+//#define __NR_statfs 99
+#ifdef L_statfs
#include <sys/vfs.h>
-_syscall2(int,statfs,const char *,path, struct statfs *,buf);
+_syscall2(int, statfs, const char *, path, struct statfs *, buf);
#endif
-//#define __NR_fstatfs 100
-#ifdef L_fstatfs
+//#define __NR_fstatfs 100
+#ifdef L_fstatfs
#include <sys/vfs.h>
-_syscall2(int,fstatfs,int,fd, struct statfs *,buf);
+_syscall2(int, fstatfs, int, fd, struct statfs *, buf);
#endif
-//#define __NR_ioperm 101
-#ifdef L_ioperm
+//#define __NR_ioperm 101
+#ifdef L_ioperm
#include <sys/io.h>
-syscall3(int,ioperm,unsigned,long,from,unsigned long, num, int, turn_on);
+syscall3(int, ioperm, unsigned, long, from, unsigned long, num, int,
+
+ turn_on);
#endif
-//#define __NR_socketcall 102
-#ifdef L_socketcall
-_syscall2(int,socketcall,int,call,unsigned long *,args);
+//#define __NR_socketcall 102
+#ifdef L_socketcall
+_syscall2(int, socketcall, int, call, unsigned long *, args);
#endif
-//#define __NR_syslog 103
+//#define __NR_syslog 103
#ifdef L__syslog
#include <unistd.h>
#define __NR__syslog __NR_syslog
-_syscall3(int,_syslog,int, type, char *, buf, int, len);
+_syscall3(int, _syslog, int, type, char *, buf, int, len);
-int klogctl (int type, char * buf, int len)
+int klogctl(int type, char *buf, int len)
{
- return(_syslog(type, buf, len));
+ return (_syslog(type, buf, len));
}
#endif
-//#define __NR_setitimer 104
-#ifdef L_setitimer
+//#define __NR_setitimer 104
+#ifdef L_setitimer
#include <sys/time.h>
-_syscall3(int,setitimer,enum __itimer_which,which, const struct itimerval *,new, struct itimerval *,old);
+_syscall3(int, setitimer, enum __itimer_which, which,
+ const struct itimerval *, new, struct itimerval *, old);
#endif
-//#define __NR_getitimer 105
-#ifdef L_getitimer
+//#define __NR_getitimer 105
+#ifdef L_getitimer
#include <sys/time.h>
-_syscall2(int,getitimer,enum __itimer_which,which, struct itimerval *,value);
+_syscall2(int, getitimer, enum __itimer_which, which, struct itimerval *, value);
#endif
-//#define __NR_stat 106
-#ifdef L_stat
-#include <sys/stat.h>
+//#define __NR_stat 106
+#ifdef L__stat
+#define __NR__stat __NR_stat
#include <unistd.h>
-_syscall2(int,stat,const char *,file_name, struct stat *,buf);
+#include "statfix.h"
+_syscall2(int, _stat, const char *, file_name, struct kernel_stat *, buf);
+
+int stat(const char * file_name, struct libc_stat * cstat)
+{
+ struct kernel_stat kstat;
+ int result = _stat(file_name, &kstat);
+
+ if (result == 0) {
+ statfix(cstat, &kstat);
+ }
+ return result;
+}
#endif
-//#define __NR_lstat 107
-#ifdef L_lstat
-#include <sys/stat.h>
+//#define __NR_lstat 107
+#ifdef L__lstat
+#define __NR__lstat __NR_lstat
#include <unistd.h>
-_syscall2(int,lstat,const char *,file_name, struct stat *,buf);
+#include "statfix.h"
+_syscall2(int, _lstat, const char *, file_name, struct kernel_stat *, buf);
+
+int lstat(const char * file_name, struct libc_stat * cstat)
+{
+ struct kernel_stat kstat;
+ int result = _lstat(file_name, &kstat);
+
+ if (result == 0) {
+ statfix(cstat, &kstat);
+ }
+ return result;
+}
#endif
-//#define __NR_fstat 108
-#ifdef L_fstat
-#include <sys/stat.h>
+//#define __NR_fstat 108
+#ifdef L__fstat
+#define __NR__fstat __NR_fstat
#include <unistd.h>
-_syscall2(int,fstat,int,filedes, struct stat *,buf);
+#include "statfix.h"
+_syscall2(int, _fstat, int, filedes, struct kernel_stat *, buf);
+
+int fstat(int fd, struct libc_stat *cstat)
+{
+ struct kernel_stat kstat;
+ int result = _fstat(fd, &kstat);
+
+ if (result == 0) {
+ statfix(cstat, &kstat);
+ }
+ return result;
+}
#endif
-//#define __NR_olduname 109
+//#define __NR_olduname 109
-//#define __NR_iopl 110
-#ifdef L_iopl
+//#define __NR_iopl 110
+#ifdef L_iopl
#include <sys/io.h>
-_syscall1(int,iopl,int,level);
+_syscall1(int, iopl, int, level);
#endif
-//#define __NR_vhangup 111
-#ifdef L_vhangup
+//#define __NR_vhangup 111
+#ifdef L_vhangup
#include <unistd.h>
-_syscall0(int,vhangup);
+_syscall0(int, vhangup);
#endif
-//#define __NR_idle 112
+//#define __NR_idle 112
//int idle(void);
-//#define __NR_vm86old 113
+//#define __NR_vm86old 113
-//#define __NR_wait4 114
-#ifdef L_wait4
+//#define __NR_wait4 114
+#ifdef L_wait4
#include <sys/wait.h>
-_syscall4(pid_t,wait4,pid_t,pid, int *,status, int,options, struct rusage *,rusage);
+_syscall4(pid_t, wait4, pid_t, pid, int *, status, int, options,
+ struct rusage *, rusage);
#endif
-//#define __NR_swapoff 115
-#ifdef L_swapoff
+//#define __NR_swapoff 115
+#ifdef L_swapoff
#include <sys/swap.h>
-_syscall1(int,swapoff,const char *,path);
+_syscall1(int, swapoff, const char *, path);
#endif
-//#define __NR_sysinfo 116
-#ifdef L_sysinfo
+//#define __NR_sysinfo 116
+#ifdef L_sysinfo
#include <sys/sysinfo.h>
-_sysinfo(int,sysinfo,struct sysinfo *,info);
+_sysinfo(int, sysinfo, struct sysinfo *, info);
#endif
-//#define __NR_ipc 117
+//#define __NR_ipc 117
#ifdef L_ipc
//_syscall6(int,ipc,unsigned int,call, int,first, int,second, int,third, void *,ptr, long, fifth);
#endif
-//#define __NR_fsync 118
-#ifdef L_fsync
+//#define __NR_fsync 118
+#ifdef L_fsync
#include <unistd.h>
-_syscall1(int,fsync,int,fd);
+_syscall1(int, fsync, int, fd);
#endif
-//#define __NR_sigreturn 119
+//#define __NR_sigreturn 119
//int sigreturn(unsigned long __unused);
-//#define __NR_clone 120
+//#define __NR_clone 120
-//#define __NR_setdomainname 121
-#ifdef L_setdomainname
+//#define __NR_setdomainname 121
+#ifdef L_setdomainname
#include <unistd.h>
-_syscall2(int,setdomainname,const char *,name, size_t,len);
+_syscall2(int, setdomainname, const char *, name, size_t, len);
#endif
-//#define __NR_uname 122
-#ifdef L_uname
+//#define __NR_uname 122
+#ifdef L_uname
#include <sys/utsname.h>
-_syscall1(int,uname,struct utsname *,buf);
+_syscall1(int, uname, struct utsname *, buf);
#endif
-//#define __NR_modify_ldt 123
+//#define __NR_modify_ldt 123
-//#define __NR_adjtimex 124
-#ifdef L_adjtimex
+//#define __NR_adjtimex 124
+#ifdef L_adjtimex
#include <sys/timex.h>
-_syscall1(int,adjtimex,struct timex *,buf);
+_syscall1(int, adjtimex, struct timex *, buf);
#endif
-//#define __NR_mprotect 125
-#ifdef L_mprotect
+//#define __NR_mprotect 125
+#ifdef L_mprotect
#include <sys/mman.h>
-_syscall3(int,mprotect,const void *,addr, size_t,len, int,prot);
+_syscall3(int, mprotect, const void *, addr, size_t, len, int, prot);
#endif
-//#define __NR_sigprocmask 126
-#ifdef L_sigprocmask
+//#define __NR_sigprocmask 126
+#ifdef L_sigprocmask
#include <signal.h>
-_syscall3(int,sigprocmask,int,how, const sigset_t *,set, sigset_t *,oldset);
+_syscall3(int, sigprocmask, int, how, const sigset_t *, set, sigset_t *,
+
+ oldset);
#endif
-//#define __NR_create_module 127
+//#define __NR_create_module 127
-//#define __NR_init_module 128
+//#define __NR_init_module 128
-//#define __NR_delete_module 129
+//#define __NR_delete_module 129
-//#define __NR_get_kernel_syms 130
+//#define __NR_get_kernel_syms 130
-//#define __NR_quotactl 131
+//#define __NR_quotactl 131
-//#define __NR_getpgid 132
-#ifdef L_getpgid
-_syscall1(pid_t,getpgid,pid_t,pid);
+//#define __NR_getpgid 132
+#ifdef L_getpgid
+_syscall1(pid_t, getpgid, pid_t, pid);
#endif
-//#define __NR_fchdir 133
-#ifdef L_fchdir
+//#define __NR_fchdir 133
+#ifdef L_fchdir
#include <unistd.h>
-_syscall1(int,fchdir,int,fd);
+_syscall1(int, fchdir, int, fd);
#endif
-//#define __NR_bdflush 134
+//#define __NR_bdflush 134
-//#define __NR_sysfs 135
+//#define __NR_sysfs 135
-//#define __NR_personality 136
+//#define __NR_personality 136
-//#define __NR_afs_syscall 137
+//#define __NR_afs_syscall 137
-//#define __NR_setfsuid 138
-#ifdef L_setfsuid
-SYSCALL__ (setfsuid, 1)
+//#define __NR_setfsuid 138
+#ifdef L_setfsuid
+SYSCALL__(setfsuid, 1)
ret
#endif
-
-//#define __NR_setfsgid 139
-#ifdef L_setfsgid
-SYSCALL__ (setfsgid, 1)
+//#define __NR_setfsgid 139
+#ifdef L_setfsgid
+ SYSCALL__(setfsgid, 1)
ret
#endif
-
-//#define __NR__llseek 140
+//#define __NR__llseek 140
#ifdef L__llseek
-_syscall5(int,_llseek,int,fd,off_t,hoff,off_t,loff,loff_t*,res,int,whence);
+ _syscall5(int, _llseek, int, fd, off_t, hoff, off_t, loff, loff_t *, res,
+ int, whence);
-loff_t llseek (int fd, loff_t offset, int whence)
+loff_t llseek(int fd, loff_t offset, int whence)
{
- int ret;
- loff_t result;
+ int ret;
+ loff_t result;
- ret = _llseek (fd, (off_t) (offset >> 32),
- (off_t) (offset & 0xffffffff), &result, whence);
+ ret = _llseek(fd, (off_t) (offset >> 32),
+ (off_t) (offset & 0xffffffff), &result, whence);
- return ret ? (loff_t) ret : result;
+ return ret ? (loff_t) ret : result;
}
#endif
-//#define __NR_getdents 141
-#ifdef L_getdents
-SYSCALL__ (getdents, 3)
- ret
+//#define __NR_getdents 141
+#ifdef L_getdents
+#include <unistd.h>
+#include <dirent.h>
+_syscall3(int, getdents, unsigned int, fd, struct dirent *, dirp, unsigned int, count);
#endif
-//#define __NR__newselect 142
+//#define __NR__newselect 142
#ifdef L__newselect
#include <unistd.h>
-_syscall5(int,_newselect,int, n, fd_set *,readfds, fd_set *,writefds,
- fd_set *,exceptfds, struct timeval *,timeout);
+ _syscall5(int, _newselect, int, n, fd_set *, readfds, fd_set *, writefds,
+ fd_set *, exceptfds, struct timeval *, timeout);
-int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- struct timeval *timeout)
+int select(int n, fd_set * readfds, fd_set * writefds, fd_set * exceptfds,
+ struct timeval *timeout)
{
- return(_newselect(n, readfds, writefds, exceptfds, timeout));
+ return (_newselect(n, readfds, writefds, exceptfds, timeout));
}
#endif
-//#define __NR_flock 143
-#ifdef L_flock
-SYSCALL__ (flock, 2)
+//#define __NR_flock 143
+#ifdef L_flock
+SYSCALL__(flock, 2)
ret
#endif
-
-//#define __NR_msync 144
-#ifdef L_msync
-SYSCALL__ (msync, 3)
+//#define __NR_msync 144
+#ifdef L_msync
+ SYSCALL__(msync, 3)
ret
#endif
-
-//#define __NR_readv 145
-#ifdef L_readv
+//#define __NR_readv 145
+#ifdef L_readv
#include <sys/uio.h>
-_syscall3(ssize_t,readv,int,filedes, const struct iovec *,vector, int,count);
+ _syscall3(ssize_t, readv, int, filedes, const struct iovec *, vector, int,
+ count);
#endif
-//#define __NR_writev 146
-#ifdef L_writev
+//#define __NR_writev 146
+#ifdef L_writev
#include <sys/uio.h>
-_syscall3(ssize_t,writev,int,filedes, const struct iovec *,vector, int,count);
+_syscall3(ssize_t, writev, int, filedes, const struct iovec *, vector, int,
+
+ count);
#endif
-//#define __NR_getsid 147
-#ifdef L_getsid
-SYSCALL__ (getsid, 1)
+//#define __NR_getsid 147
+#ifdef L_getsid
+SYSCALL__(getsid, 1)
ret
#endif
-
-//#define __NR_fdatasync 148
-#ifdef L_fdatasync
-SYSCALL__ (fdatasync, 1)
+//#define __NR_fdatasync 148
+#ifdef L_fdatasync
+ SYSCALL__(fdatasync, 1)
ret
#endif
-
-//#define __NR__sysctl 149
-
-//#define __NR_mlock 150
-#ifdef L_mlock
-SYSCALL__ (mlock, 2)
+//#define __NR__sysctl 149
+//#define __NR_mlock 150
+#ifdef L_mlock
+ SYSCALL__(mlock, 2)
ret
#endif
-
-//#define __NR_munlock 151
-#ifdef L_munlock
-SYSCALL__ (munlock, 2)
+//#define __NR_munlock 151
+#ifdef L_munlock
+ SYSCALL__(munlock, 2)
ret
#endif
-
-//#define __NR_mlockall 152
-#ifdef L_mlockall
-SYSCALL__ (mlockall, 1)
+//#define __NR_mlockall 152
+#ifdef L_mlockall
+ SYSCALL__(mlockall, 1)
ret
#endif
-
-//#define __NR_munlockall 153
-#ifdef L_munlockall
-SYSCALL__ (munlockall, 0)
+//#define __NR_munlockall 153
+#ifdef L_munlockall
+ SYSCALL__(munlockall, 0)
ret
#endif
-
-//#define __NR_sched_setparam 154
-#ifdef L_sched_setparam
-SYSCALL__ (sched_setparam, 2)
+//#define __NR_sched_setparam 154
+#ifdef L_sched_setparam
+ SYSCALL__(sched_setparam, 2)
ret
#endif
-
-//#define __NR_sched_getparam 155
-#ifdef L_sched_getparam
-SYSCALL__ (sched_getparam, 2)
+//#define __NR_sched_getparam 155
+#ifdef L_sched_getparam
+ SYSCALL__(sched_getparam, 2)
ret
#endif
-
-//#define __NR_sched_setscheduler 156
-#ifdef L_sched_setscheduler
-SYSCALL__ (sched_setscheduler, 3)
+//#define __NR_sched_setscheduler 156
+#ifdef L_sched_setscheduler
+ SYSCALL__(sched_setscheduler, 3)
ret
#endif
-
-//#define __NR_sched_getscheduler 157
-#ifdef L_sched_getscheduler
-SYSCALL__ (sched_getscheduler, 1)
+//#define __NR_sched_getscheduler 157
+#ifdef L_sched_getscheduler
+ SYSCALL__(sched_getscheduler, 1)
ret
#endif
-
-//#define __NR_sched_yield 158
-#ifdef L_sched_yield
-SYSCALL__ (sched_yield, 0)
+//#define __NR_sched_yield 158
+#ifdef L_sched_yield
+ SYSCALL__(sched_yield, 0)
ret
#endif
-
-//#define __NR_sched_get_priority_max 159
-#ifdef L_sched_get_priority_max
-SYSCALL__ (sched_get_priority_max, 1)
+//#define __NR_sched_get_priority_max 159
+#ifdef L_sched_get_priority_max
+ SYSCALL__(sched_get_priority_max, 1)
ret
#endif
-
-//#define __NR_sched_get_priority_min 160
-#ifdef L_sched_get_priority_min
-SYSCALL__ (sched_get_priority_min, 1)
+//#define __NR_sched_get_priority_min 160
+#ifdef L_sched_get_priority_min
+ SYSCALL__(sched_get_priority_min, 1)
ret
#endif
-
-//#define __NR_sched_rr_get_interval 161
-#ifdef L_sched_rr_get_interval
-SYSCALL__ (sched_rr_get_interval, 2)
+//#define __NR_sched_rr_get_interval 161
+#ifdef L_sched_rr_get_interval
+ SYSCALL__(sched_rr_get_interval, 2)
ret
#endif
-
-//#define __NR_nanosleep 162
-#ifdef L_nanosleep
-SYSCALL__ (nanosleep, 2)
+//#define __NR_nanosleep 162
+#ifdef L_nanosleep
+ SYSCALL__(nanosleep, 2)
ret
#endif
-
-//#define __NR_mremap 163
+//#define __NR_mremap 163
#ifdef L_mremap
#include <unistd.h>
#include <sys/mman.h>
-_syscall4(__ptr_t,mremap,__ptr_t,old_address,size_t,old_size , size_t,new_size,int,may_move);
+ _syscall4(__ptr_t, mremap, __ptr_t, old_address, size_t, old_size, size_t,
+ new_size, int, may_move);
#endif
-//#define __NR_setresuid 164
+//#define __NR_setresuid 164
-//#define __NR_getresuid 165
+//#define __NR_getresuid 165
-//#define __NR_vm86 166
+//#define __NR_vm86 166
-//#define __NR_query_module 167
+//#define __NR_query_module 167
-//#define __NR_poll 168
-#ifdef L_poll
-SYSCALL__ (poll, 3)
+//#define __NR_poll 168
+#ifdef L_poll
+SYSCALL__(poll, 3)
ret
#endif
-
-//#define __NR_nfsservctl 169
-
-//#define __NR_setresgid 170
-
-//#define __NR_getresgid 171
-
-//#define __NR_prctl 172
-
-//#define __NR_rt_sigreturn 173
-//#define __NR_rt_sigaction 174
-//#define __NR_rt_sigprocmask 175
-//#define __NR_rt_sigpending 176
-//#define __NR_rt_sigtimedwait 177
-//#define __NR_rt_sigqueueinfo 178
-//#define __NR_rt_sigsuspend 179
-
-
-//#define __NR_pread 180
-
-//#define __NR_pwrite 181
-
-//#define __NR_chown 182
-#ifdef L_chown
+//#define __NR_nfsservctl 169
+//#define __NR_setresgid 170
+//#define __NR_getresgid 171
+//#define __NR_prctl 172
+//#define __NR_rt_sigreturn 173
+//#define __NR_rt_sigaction 174
+//#define __NR_rt_sigprocmask 175
+//#define __NR_rt_sigpending 176
+//#define __NR_rt_sigtimedwait 177
+//#define __NR_rt_sigqueueinfo 178
+//#define __NR_rt_sigsuspend 179
+//#define __NR_pread 180
+//#define __NR_pwrite 181
+//#define __NR_chown 182
+#ifdef L_chown
#include <unistd.h>
-_syscall3(int,chown,const char *,path, uid_t,owner, gid_t,group);
+ _syscall3(int, chown, const char *, path, uid_t, owner, gid_t, group);
#endif
-//#define __NR_getcwd 183
-
-//#define __NR_capget 184
-
-//#define __NR_capset 185
+//#define __NR_getcwd 183
-//#define __NR_sigaltstack 186
+//#define __NR_capget 184
-//#define __NR_sendfile 187
+//#define __NR_capset 185
-//#define __NR_getpmsg 188
+//#define __NR_sigaltstack 186
-//#define __NR_putpmsg 189
+//#define __NR_sendfile 187
-//#define __NR_vfork 190
+//#define __NR_getpmsg 188
+//#define __NR_putpmsg 189
+//#define __NR_vfork 190