Re: [libposix-development] [PATCH 1/2] Rename architecture i686 into x86_32
Status: Pre-Alpha
Brought to you by:
hdante
From: Henrique A. <hd...@gm...> - 2009-06-26 16:54:27
|
Thanks for the patch. I'm trying to apply it, but it gives an error, I think there's a problem near the "lchown16" system call in the message you sent. Maybe an attachment will work ? Also, note that later I'll describe "platform sets" which will standardize the way we deal with specific target configurations (those will go into the "build" directory). 2009/6/26 Kirill A. Shutemov <ki...@sh...>: > Signed-off-by: Kirill A. Shutemov <ki...@sh...> > --- > CMakeLists.txt | 11 +- > Makefile | 2 +- > runtime/linux/i686/_start.S | 47 -- > runtime/linux/i686/architecture_init.c | 54 --- > runtime/linux/x86_32/_start.S | 47 ++ > runtime/linux/x86_32/architecture_init.c | 54 +++ > system/linux/i686/system_call_numbers.h | 732 ----------------------------- > system/linux/i686/system_calls.S | 79 --- > system/linux/x86_32/system_call_numbers.h | 732 +++++++++++++++++++++++++++++ > system/linux/x86_32/system_calls.S | 79 +++ > 10 files changed, 921 insertions(+), 916 deletions(-) > delete mode 100644 runtime/linux/i686/_start.S > delete mode 100644 runtime/linux/i686/architecture_init.c > create mode 100644 runtime/linux/x86_32/_start.S > create mode 100644 runtime/linux/x86_32/architecture_init.c > delete mode 100644 system/linux/i686/system_call_numbers.h > delete mode 100644 system/linux/i686/system_calls.S > create mode 100644 system/linux/x86_32/system_call_numbers.h > create mode 100644 system/linux/x86_32/system_calls.S > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index dfa65ec..b5e1dca 100644 > --- a/CMakeLists.txt > +++ b/CMakeLists.txt > @@ -32,16 +32,21 @@ set(LIBPOSIX_INCLUDE_DIRECTORY include CACHE STRING > set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -nostdlib") > set(BUILD_SHARED_LIBS true) > string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name) > -string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} system_processor) > + > +if(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") > + set(arch "x86_32") > +else(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") > + string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} arch) > +endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") > > set(libposix_root ${PROJECT_SOURCE_DIR}) > set(mandatory_path ${libposix_root}/mandatory) > set(optional_path ${libposix_root}/optional) > set(os_path ${libposix_root}/system/${system_name}) > -set(architecture_path ${os_path}/${system_processor}) > +set(architecture_path ${os_path}/${arch}) > set(runtime_path ${libposix_root}/runtime) > set(runtime_os_path ${runtime_path}/${system_name}) > -set(runtime_architecture_path ${runtime_os_path}/${system_processor}) > +set(runtime_architecture_path ${runtime_os_path}/${arch}) > set(mandatory_include_path ${mandatory_path}/include) > set(runtime_file_name runtime${CMAKE_C_OUTPUT_EXTENSION}) > # Wait for those to be populated to avoid error in installation > diff --git a/Makefile b/Makefile > index 3c0fb77..3f18e2b 100644 > --- a/Makefile > +++ b/Makefile > @@ -6,7 +6,7 @@ RANLIB=ranlib > AS=as > > OSNAME:=$(shell uname -s | tr A-Z a-z) > -ARCH:=$(shell uname -m | sed 's/i[456]86/i686/') > +ARCH:=$(shell uname -m | sed 's/i[0-9]86/x86_32/') > OUTPUTDIR:=output-$(OSNAME)-$(ARCH) > > CFLAGS+=-Isystem/$(OSNAME) -Isystem/$(OSNAME)/$(ARCH) > diff --git a/runtime/linux/i686/_start.S b/runtime/linux/i686/_start.S > deleted file mode 100644 > index 682f37c..0000000 > --- a/runtime/linux/i686/_start.S > +++ /dev/null > @@ -1,47 +0,0 @@ > -/* > - Copyright (c) 2009, Henrique Dante de Almeida > - All rights reserved. > - > -Redistribution and use in source and binary forms, with or without > -modification, are permitted provided that the following conditions are met: > - > - * Redistributions of source code must retain the above copyright notice, > - this list of conditions and the following disclaimer. > - * Redistributions in binary form must reproduce the above copyright > - notice, this list of conditions and the following disclaimer in the > - documentation and/or other materials provided with the distribution. > - > -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > -POSSIBILITY OF SUCH DAMAGE. > -*/ > -.text > -.global _start > -.type _start,@function > - > -_start: > - /* This code generates a call to init(argc, argv, envp, auxv); */ > - movl %esp, %ebp > - subl $16, %esp > - movl (%ebp), %eax > - movl %eax, (%esp) > - leal 4(%ebp), %ecx > - movl %ecx, 4(%esp) > - leal 8(%ebp,%eax,4), %ecx > - movl %ecx, 8(%esp) > -search_auxv: > - movl (%ecx), %eax > - addl $4, %ecx > - testl %eax, %eax > - jnz search_auxv > - movl %ecx, 12(%esp) > - call init@PLT > - > diff --git a/runtime/linux/i686/architecture_init.c > b/runtime/linux/i686/architecture_init.c > deleted file mode 100644 > index f080dc4..0000000 > --- a/runtime/linux/i686/architecture_init.c > +++ /dev/null > @@ -1,54 +0,0 @@ > -/* > -Copyright (c) 2009, Henrique Dante de Almeida > -All rights reserved. > - > -Redistribution and use in source and binary forms, with or without > -modification, are permitted provided that the following conditions are met: > - > - * Redistributions of source code must retain the above copyright notice, > - this list of conditions and the following disclaimer. > - * Redistributions in binary form must reproduce the above copyright > - notice, this list of conditions and the following disclaimer in the > - documentation and/or other materials provided with the distribution. > - > -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > -POSSIBILITY OF SUCH DAMAGE. > -*/ > - > -#include <stddef.h> > -#include "runtime.h" > - > -void (*kernel_vsyscall)(); > - > -/* AT_SYSINFO entry has the vsyscall address */ > -#define AT_SYSINFO 32 > - > -void set_kernel_vsyscall(const auxv_t *auxv) > -{ > - if (auxv != NULL) { > - const auxv_t *auxv_walk; > - for (auxv_walk = auxv; auxv_walk->a_type != 0; auxv_walk++) { > - if (auxv_walk->a_type == AT_SYSINFO) { > - kernel_vsyscall = auxv_walk->a_un.a_fcn; > - return; > - > - } > - } > - // ERROR: AT_SYSINFO entry not found > - } > -} > - > -void architecture_init(int argc, const char **argv, const char **envp, > - const auxv_t *auxv) > -{ > - set_kernel_vsyscall(auxv); > -} > diff --git a/runtime/linux/x86_32/_start.S b/runtime/linux/x86_32/_start.S > new file mode 100644 > index 0000000..682f37c > --- /dev/null > +++ b/runtime/linux/x86_32/_start.S > @@ -0,0 +1,47 @@ > +/* > + Copyright (c) 2009, Henrique Dante de Almeida > + All rights reserved. > + > +Redistribution and use in source and binary forms, with or without > +modification, are permitted provided that the following conditions are met: > + > + * Redistributions of source code must retain the above copyright notice, > + this list of conditions and the following disclaimer. > + * Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in the > + documentation and/or other materials provided with the distribution. > + > +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > +POSSIBILITY OF SUCH DAMAGE. > +*/ > +.text > +.global _start > +.type _start,@function > + > +_start: > + /* This code generates a call to init(argc, argv, envp, auxv); */ > + movl %esp, %ebp > + subl $16, %esp > + movl (%ebp), %eax > + movl %eax, (%esp) > + leal 4(%ebp), %ecx > + movl %ecx, 4(%esp) > + leal 8(%ebp,%eax,4), %ecx > + movl %ecx, 8(%esp) > +search_auxv: > + movl (%ecx), %eax > + addl $4, %ecx > + testl %eax, %eax > + jnz search_auxv > + movl %ecx, 12(%esp) > + call init@PLT > + > diff --git a/runtime/linux/x86_32/architecture_init.c > b/runtime/linux/x86_32/architecture_init.c > new file mode 100644 > index 0000000..f080dc4 > --- /dev/null > +++ b/runtime/linux/x86_32/architecture_init.c > @@ -0,0 +1,54 @@ > +/* > +Copyright (c) 2009, Henrique Dante de Almeida > +All rights reserved. > + > +Redistribution and use in source and binary forms, with or without > +modification, are permitted provided that the following conditions are met: > + > + * Redistributions of source code must retain the above copyright notice, > + this list of conditions and the following disclaimer. > + * Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in the > + documentation and/or other materials provided with the distribution. > + > +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > +POSSIBILITY OF SUCH DAMAGE. > +*/ > + > +#include <stddef.h> > +#include "runtime.h" > + > +void (*kernel_vsyscall)(); > + > +/* AT_SYSINFO entry has the vsyscall address */ > +#define AT_SYSINFO 32 > + > +void set_kernel_vsyscall(const auxv_t *auxv) > +{ > + if (auxv != NULL) { > + const auxv_t *auxv_walk; > + for (auxv_walk = auxv; auxv_walk->a_type != 0; auxv_walk++) { > + if (auxv_walk->a_type == AT_SYSINFO) { > + kernel_vsyscall = auxv_walk->a_un.a_fcn; > + return; > + > + } > + } > + // ERROR: AT_SYSINFO entry not found > + } > +} > + > +void architecture_init(int argc, const char **argv, const char **envp, > + const auxv_t *auxv) > +{ > + set_kernel_vsyscall(auxv); > +} > diff --git a/system/linux/i686/system_call_numbers.h > b/system/linux/i686/system_call_numbers.h > deleted file mode 100644 > index 04c78a5..0000000 > --- a/system/linux/i686/system_call_numbers.h > +++ /dev/null > @@ -1,732 +0,0 @@ > -/* > - Copyright (c) 2009, Henrique Dante de Almeida > - Copyright (c) 2009, njoly (NetBSD) > - All rights reserved. > - > -Redistribution and use in source and binary forms, with or without > -modification, are permitted provided that the following conditions are met: > - > - * Redistributions of source code must retain the above copyright notice, > - this list of conditions and the following disclaimer. > - * Redistributions in binary form must reproduce the above copyright > - notice, this list of conditions and the following disclaimer in the > - documentation and/or other materials provided with the distribution. > - > -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > -POSSIBILITY OF SUCH DAMAGE. > - > -*/ > -/* $NetBSD: linux_syscall.h,v 1.83 2009/01/17 22:34:02 c Exp $ */ > - > -/* > - * System call numbers. > - * > - * DO NOT EDIT-- this file is automatically generated. > - * created from NetBSD: syscalls.master,v 1.99 2009/01/17 22:28:52 njoly Exp > - */ > - > -#ifndef _LINUX_SYS_SYSCALL_H_ > -#define _LINUX_SYS_SYSCALL_H_ > - > -#define LINUX_SYS_MAXSYSARGS 8 > - > -/* syscall: "syscall" ret: "int" args: */ > -#define LINUX_SYS_syscall 0 > - > -/* syscall: "exit" ret: "int" args: "int" */ > -#define LINUX_SYS_exit 1 > - > -/* syscall: "fork" ret: "int" args: */ > -#define LINUX_SYS_fork 2 > - > -/* syscall: "read" ret: "int" args: "int" "char *" "u_int" */ > -#define LINUX_SYS_read 3 > - > -/* syscall: "write" ret: "int" args: "int" "char *" "u_int" */ > -#define LINUX_SYS_write 4 > - > -/* syscall: "open" ret: "int" args: "const char *" "int" "int" */ > -#define LINUX_SYS_open 5 > - > -/* syscall: "close" ret: "int" args: "int" */ > -#define LINUX_SYS_close 6 > - > -/* syscall: "waitpid" ret: "int" args: "int" "int *" "int" */ > -#define LINUX_SYS_waitpid 7 > - > -/* syscall: "creat" ret: "int" args: "const char *" "int" */ > -#define LINUX_SYS_creat 8 > - > -/* syscall: "link" ret: "int" args: "const char *" "const char *" */ > -#define LINUX_SYS_link 9 > - > -/* syscall: "unlink" ret: "int" args: "const char *" */ > -#define LINUX_SYS_unlink 10 > - > -/* syscall: "execve" ret: "int" args: "const char *" "char **" "char **" */ > -#define LINUX_SYS_execve 11 > - > -/* syscall: "chdir" ret: "int" args: "const char *" */ > -#define LINUX_SYS_chdir 12 > - > -/* syscall: "time" ret: "int" args: "linux_time_t *" */ > -#define LINUX_SYS_time 13 > - > -/* syscall: "mknod" ret: "int" args: "const char *" "int" "int" */ > -#define LINUX_SYS_mknod 14 > - > -/* syscall: "chmod" ret: "int" args: "const char *" "int" */ > -#define LINUX_SYS_chmod 15 > - > -/* syscall: "lchown16" ret: "int" args: "const char *" > "linux_uid16_t" "linux_gid16_t" */ > -#define LINUX_SYS_lchown16 16 > - > -/* syscall: "break" ret: "int" args: "char *" */ > -#define LINUX_SYS_break 17 > - > - /* 18 is obsolete ostat */ > -/* syscall: "lseek" ret: "long" args: "int" "long" "int" */ > -#define LINUX_SYS_lseek 19 > - > -#ifdef LINUX_NPTL > -/* syscall: "getpid" ret: "pid_t" args: */ > -#define LINUX_SYS_getpid 20 > - > -#else > -/* syscall: "getpid" ret: "pid_t" args: */ > -#define LINUX_SYS_getpid 20 > - > -#endif > -/* syscall: "linux_setuid16" ret: "int" args: "uid_t" */ > -#define LINUX_SYS_linux_setuid16 23 > - > -/* syscall: "linux_getuid16" ret: "uid_t" args: */ > -#define LINUX_SYS_linux_getuid16 24 > - > -/* syscall: "stime" ret: "int" args: "linux_time_t *" */ > -#define LINUX_SYS_stime 25 > - > -/* syscall: "ptrace" ret: "int" args: "int" "int" "int" "int" */ > -#define LINUX_SYS_ptrace 26 > - > -/* syscall: "alarm" ret: "int" args: "unsigned int" */ > -#define LINUX_SYS_alarm 27 > - > - /* 28 is obsolete ofstat */ > -/* syscall: "pause" ret: "int" args: */ > -#define LINUX_SYS_pause 29 > - > -/* syscall: "utime" ret: "int" args: "const char *" "struct linux_utimbuf *" */ > -#define LINUX_SYS_utime 30 > - > - /* 31 is obsolete stty */ > - /* 32 is obsolete gtty */ > -/* syscall: "access" ret: "int" args: "const char *" "int" */ > -#define LINUX_SYS_access 33 > - > -/* syscall: "nice" ret: "int" args: "int" */ > -#define LINUX_SYS_nice 34 > - > - /* 35 is obsolete ftime */ > -/* syscall: "sync" ret: "int" args: */ > -#define LINUX_SYS_sync 36 > - > -/* syscall: "kill" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_kill 37 > - > -/* syscall: "__posix_rename" ret: "int" args: "const char *" "const char *" */ > -#define LINUX_SYS___posix_rename 38 > - > -/* syscall: "mkdir" ret: "int" args: "const char *" "int" */ > -#define LINUX_SYS_mkdir 39 > - > -/* syscall: "rmdir" ret: "int" args: "const char *" */ > -#define LINUX_SYS_rmdir 40 > - > -/* syscall: "dup" ret: "int" args: "u_int" */ > -#define LINUX_SYS_dup 41 > - > -/* syscall: "pipe" ret: "int" args: "int *" */ > -#define LINUX_SYS_pipe 42 > - > -/* syscall: "times" ret: "int" args: "struct times *" */ > -#define LINUX_SYS_times 43 > - > - /* 44 is obsolete prof */ > -/* syscall: "brk" ret: "int" args: "char *" */ > -#define LINUX_SYS_brk 45 > - > -/* syscall: "linux_setgid16" ret: "int" args: "gid_t" */ > -#define LINUX_SYS_linux_setgid16 46 > - > -/* syscall: "linux_getgid16" ret: "gid_t" args: */ > -#define LINUX_SYS_linux_getgid16 47 > - > -/* syscall: "signal" ret: "int" args: "int" "linux_handler_t" */ > -#define LINUX_SYS_signal 48 > - > -/* syscall: "linux_geteuid16" ret: "uid_t" args: */ > -#define LINUX_SYS_linux_geteuid16 49 > - > -/* syscall: "linux_getegid16" ret: "gid_t" args: */ > -#define LINUX_SYS_linux_getegid16 50 > - > -/* syscall: "acct" ret: "int" args: "char *" */ > -#define LINUX_SYS_acct 51 > - > - /* 52 is obsolete phys */ > - /* 53 is obsolete lock */ > -/* syscall: "ioctl" ret: "int" args: "int" "u_long" "void *" */ > -#define LINUX_SYS_ioctl 54 > - > -/* syscall: "fcntl" ret: "int" args: "int" "int" "void *" */ > -#define LINUX_SYS_fcntl 55 > - > - /* 56 is obsolete mpx */ > -/* syscall: "setpgid" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_setpgid 57 > - > - /* 58 is obsolete ulimit */ > -/* syscall: "oldolduname" ret: "int" args: "struct linux_oldold_utsname *" */ > -#define LINUX_SYS_oldolduname 59 > - > -/* syscall: "umask" ret: "int" args: "int" */ > -#define LINUX_SYS_umask 60 > - > -/* syscall: "chroot" ret: "int" args: "char *" */ > -#define LINUX_SYS_chroot 61 > - > -/* syscall: "dup2" ret: "int" args: "u_int" "u_int" */ > -#define LINUX_SYS_dup2 63 > - > -#ifdef LINUX_NPTL > -/* syscall: "getppid" ret: "pid_t" args: */ > -#define LINUX_SYS_getppid 64 > - > -#else > -/* syscall: "getppid" ret: "pid_t" args: */ > -#define LINUX_SYS_getppid 64 > - > -#endif > -/* syscall: "getpgrp" ret: "int" args: */ > -#define LINUX_SYS_getpgrp 65 > - > -/* syscall: "setsid" ret: "int" args: */ > -#define LINUX_SYS_setsid 66 > - > -/* syscall: "sigaction" ret: "int" args: "int" "const struct > linux_old_sigaction *" "struct linux_old_sigaction *" */ > -#define LINUX_SYS_sigaction 67 > - > -/* syscall: "siggetmask" ret: "int" args: */ > -#define LINUX_SYS_siggetmask 68 > - > -/* syscall: "sigsetmask" ret: "int" args: "linux_old_sigset_t" */ > -#define LINUX_SYS_sigsetmask 69 > - > -/* syscall: "setreuid16" ret: "int" args: "linux_uid16_t" "linux_uid16_t" */ > -#define LINUX_SYS_setreuid16 70 > - > -/* syscall: "setregid16" ret: "int" args: "linux_gid16_t" "linux_gid16_t" */ > -#define LINUX_SYS_setregid16 71 > - > -/* syscall: "sigsuspend" ret: "int" args: "void *" "int" "int" */ > -#define LINUX_SYS_sigsuspend 72 > - > -/* syscall: "sigpending" ret: "int" args: "linux_old_sigset_t *" */ > -#define LINUX_SYS_sigpending 73 > - > -/* syscall: "sethostname" ret: "int" args: "char *" "u_int" */ > -#define LINUX_SYS_sethostname 74 > - > -/* syscall: "setrlimit" ret: "int" args: "u_int" "struct orlimit *" */ > -#define LINUX_SYS_setrlimit 75 > - > -/* syscall: "getrlimit" ret: "int" args: "u_int" "struct orlimit *" */ > -#define LINUX_SYS_getrlimit 76 > - > -/* syscall: "getrusage" ret: "int" args: "int" "struct rusage50 *" */ > -#define LINUX_SYS_getrusage 77 > - > -/* syscall: "gettimeofday" ret: "int" args: "struct timeval50 *" > "struct timezone *" */ > -#define LINUX_SYS_gettimeofday 78 > - > -/* syscall: "settimeofday" ret: "int" args: "struct timeval50 *" > "struct timezone *" */ > -#define LINUX_SYS_settimeofday 79 > - > -/* syscall: "getgroups16" ret: "int" args: "int" "linux_gid16_t *" */ > -#define LINUX_SYS_getgroups16 80 > - > -/* syscall: "setgroups16" ret: "int" args: "int" "linux_gid16_t *" */ > -#define LINUX_SYS_setgroups16 81 > - > -/* syscall: "oldselect" ret: "int" args: "struct linux_oldselect *" */ > -#define LINUX_SYS_oldselect 82 > - > -/* syscall: "symlink" ret: "int" args: "const char *" "const char *" */ > -#define LINUX_SYS_symlink 83 > - > -/* syscall: "oolstat" ret: "int" args: "const char *" "struct stat43 *" */ > -#define LINUX_SYS_oolstat 84 > - > -/* syscall: "readlink" ret: "int" args: "const char *" "char *" "int" */ > -#define LINUX_SYS_readlink 85 > - > -#ifdef EXEC_AOUT > -/* syscall: "uselib" ret: "int" args: "const char *" */ > -#define LINUX_SYS_uselib 86 > - > -#else > -#endif > -/* syscall: "swapon" ret: "int" args: "char *" */ > -#define LINUX_SYS_swapon 87 > - > -/* syscall: "reboot" ret: "int" args: "int" "int" "int" "void *" */ > -#define LINUX_SYS_reboot 88 > - > -/* syscall: "readdir" ret: "int" args: "int" "void *" "unsigned int" */ > -#define LINUX_SYS_readdir 89 > - > -/* syscall: "old_mmap" ret: "int" args: "struct linux_oldmmap *" */ > -#define LINUX_SYS_old_mmap 90 > - > -/* syscall: "munmap" ret: "int" args: "void *" "int" */ > -#define LINUX_SYS_munmap 91 > - > -/* syscall: "truncate" ret: "int" args: "const char *" "long" */ > -#define LINUX_SYS_truncate 92 > - > -/* syscall: "ftruncate" ret: "int" args: "int" "long" */ > -#define LINUX_SYS_ftruncate 93 > - > -/* syscall: "fchmod" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_fchmod 94 > - > -/* syscall: "fchown16" ret: "int" args: "int" "linux_uid16_t" > "linux_gid16_t" */ > -#define LINUX_SYS_fchown16 95 > - > -/* syscall: "getpriority" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_getpriority 96 > - > -/* syscall: "setpriority" ret: "int" args: "int" "int" "int" */ > -#define LINUX_SYS_setpriority 97 > - > -/* syscall: "profil" ret: "int" args: "void *" "u_int" "u_int" "u_int" */ > -#define LINUX_SYS_profil 98 > - > -/* syscall: "statfs" ret: "int" args: "const char *" "struct linux_statfs *" */ > -#define LINUX_SYS_statfs 99 > - > -/* syscall: "fstatfs" ret: "int" args: "int" "struct linux_statfs *" */ > -#define LINUX_SYS_fstatfs 100 > - > -/* syscall: "ioperm" ret: "int" args: "unsigned int" "unsigned int" "int" */ > -#define LINUX_SYS_ioperm 101 > - > -/* syscall: "socketcall" ret: "int" args: "int" "void *" */ > -#define LINUX_SYS_socketcall 102 > - > -/* syscall: "setitimer" ret: "int" args: "u_int" "struct itimerval50 > *" "struct itimerval50 *" */ > -#define LINUX_SYS_setitimer 104 > - > -/* syscall: "getitimer" ret: "int" args: "u_int" "struct itimerval50 *" */ > -#define LINUX_SYS_getitimer 105 > - > -/* syscall: "stat" ret: "int" args: "const char *" "struct linux_stat *" */ > -#define LINUX_SYS_stat 106 > - > -/* syscall: "lstat" ret: "int" args: "const char *" "struct linux_stat *" */ > -#define LINUX_SYS_lstat 107 > - > -/* syscall: "fstat" ret: "int" args: "int" "struct linux_stat *" */ > -#define LINUX_SYS_fstat 108 > - > -/* syscall: "olduname" ret: "int" args: "struct linux_old_utsname *" */ > -#define LINUX_SYS_olduname 109 > - > -/* syscall: "iopl" ret: "int" args: "int" */ > -#define LINUX_SYS_iopl 110 > - > -/* syscall: "wait4" ret: "int" args: "int" "int *" "int" "struct rusage50 *" */ > -#define LINUX_SYS_wait4 114 > - > -/* syscall: "swapoff" ret: "int" args: "const char *" */ > -#define LINUX_SYS_swapoff 115 > - > -/* syscall: "sysinfo" ret: "int" args: "struct linux_sysinfo *" */ > -#define LINUX_SYS_sysinfo 116 > - > -/* syscall: "ipc" ret: "int" args: "int" "int" "int" "int" "void *" */ > -#define LINUX_SYS_ipc 117 > - > -/* syscall: "fsync" ret: "int" args: "int" */ > -#define LINUX_SYS_fsync 118 > - > -/* syscall: "sigreturn" ret: "int" args: "struct linux_sigcontext *" */ > -#define LINUX_SYS_sigreturn 119 > - > -/* syscall: "clone" ret: "int" args: "int" "void *" "void *" "void *" */ > -#define LINUX_SYS_clone 120 > - > -/* syscall: "setdomainname" ret: "int" args: "char *" "int" */ > -#define LINUX_SYS_setdomainname 121 > - > -/* syscall: "uname" ret: "int" args: "struct linux_utsname *" */ > -#define LINUX_SYS_uname 122 > - > -/* syscall: "modify_ldt" ret: "int" args: "int" "void *" "size_t" */ > -#define LINUX_SYS_modify_ldt 123 > - > -/* syscall: "mprotect" ret: "int" args: "const void *" "unsigned long" "int" */ > -#define LINUX_SYS_mprotect 125 > - > -/* syscall: "sigprocmask" ret: "int" args: "int" "const > linux_old_sigset_t *" "linux_old_sigset_t *" */ > -#define LINUX_SYS_sigprocmask 126 > - > -/* syscall: "getpgid" ret: "pid_t" args: "pid_t" */ > -#define LINUX_SYS_getpgid 132 > - > -/* syscall: "fchdir" ret: "int" args: "int" */ > -#define LINUX_SYS_fchdir 133 > - > -/* syscall: "personality" ret: "int" args: "int" */ > -#define LINUX_SYS_personality 136 > - > -/* syscall: "linux_setfsuid16" ret: "int" args: "uid_t" */ > -#define LINUX_SYS_linux_setfsuid16 138 > - > -/* syscall: "linux_setfsgid16" ret: "int" args: "gid_t" */ > -#define LINUX_SYS_linux_setfsgid16 139 > - > -/* syscall: "llseek" ret: "int" args: "int" "u_int32_t" "u_int32_t" > "void *" "int" */ > -#define LINUX_SYS_llseek 140 > - > -/* syscall: "getdents" ret: "int" args: "int" "struct linux_dirent *" > "unsigned int" */ > -#define LINUX_SYS_getdents 141 > - > -/* syscall: "select" ret: "int" args: "int" "fd_set *" "fd_set *" > "fd_set *" "struct timeval50 *" */ > -#define LINUX_SYS_select 142 > - > -/* syscall: "flock" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_flock 143 > - > -/* syscall: "__msync13" ret: "int" args: "void *" "size_t" "int" */ > -#define LINUX_SYS___msync13 144 > - > -/* syscall: "readv" ret: "int" args: "int" "struct iovec *" "u_int" */ > -#define LINUX_SYS_readv 145 > - > -/* syscall: "writev" ret: "int" args: "int" "struct iovec *" "u_int" */ > -#define LINUX_SYS_writev 146 > - > -/* syscall: "getsid" ret: "pid_t" args: "pid_t" */ > -#define LINUX_SYS_getsid 147 > - > -/* syscall: "fdatasync" ret: "int" args: "int" */ > -#define LINUX_SYS_fdatasync 148 > - > -/* syscall: "__sysctl" ret: "int" args: "struct linux___sysctl *" */ > -#define LINUX_SYS___sysctl 149 > - > -/* syscall: "mlock" ret: "int" args: "void *" "size_t" */ > -#define LINUX_SYS_mlock 150 > - > -/* syscall: "munlock" ret: "int" args: "void *" "size_t" */ > -#define LINUX_SYS_munlock 151 > - > -/* syscall: "mlockall" ret: "int" args: "int" */ > -#define LINUX_SYS_mlockall 152 > - > -/* syscall: "munlockall" ret: "int" args: */ > -#define LINUX_SYS_munlockall 153 > - > -/* syscall: "sched_setparam" ret: "int" args: "pid_t" "const struct > linux_sched_param *" */ > -#define LINUX_SYS_sched_setparam 154 > - > -/* syscall: "sched_getparam" ret: "int" args: "pid_t" "struct > linux_sched_param *" */ > -#define LINUX_SYS_sched_getparam 155 > - > -/* syscall: "sched_setscheduler" ret: "int" args: "pid_t" "int" > "const struct linux_sched_param *" */ > -#define LINUX_SYS_sched_setscheduler 156 > - > -/* syscall: "sched_getscheduler" ret: "int" args: "pid_t" */ > -#define LINUX_SYS_sched_getscheduler 157 > - > -/* syscall: "sched_yield" ret: "int" args: */ > -#define LINUX_SYS_sched_yield 158 > - > -/* syscall: "sched_get_priority_max" ret: "int" args: "int" */ > -#define LINUX_SYS_sched_get_priority_max 159 > - > -/* syscall: "sched_get_priority_min" ret: "int" args: "int" */ > -#define LINUX_SYS_sched_get_priority_min 160 > - > -/* syscall: "nanosleep" ret: "int" args: "const struct linux_timespec > *" "struct linux_timespec *" */ > -#define LINUX_SYS_nanosleep 162 > - > -/* syscall: "mremap" ret: "void *" args: "void *" "size_t" "size_t" "u_long" */ > -#define LINUX_SYS_mremap 163 > - > -/* syscall: "setresuid16" ret: "int" args: "linux_uid16_t" > "linux_uid16_t" "linux_uid16_t" */ > -#define LINUX_SYS_setresuid16 164 > - > -/* syscall: "getresuid16" ret: "int" args: "linux_uid16_t *" > "linux_uid16_t *" "linux_uid16_t *" */ > -#define LINUX_SYS_getresuid16 165 > - > -/* syscall: "poll" ret: "int" args: "struct pollfd *" "u_int" "int" */ > -#define LINUX_SYS_poll 168 > - > -/* syscall: "setresgid16" ret: "int" args: "linux_gid16_t" > "linux_gid16_t" "linux_gid16_t" */ > -#define LINUX_SYS_setresgid16 170 > - > -/* syscall: "getresgid16" ret: "int" args: "linux_gid16_t *" > "linux_gid16_t *" "linux_gid16_t *" */ > -#define LINUX_SYS_getresgid16 171 > - > -/* syscall: "rt_sigreturn" ret: "int" args: "struct linux_ucontext *" */ > -#define LINUX_SYS_rt_sigreturn 173 > - > -/* syscall: "rt_sigaction" ret: "int" args: "int" "const struct > linux_sigaction *" "struct linux_sigaction *" "size_t" */ > -#define LINUX_SYS_rt_sigaction 174 > - > -/* syscall: "rt_sigprocmask" ret: "int" args: "int" "const > linux_sigset_t *" "linux_sigset_t *" "size_t" */ > -#define LINUX_SYS_rt_sigprocmask 175 > - > -/* syscall: "rt_sigpending" ret: "int" args: "linux_sigset_t *" "size_t" */ > -#define LINUX_SYS_rt_sigpending 176 > - > -/* syscall: "rt_queueinfo" ret: "int" args: "int" "int" "void *" */ > -#define LINUX_SYS_rt_queueinfo 178 > - > -/* syscall: "rt_sigsuspend" ret: "int" args: "linux_sigset_t *" "size_t" */ > -#define LINUX_SYS_rt_sigsuspend 179 > - > -/* syscall: "pread" ret: "int" args: "int" "char *" "size_t" "linux_off_t" */ > -#define LINUX_SYS_pread 180 > - > -/* syscall: "pwrite" ret: "int" args: "int" "char *" "size_t" "linux_off_t" */ > -#define LINUX_SYS_pwrite 181 > - > -/* syscall: "chown16" ret: "int" args: "const char *" "linux_uid16_t" > "linux_gid16_t" */ > -#define LINUX_SYS_chown16 182 > - > -/* syscall: "__getcwd" ret: "int" args: "char *" "size_t" */ > -#define LINUX_SYS___getcwd 183 > - > -/* syscall: "sigaltstack" ret: "int" args: "const struct > linux_sigaltstack *" "struct linux_sigaltstack *" */ > -#define LINUX_SYS_sigaltstack 186 > - > -/* syscall: "__vfork14" ret: "int" args: */ > -#define LINUX_SYS___vfork14 190 > - > -/* syscall: "ugetrlimit" ret: "int" args: "int" "struct orlimit *" */ > -#define LINUX_SYS_ugetrlimit 191 > - > -#define linux_sys_mmap2_args linux_sys_mmap_args > -/* syscall: "mmap2" ret: "linux_off_t" args: "unsigned long" "size_t" > "int" "int" "int" "linux_off_t" */ > -#define LINUX_SYS_mmap2 192 > - > -/* syscall: "truncate64" ret: "int" args: "const char *" "off_t" */ > -#define LINUX_SYS_truncate64 193 > - > -/* syscall: "ftruncate64" ret: "int" args: "unsigned int" "off_t" */ > -#define LINUX_SYS_ftruncate64 194 > - > -/* syscall: "stat64" ret: "int" args: "const char *" "struct linux_stat64 *" */ > -#define LINUX_SYS_stat64 195 > - > -/* syscall: "lstat64" ret: "int" args: "const char *" "struct > linux_stat64 *" */ > -#define LINUX_SYS_lstat64 196 > - > -/* syscall: "fstat64" ret: "int" args: "int" "struct linux_stat64 *" */ > -#define LINUX_SYS_fstat64 197 > - > -/* syscall: "__posix_lchown" ret: "int" args: "const char *" "uid_t" "gid_t" */ > -#define LINUX_SYS___posix_lchown 198 > - > -/* syscall: "getuid" ret: "uid_t" args: */ > -#define LINUX_SYS_getuid 199 > - > -/* syscall: "getgid" ret: "gid_t" args: */ > -#define LINUX_SYS_getgid 200 > - > -/* syscall: "geteuid" ret: "uid_t" args: */ > -#define LINUX_SYS_geteuid 201 > - > -/* syscall: "getegid" ret: "gid_t" args: */ > -#define LINUX_SYS_getegid 202 > - > -/* syscall: "setreuid" ret: "int" args: "uid_t" "uid_t" */ > -#define LINUX_SYS_setreuid 203 > - > -/* syscall: "setregid" ret: "int" args: "gid_t" "gid_t" */ > -#define LINUX_SYS_setregid 204 > - > -/* syscall: "getgroups" ret: "int" args: "u_int" "gid_t *" */ > -#define LINUX_SYS_getgroups 205 > - > -/* syscall: "setgroups" ret: "int" args: "u_int" "gid_t *" */ > -#define LINUX_SYS_setgroups 206 > - > -/* syscall: "__posix_fchown" ret: "int" args: "int" "uid_t" "gid_t" */ > -#define LINUX_SYS___posix_fchown 207 > - > -/* syscall: "setresuid" ret: "int" args: "uid_t" "uid_t" "uid_t" */ > -#define LINUX_SYS_setresuid 208 > - > -/* syscall: "getresuid" ret: "int" args: "uid_t *" "uid_t *" "uid_t *" */ > -#define LINUX_SYS_getresuid 209 > - > -/* syscall: "setresgid" ret: "int" args: "gid_t" "gid_t" "gid_t" */ > -#define LINUX_SYS_setresgid 210 > - > -/* syscall: "getresgid" ret: "int" args: "gid_t *" "gid_t *" "gid_t *" */ > -#define LINUX_SYS_getresgid 211 > - > -/* syscall: "__posix_chown" ret: "int" args: "const char *" "uid_t" "gid_t" */ > -#define LINUX_SYS___posix_chown 212 > - > -/* syscall: "setuid" ret: "int" args: "uid_t" */ > -#define LINUX_SYS_setuid 213 > - > -/* syscall: "setgid" ret: "int" args: "gid_t" */ > -#define LINUX_SYS_setgid 214 > - > -/* syscall: "setfsuid" ret: "int" args: "uid_t" */ > -#define LINUX_SYS_setfsuid 215 > - > -/* syscall: "setfsgid" ret: "int" args: "gid_t" */ > -#define LINUX_SYS_setfsgid 216 > - > -/* syscall: "mincore" ret: "int" args: "void *" "size_t" "char *" */ > -#define LINUX_SYS_mincore 218 > - > -/* syscall: "madvise" ret: "int" args: "void *" "size_t" "int" */ > -#define LINUX_SYS_madvise 219 > - > -/* syscall: "getdents64" ret: "int" args: "int" "struct > linux_dirent64 *" "unsigned int" */ > -#define LINUX_SYS_getdents64 220 > - > -/* syscall: "fcntl64" ret: "int" args: "int" "int" "void *" */ > -#define LINUX_SYS_fcntl64 221 > - > -#ifdef LINUX_NPTL > -/* syscall: "gettid" ret: "pid_t" args: */ > -#define LINUX_SYS_gettid 224 > - > -#else > -#endif > -/* syscall: "setxattr" ret: "int" args: "char *" "char *" "void *" > "size_t" "int" */ > -#define LINUX_SYS_setxattr 226 > - > -/* syscall: "lsetxattr" ret: "int" args: "char *" "char *" "void *" > "size_t" "int" */ > -#define LINUX_SYS_lsetxattr 227 > - > -/* syscall: "fsetxattr" ret: "int" args: "int" "char *" "void *" > "size_t" "int" */ > -#define LINUX_SYS_fsetxattr 228 > - > -/* syscall: "getxattr" ret: "ssize_t" args: "char *" "char *" "void > *" "size_t" */ > -#define LINUX_SYS_getxattr 229 > - > -/* syscall: "lgetxattr" ret: "ssize_t" args: "char *" "char *" "void > *" "size_t" */ > -#define LINUX_SYS_lgetxattr 230 > - > -/* syscall: "fgetxattr" ret: "ssize_t" args: "int" "char *" "void *" > "size_t" */ > -#define LINUX_SYS_fgetxattr 231 > - > -/* syscall: "listxattr" ret: "ssize_t" args: "char *" "char *" "size_t" */ > -#define LINUX_SYS_listxattr 232 > - > -/* syscall: "llistxattr" ret: "ssize_t" args: "char *" "char *" "size_t" */ > -#define LINUX_SYS_llistxattr 233 > - > -/* syscall: "flistxattr" ret: "ssize_t" args: "int" "char *" "size_t" */ > -#define LINUX_SYS_flistxattr 234 > - > -/* syscall: "removexattr" ret: "int" args: "char *" "char *" */ > -#define LINUX_SYS_removexattr 235 > - > -/* syscall: "lremovexattr" ret: "int" args: "char *" "char *" */ > -#define LINUX_SYS_lremovexattr 236 > - > -/* syscall: "fremovexattr" ret: "int" args: "int" "char *" */ > -#define LINUX_SYS_fremovexattr 237 > - > -#ifdef LINUX_NPTL > -/* syscall: "tkill" ret: "int" args: "int" "int" */ > -#define LINUX_SYS_tkill 238 > - > -#else > -#endif > -/* syscall: "futex" ret: "int" args: "int *" "int" "int" "const > struct linux_timespec *" "int *" "int" */ > -#define LINUX_SYS_futex 240 > - > -#ifdef LINUX_NPTL > -/* syscall: "sched_setaffinity" ret: "int" args: "pid_t" "unsigned > int" "unsigned long *" */ > -#define LINUX_SYS_sched_setaffinity 241 > - > -/* syscall: "sched_getaffinity" ret: "int" args: "pid_t" "unsigned > int" "unsigned long *" */ > -#define LINUX_SYS_sched_getaffinity 242 > - > -#else > -#endif > -#ifdef LINUX_NPTL > -/* syscall: "set_thread_area" ret: "int" args: "struct linux_user_desc *" */ > -#define LINUX_SYS_set_thread_area 243 > - > -/* syscall: "get_thread_area" ret: "int" args: "struct linux_user_desc *" */ > -#define LINUX_SYS_get_thread_area 244 > - > -#else > -#endif > -/* syscall: "exit_group" ret: "int" args: "int" */ > -#define LINUX_SYS_exit_group 252 > - > -#ifdef LINUX_NPTL > -/* syscall: "set_tid_address" ret: "int" args: "int *" */ > -#define LINUX_SYS_set_tid_address 258 > - > -#else > -#endif > -/* syscall: "clock_settime" ret: "int" args: "clockid_t" "struct > linux_timespec *" */ > -#define LINUX_SYS_clock_settime 264 > - > -/* syscall: "clock_gettime" ret: "int" args: "clockid_t" "struct > linux_timespec *" */ > -#define LINUX_SYS_clock_gettime 265 > - > -/* syscall: "clock_getres" ret: "int" args: "clockid_t" "struct > linux_timespec *" */ > -#define LINUX_SYS_clock_getres 266 > - > -/* syscall: "clock_nanosleep" ret: "int" args: "clockid_t" "int" > "struct linux_timespec *" "struct linux_timespec *" */ > -#define LINUX_SYS_clock_nanosleep 267 > - > -/* syscall: "statfs64" ret: "int" args: "const char *" "size_t" > "struct linux_statfs64 *" */ > -#define LINUX_SYS_statfs64 268 > - > -/* syscall: "fstatfs64" ret: "int" args: "int" "size_t" "struct > linux_statfs64 *" */ > -#define LINUX_SYS_fstatfs64 269 > - > -#ifdef LINUX_NPTL > -/* syscall: "tgkill" ret: "int" args: "int" "int" "int" */ > -#define LINUX_SYS_tgkill 270 > - > -#else > -#endif > - /* 285 is obsolete / * XXXJDM really? * / */ > -/* syscall: "set_robust_list" ret: "int" args: "struct > linux_robust_list_head *" "size_t" */ > -#define LINUX_SYS_set_robust_list 311 > - > -/* syscall: "get_robust_list" ret: "int" args: "int" "struct > linux_robust_list_head **" "size_t *" */ > -#define LINUX_SYS_get_robust_list 312 > - > -#define LINUX_SYS_MAXSYSCALL 317 > -#define LINUX_SYS_NSYSENT 512 > -#endif /* _LINUX_SYS_SYSCALL_H_ */ > - > diff --git a/system/linux/i686/system_calls.S b/system/linux/i686/system_calls.S > deleted file mode 100644 > index 8e1d6f9..0000000 > --- a/system/linux/i686/system_calls.S > +++ /dev/null > @@ -1,79 +0,0 @@ > -/* > - Copyright (c) 2009, Henrique Dante de Almeida > - All rights reserved. > - > -Redistribution and use in source and binary forms, with or without > -modification, are permitted provided that the following conditions are met: > - > - * Redistributions of source code must retain the above copyright notice, > - this list of conditions and the following disclaimer. > - * Redistributions in binary form must reproduce the above copyright > - notice, this list of conditions and the following disclaimer in the > - documentation and/or other materials provided with the distribution. > - > -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > -POSSIBILITY OF SUCH DAMAGE. > -*/ > - > -.global syscall1 > -.type syscall1,@function > -.global syscall3 > -.type syscall3,@function > - > -/* System calls in x86 are informally described in blogs and mailing lists. > - See, for example: > - http://hdante.blogspot.com/2007/02/getting-vsyscall-address-from-elf.html > - Calling conventions are described on the System V x86 ABI supplement. > - Paramenter sequence is: %ebx, %ecx, %edx, %esi, %edi and %ebp > - See, for example: > - http://www.linuxjournal.com/article/4048 > - > - TODO: remove calculation for kernel_vsyscall (use a fixed address) > -*/ > - > - > -syscall1: > - pushl %ebp > - movl %esp, %ebp > - pushl %ebx > - call get_abs_address > - addl $_GLOBAL_OFFSET_TABLE_, %ebx > - movl kernel_vsyscall@GOT(%ebx), %ecx > - movl 8(%ebp), %eax > - movl 12(%ebp), %ebx > - call *(%ecx) > - popl %ebx > - popl %ebp > - ret > - > -syscall3: > - pushl %ebp > - movl %esp, %ebp > - pushl %edi > - pushl %ebx > - call get_abs_address > - addl $_GLOBAL_OFFSET_TABLE_, %ebx > - movl kernel_vsyscall@GOT(%ebx), %edi > - movl 8(%ebp), %eax > - movl 12(%ebp), %ebx > - movl 16(%ebp), %ecx > - movl 20(%ebp), %edx > - call *(%edi) > - popl %ebx > - popl %edi > - popl %ebp > - ret > - > -get_abs_address: > - mov (%esp), %ebx > - ret > - > diff --git a/system/linux/x86_32/system_call_numbers.h > b/system/linux/x86_32/system_call_numbers.h > new file mode 100644 > index 0000000..04c78a5 > --- /dev/null > +++ b/system/linux/x86_32/system_call_numbers.h > @@ -0,0 +1,732 @@ > +/* > + Copyright (c) 2009, Henrique Dante de Almeida > + Copyright (c) 2009, njoly (NetBSD) > + All rights reserved. > + > +Redistribution and use in source and binary forms, with or without > +modification, are permitted provided that the following conditions are met: > + > + * Redistributions of source code must retain the above copyright notice, > + this list of conditions and the following disclaimer. > + * Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in the > + documentation and/or other materials provided with the distribution. > + > +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > +POSSIBILITY OF SUCH DAMAGE. > + > +*/ > +/* $NetBSD: linux_syscall.h,v 1.83 2009/01/17 22:34:02 c Exp $ */ > + > +/* > + * System call numbers. > + * > + * DO NOT EDIT-- this file is automatically generated. > + * created from NetBSD: syscalls.master,v 1.99 2009/01/17 22:28:52 njoly Exp > + */ > + > +#ifndef _LINUX_SYS_SYSCALL_H_ > +#define _LINUX_SYS_SYSCALL_H_ > + > +#define LINUX_SYS_MAXSYSARGS 8 > + > +/* syscall: "syscall" ret: "int" args: */ > +#define LINUX_SYS_syscall 0 > + > +/* syscall: "exit" ret: "int" args: "int" */ > +#define LINUX_SYS_exit 1 > + > +/* syscall: "fork" ret: "int" args: */ > +#define LINUX_SYS_fork 2 > + > +/* syscall: "read" ret: "int" args: "int" "char *" "u_int" */ > +#define LINUX_SYS_read 3 > + > +/* syscall: "write" ret: "int" args: "int" "char *" "u_int" */ > +#define LINUX_SYS_write 4 > + > +/* syscall: "open" ret: "int" args: "const char *" "int" "int" */ > +#define LINUX_SYS_open 5 > + > +/* syscall: "close" ret: "int" args: "int" */ > +#define LINUX_SYS_close 6 > + > +/* syscall: "waitpid" ret: "int" args: "int" "int *" "int" */ > +#define LINUX_SYS_waitpid 7 > + > +/* syscall: "creat" ret: "int" args: "const char *" "int" */ > +#define LINUX_SYS_creat 8 > + > +/* syscall: "link" ret: "int" args: "const char *" "const char *" */ > +#define LINUX_SYS_link 9 > + > +/* syscall: "unlink" ret: "int" args: "const char *" */ > +#define LINUX_SYS_unlink 10 > + > +/* syscall: "execve" ret: "int" args: "const char *" "char **" "char **" */ > +#define LINUX_SYS_execve 11 > + > +/* syscall: "chdir" ret: "int" args: "const char *" */ > +#define LINUX_SYS_chdir 12 > + > +/* syscall: "time" ret: "int" args: "linux_time_t *" */ > +#define LINUX_SYS_time 13 > + > +/* syscall: "mknod" ret: "int" args: "const char *" "int" "int" */ > +#define LINUX_SYS_mknod 14 > + > +/* syscall: "chmod" ret: "int" args: "const char *" "int" */ > +#define LINUX_SYS_chmod 15 > + > +/* syscall: "lchown16" ret: "int" args: "const char *" > "linux_uid16_t" "linux_gid16_t" */ > +#define LINUX_SYS_lchown16 16 > + > +/* syscall: "break" ret: "int" args: "char *" */ > +#define LINUX_SYS_break 17 > + > + /* 18 is obsolete ostat */ > +/* syscall: "lseek" ret: "long" args: "int" "long" "int" */ > +#define LINUX_SYS_lseek 19 > + > +#ifdef LINUX_NPTL > +/* syscall: "getpid" ret: "pid_t" args: */ > +#define LINUX_SYS_getpid 20 > + > +#else > +/* syscall: "getpid" ret: "pid_t" args: */ > +#define LINUX_SYS_getpid 20 > + > +#endif > +/* syscall: "linux_setuid16" ret: "int" args: "uid_t" */ > +#define LINUX_SYS_linux_setuid16 23 > + > +/* syscall: "linux_getuid16" ret: "uid_t" args: */ > +#define LINUX_SYS_linux_getuid16 24 > + > +/* syscall: "stime" ret: "int" args: "linux_time_t *" */ > +#define LINUX_SYS_stime 25 > + > +/* syscall: "ptrace" ret: "int" args: "int" "int" "int" "int" */ > +#define LINUX_SYS_ptrace 26 > + > +/* syscall: "alarm" ret: "int" args: "unsigned int" */ > +#define LINUX_SYS_alarm 27 > + > + /* 28 is obsolete ofstat */ > +/* syscall: "pause" ret: "int" args: */ > +#define LINUX_SYS_pause 29 > + > +/* syscall: "utime" ret: "int" args: "const char *" "struct linux_utimbuf *" */ > +#define LINUX_SYS_utime 30 > + > + /* 31 is obsolete stty */ > + /* 32 is obsolete gtty */ > +/* syscall: "access" ret: "int" args: "const char *" "int" */ > +#define LINUX_SYS_access 33 > + > +/* syscall: "nice" ret: "int" args: "int" */ > +#define LINUX_SYS_nice 34 > + > + /* 35 is obsolete ftime */ > +/* syscall: "sync" ret: "int" args: */ > +#define LINUX_SYS_sync 36 > + > +/* syscall: "kill" ret: "int" args: "int" "int" */ > +#define LINUX_SYS_kill 37 > + > +/* syscall: "__posix_rename" ret: "int" args: "const char *" "const char *" */ > +#define LINUX_SYS___posix_rename 38 > + > +/* syscall: "mkdir" ret: "int" args: "const char *" "int" */ > +#define LINUX_SYS_mkdir 39 > + > +/* syscall: "rmdir" ret: "int" args: "const char *" */ > +#define LINUX_SYS_rmdir 40 > + > +/* syscall: "dup" ret: "int" args: "u_int" */ > +#define LINUX_SYS_dup 41 > + > +/* syscall: "pipe" ret: "int" args: "int *" */ > +#define LINUX_SYS_pipe 42 > + > +/* syscall: "times" ret: "int" args: "struct times *" */ > +#define LINUX_SYS_times 43 > + > + /* 44 is obsolete prof */ > +/* syscall: "brk" ret: "int" args: "char *" */ > +#define LINUX_SYS_brk 45 > + > +/* syscall: "linux_setgid16" ret: "int" args: "gid_t" */ > +#define LINUX_SYS_linux_setgid16 46 > + > +/* syscall: "linux_getgid16" ret: "gid_t" args: */ > +#define LINUX_SYS_linux_getgid16 47 > + > +/* syscall: "signal" ret: "int" args: "int" "linux_handler_t" */ > +#define LINUX_SYS_signal 48 > + > +/* syscall: "linux_geteuid16" ret: "uid_t" args: */ > +#define LINUX_SYS_linux_geteuid16 49 > + > +/* syscall: "linux_getegid16" ret: "gid_t" args: */ > +#define LINUX_SYS_linux_getegid16 50 > + > +/* syscall: "acct" ret: "int" args: "char *" */ > +#define LINUX_SYS_acct 51 > + > + /* 52 is obsolete phys */ > + /* 53 is obsolete lock */ > +/* syscall: "ioctl" ret: "int" args: "int" "u_long" "void *" */ > +#define LINUX_SYS_ioctl 54 > + > +/* syscall: "fcntl" ret: "int" args: "int" "int" "void *" */ > +#define LINUX_SYS_fcntl 55 > + > + /* 56 is obsolete mpx */ > +/* syscall: "setpgid" ret: "int" args: "int" "int" */ > +#define LINUX_SYS_setpgid 57 > + > + /* 58 is obsolete ulimit */ > +/* syscall: "oldolduname" ret: "int" args: "struct linux_oldold_utsname *" */ > +#define LINUX_SYS_oldolduname 59 > + > +/* syscall: "umask" ret: "int" args: "int" */ > +#define LINUX_SYS_umask 60 > + > +/* syscall: "chroot" ret: "int" args: "char *" */ > +#define LINUX_SYS_chroot 61 > + > +/* syscall: "dup2" ret: "int" args: "u_int" "u_int" */ > +#define LINUX_SYS_dup2 63 > + > +#ifdef LINUX_NPTL > +/* syscall: "getppid" ret: "pid_t" args: */ > +#define LINUX_SYS_getppid 64 > + > +#else > +/* syscall: "getppid" ret: "pid_t" args: */ > +#define LINUX_SYS_getppid 64 > + > +#endif > +/* syscall: "getpgrp" ret: "int" args: */ > +#define LINUX_SYS_getpgrp 65 > + > +/* syscall: "setsid" ret: "int" args: */ > +#define LINUX_SYS_setsid 66 > + > +/* syscall: "sigaction" ret: "int" args: "int" "const struct > linux_old_sigaction *" "struct linux_old_sigaction *" */ > +#define LINUX_SYS_sigaction 67 > + > +/* syscall: "siggetmask" ret: "int" args: */ > +#define LINUX_SYS_siggetmask 68 > + > +/* syscall: "sigsetmask" ret: "int" args: "linux_old_sigset_t" */ > +#define LINUX_SYS_sigsetmask 69 > + > +/* syscall: "setreuid16" ret: "int" args: "linux_uid16_t" "linux_uid16_t" */ > +#define LINUX_SYS_setreuid16 70 > + > +/* syscall: "setregid16" ret: "int" args: "linux_gid16_t" "linux_gid16_t" */ > +#define LINUX_SYS_setregid16 71 > + > +/* syscall: "sigsuspend" ret: "int" args: "void *" "int" "int" */ > +#define LINUX_SYS_sigsuspend 72 > + > +/* syscall: "sigpending" ret: "int" args: "linux_old_sigset_t *" */ > +#define LINUX_SYS_sigpending 73 > + > +/* syscall: "sethostname" ret: "int" args: "char *" "u_int" */ > +#define LINUX_SYS_sethostname 74 > + > +/* syscall: "setrlimit" ret: "int" args: "u_int" "struct orlimit *" */ > +#define LINUX_SYS_setrlimit 75 > + > +/* syscall: "getrlimit" ret: "int" args: "u_int" "struct orlimit *" */ > +#define LINUX_SYS_getrlimit 76 > + > +/* syscall: "getrusage" ret: "int" args: "int" "struct rusage50 *" */ > +#define LINUX_SYS_getrusage 77 > + > +/* syscall: "gettimeofday" ret: "int" args: "struct timeval50 *" > "struct timezone *" */ > +#define LINUX_SYS_gettimeofday 78 > + > +/* syscall: "settimeofday" ret: "int" args: "struct timeval50 *" > "struct timezone *" */ > +#define LINUX_SYS_settimeofday 79 > + > +/* syscall: "getgroups16" ret: "int" args: "int" "linux_gid16_t *" */ > +#define LINUX_SYS_getgroups16 80 > + > +/* syscall: "setgroups16" ret: "int" args: "int" "linux_gid16_t *" */ > +#define LINUX_SYS_setgroups16 81 > + > +/* syscall: "oldselect" ret: "int" args: "struct linux_oldselect *" */ > +#define LINUX_SYS_oldselect 82 > + > +/* syscall: "symlink" ret: "int" args: "const char *" "const char *" */ > +#define LINUX_SYS_symlink 83 > + > +/* syscall: "oolstat" ret: "int" args: "const char *" "struct stat43 *" */ > +#define LINUX_SYS_oolstat 84 > + > +/* syscall: "readlink" ret: "int" args: "const char *" "char *" "int" */ > +#define LINUX_SYS_readlink 85 > + > +#ifdef EXEC_AOUT > +/* syscall: "uselib" ret: "int" args: "const char *" */ > +#define LINUX_SYS_uselib 86 > + > +#else > +#endif > +/* syscall: "swapon" ret: "int" args: "char *" */ > +#define LINUX_SYS_swapon 87 > + > +/* syscall: "reboot" ret: "int" args: "int" "int" "int" "void *" */ > +#define LINUX_SYS_reboot 88 > + > +/* syscall: "readdir" ret: "int" args: "int" "void *" "unsigned int" */ > +#define LINUX_SYS_readdir 89 > + > +/* syscall: "old_mmap" ret: "int" args: "struct linux_oldmmap *" */ > +#define LINUX_SYS_old_mmap 90 > + > +/* syscall: "munmap" ret: "int" args: "void *" "int" */ > +#define LINUX_SYS_munmap 91 > + > +/* syscall: "truncate" ret: "int" args: "const char *" "long" */ > +#define LINUX_SYS_truncate 92 > + > +/* syscall: "ftruncate" ret: "int" args: "int" "long" */ > +#define LINUX_SYS_ftruncate 93 > + > +/* syscall: "fchmod" ret: "int" args: "int" "int" */ > +#define LINUX_SYS_fchmod 94 > + > +/* syscall: "fchown16" ret: "int" args: "int" "linux_uid16_t" > "linux_gid16_t" */ > +#define LINUX_SYS_fchown16 95 > + > +/* syscall: "getpriority" ret: "int" args: "int" "int" */ > +#define LINUX_SYS_getpriority 96 > + > +/* syscall: "setpriority" ret: "int" args: "int" "int" "int" */ > +#define LINUX_SYS_setpriority 97 > + > +/* syscall: "profil" ret: "int" args: "void *" "u_int" "u_int" "u_int" */ > +#define LINUX_SYS_profil 98 > + > +/* syscall: "statfs" ret: "int" args: "const char *" "struct linux_statfs *" */ > +#define LINUX_SYS_statfs 99 > + > +/* syscall: "fstatfs" ret: "int" args: "int" "struct linux_statfs *" */ > +#define LINUX_SYS_fstatfs 100 > + > +/* syscall: "ioperm" ret: "int" args: "unsigned int" "unsigned int" "int" */ > +#define LINUX_SYS_ioperm 101 > + > +/* syscall: "socketcall" ret: "int" args: "int" "void *" */ > +#define LINUX_SYS_socketcall 102 > + > +/* syscall: "setitimer" ret: "int" args: "u_int" "struct itimerval50 > *" "struct itimerval50 *" */ > +#define LINUX_SYS_setitimer 104 > + > +/* syscall: "getitimer" ret: "int" args: "u_int" "struct itimerval50 *" */ > +#define LINUX_SYS_getitimer 105 > + > +/* syscall: "stat" ret: "int" args: "const char *" "struct linux_stat *" */ > +#define LINUX_SYS_stat 106 > + > +/* syscall: "lstat" ret: "int" args: "const char *" "struct linux_stat *" */ > +#define LINUX_SYS_lstat 107 > + > +/* syscall: "fstat" ret: "int" args: "int" "struct linux_stat *" */ > +#define LINUX_SYS_fstat 108 > + > +/* syscall: "olduname" ret: "int" args: "struct linux_old_utsname *" */ > +#define LINUX_SYS_olduname 109 > + > +/* syscall: "iopl" ret: "int" args: "int" */ > +#define LINUX_SYS_iopl 110 > + > +/* syscall: "wait4" ret: "int" args: "int" "int *" "int" "struct rusage50 *" */ > +#define LINUX_SYS_wait4 114 > + > +/* syscall: "swapoff" ret: "int" args: "const char *" */ > +#define LINUX_SYS_swapoff 115 > + > +/* syscall: "sysinfo" ret: "int" args: "struct linux_sysinfo *" */ > +#define LINUX_SYS_sysinfo 116 > + > +/* syscall: "ipc" ret: "int" args: "int" "int" "int" "int" "void *" */ > +#define LINUX_SYS_ipc 117 > + > +/* syscall: "fsync" ret: "int" args: "int" */ > +#define LINUX_SYS_fsync 118 > + > +/* syscall: "sigreturn" ret: "int" args: "struct linux_sigcontext *" */ > +#define LINUX_SYS_sigreturn 119 > + > +/* syscall: "clone" ret: "int" args: "int" "void *" "void *" "void *" */ > +#define LINUX_SYS_clone 120 > + > +/* syscall: "setdomainname" ret: "int" args: "char *" "int" */ > +#define LINUX_SYS_setdomainname 121 > + > +/* syscall: "uname" ret: "int" args: "struct linux_utsname *" */ > +#define LINUX_SYS_uname 122 > + > +/* syscall: "modify_ldt" ret: "int" args: "int" "void *" "size_t" */ > +#define LINUX_SYS_modify_ldt 123 > + > +/* syscall: "mprotect" ret: "int" args: "const void *" "unsigned long" "int" */ > +#define LINUX_SYS_mprotect 125 > + > +/* syscall: "sigprocmask" ret: "int" args: "int" "const > linux_old_sigset_t *" "linux_old_sigset_t *" */ > +#define LINUX_SYS_sigprocmask 126 > + > +/* syscall: "getpgid" ret: "pid_t" args: "pid_t" */ > +#define LINUX_SYS_getpgid 132 > + > +/* syscall: "fchdir" ret: "int" args: "int" */ > +#define LINUX_SYS_fchdir 133 > + > +/* syscall: "personality" ret: "int" args: "int" */ > +#define LINUX_SYS_personality 136 > + > +/* syscall: "linux_setfsuid16" ret: "int" args: "uid_t" */ > +#define LINUX_SYS_linux_setfsuid16 138 > + > +/* syscall: "linux_set... [truncated message content] |