* X32 project status update
@ 2011-05-21 15:01 H.J. Lu
2011-05-21 15:27 ` Arnd Bergmann
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: H.J. Lu @ 2011-05-21 15:01 UTC (permalink / raw)
To: GCC Development, GNU C Library, LKML, x32-abi
Hi,
This is the x32 project status update:
https://sites.google.com/site/x32abi/
With the latest x32 kernel semctl bug fix, C, C++ and Fortran
test results on GCC x32 branch only show one serious bug:
FAIL: gcc.c-torture/execute/builtins/strcspn.c execution, -O1
It is due to the combine issue:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49088
I am planning to prepare merging GCC x32 branch with trunk
followed by glibc and gdb patches.
The current x32 implementation uses DImode for Pmode.
I chose it because:
1. x32 process is running in 64bit mode. Hardware pointer
in x32 is 64bit.
2. x86 backend maps Pmode to hardware pointer mode.
Use SImode for Pmode requires extra changes in x86 bakend.
3. 32bit base/index are supported in x32 when they are
generated by middle-end via ptr_mode which is 32bit.
But I'd like to keep the option open to switch Pmode to
SImode later if it can provide better performance and/or
reduce the code size.
GCC x32 branch is available at:
svn://gcc.gnu.org/svn/gcc/branches/x32
Majority of changes are in x86 backend and there are also
some middle-end changes. I appreciate any feedbacks.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 15:01 X32 project status update H.J. Lu
@ 2011-05-21 15:27 ` Arnd Bergmann
2011-05-21 15:34 ` H.J. Lu
2011-05-23 16:59 ` Anvin, H Peter
2011-06-17 3:13 ` H.J. Lu
2011-11-24 23:58 ` H.J. Lu
2 siblings, 2 replies; 14+ messages in thread
From: Arnd Bergmann @ 2011-05-21 15:27 UTC (permalink / raw)
To: H.J. Lu; +Cc: GCC Development, GNU C Library, LKML, x32-abi, H. Peter Anvin
On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
> This is the x32 project status update:
>
> https://sites.google.com/site/x32abi/
>
I've had another look at the kernel patch. It basically
looks all good, but the system call table appears to
diverge from the x86_64 list for no (documented) reason,
in the calls above 302. Is that intentional?
I can see why you might want to keep the numbers identical,
but if they are already different, why not use the generic
system call table from asm-generic/unistd.h for the new
ABI?
Arnd
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 15:27 ` Arnd Bergmann
@ 2011-05-21 15:34 ` H.J. Lu
2011-05-21 16:27 ` H.J. Lu
2011-05-23 16:59 ` Anvin, H Peter
1 sibling, 1 reply; 14+ messages in thread
From: H.J. Lu @ 2011-05-21 15:34 UTC (permalink / raw)
To: Arnd Bergmann
Cc: GCC Development, GNU C Library, LKML, x32-abi, H. Peter Anvin
On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>> This is the x32 project status update:
>>
>> https://sites.google.com/site/x32abi/
>>
>
> I've had another look at the kernel patch. It basically
> looks all good, but the system call table appears to
> diverge from the x86_64 list for no (documented) reason,
> in the calls above 302. Is that intentional?
>
> I can see why you might want to keep the numbers identical,
> but if they are already different, why not use the generic
> system call table from asm-generic/unistd.h for the new
> ABI?
We can sort it out when we start merging x32 kernel changes.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 15:34 ` H.J. Lu
@ 2011-05-21 16:27 ` H.J. Lu
2011-05-21 18:55 ` H. Peter Anvin
0 siblings, 1 reply; 14+ messages in thread
From: H.J. Lu @ 2011-05-21 16:27 UTC (permalink / raw)
To: Arnd Bergmann
Cc: GCC Development, GNU C Library, LKML, x32-abi, H. Peter Anvin
On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>> This is the x32 project status update:
>>>
>>> https://sites.google.com/site/x32abi/
>>>
>>
>> I've had another look at the kernel patch. It basically
>> looks all good, but the system call table appears to
>> diverge from the x86_64 list for no (documented) reason,
>> in the calls above 302. Is that intentional?
>>
>> I can see why you might want to keep the numbers identical,
>> but if they are already different, why not use the generic
>> system call table from asm-generic/unistd.h for the new
>> ABI?
>
> We can sort it out when we start merging x32 kernel changes.
>
Peter, is that possible to use the single syscall table for
both x86-64 and x32 system calls? Out of 300+ system
calls, only 84 are different for x86-64 and x32. That
is additional 8*84 == 672 bytes in syscall table.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 16:27 ` H.J. Lu
@ 2011-05-21 18:55 ` H. Peter Anvin
2011-05-21 19:39 ` H.J. Lu
2011-05-21 20:01 ` Anvin, H Peter
0 siblings, 2 replies; 14+ messages in thread
From: H. Peter Anvin @ 2011-05-21 18:55 UTC (permalink / raw)
To: x32-abi; +Cc: H.J. Lu, Arnd Bergmann, GCC Development, GNU C Library, LKML
On 05/21/2011 09:27 AM, H.J. Lu wrote:
> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>> This is the x32 project status update:
>>>>
>>>> https://sites.google.com/site/x32abi/
>>>>
>>>
>>> I've had another look at the kernel patch. It basically
>>> looks all good, but the system call table appears to
>>> diverge from the x86_64 list for no (documented) reason,
>>> in the calls above 302. Is that intentional?
>>>
>>> I can see why you might want to keep the numbers identical,
>>> but if they are already different, why not use the generic
>>> system call table from asm-generic/unistd.h for the new
>>> ABI?
>>
>> We can sort it out when we start merging x32 kernel changes.
>>
>
> Peter, is that possible to use the single syscall table for
> both x86-64 and x32 system calls? Out of 300+ system
> calls, only 84 are different for x86-64 and x32. That
> is additional 8*84 == 672 bytes in syscall table.
>
Sort of... remember we talked about merging system calls at the tail
end? The problem with that is that some system calls (like read()!)
actually are different system calls in very subtle situations, due to
abuse in some subsystems of the is_compat() construct. I think that may
mean we have to have an unambiguous flag after all...
Now, perhaps we can use a high bit for that and mask it before dispatch,
then we don't need the additional table. A bit of a hack, but it should
work.
-hpa
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 18:55 ` H. Peter Anvin
@ 2011-05-21 19:39 ` H.J. Lu
2011-05-21 20:01 ` Anvin, H Peter
1 sibling, 0 replies; 14+ messages in thread
From: H.J. Lu @ 2011-05-21 19:39 UTC (permalink / raw)
To: H. Peter Anvin
Cc: x32-abi, Arnd Bergmann, GCC Development, GNU C Library, LKML
[-- Attachment #1: Type: text/plain, Size: 2343 bytes --]
On Sat, May 21, 2011 at 11:55 AM, H. Peter Anvin
<h.peter.anvin@intel.com> wrote:
> On 05/21/2011 09:27 AM, H.J. Lu wrote:
>> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>>> This is the x32 project status update:
>>>>>
>>>>> https://sites.google.com/site/x32abi/
>>>>>
>>>>
>>>> I've had another look at the kernel patch. It basically
>>>> looks all good, but the system call table appears to
>>>> diverge from the x86_64 list for no (documented) reason,
>>>> in the calls above 302. Is that intentional?
>>>>
>>>> I can see why you might want to keep the numbers identical,
>>>> but if they are already different, why not use the generic
>>>> system call table from asm-generic/unistd.h for the new
>>>> ABI?
>>>
>>> We can sort it out when we start merging x32 kernel changes.
>>>
>>
>> Peter, is that possible to use the single syscall table for
>> both x86-64 and x32 system calls? Out of 300+ system
>> calls, only 84 are different for x86-64 and x32. That
>> is additional 8*84 == 672 bytes in syscall table.
>>
>
> Sort of... remember we talked about merging system calls at the tail
> end? The problem with that is that some system calls (like read()!)
> actually are different system calls in very subtle situations, due to
> abuse in some subsystems of the is_compat() construct. I think that may
> mean we have to have an unambiguous flag after all...
>
> Now, perhaps we can use a high bit for that and mask it before dispatch,
> then we don't need the additional table. A bit of a hack, but it should
> work.
How about this patch?
Merge x32 system calls with x86-64 system calls
Implemented with
1. Mark all x86-64 specific system calls with __NR_64_.
2. Mark all x32 specific system calls with __NR_x32_.
3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
build, which provides __NR_ versions of x86-64 specific system calls.
4. Append x32 specific system calls after the current x86-64 system
calls.
5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
_NR_.
6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
--
H.J.
[-- Attachment #2: linux-x32-merge-1.patch --]
[-- Type: text/plain, Size: 101896 bytes --]
commit 5bf0cc8875e6df0cc0be4cb15e0b18a1d7fc25e3
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat May 21 12:33:41 2011 -0700
Merge x32 system calls with x86-64 system calls
Implemented with
1. Mark all x86-64 specific system calls with __NR_64_.
2. Mark all x32 specific system calls with __NR_x32_.
3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
build, which provides __NR_ versions of x86-64 specific system calls.
4. Append x32 specific system calls after the current x86-64 system
calls.
5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
_NR_.
6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
diff --git a/arch/x86/include/asm/unistd.h b/arch/x86/include/asm/unistd.h
index f19b67e..e9c1b26 100644
--- a/arch/x86/include/asm/unistd.h
+++ b/arch/x86/include/asm/unistd.h
@@ -3,7 +3,7 @@
# include "unistd_32.h"
# else
# include "unistd_64.h"
-# include "unistd_x32.h"
+# include "unistd_64_compat.h"
# endif
#else
# ifdef __i386__
diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h
index 5187557..acaf101 100644
--- a/arch/x86/include/asm/unistd_64.h
+++ b/arch/x86/include/asm/unistd_64.h
@@ -5,6 +5,10 @@
#define __SYSCALL(a, b)
#endif
+#ifndef __X32_SYSCALL
+#define __X32_SYSCALL(a, b)
+#endif
+
/*
* This file contains the system call numbers.
*
@@ -16,16 +20,16 @@
__SYSCALL(__NR_read, sys_read)
#define __NR_write 1
__SYSCALL(__NR_write, sys_write)
-#define __NR_open 2
-__SYSCALL(__NR_open, sys_open)
+#define __NR_64_open 2
+__SYSCALL(__NR_64_open, sys_open)
#define __NR_close 3
__SYSCALL(__NR_close, sys_close)
-#define __NR_stat 4
-__SYSCALL(__NR_stat, sys_newstat)
-#define __NR_fstat 5
-__SYSCALL(__NR_fstat, sys_newfstat)
-#define __NR_lstat 6
-__SYSCALL(__NR_lstat, sys_newlstat)
+#define __NR_64_stat 4
+__SYSCALL(__NR_64_stat, sys_newstat)
+#define __NR_64_fstat 5
+__SYSCALL(__NR_64_fstat, sys_newfstat)
+#define __NR_64_lstat 6
+__SYSCALL(__NR_64_lstat, sys_newlstat)
#define __NR_poll 7
__SYSCALL(__NR_poll, sys_poll)
@@ -39,29 +43,29 @@ __SYSCALL(__NR_mprotect, sys_mprotect)
__SYSCALL(__NR_munmap, sys_munmap)
#define __NR_brk 12
__SYSCALL(__NR_brk, sys_brk)
-#define __NR_rt_sigaction 13
-__SYSCALL(__NR_rt_sigaction, sys_rt_sigaction)
-#define __NR_rt_sigprocmask 14
-__SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask)
-#define __NR_rt_sigreturn 15
-__SYSCALL(__NR_rt_sigreturn, stub_rt_sigreturn)
-
-#define __NR_ioctl 16
-__SYSCALL(__NR_ioctl, sys_ioctl)
+#define __NR_64_rt_sigaction 13
+__SYSCALL(__NR_64_rt_sigaction, sys_rt_sigaction)
+#define __NR_64_rt_sigprocmask 14
+__SYSCALL(__NR_64_rt_sigprocmask, sys_rt_sigprocmask)
+#define __NR_64_rt_sigreturn 15
+__SYSCALL(__NR_64_rt_sigreturn, stub_rt_sigreturn)
+
+#define __NR_64_ioctl 16
+__SYSCALL(__NR_64_ioctl, sys_ioctl)
#define __NR_pread64 17
__SYSCALL(__NR_pread64, sys_pread64)
#define __NR_pwrite64 18
__SYSCALL(__NR_pwrite64, sys_pwrite64)
-#define __NR_readv 19
-__SYSCALL(__NR_readv, sys_readv)
-#define __NR_writev 20
-__SYSCALL(__NR_writev, sys_writev)
+#define __NR_64_readv 19
+__SYSCALL(__NR_64_readv, sys_readv)
+#define __NR_64_writev 20
+__SYSCALL(__NR_64_writev, sys_writev)
#define __NR_access 21
__SYSCALL(__NR_access, sys_access)
#define __NR_pipe 22
__SYSCALL(__NR_pipe, sys_pipe)
-#define __NR_select 23
-__SYSCALL(__NR_select, sys_select)
+#define __NR_64_select 23
+__SYSCALL(__NR_64_select, sys_select)
#define __NR_sched_yield 24
__SYSCALL(__NR_sched_yield, sys_sched_yield)
@@ -75,10 +79,10 @@ __SYSCALL(__NR_mincore, sys_mincore)
__SYSCALL(__NR_madvise, sys_madvise)
#define __NR_shmget 29
__SYSCALL(__NR_shmget, sys_shmget)
-#define __NR_shmat 30
-__SYSCALL(__NR_shmat, sys_shmat)
-#define __NR_shmctl 31
-__SYSCALL(__NR_shmctl, sys_shmctl)
+#define __NR_64_shmat 30
+__SYSCALL(__NR_64_shmat, sys_shmat)
+#define __NR_64_shmctl 31
+__SYSCALL(__NR_64_shmctl, sys_shmctl)
#define __NR_dup 32
__SYSCALL(__NR_dup, sys_dup)
@@ -86,14 +90,14 @@ __SYSCALL(__NR_dup, sys_dup)
__SYSCALL(__NR_dup2, sys_dup2)
#define __NR_pause 34
__SYSCALL(__NR_pause, sys_pause)
-#define __NR_nanosleep 35
-__SYSCALL(__NR_nanosleep, sys_nanosleep)
-#define __NR_getitimer 36
-__SYSCALL(__NR_getitimer, sys_getitimer)
+#define __NR_64_nanosleep 35
+__SYSCALL(__NR_64_nanosleep, sys_nanosleep)
+#define __NR_64_getitimer 36
+__SYSCALL(__NR_64_getitimer, sys_getitimer)
#define __NR_alarm 37
__SYSCALL(__NR_alarm, sys_alarm)
-#define __NR_setitimer 38
-__SYSCALL(__NR_setitimer, sys_setitimer)
+#define __NR_64_setitimer 38
+__SYSCALL(__NR_64_setitimer, sys_setitimer)
#define __NR_getpid 39
__SYSCALL(__NR_getpid, sys_getpid)
@@ -107,12 +111,12 @@ __SYSCALL(__NR_connect, sys_connect)
__SYSCALL(__NR_accept, sys_accept)
#define __NR_sendto 44
__SYSCALL(__NR_sendto, sys_sendto)
-#define __NR_recvfrom 45
-__SYSCALL(__NR_recvfrom, sys_recvfrom)
-#define __NR_sendmsg 46
-__SYSCALL(__NR_sendmsg, sys_sendmsg)
-#define __NR_recvmsg 47
-__SYSCALL(__NR_recvmsg, sys_recvmsg)
+#define __NR_64_recvfrom 45
+__SYSCALL(__NR_64_recvfrom, sys_recvfrom)
+#define __NR_64_sendmsg 46
+__SYSCALL(__NR_64_sendmsg, sys_sendmsg)
+#define __NR_64_recvmsg 47
+__SYSCALL(__NR_64_recvmsg, sys_recvmsg)
#define __NR_shutdown 48
__SYSCALL(__NR_shutdown, sys_shutdown)
@@ -126,10 +130,10 @@ __SYSCALL(__NR_getsockname, sys_getsockname)
__SYSCALL(__NR_getpeername, sys_getpeername)
#define __NR_socketpair 53
__SYSCALL(__NR_socketpair, sys_socketpair)
-#define __NR_setsockopt 54
-__SYSCALL(__NR_setsockopt, sys_setsockopt)
-#define __NR_getsockopt 55
-__SYSCALL(__NR_getsockopt, sys_getsockopt)
+#define __NR_64_setsockopt 54
+__SYSCALL(__NR_64_setsockopt, sys_setsockopt)
+#define __NR_64_getsockopt 55
+__SYSCALL(__NR_64_getsockopt, sys_getsockopt)
#define __NR_clone 56
__SYSCALL(__NR_clone, stub_clone)
@@ -137,12 +141,12 @@ __SYSCALL(__NR_clone, stub_clone)
__SYSCALL(__NR_fork, stub_fork)
#define __NR_vfork 58
__SYSCALL(__NR_vfork, stub_vfork)
-#define __NR_execve 59
-__SYSCALL(__NR_execve, stub_execve)
+#define __NR_64_execve 59
+__SYSCALL(__NR_64_execve, stub_execve)
#define __NR_exit 60
__SYSCALL(__NR_exit, sys_exit)
-#define __NR_wait4 61
-__SYSCALL(__NR_wait4, sys_wait4)
+#define __NR_64_wait4 61
+__SYSCALL(__NR_64_wait4, sys_wait4)
#define __NR_kill 62
__SYSCALL(__NR_kill, sys_kill)
#define __NR_uname 63
@@ -152,21 +156,21 @@ __SYSCALL(__NR_uname, sys_newuname)
__SYSCALL(__NR_semget, sys_semget)
#define __NR_semop 65
__SYSCALL(__NR_semop, sys_semop)
-#define __NR_semctl 66
-__SYSCALL(__NR_semctl, sys_semctl)
+#define __NR_64_semctl 66
+__SYSCALL(__NR_64_semctl, sys_semctl)
#define __NR_shmdt 67
__SYSCALL(__NR_shmdt, sys_shmdt)
#define __NR_msgget 68
__SYSCALL(__NR_msgget, sys_msgget)
-#define __NR_msgsnd 69
-__SYSCALL(__NR_msgsnd, sys_msgsnd)
-#define __NR_msgrcv 70
-__SYSCALL(__NR_msgrcv, sys_msgrcv)
-#define __NR_msgctl 71
-__SYSCALL(__NR_msgctl, sys_msgctl)
-
-#define __NR_fcntl 72
-__SYSCALL(__NR_fcntl, sys_fcntl)
+#define __NR_64_msgsnd 69
+__SYSCALL(__NR_64_msgsnd, sys_msgsnd)
+#define __NR_64_msgrcv 70
+__SYSCALL(__NR_64_msgrcv, sys_msgrcv)
+#define __NR_64_msgctl 71
+__SYSCALL(__NR_64_msgctl, sys_msgctl)
+
+#define __NR_64_fcntl 72
+__SYSCALL(__NR_64_fcntl, sys_fcntl)
#define __NR_flock 73
__SYSCALL(__NR_flock, sys_flock)
#define __NR_fsync 74
@@ -177,8 +181,8 @@ __SYSCALL(__NR_fdatasync, sys_fdatasync)
__SYSCALL(__NR_truncate, sys_truncate)
#define __NR_ftruncate 77
__SYSCALL(__NR_ftruncate, sys_ftruncate)
-#define __NR_getdents 78
-__SYSCALL(__NR_getdents, sys_getdents)
+#define __NR_64_getdents 78
+__SYSCALL(__NR_64_getdents, sys_getdents)
#define __NR_getcwd 79
__SYSCALL(__NR_getcwd, sys_getcwd)
@@ -216,16 +220,16 @@ __SYSCALL(__NR_lchown, sys_lchown)
#define __NR_umask 95
__SYSCALL(__NR_umask, sys_umask)
-#define __NR_gettimeofday 96
-__SYSCALL(__NR_gettimeofday, sys_gettimeofday)
-#define __NR_getrlimit 97
-__SYSCALL(__NR_getrlimit, sys_getrlimit)
-#define __NR_getrusage 98
-__SYSCALL(__NR_getrusage, sys_getrusage)
-#define __NR_sysinfo 99
-__SYSCALL(__NR_sysinfo, sys_sysinfo)
-#define __NR_times 100
-__SYSCALL(__NR_times, sys_times)
+#define __NR_64_gettimeofday 96
+__SYSCALL(__NR_64_gettimeofday, sys_gettimeofday)
+#define __NR_64_getrlimit 97
+__SYSCALL(__NR_64_getrlimit, sys_getrlimit)
+#define __NR_64_getrusage 98
+__SYSCALL(__NR_64_getrusage, sys_getrusage)
+#define __NR_64_sysinfo 99
+__SYSCALL(__NR_64_sysinfo, sys_sysinfo)
+#define __NR_64_times 100
+__SYSCALL(__NR_64_times, sys_times)
#define __NR_ptrace 101
__SYSCALL(__NR_ptrace, sys_ptrace)
#define __NR_getuid 102
@@ -283,18 +287,18 @@ __SYSCALL(__NR_capget, sys_capget)
#define __NR_capset 126
__SYSCALL(__NR_capset, sys_capset)
-#define __NR_rt_sigpending 127
-__SYSCALL(__NR_rt_sigpending, sys_rt_sigpending)
-#define __NR_rt_sigtimedwait 128
-__SYSCALL(__NR_rt_sigtimedwait, sys_rt_sigtimedwait)
-#define __NR_rt_sigqueueinfo 129
-__SYSCALL(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo)
+#define __NR_64_rt_sigpending 127
+__SYSCALL(__NR_64_rt_sigpending, sys_rt_sigpending)
+#define __NR_64_rt_sigtimedwait 128
+__SYSCALL(__NR_64_rt_sigtimedwait, sys_rt_sigtimedwait)
+#define __NR_64_rt_sigqueueinfo 129
+__SYSCALL(__NR_64_rt_sigqueueinfo, sys_rt_sigqueueinfo)
#define __NR_rt_sigsuspend 130
__SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend)
-#define __NR_sigaltstack 131
-__SYSCALL(__NR_sigaltstack, stub_sigaltstack)
-#define __NR_utime 132
-__SYSCALL(__NR_utime, sys_utime)
+#define __NR_64_sigaltstack 131
+__SYSCALL(__NR_64_sigaltstack, stub_sigaltstack)
+#define __NR_64_utime 132
+__SYSCALL(__NR_64_utime, sys_utime)
#define __NR_mknod 133
__SYSCALL(__NR_mknod, sys_mknod)
@@ -304,12 +308,12 @@ __SYSCALL(__NR_uselib, sys_ni_syscall)
#define __NR_personality 135
__SYSCALL(__NR_personality, sys_personality)
-#define __NR_ustat 136
-__SYSCALL(__NR_ustat, sys_ustat)
-#define __NR_statfs 137
-__SYSCALL(__NR_statfs, sys_statfs)
-#define __NR_fstatfs 138
-__SYSCALL(__NR_fstatfs, sys_fstatfs)
+#define __NR_64_ustat 136
+__SYSCALL(__NR_64_ustat, sys_ustat)
+#define __NR_64_statfs 137
+__SYSCALL(__NR_64_statfs, sys_statfs)
+#define __NR_64_fstatfs 138
+__SYSCALL(__NR_64_fstatfs, sys_fstatfs)
#define __NR_sysfs 139
__SYSCALL(__NR_sysfs, sys_sysfs)
@@ -329,8 +333,8 @@ __SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler)
__SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max)
#define __NR_sched_get_priority_min 147
__SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min)
-#define __NR_sched_rr_get_interval 148
-__SYSCALL(__NR_sched_rr_get_interval, sys_sched_rr_get_interval)
+#define __NR_64_sched_rr_get_interval 148
+__SYSCALL(__NR_64_sched_rr_get_interval, sys_sched_rr_get_interval)
#define __NR_mlock 149
__SYSCALL(__NR_mlock, sys_mlock)
@@ -350,19 +354,19 @@ __SYSCALL(__NR_modify_ldt, sys_modify_ldt)
#define __NR_pivot_root 155
__SYSCALL(__NR_pivot_root, sys_pivot_root)
-#define __NR__sysctl 156
-__SYSCALL(__NR__sysctl, sys_sysctl)
+#define __NR_64__sysctl 156
+__SYSCALL(__NR_64__sysctl, sys_sysctl)
#define __NR_prctl 157
__SYSCALL(__NR_prctl, sys_prctl)
#define __NR_arch_prctl 158
__SYSCALL(__NR_arch_prctl, sys_arch_prctl)
-#define __NR_adjtimex 159
-__SYSCALL(__NR_adjtimex, sys_adjtimex)
+#define __NR_64_adjtimex 159
+__SYSCALL(__NR_64_adjtimex, sys_adjtimex)
-#define __NR_setrlimit 160
-__SYSCALL(__NR_setrlimit, sys_setrlimit)
+#define __NR_64_setrlimit 160
+__SYSCALL(__NR_64_setrlimit, sys_setrlimit)
#define __NR_chroot 161
__SYSCALL(__NR_chroot, sys_chroot)
@@ -373,8 +377,8 @@ __SYSCALL(__NR_sync, sys_sync)
#define __NR_acct 163
__SYSCALL(__NR_acct, sys_acct)
-#define __NR_settimeofday 164
-__SYSCALL(__NR_settimeofday, sys_settimeofday)
+#define __NR_64_settimeofday 164
+__SYSCALL(__NR_64_settimeofday, sys_settimeofday)
#define __NR_mount 165
__SYSCALL(__NR_mount, sys_mount)
@@ -410,11 +414,11 @@ __SYSCALL(__NR_get_kernel_syms, sys_ni_syscall)
#define __NR_query_module 178
__SYSCALL(__NR_query_module, sys_ni_syscall)
-#define __NR_quotactl 179
-__SYSCALL(__NR_quotactl, sys_quotactl)
+#define __NR_64_quotactl 179
+__SYSCALL(__NR_64_quotactl, sys_quotactl)
-#define __NR_nfsservctl 180
-__SYSCALL(__NR_nfsservctl, sys_nfsservctl)
+#define __NR_64_nfsservctl 180
+__SYSCALL(__NR_64_nfsservctl, sys_nfsservctl)
/* reserved for LiS/STREAMS */
#define __NR_getpmsg 181
@@ -464,24 +468,24 @@ __SYSCALL(__NR_lremovexattr, sys_lremovexattr)
__SYSCALL(__NR_fremovexattr, sys_fremovexattr)
#define __NR_tkill 200
__SYSCALL(__NR_tkill, sys_tkill)
-#define __NR_time 201
-__SYSCALL(__NR_time, sys_time)
-#define __NR_futex 202
-__SYSCALL(__NR_futex, sys_futex)
-#define __NR_sched_setaffinity 203
-__SYSCALL(__NR_sched_setaffinity, sys_sched_setaffinity)
-#define __NR_sched_getaffinity 204
-__SYSCALL(__NR_sched_getaffinity, sys_sched_getaffinity)
+#define __NR_64_time 201
+__SYSCALL(__NR_64_time, sys_time)
+#define __NR_64_futex 202
+__SYSCALL(__NR_64_futex, sys_futex)
+#define __NR_64_sched_setaffinity 203
+__SYSCALL(__NR_64_sched_setaffinity, sys_sched_setaffinity)
+#define __NR_64_sched_getaffinity 204
+__SYSCALL(__NR_64_sched_getaffinity, sys_sched_getaffinity)
#define __NR_set_thread_area 205
__SYSCALL(__NR_set_thread_area, sys_ni_syscall) /* use arch_prctl */
-#define __NR_io_setup 206
-__SYSCALL(__NR_io_setup, sys_io_setup)
+#define __NR_64_io_setup 206
+__SYSCALL(__NR_64_io_setup, sys_io_setup)
#define __NR_io_destroy 207
__SYSCALL(__NR_io_destroy, sys_io_destroy)
-#define __NR_io_getevents 208
-__SYSCALL(__NR_io_getevents, sys_io_getevents)
-#define __NR_io_submit 209
-__SYSCALL(__NR_io_submit, sys_io_submit)
+#define __NR_64_io_getevents 208
+__SYSCALL(__NR_64_io_getevents, sys_io_getevents)
+#define __NR_64_io_submit 209
+__SYSCALL(__NR_64_io_submit, sys_io_submit)
#define __NR_io_cancel 210
__SYSCALL(__NR_io_cancel, sys_io_cancel)
#define __NR_get_thread_area 211
@@ -496,34 +500,34 @@ __SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall)
__SYSCALL(__NR_epoll_wait_old, sys_ni_syscall)
#define __NR_remap_file_pages 216
__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
-#define __NR_getdents64 217
-__SYSCALL(__NR_getdents64, sys_getdents64)
+#define __NR_64_getdents64 217
+__SYSCALL(__NR_64_getdents64, sys_getdents64)
#define __NR_set_tid_address 218
__SYSCALL(__NR_set_tid_address, sys_set_tid_address)
#define __NR_restart_syscall 219
__SYSCALL(__NR_restart_syscall, sys_restart_syscall)
-#define __NR_semtimedop 220
-__SYSCALL(__NR_semtimedop, sys_semtimedop)
+#define __NR_64_semtimedop 220
+__SYSCALL(__NR_64_semtimedop, sys_semtimedop)
#define __NR_fadvise64 221
__SYSCALL(__NR_fadvise64, sys_fadvise64)
-#define __NR_timer_create 222
-__SYSCALL(__NR_timer_create, sys_timer_create)
-#define __NR_timer_settime 223
-__SYSCALL(__NR_timer_settime, sys_timer_settime)
-#define __NR_timer_gettime 224
-__SYSCALL(__NR_timer_gettime, sys_timer_gettime)
+#define __NR_64_timer_create 222
+__SYSCALL(__NR_64_timer_create, sys_timer_create)
+#define __NR_64_timer_settime 223
+__SYSCALL(__NR_64_timer_settime, sys_timer_settime)
+#define __NR_64_timer_gettime 224
+__SYSCALL(__NR_64_timer_gettime, sys_timer_gettime)
#define __NR_timer_getoverrun 225
__SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun)
#define __NR_timer_delete 226
__SYSCALL(__NR_timer_delete, sys_timer_delete)
-#define __NR_clock_settime 227
-__SYSCALL(__NR_clock_settime, sys_clock_settime)
-#define __NR_clock_gettime 228
-__SYSCALL(__NR_clock_gettime, sys_clock_gettime)
-#define __NR_clock_getres 229
-__SYSCALL(__NR_clock_getres, sys_clock_getres)
-#define __NR_clock_nanosleep 230
-__SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep)
+#define __NR_64_clock_settime 227
+__SYSCALL(__NR_64_clock_settime, sys_clock_settime)
+#define __NR_64_clock_gettime 228
+__SYSCALL(__NR_64_clock_gettime, sys_clock_gettime)
+#define __NR_64_clock_getres 229
+__SYSCALL(__NR_64_clock_getres, sys_clock_getres)
+#define __NR_64_clock_nanosleep 230
+__SYSCALL(__NR_64_clock_nanosleep, sys_clock_nanosleep)
#define __NR_exit_group 231
__SYSCALL(__NR_exit_group, sys_exit_group)
#define __NR_epoll_wait 232
@@ -532,8 +536,8 @@ __SYSCALL(__NR_epoll_wait, sys_epoll_wait)
__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
#define __NR_tgkill 234
__SYSCALL(__NR_tgkill, sys_tgkill)
-#define __NR_utimes 235
-__SYSCALL(__NR_utimes, sys_utimes)
+#define __NR_64_utimes 235
+__SYSCALL(__NR_64_utimes, sys_utimes)
#define __NR_vserver 236
__SYSCALL(__NR_vserver, sys_ni_syscall)
#define __NR_mbind 237
@@ -542,22 +546,22 @@ __SYSCALL(__NR_mbind, sys_mbind)
__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy)
#define __NR_get_mempolicy 239
__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy)
-#define __NR_mq_open 240
-__SYSCALL(__NR_mq_open, sys_mq_open)
+#define __NR_64_mq_open 240
+__SYSCALL(__NR_64_mq_open, sys_mq_open)
#define __NR_mq_unlink 241
__SYSCALL(__NR_mq_unlink, sys_mq_unlink)
-#define __NR_mq_timedsend 242
-__SYSCALL(__NR_mq_timedsend, sys_mq_timedsend)
-#define __NR_mq_timedreceive 243
-__SYSCALL(__NR_mq_timedreceive, sys_mq_timedreceive)
-#define __NR_mq_notify 244
-__SYSCALL(__NR_mq_notify, sys_mq_notify)
-#define __NR_mq_getsetattr 245
-__SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr)
-#define __NR_kexec_load 246
-__SYSCALL(__NR_kexec_load, sys_kexec_load)
-#define __NR_waitid 247
-__SYSCALL(__NR_waitid, sys_waitid)
+#define __NR_64_mq_timedsend 242
+__SYSCALL(__NR_64_mq_timedsend, sys_mq_timedsend)
+#define __NR_64_mq_timedreceive 243
+__SYSCALL(__NR_64_mq_timedreceive, sys_mq_timedreceive)
+#define __NR_64_mq_notify 244
+__SYSCALL(__NR_64_mq_notify, sys_mq_notify)
+#define __NR_64_mq_getsetattr 245
+__SYSCALL(__NR_64_mq_getsetattr, sys_mq_getsetattr)
+#define __NR_64_kexec_load 246
+__SYSCALL(__NR_64_kexec_load, sys_kexec_load)
+#define __NR_64_waitid 247
+__SYSCALL(__NR_64_waitid, sys_waitid)
#define __NR_add_key 248
__SYSCALL(__NR_add_key, sys_add_key)
#define __NR_request_key 249
@@ -576,18 +580,18 @@ __SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch)
__SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch)
#define __NR_migrate_pages 256
__SYSCALL(__NR_migrate_pages, sys_migrate_pages)
-#define __NR_openat 257
-__SYSCALL(__NR_openat, sys_openat)
+#define __NR_64_openat 257
+__SYSCALL(__NR_64_openat, sys_openat)
#define __NR_mkdirat 258
__SYSCALL(__NR_mkdirat, sys_mkdirat)
#define __NR_mknodat 259
__SYSCALL(__NR_mknodat, sys_mknodat)
#define __NR_fchownat 260
__SYSCALL(__NR_fchownat, sys_fchownat)
-#define __NR_futimesat 261
-__SYSCALL(__NR_futimesat, sys_futimesat)
-#define __NR_newfstatat 262
-__SYSCALL(__NR_newfstatat, sys_newfstatat)
+#define __NR_64_futimesat 261
+__SYSCALL(__NR_64_futimesat, sys_futimesat)
+#define __NR_64_newfstatat 262
+__SYSCALL(__NR_64_newfstatat, sys_newfstatat)
#define __NR_unlinkat 263
__SYSCALL(__NR_unlinkat, sys_unlinkat)
#define __NR_renameat 264
@@ -602,47 +606,47 @@ __SYSCALL(__NR_readlinkat, sys_readlinkat)
__SYSCALL(__NR_fchmodat, sys_fchmodat)
#define __NR_faccessat 269
__SYSCALL(__NR_faccessat, sys_faccessat)
-#define __NR_pselect6 270
-__SYSCALL(__NR_pselect6, sys_pselect6)
-#define __NR_ppoll 271
-__SYSCALL(__NR_ppoll, sys_ppoll)
+#define __NR_64_pselect6 270
+__SYSCALL(__NR_64_pselect6, sys_pselect6)
+#define __NR_64_ppoll 271
+__SYSCALL(__NR_64_ppoll, sys_ppoll)
#define __NR_unshare 272
__SYSCALL(__NR_unshare, sys_unshare)
-#define __NR_set_robust_list 273
-__SYSCALL(__NR_set_robust_list, sys_set_robust_list)
-#define __NR_get_robust_list 274
-__SYSCALL(__NR_get_robust_list, sys_get_robust_list)
+#define __NR_64_set_robust_list 273
+__SYSCALL(__NR_64_set_robust_list, sys_set_robust_list)
+#define __NR_64_get_robust_list 274
+__SYSCALL(__NR_64_get_robust_list, sys_get_robust_list)
#define __NR_splice 275
__SYSCALL(__NR_splice, sys_splice)
#define __NR_tee 276
__SYSCALL(__NR_tee, sys_tee)
#define __NR_sync_file_range 277
__SYSCALL(__NR_sync_file_range, sys_sync_file_range)
-#define __NR_vmsplice 278
-__SYSCALL(__NR_vmsplice, sys_vmsplice)
-#define __NR_move_pages 279
-__SYSCALL(__NR_move_pages, sys_move_pages)
-#define __NR_utimensat 280
-__SYSCALL(__NR_utimensat, sys_utimensat)
+#define __NR_64_vmsplice 278
+__SYSCALL(__NR_64_vmsplice, sys_vmsplice)
+#define __NR_64_move_pages 279
+__SYSCALL(__NR_64_move_pages, sys_move_pages)
+#define __NR_64_utimensat 280
+__SYSCALL(__NR_64_utimensat, sys_utimensat)
#define __IGNORE_getcpu /* implemented as a vsyscall */
#define __NR_epoll_pwait 281
__SYSCALL(__NR_epoll_pwait, sys_epoll_pwait)
-#define __NR_signalfd 282
-__SYSCALL(__NR_signalfd, sys_signalfd)
+#define __NR_64_signalfd 282
+__SYSCALL(__NR_64_signalfd, sys_signalfd)
#define __NR_timerfd_create 283
__SYSCALL(__NR_timerfd_create, sys_timerfd_create)
#define __NR_eventfd 284
__SYSCALL(__NR_eventfd, sys_eventfd)
#define __NR_fallocate 285
__SYSCALL(__NR_fallocate, sys_fallocate)
-#define __NR_timerfd_settime 286
-__SYSCALL(__NR_timerfd_settime, sys_timerfd_settime)
-#define __NR_timerfd_gettime 287
-__SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime)
+#define __NR_64_timerfd_settime 286
+__SYSCALL(__NR_64_timerfd_settime, sys_timerfd_settime)
+#define __NR_64_timerfd_gettime 287
+__SYSCALL(__NR_64_timerfd_gettime, sys_timerfd_gettime)
#define __NR_accept4 288
__SYSCALL(__NR_accept4, sys_accept4)
-#define __NR_signalfd4 289
-__SYSCALL(__NR_signalfd4, sys_signalfd4)
+#define __NR_64_signalfd4 289
+__SYSCALL(__NR_64_signalfd4, sys_signalfd4)
#define __NR_eventfd2 290
__SYSCALL(__NR_eventfd2, sys_eventfd2)
#define __NR_epoll_create1 291
@@ -657,12 +661,12 @@ __SYSCALL(__NR_inotify_init1, sys_inotify_init1)
__SYSCALL(__NR_preadv, sys_preadv)
#define __NR_pwritev 296
__SYSCALL(__NR_pwritev, sys_pwritev)
-#define __NR_rt_tgsigqueueinfo 297
-__SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo)
+#define __NR_64_rt_tgsigqueueinfo 297
+__SYSCALL(__NR_64_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo)
#define __NR_perf_event_open 298
__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
-#define __NR_recvmmsg 299
-__SYSCALL(__NR_recvmmsg, sys_recvmmsg)
+#define __NR_64_recvmmsg 299
+__SYSCALL(__NR_64_recvmmsg, sys_recvmmsg)
#define __NR_fanotify_init 300
__SYSCALL(__NR_fanotify_init, sys_ni_syscall)
#define __NR_fanotify_mark 301
@@ -680,6 +684,210 @@ __SYSCALL(__NR_syncfs, sys_ni_syscall)
#define __NR_sendmmsg 307
__SYSCALL(__NR_sendmmsg, sys_ni_syscall)
+/* X32 support. */
+#define __NR_x32_open 308
+__X32_SYSCALL(__NR_x32_open, compat_sys_open)
+#define __NR_x32_stat 309
+__X32_SYSCALL(__NR_x32_stat, compat_sys_newstat)
+#define __NR_x32_fstat 310
+__X32_SYSCALL(__NR_x32_fstat, compat_sys_newfstat)
+#define __NR_x32_lstat 311
+__X32_SYSCALL(__NR_x32_lstat, compat_sys_newlstat)
+#define __NR_x32_rt_sigaction 312
+__X32_SYSCALL(__NR_x32_rt_sigaction, sys32_rt_sigaction)
+#define __NR_x32_rt_sigprocmask 313
+__X32_SYSCALL(__NR_x32_rt_sigprocmask, sys32_rt_sigprocmask)
+#define __NR_x32_rt_sigreturn 314
+__X32_SYSCALL(__NR_x32_rt_sigreturn, stub_x32_rt_sigreturn)
+#define __NR_x32_ioctl 315
+__X32_SYSCALL(__NR_x32_ioctl, compat_sys_ioctl)
+
+#define __NR_x32_readv 316
+__X32_SYSCALL(__NR_x32_readv, compat_sys_readv)
+#define __NR_x32_writev 317
+__X32_SYSCALL(__NR_x32_writev, compat_sys_writev)
+#define __NR_x32_select 318
+__X32_SYSCALL(__NR_x32_select, compat_sys_select)
+#define __NR_x32_shmat 319
+__X32_SYSCALL(__NR_x32_shmat, compat_sys_x32_shmat)
+#define __NR_x32_shmctl 320
+__X32_SYSCALL(__NR_x32_shmctl, compat_sys_shmctl)
+#define __NR_x32_nanosleep 321
+__X32_SYSCALL(__NR_x32_nanosleep, compat_sys_nanosleep)
+#define __NR_x32_getitimer 322
+__X32_SYSCALL(__NR_x32_getitimer, compat_sys_getitimer)
+#define __NR_x32_setitimer 323
+__X32_SYSCALL(__NR_x32_setitimer, compat_sys_setitimer)
+
+#define __NR_x32_recvfrom 324
+__X32_SYSCALL(__NR_x32_recvfrom, compat_sys_recvfrom)
+#define __NR_x32_sendmsg 325
+__X32_SYSCALL(__NR_x32_sendmsg, compat_sys_sendmsg)
+#define __NR_x32_recvmsg 326
+__X32_SYSCALL(__NR_x32_recvmsg, compat_sys_recvmsg)
+#define __NR_x32_setsockopt 327
+__X32_SYSCALL(__NR_x32_setsockopt, compat_sys_setsockopt)
+#define __NR_x32_getsockopt 328
+__X32_SYSCALL(__NR_x32_getsockopt, compat_sys_getsockopt)
+#define __NR_x32_execve 329
+__X32_SYSCALL(__NR_x32_execve, stub_x32_execve)
+#define __NR_x32_wait4 330
+__X32_SYSCALL(__NR_x32_wait4, compat_sys_wait4)
+#define __NR_x32_semctl 331
+__X32_SYSCALL(__NR_x32_semctl, compat_sys_x32_semctl)
+
+#define __NR_x32_msgsnd 332
+__X32_SYSCALL(__NR_x32_msgsnd, compat_sys_x32_msgsnd)
+#define __NR_x32_msgrcv 333
+__X32_SYSCALL(__NR_x32_msgrcv, compat_sys_x32_msgrcv)
+#define __NR_x32_msgctl 334
+__X32_SYSCALL(__NR_x32_msgctl, compat_sys_msgctl)
+#define __NR_x32_fcntl 335
+__X32_SYSCALL(__NR_x32_fcntl, compat_sys_fcntl64)
+#define __NR_x32_getdents 336
+__X32_SYSCALL(__NR_x32_getdents, compat_sys_getdents)
+#define __NR_x32_gettimeofday 337
+__X32_SYSCALL(__NR_x32_gettimeofday, compat_sys_gettimeofday)
+#define __NR_x32_getrlimit 338
+__X32_SYSCALL(__NR_x32_getrlimit, compat_sys_getrlimit)
+#define __NR_x32_getrusage 339
+__X32_SYSCALL(__NR_x32_getrusage, compat_sys_getrusage)
+
+#define __NR_x32_sysinfo 340
+__X32_SYSCALL(__NR_x32_sysinfo, compat_sys_sysinfo)
+#define __NR_x32_times 341
+__X32_SYSCALL(__NR_x32_times, compat_sys_times)
+#define __NR_x32_rt_sigpending 342
+__X32_SYSCALL(__NR_x32_rt_sigpending, sys32_rt_sigpending)
+#define __NR_x32_rt_sigtimedwait 343
+__X32_SYSCALL(__NR_x32_rt_sigtimedwait, compat_sys_rt_sigtimedwait)
+#define __NR_x32_rt_sigqueueinfo 344
+__X32_SYSCALL(__NR_x32_rt_sigqueueinfo, sys32_rt_sigqueueinfo)
+#define __NR_x32_sigaltstack 345
+__X32_SYSCALL(__NR_x32_sigaltstack, stub_x32_sigaltstack)
+#define __NR_x32_utime 346
+__X32_SYSCALL(__NR_x32_utime, compat_sys_utime)
+#define __NR_x32_ustat 347
+__X32_SYSCALL(__NR_x32_ustat, compat_sys_ustat)
+
+#define __NR_x32_statfs 348
+__X32_SYSCALL(__NR_x32_statfs, compat_sys_statfs)
+#define __NR_x32_fstatfs 349
+__X32_SYSCALL(__NR_x32_fstatfs, compat_sys_fstatfs)
+#define __NR_x32_sched_rr_get_interval 350
+__X32_SYSCALL(__NR_x32_sched_rr_get_interval, sys32_sched_rr_get_interval)
+#define __NR_x32__sysctl 351
+__X32_SYSCALL(__NR_x32__sysctl, compat_sys_sysctl)
+#define __NR_x32_adjtimex 352
+__X32_SYSCALL(__NR_x32_adjtimex, compat_sys_adjtimex)
+#define __NR_x32_setrlimit 353
+__X32_SYSCALL(__NR_x32_setrlimit, compat_sys_setrlimit)
+#define __NR_x32_settimeofday 354
+__X32_SYSCALL(__NR_x32_settimeofday, compat_sys_settimeofday)
+#define __NR_x32_quotactl 355
+__X32_SYSCALL(__NR_x32_quotactl, sys32_quotactl)
+
+#define __NR_x32_nfsservctl 356
+__X32_SYSCALL(__NR_x32_nfsservctl, compat_sys_nfsservctl)
+#define __NR_x32_time 357
+__X32_SYSCALL(__NR_x32_time, compat_sys_time)
+#define __NR_x32_futex 358
+__X32_SYSCALL(__NR_x32_futex, compat_sys_futex)
+#define __NR_x32_sched_setaffinity 359
+__X32_SYSCALL(__NR_x32_sched_setaffinity, compat_sys_sched_setaffinity)
+#define __NR_x32_sched_getaffinity 360
+__X32_SYSCALL(__NR_x32_sched_getaffinity, compat_sys_sched_getaffinity)
+#define __NR_x32_io_setup 361
+__X32_SYSCALL(__NR_x32_io_setup, compat_sys_io_setup)
+#define __NR_x32_io_getevents 362
+__X32_SYSCALL(__NR_x32_io_getevents, compat_sys_io_getevents)
+#define __NR_x32_io_submit 363
+__X32_SYSCALL(__NR_x32_io_submit, compat_sys_io_submit)
+
+#define __NR_x32_getdents64 364
+__X32_SYSCALL(__NR_x32_getdents64, compat_sys_getdents64)
+#define __NR_x32_semtimedop 365
+__X32_SYSCALL(__NR_x32_semtimedop, compat_sys_semtimedop)
+#define __NR_x32_timer_create 366
+__X32_SYSCALL(__NR_x32_timer_create, compat_sys_timer_create)
+#define __NR_x32_timer_settime 367
+__X32_SYSCALL(__NR_x32_timer_settime, compat_sys_timer_settime)
+#define __NR_x32_timer_gettime 368
+__X32_SYSCALL(__NR_x32_timer_gettime, compat_sys_timer_gettime)
+#define __NR_x32_clock_settime 369
+__X32_SYSCALL(__NR_x32_clock_settime, compat_sys_clock_settime)
+#define __NR_x32_clock_gettime 370
+__X32_SYSCALL(__NR_x32_clock_gettime, compat_sys_clock_gettime)
+#define __NR_x32_clock_getres 371
+__X32_SYSCALL(__NR_x32_clock_getres, compat_sys_clock_getres)
+
+#define __NR_x32_clock_nanosleep 372
+__X32_SYSCALL(__NR_x32_clock_nanosleep, compat_sys_clock_nanosleep)
+#define __NR_x32_utimes 373
+__X32_SYSCALL(__NR_x32_utimes, compat_sys_utimes)
+#define __NR_x32_mq_open 374
+__X32_SYSCALL(__NR_x32_mq_open, compat_sys_mq_open)
+#define __NR_x32_mq_timedsend 375
+__X32_SYSCALL(__NR_x32_mq_timedsend, compat_sys_mq_timedsend)
+#define __NR_x32_mq_timedreceive 376
+__X32_SYSCALL(__NR_x32_mq_timedreceive, compat_sys_mq_timedreceive)
+#define __NR_x32_mq_notify 377
+__X32_SYSCALL(__NR_x32_mq_notify, compat_sys_mq_notify)
+#define __NR_x32_mq_getsetattr 378
+__X32_SYSCALL(__NR_x32_mq_getsetattr, compat_sys_mq_getsetattr)
+#define __NR_x32_kexec_load 379
+__X32_SYSCALL(__NR_x32_kexec_load, compat_sys_kexec_load)
+
+#define __NR_x32_waitid 380
+__X32_SYSCALL(__NR_x32_waitid, compat_sys_waitid)
+#define __NR_x32_openat 381
+__X32_SYSCALL(__NR_x32_openat, compat_sys_openat)
+#define __NR_x32_futimesat 382
+__X32_SYSCALL(__NR_x32_futimesat, compat_sys_futimesat)
+#define __NR_x32_fstatat64 383
+__X32_SYSCALL(__NR_x32_fstatat64, sys32_fstatat)
+#define __NR_x32_pselect6 384
+__X32_SYSCALL(__NR_x32_pselect6, compat_sys_pselect6)
+#define __NR_x32_ppoll 385
+__X32_SYSCALL(__NR_x32_ppoll, compat_sys_ppoll)
+#define __NR_x32_set_robust_list 386
+__X32_SYSCALL(__NR_x32_set_robust_list, compat_sys_set_robust_list)
+#define __NR_x32_get_robust_list 387
+__X32_SYSCALL(__NR_x32_get_robust_list, compat_sys_get_robust_list)
+
+#define __NR_x32_vmsplice 388
+__X32_SYSCALL(__NR_x32_vmsplice, compat_sys_vmsplice)
+#define __NR_x32_move_pages 389
+__X32_SYSCALL(__NR_x32_move_pages, compat_sys_move_pages)
+#define __NR_x32_utimensat 390
+__X32_SYSCALL(__NR_x32_utimensat, compat_sys_utimensat)
+#define __NR_x32_signalfd 391
+__X32_SYSCALL(__NR_x32_signalfd, compat_sys_signalfd)
+#define __NR_x32_timerfd_settime 392
+__X32_SYSCALL(__NR_x32_timerfd_settime, compat_sys_timerfd_settime)
+#define __NR_x32_timerfd_gettime 393
+__X32_SYSCALL(__NR_x32_timerfd_gettime, compat_sys_timerfd_gettime)
+#define __NR_x32_signalfd4 394
+__X32_SYSCALL(__NR_x32_signalfd4, compat_sys_signalfd4)
+#define __NR_x32_rt_tgsigqueueinfo 395
+__X32_SYSCALL(__NR_x32_rt_tgsigqueueinfo, compat_sys_rt_tgsigqueueinfo)
+
+#define __NR_x32_recvmmsg 396
+__X32_SYSCALL(__NR_x32_recvmmsg, compat_sys_recvmmsg)
+#define __NR_x32_stat64 397
+__X32_SYSCALL(__NR_x32_stat64, sys32_stat64)
+#define __NR_x32_fstat64 398
+__X32_SYSCALL(__NR_x32_fstat64, sys32_fstat64)
+#define __NR_x32_lstat64 399
+__X32_SYSCALL(__NR_x32_lstat64, sys32_lstat64)
+#define __NR_x32_statfs64 400
+__X32_SYSCALL(__NR_x32_statfs64, compat_sys_statfs64)
+#define __NR_x32_fstatfs64 401
+__X32_SYSCALL(__NR_x32_fstatfs64, compat_sys_fstatfs64)
+/* Need it before vDSO is enabled. */
+#define __NR_x32_getcpu 402
+__X32_SYSCALL(__NR_x32_getcpu, sys_getcpu)
+
#ifndef __NO_STUBS
#define __ARCH_WANT_OLD_READDIR
#define __ARCH_WANT_OLD_STAT
diff --git a/arch/x86/include/asm/unistd_64_compat.h b/arch/x86/include/asm/unistd_64_compat.h
new file mode 100644
index 0000000..632f9fe
--- /dev/null
+++ b/arch/x86/include/asm/unistd_64_compat.h
@@ -0,0 +1,94 @@
+#ifndef _ASM_X86_UNISTD_64_COMPAT_H
+#define _ASM_X86_UNISTD_64_COMPAT_H
+
+#define __NR_open __NR_64_open
+#define __NR_stat __NR_64_stat
+#define __NR_fstat __NR_64_fstat
+#define __NR_lstat __NR_64_lstat
+#define __NR_rt_sigaction __NR_64_rt_sigaction
+#define __NR_rt_sigprocmask __NR_64_rt_sigprocmask
+#define __NR_rt_sigreturn __NR_64_rt_sigreturn
+#define __NR_ioctl __NR_64_ioctl
+#define __NR_readv __NR_64_readv
+#define __NR_writev __NR_64_writev
+#define __NR_select __NR_64_select
+#define __NR_shmat __NR_64_shmat
+#define __NR_shmctl __NR_64_shmctl
+#define __NR_nanosleep __NR_64_nanosleep
+#define __NR_getitimer __NR_64_getitimer
+#define __NR_setitimer __NR_64_setitimer
+#define __NR_recvfrom __NR_64_recvfrom
+#define __NR_sendmsg __NR_64_sendmsg
+#define __NR_recvmsg __NR_64_recvmsg
+#define __NR_setsockopt __NR_64_setsockopt
+#define __NR_getsockopt __NR_64_getsockopt
+#define __NR_execve __NR_64_execve
+#define __NR_wait4 __NR_64_wait4
+#define __NR_semctl __NR_64_semctl
+#define __NR_msgsnd __NR_64_msgsnd
+#define __NR_msgrcv __NR_64_msgrcv
+#define __NR_msgctl __NR_64_msgctl
+#define __NR_fcntl __NR_64_fcntl
+#define __NR_getdents __NR_64_getdents
+#define __NR_gettimeofday __NR_64_gettimeofday
+#define __NR_getrlimit __NR_64_getrlimit
+#define __NR_getrusage __NR_64_getrusage
+#define __NR_sysinfo __NR_64_sysinfo
+#define __NR_times __NR_64_times
+#define __NR_rt_sigpending __NR_64_rt_sigpending
+#define __NR_rt_sigtimedwait __NR_64_rt_sigtimedwait
+#define __NR_rt_sigqueueinfo __NR_64_rt_sigqueueinfo
+#define __NR_sigaltstack __NR_64_sigaltstack
+#define __NR_utime __NR_64_utime
+#define __NR_ustat __NR_64_ustat
+#define __NR_statfs __NR_64_statfs
+#define __NR_fstatfs __NR_64_fstatfs
+#define __NR_sched_rr_get_interval __NR_64_sched_rr_get_interval
+#define __NR__sysctl __NR_64__sysctl
+#define __NR_adjtimex __NR_64_adjtimex
+#define __NR_setrlimit __NR_64_setrlimit
+#define __NR_settimeofday __NR_64_settimeofday
+#define __NR_quotactl __NR_64_quotactl
+#define __NR_nfsservctl __NR_64_nfsservctl
+#define __NR_time __NR_64_time
+#define __NR_futex __NR_64_futex
+#define __NR_sched_setaffinity __NR_64_sched_setaffinity
+#define __NR_sched_getaffinity __NR_64_sched_getaffinity
+#define __NR_io_setup __NR_64_io_setup
+#define __NR_io_getevents __NR_64_io_getevents
+#define __NR_io_submit __NR_64_io_submit
+#define __NR_getdents64 __NR_64_getdents64
+#define __NR_semtimedop __NR_64_semtimedop
+#define __NR_timer_create __NR_64_timer_create
+#define __NR_timer_settime __NR_64_timer_settime
+#define __NR_timer_gettime __NR_64_timer_gettime
+#define __NR_clock_settime __NR_64_clock_settime
+#define __NR_clock_gettime __NR_64_clock_gettime
+#define __NR_clock_getres __NR_64_clock_getres
+#define __NR_clock_nanosleep __NR_64_clock_nanosleep
+#define __NR_utimes __NR_64_utimes
+#define __NR_mq_open __NR_64_mq_open
+#define __NR_mq_timedsend __NR_64_mq_timedsend
+#define __NR_mq_timedreceive __NR_64_mq_timedreceive
+#define __NR_mq_notify __NR_64_mq_notify
+#define __NR_mq_getsetattr __NR_64_mq_getsetattr
+#define __NR_kexec_load __NR_64_kexec_load
+#define __NR_waitid __NR_64_waitid
+#define __NR_openat __NR_64_openat
+#define __NR_futimesat __NR_64_futimesat
+#define __NR_newfstatat __NR_64_newfstatat
+#define __NR_pselect6 __NR_64_pselect6
+#define __NR_ppoll __NR_64_ppoll
+#define __NR_set_robust_list __NR_64_set_robust_list
+#define __NR_get_robust_list __NR_64_get_robust_list
+#define __NR_vmsplice __NR_64_vmsplice
+#define __NR_move_pages __NR_64_move_pages
+#define __NR_utimensat __NR_64_utimensat
+#define __NR_signalfd __NR_64_signalfd
+#define __NR_timerfd_settime __NR_64_timerfd_settime
+#define __NR_timerfd_gettime __NR_64_timerfd_gettime
+#define __NR_signalfd4 __NR_64_signalfd4
+#define __NR_rt_tgsigqueueinfo __NR_64_rt_tgsigqueueinfo
+#define __NR_recvmmsg __NR_64_recvmmsg
+
+#endif /* _ASM_X86_UNISTD_64_COMPAT_H */
diff --git a/arch/x86/include/asm/unistd_x32.h b/arch/x86/include/asm/unistd_x32.h
index 135f6f3..eeb17a2 100644
--- a/arch/x86/include/asm/unistd_x32.h
+++ b/arch/x86/include/asm/unistd_x32.h
@@ -1,3 +1,10 @@
+/* Generated with
+
+ sed -e "s/_NR_x32_/_NR_/g" \
+ -e "s/_ASM_X86_UNISTD_64_H/_ASM_X86_UNISTD_X32_H/g" \
+ unistd_64.h > unistd_x32.h
+ */
+
#ifndef _ASM_X86_UNISTD_X32_H
#define _ASM_X86_UNISTD_X32_H
@@ -5,685 +12,929 @@
#define __SYSCALL(a, b)
#endif
+#ifndef __X32_SYSCALL
+#define __X32_SYSCALL(a, b)
+#endif
+
/*
- * This file contains the system call numbers for the x32 ABI.
+ * This file contains the system call numbers.
+ *
+ * Note: holes are not allowed.
*/
-#define __NR_x32_base 4096
-
/* at least 8 syscall per cacheline */
-#define __NR_x32_read (__NR_x32_base + 0)
-__SYSCALL(__NR_x32_read, sys_read)
-#define __NR_x32_write (__NR_x32_base + 1)
-__SYSCALL(__NR_x32_write, sys_write)
-#define __NR_x32_open (__NR_x32_base + 2)
-__SYSCALL(__NR_x32_open, compat_sys_open)
-#define __NR_x32_close (__NR_x32_base + 3)
-__SYSCALL(__NR_x32_close, sys_close)
-#define __NR_x32_stat (__NR_x32_base + 4)
-__SYSCALL(__NR_x32_stat, compat_sys_newstat)
-#define __NR_x32_fstat (__NR_x32_base + 5)
-__SYSCALL(__NR_x32_fstat, compat_sys_newfstat)
-#define __NR_x32_lstat (__NR_x32_base + 6)
-__SYSCALL(__NR_x32_lstat, compat_sys_newlstat)
-#define __NR_x32_poll (__NR_x32_base + 7)
-__SYSCALL(__NR_x32_poll, sys_poll)
-
-#define __NR_x32_lseek (__NR_x32_base + 8)
-__SYSCALL(__NR_x32_lseek, sys_lseek)
-#define __NR_x32_mmap (__NR_x32_base + 9)
-__SYSCALL(__NR_x32_mmap, sys_mmap)
-#define __NR_x32_mprotect (__NR_x32_base + 10)
-__SYSCALL(__NR_x32_mprotect, sys_mprotect)
-#define __NR_x32_munmap (__NR_x32_base + 11)
-__SYSCALL(__NR_x32_munmap, sys_munmap)
-#define __NR_x32_brk (__NR_x32_base + 12)
-__SYSCALL(__NR_x32_brk, sys_brk)
-#define __NR_x32_rt_sigaction (__NR_x32_base + 13)
-__SYSCALL(__NR_x32_rt_sigaction, sys32_rt_sigaction)
-#define __NR_x32_rt_sigprocmask (__NR_x32_base + 14)
-__SYSCALL(__NR_x32_rt_sigprocmask, sys32_rt_sigprocmask)
-#define __NR_x32_rt_sigreturn (__NR_x32_base + 15)
-__SYSCALL(__NR_x32_rt_sigreturn, stub_x32_rt_sigreturn)
-
-#define __NR_x32_ioctl (__NR_x32_base + 16)
-__SYSCALL(__NR_x32_ioctl, compat_sys_ioctl)
-#define __NR_x32_pread64 (__NR_x32_base + 17)
-__SYSCALL(__NR_x32_pread64, sys_pread64)
-#define __NR_x32_pwrite64 (__NR_x32_base + 18)
-__SYSCALL(__NR_x32_pwrite64, sys_pwrite64)
-#define __NR_x32_readv (__NR_x32_base + 19)
-__SYSCALL(__NR_x32_readv, compat_sys_readv)
-#define __NR_x32_writev (__NR_x32_base + 20)
-__SYSCALL(__NR_x32_writev, compat_sys_writev)
-#define __NR_x32_access (__NR_x32_base + 21)
-__SYSCALL(__NR_x32_access, sys_access)
-#define __NR_x32_pipe (__NR_x32_base + 22)
-__SYSCALL(__NR_x32_pipe, sys_pipe)
-#define __NR_x32_select (__NR_x32_base + 23)
-__SYSCALL(__NR_x32_select, compat_sys_select)
-
-#define __NR_x32_sched_yield (__NR_x32_base + 24)
-__SYSCALL(__NR_x32_sched_yield, sys_sched_yield)
-#define __NR_x32_mremap (__NR_x32_base + 25)
-__SYSCALL(__NR_x32_mremap, sys_mremap)
-#define __NR_x32_msync (__NR_x32_base + 26)
-__SYSCALL(__NR_x32_msync, sys_msync)
-#define __NR_x32_mincore (__NR_x32_base + 27)
-__SYSCALL(__NR_x32_mincore, sys_mincore)
-#define __NR_x32_madvise (__NR_x32_base + 28)
-__SYSCALL(__NR_x32_madvise, sys_madvise)
-#define __NR_x32_shmget (__NR_x32_base + 29)
-__SYSCALL(__NR_x32_shmget, sys_shmget)
-#define __NR_x32_shmat (__NR_x32_base + 30)
-__SYSCALL(__NR_x32_shmat, compat_sys_x32_shmat)
-#define __NR_x32_shmctl (__NR_x32_base + 31)
-__SYSCALL(__NR_x32_shmctl, compat_sys_shmctl)
-
-#define __NR_x32_dup (__NR_x32_base + 32)
-__SYSCALL(__NR_x32_dup, sys_dup)
-#define __NR_x32_dup2 (__NR_x32_base + 33)
-__SYSCALL(__NR_x32_dup2, sys_dup2)
-#define __NR_x32_pause (__NR_x32_base + 34)
-__SYSCALL(__NR_x32_pause, sys_pause)
-#define __NR_x32_nanosleep (__NR_x32_base + 35)
-__SYSCALL(__NR_x32_nanosleep, compat_sys_nanosleep)
-#define __NR_x32_getitimer (__NR_x32_base + 36)
-__SYSCALL(__NR_x32_getitimer, compat_sys_getitimer)
-#define __NR_x32_alarm (__NR_x32_base + 37)
-__SYSCALL(__NR_x32_alarm, sys_alarm)
-#define __NR_x32_setitimer (__NR_x32_base + 38)
-__SYSCALL(__NR_x32_setitimer, compat_sys_setitimer)
-#define __NR_x32_getpid (__NR_x32_base + 39)
-__SYSCALL(__NR_x32_getpid, sys_getpid)
-
-#define __NR_x32_sendfile (__NR_x32_base + 40)
-__SYSCALL(__NR_x32_sendfile, sys_sendfile64)
-#define __NR_x32_socket (__NR_x32_base + 41)
-__SYSCALL(__NR_x32_socket, sys_socket)
-#define __NR_x32_connect (__NR_x32_base + 42)
-__SYSCALL(__NR_x32_connect, sys_connect)
-#define __NR_x32_accept (__NR_x32_base + 43)
-__SYSCALL(__NR_x32_accept, sys_accept)
-#define __NR_x32_sendto (__NR_x32_base + 44)
-__SYSCALL(__NR_x32_sendto, sys_sendto)
-#define __NR_x32_recvfrom (__NR_x32_base + 45)
-__SYSCALL(__NR_x32_recvfrom, compat_sys_recvfrom)
-#define __NR_x32_sendmsg (__NR_x32_base + 46)
-__SYSCALL(__NR_x32_sendmsg, compat_sys_sendmsg)
-#define __NR_x32_recvmsg (__NR_x32_base + 47)
-__SYSCALL(__NR_x32_recvmsg, compat_sys_recvmsg)
-
-#define __NR_x32_shutdown (__NR_x32_base + 48)
-__SYSCALL(__NR_x32_shutdown, sys_shutdown)
-#define __NR_x32_bind (__NR_x32_base + 49)
-__SYSCALL(__NR_x32_bind, sys_bind)
-#define __NR_x32_listen (__NR_x32_base + 50)
-__SYSCALL(__NR_x32_listen, sys_listen)
-#define __NR_x32_getsockname (__NR_x32_base + 51)
-__SYSCALL(__NR_x32_getsockname, sys_getsockname)
-#define __NR_x32_getpeername (__NR_x32_base + 52)
-__SYSCALL(__NR_x32_getpeername, sys_getpeername)
-#define __NR_x32_socketpair (__NR_x32_base + 53)
-__SYSCALL(__NR_x32_socketpair, sys_socketpair)
-#define __NR_x32_setsockopt (__NR_x32_base + 54)
-__SYSCALL(__NR_x32_setsockopt, compat_sys_setsockopt)
-#define __NR_x32_getsockopt (__NR_x32_base + 55)
-__SYSCALL(__NR_x32_getsockopt, compat_sys_getsockopt)
-
-#define __NR_x32_clone (__NR_x32_base + 56)
-__SYSCALL(__NR_x32_clone, stub_clone)
-#define __NR_x32_fork (__NR_x32_base + 57)
-__SYSCALL(__NR_x32_fork, stub_fork)
-#define __NR_x32_vfork (__NR_x32_base + 58)
-__SYSCALL(__NR_x32_vfork, stub_vfork)
-#define __NR_x32_execve (__NR_x32_base + 59)
-__SYSCALL(__NR_x32_execve, stub_x32_execve)
-#define __NR_x32_exit (__NR_x32_base + 60)
-__SYSCALL(__NR_x32_exit, sys_exit)
-#define __NR_x32_wait4 (__NR_x32_base + 61)
-__SYSCALL(__NR_x32_wait4, compat_sys_wait4)
-#define __NR_x32_kill (__NR_x32_base + 62)
-__SYSCALL(__NR_x32_kill, sys_kill)
-#define __NR_x32_uname (__NR_x32_base + 63)
-__SYSCALL(__NR_x32_uname, sys_newuname)
-
-#define __NR_x32_semget (__NR_x32_base + 64)
-__SYSCALL(__NR_x32_semget, sys_semget)
-#define __NR_x32_semop (__NR_x32_base + 65)
-__SYSCALL(__NR_x32_semop, sys_semop)
-#define __NR_x32_semctl (__NR_x32_base + 66)
-__SYSCALL(__NR_x32_semctl, compat_sys_x32_semctl)
-#define __NR_x32_shmdt (__NR_x32_base + 67)
-__SYSCALL(__NR_x32_shmdt, sys_shmdt)
-#define __NR_x32_msgget (__NR_x32_base + 68)
-__SYSCALL(__NR_x32_msgget, sys_msgget)
-#define __NR_x32_msgsnd (__NR_x32_base + 69)
-__SYSCALL(__NR_x32_msgsnd, compat_sys_x32_msgsnd)
-#define __NR_x32_msgrcv (__NR_x32_base + 70)
-__SYSCALL(__NR_x32_msgrcv, compat_sys_x32_msgrcv)
-#define __NR_x32_msgctl (__NR_x32_base + 71)
-__SYSCALL(__NR_x32_msgctl, compat_sys_msgctl)
-
-#define __NR_x32_fcntl (__NR_x32_base + 72)
-__SYSCALL(__NR_x32_fcntl, compat_sys_fcntl64)
-#define __NR_x32_flock (__NR_x32_base + 73)
-__SYSCALL(__NR_x32_flock, sys_flock)
-#define __NR_x32_fsync (__NR_x32_base + 74)
-__SYSCALL(__NR_x32_fsync, sys_fsync)
-#define __NR_x32_fdatasync (__NR_x32_base + 75)
-__SYSCALL(__NR_x32_fdatasync, sys_fdatasync)
-#define __NR_x32_truncate (__NR_x32_base + 76)
-__SYSCALL(__NR_x32_truncate, sys_truncate)
-#define __NR_x32_ftruncate (__NR_x32_base + 77)
-__SYSCALL(__NR_x32_ftruncate, sys_ftruncate)
-#define __NR_x32_getdents (__NR_x32_base + 78)
-__SYSCALL(__NR_x32_getdents, compat_sys_getdents)
-#define __NR_x32_getcwd (__NR_x32_base + 79)
-__SYSCALL(__NR_x32_getcwd, sys_getcwd)
-
-#define __NR_x32_chdir (__NR_x32_base + 80)
-__SYSCALL(__NR_x32_chdir, sys_chdir)
-#define __NR_x32_fchdir (__NR_x32_base + 81)
-__SYSCALL(__NR_x32_fchdir, sys_fchdir)
-#define __NR_x32_rename (__NR_x32_base + 82)
-__SYSCALL(__NR_x32_rename, sys_rename)
-#define __NR_x32_mkdir (__NR_x32_base + 83)
-__SYSCALL(__NR_x32_mkdir, sys_mkdir)
-#define __NR_x32_rmdir (__NR_x32_base + 84)
-__SYSCALL(__NR_x32_rmdir, sys_rmdir)
-#define __NR_x32_creat (__NR_x32_base + 85)
-__SYSCALL(__NR_x32_creat, sys_creat)
-#define __NR_x32_link (__NR_x32_base + 86)
-__SYSCALL(__NR_x32_link, sys_link)
-#define __NR_x32_unlink (__NR_x32_base + 87)
-__SYSCALL(__NR_x32_unlink, sys_unlink)
-
-#define __NR_x32_symlink (__NR_x32_base + 88)
-__SYSCALL(__NR_x32_symlink, sys_symlink)
-#define __NR_x32_readlink (__NR_x32_base + 89)
-__SYSCALL(__NR_x32_readlink, sys_readlink)
-#define __NR_x32_chmod (__NR_x32_base + 90)
-__SYSCALL(__NR_x32_chmod, sys_chmod)
-#define __NR_x32_fchmod (__NR_x32_base + 91)
-__SYSCALL(__NR_x32_fchmod, sys_fchmod)
-#define __NR_x32_chown (__NR_x32_base + 92)
-__SYSCALL(__NR_x32_chown, sys_chown)
-#define __NR_x32_fchown (__NR_x32_base + 93)
-__SYSCALL(__NR_x32_fchown, sys_fchown)
-#define __NR_x32_lchown (__NR_x32_base + 94)
-__SYSCALL(__NR_x32_lchown, sys_lchown)
-#define __NR_x32_umask (__NR_x32_base + 95)
-__SYSCALL(__NR_x32_umask, sys_umask)
-
-#define __NR_x32_gettimeofday (__NR_x32_base + 96)
-__SYSCALL(__NR_x32_gettimeofday, compat_sys_gettimeofday)
-#define __NR_x32_getrlimit (__NR_x32_base + 97)
-__SYSCALL(__NR_x32_getrlimit, compat_sys_getrlimit)
-#define __NR_x32_getrusage (__NR_x32_base + 98)
-__SYSCALL(__NR_x32_getrusage, compat_sys_getrusage)
-#define __NR_x32_sysinfo (__NR_x32_base + 99)
-__SYSCALL(__NR_x32_sysinfo, compat_sys_sysinfo)
-#define __NR_x32_times (__NR_x32_base + 100)
-__SYSCALL(__NR_x32_times, compat_sys_times)
-#define __NR_x32_ptrace (__NR_x32_base + 101)
-__SYSCALL(__NR_x32_ptrace, sys_ptrace)
-#define __NR_x32_getuid (__NR_x32_base + 102)
-__SYSCALL(__NR_x32_getuid, sys_getuid)
-#define __NR_x32_syslog (__NR_x32_base + 103)
-__SYSCALL(__NR_x32_syslog, sys_syslog)
+#define __NR_read 0
+__SYSCALL(__NR_read, sys_read)
+#define __NR_write 1
+__SYSCALL(__NR_write, sys_write)
+#define __NR_64_open 2
+__SYSCALL(__NR_64_open, sys_open)
+#define __NR_close 3
+__SYSCALL(__NR_close, sys_close)
+#define __NR_64_stat 4
+__SYSCALL(__NR_64_stat, sys_newstat)
+#define __NR_64_fstat 5
+__SYSCALL(__NR_64_fstat, sys_newfstat)
+#define __NR_64_lstat 6
+__SYSCALL(__NR_64_lstat, sys_newlstat)
+#define __NR_poll 7
+__SYSCALL(__NR_poll, sys_poll)
+
+#define __NR_lseek 8
+__SYSCALL(__NR_lseek, sys_lseek)
+#define __NR_mmap 9
+__SYSCALL(__NR_mmap, sys_mmap)
+#define __NR_mprotect 10
+__SYSCALL(__NR_mprotect, sys_mprotect)
+#define __NR_munmap 11
+__SYSCALL(__NR_munmap, sys_munmap)
+#define __NR_brk 12
+__SYSCALL(__NR_brk, sys_brk)
+#define __NR_64_rt_sigaction 13
+__SYSCALL(__NR_64_rt_sigaction, sys_rt_sigaction)
+#define __NR_64_rt_sigprocmask 14
+__SYSCALL(__NR_64_rt_sigprocmask, sys_rt_sigprocmask)
+#define __NR_64_rt_sigreturn 15
+__SYSCALL(__NR_64_rt_sigreturn, stub_rt_sigreturn)
+
+#define __NR_64_ioctl 16
+__SYSCALL(__NR_64_ioctl, sys_ioctl)
+#define __NR_pread64 17
+__SYSCALL(__NR_pread64, sys_pread64)
+#define __NR_pwrite64 18
+__SYSCALL(__NR_pwrite64, sys_pwrite64)
+#define __NR_64_readv 19
+__SYSCALL(__NR_64_readv, sys_readv)
+#define __NR_64_writev 20
+__SYSCALL(__NR_64_writev, sys_writev)
+#define __NR_access 21
+__SYSCALL(__NR_access, sys_access)
+#define __NR_pipe 22
+__SYSCALL(__NR_pipe, sys_pipe)
+#define __NR_64_select 23
+__SYSCALL(__NR_64_select, sys_select)
+
+#define __NR_sched_yield 24
+__SYSCALL(__NR_sched_yield, sys_sched_yield)
+#define __NR_mremap 25
+__SYSCALL(__NR_mremap, sys_mremap)
+#define __NR_msync 26
+__SYSCALL(__NR_msync, sys_msync)
+#define __NR_mincore 27
+__SYSCALL(__NR_mincore, sys_mincore)
+#define __NR_madvise 28
+__SYSCALL(__NR_madvise, sys_madvise)
+#define __NR_shmget 29
+__SYSCALL(__NR_shmget, sys_shmget)
+#define __NR_64_shmat 30
+__SYSCALL(__NR_64_shmat, sys_shmat)
+#define __NR_64_shmctl 31
+__SYSCALL(__NR_64_shmctl, sys_shmctl)
+
+#define __NR_dup 32
+__SYSCALL(__NR_dup, sys_dup)
+#define __NR_dup2 33
+__SYSCALL(__NR_dup2, sys_dup2)
+#define __NR_pause 34
+__SYSCALL(__NR_pause, sys_pause)
+#define __NR_64_nanosleep 35
+__SYSCALL(__NR_64_nanosleep, sys_nanosleep)
+#define __NR_64_getitimer 36
+__SYSCALL(__NR_64_getitimer, sys_getitimer)
+#define __NR_alarm 37
+__SYSCALL(__NR_alarm, sys_alarm)
+#define __NR_64_setitimer 38
+__SYSCALL(__NR_64_setitimer, sys_setitimer)
+#define __NR_getpid 39
+__SYSCALL(__NR_getpid, sys_getpid)
+
+#define __NR_sendfile 40
+__SYSCALL(__NR_sendfile, sys_sendfile64)
+#define __NR_socket 41
+__SYSCALL(__NR_socket, sys_socket)
+#define __NR_connect 42
+__SYSCALL(__NR_connect, sys_connect)
+#define __NR_accept 43
+__SYSCALL(__NR_accept, sys_accept)
+#define __NR_sendto 44
+__SYSCALL(__NR_sendto, sys_sendto)
+#define __NR_64_recvfrom 45
+__SYSCALL(__NR_64_recvfrom, sys_recvfrom)
+#define __NR_64_sendmsg 46
+__SYSCALL(__NR_64_sendmsg, sys_sendmsg)
+#define __NR_64_recvmsg 47
+__SYSCALL(__NR_64_recvmsg, sys_recvmsg)
+
+#define __NR_shutdown 48
+__SYSCALL(__NR_shutdown, sys_shutdown)
+#define __NR_bind 49
+__SYSCALL(__NR_bind, sys_bind)
+#define __NR_listen 50
+__SYSCALL(__NR_listen, sys_listen)
+#define __NR_getsockname 51
+__SYSCALL(__NR_getsockname, sys_getsockname)
+#define __NR_getpeername 52
+__SYSCALL(__NR_getpeername, sys_getpeername)
+#define __NR_socketpair 53
+__SYSCALL(__NR_socketpair, sys_socketpair)
+#define __NR_64_setsockopt 54
+__SYSCALL(__NR_64_setsockopt, sys_setsockopt)
+#define __NR_64_getsockopt 55
+__SYSCALL(__NR_64_getsockopt, sys_getsockopt)
+
+#define __NR_clone 56
+__SYSCALL(__NR_clone, stub_clone)
+#define __NR_fork 57
+__SYSCALL(__NR_fork, stub_fork)
+#define __NR_vfork 58
+__SYSCALL(__NR_vfork, stub_vfork)
+#define __NR_64_execve 59
+__SYSCALL(__NR_64_execve, stub_execve)
+#define __NR_exit 60
+__SYSCALL(__NR_exit, sys_exit)
+#define __NR_64_wait4 61
+__SYSCALL(__NR_64_wait4, sys_wait4)
+#define __NR_kill 62
+__SYSCALL(__NR_kill, sys_kill)
+#define __NR_uname 63
+__SYSCALL(__NR_uname, sys_newuname)
+
+#define __NR_semget 64
+__SYSCALL(__NR_semget, sys_semget)
+#define __NR_semop 65
+__SYSCALL(__NR_semop, sys_semop)
+#define __NR_64_semctl 66
+__SYSCALL(__NR_64_semctl, sys_semctl)
+#define __NR_shmdt 67
+__SYSCALL(__NR_shmdt, sys_shmdt)
+#define __NR_msgget 68
+__SYSCALL(__NR_msgget, sys_msgget)
+#define __NR_64_msgsnd 69
+__SYSCALL(__NR_64_msgsnd, sys_msgsnd)
+#define __NR_64_msgrcv 70
+__SYSCALL(__NR_64_msgrcv, sys_msgrcv)
+#define __NR_64_msgctl 71
+__SYSCALL(__NR_64_msgctl, sys_msgctl)
+
+#define __NR_64_fcntl 72
+__SYSCALL(__NR_64_fcntl, sys_fcntl)
+#define __NR_flock 73
+__SYSCALL(__NR_flock, sys_flock)
+#define __NR_fsync 74
+__SYSCALL(__NR_fsync, sys_fsync)
+#define __NR_fdatasync 75
+__SYSCALL(__NR_fdatasync, sys_fdatasync)
+#define __NR_truncate 76
+__SYSCALL(__NR_truncate, sys_truncate)
+#define __NR_ftruncate 77
+__SYSCALL(__NR_ftruncate, sys_ftruncate)
+#define __NR_64_getdents 78
+__SYSCALL(__NR_64_getdents, sys_getdents)
+#define __NR_getcwd 79
+__SYSCALL(__NR_getcwd, sys_getcwd)
+
+#define __NR_chdir 80
+__SYSCALL(__NR_chdir, sys_chdir)
+#define __NR_fchdir 81
+__SYSCALL(__NR_fchdir, sys_fchdir)
+#define __NR_rename 82
+__SYSCALL(__NR_rename, sys_rename)
+#define __NR_mkdir 83
+__SYSCALL(__NR_mkdir, sys_mkdir)
+#define __NR_rmdir 84
+__SYSCALL(__NR_rmdir, sys_rmdir)
+#define __NR_creat 85
+__SYSCALL(__NR_creat, sys_creat)
+#define __NR_link 86
+__SYSCALL(__NR_link, sys_link)
+#define __NR_unlink 87
+__SYSCALL(__NR_unlink, sys_unlink)
+
+#define __NR_symlink 88
+__SYSCALL(__NR_symlink, sys_symlink)
+#define __NR_readlink 89
+__SYSCALL(__NR_readlink, sys_readlink)
+#define __NR_chmod 90
+__SYSCALL(__NR_chmod, sys_chmod)
+#define __NR_fchmod 91
+__SYSCALL(__NR_fchmod, sys_fchmod)
+#define __NR_chown 92
+__SYSCALL(__NR_chown, sys_chown)
+#define __NR_fchown 93
+__SYSCALL(__NR_fchown, sys_fchown)
+#define __NR_lchown 94
+__SYSCALL(__NR_lchown, sys_lchown)
+#define __NR_umask 95
+__SYSCALL(__NR_umask, sys_umask)
+
+#define __NR_64_gettimeofday 96
+__SYSCALL(__NR_64_gettimeofday, sys_gettimeofday)
+#define __NR_64_getrlimit 97
+__SYSCALL(__NR_64_getrlimit, sys_getrlimit)
+#define __NR_64_getrusage 98
+__SYSCALL(__NR_64_getrusage, sys_getrusage)
+#define __NR_64_sysinfo 99
+__SYSCALL(__NR_64_sysinfo, sys_sysinfo)
+#define __NR_64_times 100
+__SYSCALL(__NR_64_times, sys_times)
+#define __NR_ptrace 101
+__SYSCALL(__NR_ptrace, sys_ptrace)
+#define __NR_getuid 102
+__SYSCALL(__NR_getuid, sys_getuid)
+#define __NR_syslog 103
+__SYSCALL(__NR_syslog, sys_syslog)
/* at the very end the stuff that never runs during the benchmarks */
-#define __NR_x32_getgid (__NR_x32_base + 104)
-__SYSCALL(__NR_x32_getgid, sys_getgid)
-#define __NR_x32_setuid (__NR_x32_base + 105)
-__SYSCALL(__NR_x32_setuid, sys_setuid)
-#define __NR_x32_setgid (__NR_x32_base + 106)
-__SYSCALL(__NR_x32_setgid, sys_setgid)
-#define __NR_x32_geteuid (__NR_x32_base + 107)
-__SYSCALL(__NR_x32_geteuid, sys_geteuid)
-#define __NR_x32_getegid (__NR_x32_base + 108)
-__SYSCALL(__NR_x32_getegid, sys_getegid)
-#define __NR_x32_setpgid (__NR_x32_base + 109)
-__SYSCALL(__NR_x32_setpgid, sys_setpgid)
-#define __NR_x32_getppid (__NR_x32_base + 110)
-__SYSCALL(__NR_x32_getppid, sys_getppid)
-#define __NR_x32_getpgrp (__NR_x32_base + 111)
-__SYSCALL(__NR_x32_getpgrp, sys_getpgrp)
-
-#define __NR_x32_setsid (__NR_x32_base + 112)
-__SYSCALL(__NR_x32_setsid, sys_setsid)
-#define __NR_x32_setreuid (__NR_x32_base + 113)
-__SYSCALL(__NR_x32_setreuid, sys_setreuid)
-#define __NR_x32_setregid (__NR_x32_base + 114)
-__SYSCALL(__NR_x32_setregid, sys_setregid)
-#define __NR_x32_getgroups (__NR_x32_base + 115)
-__SYSCALL(__NR_x32_getgroups, sys_getgroups)
-#define __NR_x32_setgroups (__NR_x32_base + 116)
-__SYSCALL(__NR_x32_setgroups, sys_setgroups)
-#define __NR_x32_setresuid (__NR_x32_base + 117)
-__SYSCALL(__NR_x32_setresuid, sys_setresuid)
-#define __NR_x32_getresuid (__NR_x32_base + 118)
-__SYSCALL(__NR_x32_getresuid, sys_getresuid)
-#define __NR_x32_setresgid (__NR_x32_base + 119)
-__SYSCALL(__NR_x32_setresgid, sys_setresgid)
-
-#define __NR_x32_getresgid (__NR_x32_base + 120)
-__SYSCALL(__NR_x32_getresgid, sys_getresgid)
-#define __NR_x32_getpgid (__NR_x32_base + 121)
-__SYSCALL(__NR_x32_getpgid, sys_getpgid)
-#define __NR_x32_setfsuid (__NR_x32_base + 122)
-__SYSCALL(__NR_x32_setfsuid, sys_setfsuid)
-#define __NR_x32_setfsgid (__NR_x32_base + 123)
-__SYSCALL(__NR_x32_setfsgid, sys_setfsgid)
-#define __NR_x32_getsid (__NR_x32_base + 124)
-__SYSCALL(__NR_x32_getsid, sys_getsid)
-#define __NR_x32_capget (__NR_x32_base + 125)
-__SYSCALL(__NR_x32_capget, sys_capget)
-#define __NR_x32_capset (__NR_x32_base + 126)
-__SYSCALL(__NR_x32_capset, sys_capset)
-
-#define __NR_x32_rt_sigpending (__NR_x32_base + 127)
-__SYSCALL(__NR_x32_rt_sigpending, sys32_rt_sigpending)
-#define __NR_x32_rt_sigtimedwait (__NR_x32_base + 128)
-__SYSCALL(__NR_x32_rt_sigtimedwait, compat_sys_rt_sigtimedwait)
-#define __NR_x32_rt_sigqueueinfo (__NR_x32_base + 129)
-__SYSCALL(__NR_x32_rt_sigqueueinfo, sys32_rt_sigqueueinfo)
-#define __NR_x32_rt_sigsuspend (__NR_x32_base + 130)
-__SYSCALL(__NR_x32_rt_sigsuspend, sys_rt_sigsuspend)
-#define __NR_x32_sigaltstack (__NR_x32_base + 131)
-__SYSCALL(__NR_x32_sigaltstack, stub_x32_sigaltstack)
-#define __NR_x32_utime (__NR_x32_base + 132)
-__SYSCALL(__NR_x32_utime, compat_sys_utime)
-#define __NR_x32_mknod (__NR_x32_base + 133)
-__SYSCALL(__NR_x32_mknod, sys_mknod)
+#define __NR_getgid 104
+__SYSCALL(__NR_getgid, sys_getgid)
+#define __NR_setuid 105
+__SYSCALL(__NR_setuid, sys_setuid)
+#define __NR_setgid 106
+__SYSCALL(__NR_setgid, sys_setgid)
+#define __NR_geteuid 107
+__SYSCALL(__NR_geteuid, sys_geteuid)
+#define __NR_getegid 108
+__SYSCALL(__NR_getegid, sys_getegid)
+#define __NR_setpgid 109
+__SYSCALL(__NR_setpgid, sys_setpgid)
+#define __NR_getppid 110
+__SYSCALL(__NR_getppid, sys_getppid)
+#define __NR_getpgrp 111
+__SYSCALL(__NR_getpgrp, sys_getpgrp)
+
+#define __NR_setsid 112
+__SYSCALL(__NR_setsid, sys_setsid)
+#define __NR_setreuid 113
+__SYSCALL(__NR_setreuid, sys_setreuid)
+#define __NR_setregid 114
+__SYSCALL(__NR_setregid, sys_setregid)
+#define __NR_getgroups 115
+__SYSCALL(__NR_getgroups, sys_getgroups)
+#define __NR_setgroups 116
+__SYSCALL(__NR_setgroups, sys_setgroups)
+#define __NR_setresuid 117
+__SYSCALL(__NR_setresuid, sys_setresuid)
+#define __NR_getresuid 118
+__SYSCALL(__NR_getresuid, sys_getresuid)
+#define __NR_setresgid 119
+__SYSCALL(__NR_setresgid, sys_setresgid)
+
+#define __NR_getresgid 120
+__SYSCALL(__NR_getresgid, sys_getresgid)
+#define __NR_getpgid 121
+__SYSCALL(__NR_getpgid, sys_getpgid)
+#define __NR_setfsuid 122
+__SYSCALL(__NR_setfsuid, sys_setfsuid)
+#define __NR_setfsgid 123
+__SYSCALL(__NR_setfsgid, sys_setfsgid)
+#define __NR_getsid 124
+__SYSCALL(__NR_getsid, sys_getsid)
+#define __NR_capget 125
+__SYSCALL(__NR_capget, sys_capget)
+#define __NR_capset 126
+__SYSCALL(__NR_capset, sys_capset)
+
+#define __NR_64_rt_sigpending 127
+__SYSCALL(__NR_64_rt_sigpending, sys_rt_sigpending)
+#define __NR_64_rt_sigtimedwait 128
+__SYSCALL(__NR_64_rt_sigtimedwait, sys_rt_sigtimedwait)
+#define __NR_64_rt_sigqueueinfo 129
+__SYSCALL(__NR_64_rt_sigqueueinfo, sys_rt_sigqueueinfo)
+#define __NR_rt_sigsuspend 130
+__SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend)
+#define __NR_64_sigaltstack 131
+__SYSCALL(__NR_64_sigaltstack, stub_sigaltstack)
+#define __NR_64_utime 132
+__SYSCALL(__NR_64_utime, sys_utime)
+#define __NR_mknod 133
+__SYSCALL(__NR_mknod, sys_mknod)
/* Only needed for a.out */
-#define __NR_x32_uselib (__NR_x32_base + 134)
-__SYSCALL(__NR_x32_uselib, sys_ni_syscall)
-#define __NR_x32_personality (__NR_x32_base + 135)
-__SYSCALL(__NR_x32_personality, sys_personality)
-
-#define __NR_x32_ustat (__NR_x32_base + 136)
-__SYSCALL(__NR_x32_ustat, compat_sys_ustat)
-#define __NR_x32_statfs (__NR_x32_base + 137)
-__SYSCALL(__NR_x32_statfs, compat_sys_statfs)
-#define __NR_x32_fstatfs (__NR_x32_base + 138)
-__SYSCALL(__NR_x32_fstatfs, compat_sys_fstatfs)
-#define __NR_x32_sysfs (__NR_x32_base + 139)
-__SYSCALL(__NR_x32_sysfs, sys_sysfs)
-
-#define __NR_x32_getpriority (__NR_x32_base + 140)
-__SYSCALL(__NR_x32_getpriority, sys_getpriority)
-#define __NR_x32_setpriority (__NR_x32_base + 141)
-__SYSCALL(__NR_x32_setpriority, sys_setpriority)
-#define __NR_x32_sched_setparam (__NR_x32_base + 142)
-__SYSCALL(__NR_x32_sched_setparam, sys_sched_setparam)
-#define __NR_x32_sched_getparam (__NR_x32_base + 143)
-__SYSCALL(__NR_x32_sched_getparam, sys_sched_getparam)
-#define __NR_x32_sched_setscheduler (__NR_x32_base + 144)
-__SYSCALL(__NR_x32_sched_setscheduler, sys_sched_setscheduler)
-#define __NR_x32_sched_getscheduler (__NR_x32_base + 145)
-__SYSCALL(__NR_x32_sched_getscheduler, sys_sched_getscheduler)
-#define __NR_x32_sched_get_priority_max (__NR_x32_base + 146)
-__SYSCALL(__NR_x32_sched_get_priority_max, sys_sched_get_priority_max)
-#define __NR_x32_sched_get_priority_min (__NR_x32_base + 147)
-__SYSCALL(__NR_x32_sched_get_priority_min, sys_sched_get_priority_min)
-#define __NR_x32_sched_rr_get_interval (__NR_x32_base + 148)
-__SYSCALL(__NR_x32_sched_rr_get_interval, sys32_sched_rr_get_interval)
-
-#define __NR_x32_mlock (__NR_x32_base + 149)
-__SYSCALL(__NR_x32_mlock, sys_mlock)
-#define __NR_x32_munlock (__NR_x32_base + 150)
-__SYSCALL(__NR_x32_munlock, sys_munlock)
-#define __NR_x32_mlockall (__NR_x32_base + 151)
-__SYSCALL(__NR_x32_mlockall, sys_mlockall)
-#define __NR_x32_munlockall (__NR_x32_base + 152)
-__SYSCALL(__NR_x32_munlockall, sys_munlockall)
-
-#define __NR_x32_vhangup (__NR_x32_base + 153)
-__SYSCALL(__NR_x32_vhangup, sys_vhangup)
-
-#define __NR_x32_modify_ldt (__NR_x32_base + 154)
-__SYSCALL(__NR_x32_modify_ldt, sys_modify_ldt)
-
-#define __NR_x32_pivot_root (__NR_x32_base + 155)
-__SYSCALL(__NR_x32_pivot_root, sys_pivot_root)
-
-#define __NR_x32__sysctl (__NR_x32_base + 156)
-__SYSCALL(__NR_x32__sysctl, compat_sys_sysctl)
-
-#define __NR_x32_prctl (__NR_x32_base + 157)
-__SYSCALL(__NR_x32_prctl, sys_prctl)
-#define __NR_x32_arch_prctl (__NR_x32_base + 158)
-__SYSCALL(__NR_x32_arch_prctl, sys_arch_prctl)
-
-#define __NR_x32_adjtimex (__NR_x32_base + 159)
-__SYSCALL(__NR_x32_adjtimex, compat_sys_adjtimex)
-
-#define __NR_x32_setrlimit (__NR_x32_base + 160)
-__SYSCALL(__NR_x32_setrlimit, compat_sys_setrlimit)
-
-#define __NR_x32_chroot (__NR_x32_base + 161)
-__SYSCALL(__NR_x32_chroot, sys_chroot)
-
-#define __NR_x32_sync (__NR_x32_base + 162)
-__SYSCALL(__NR_x32_sync, sys_sync)
-
-#define __NR_x32_acct (__NR_x32_base + 163)
-__SYSCALL(__NR_x32_acct, sys_acct)
-
-#define __NR_x32_settimeofday (__NR_x32_base + 164)
-__SYSCALL(__NR_x32_settimeofday, compat_sys_settimeofday)
-
-#define __NR_x32_mount (__NR_x32_base + 165)
-__SYSCALL(__NR_x32_mount, sys_mount)
-#define __NR_x32_umount2 (__NR_x32_base + 166)
-__SYSCALL(__NR_x32_umount2, sys_umount)
-
-#define __NR_x32_swapon (__NR_x32_base + 167)
-__SYSCALL(__NR_x32_swapon, sys_swapon)
-#define __NR_x32_swapoff (__NR_x32_base + 168)
-__SYSCALL(__NR_x32_swapoff, sys_swapoff)
-
-#define __NR_x32_reboot (__NR_x32_base + 169)
-__SYSCALL(__NR_x32_reboot, sys_reboot)
-
-#define __NR_x32_sethostname (__NR_x32_base + 170)
-__SYSCALL(__NR_x32_sethostname, sys_sethostname)
-#define __NR_x32_setdomainname (__NR_x32_base + 171)
-__SYSCALL(__NR_x32_setdomainname, sys_setdomainname)
-
-#define __NR_x32_iopl (__NR_x32_base + 172)
-__SYSCALL(__NR_x32_iopl, stub_iopl)
-#define __NR_x32_ioperm (__NR_x32_base + 173)
-__SYSCALL(__NR_x32_ioperm, sys_ioperm)
-
-#define __NR_x32_create_module (__NR_x32_base + 174)
-__SYSCALL(__NR_x32_create_module, sys_ni_syscall)
-#define __NR_x32_init_module (__NR_x32_base + 175)
-__SYSCALL(__NR_x32_init_module, sys_init_module)
-#define __NR_x32_delete_module (__NR_x32_base + 176)
-__SYSCALL(__NR_x32_delete_module, sys_delete_module)
-#define __NR_x32_get_kernel_syms (__NR_x32_base + 177)
-__SYSCALL(__NR_x32_get_kernel_syms, sys_ni_syscall)
-#define __NR_x32_query_module (__NR_x32_base + 178)
-__SYSCALL(__NR_x32_query_module, sys_ni_syscall)
-
-#define __NR_x32_quotactl (__NR_x32_base + 179)
-__SYSCALL(__NR_x32_quotactl, sys32_quotactl)
-
-#define __NR_x32_nfsservctl (__NR_x32_base + 180)
-__SYSCALL(__NR_x32_nfsservctl, compat_sys_nfsservctl)
+#define __NR_uselib 134
+__SYSCALL(__NR_uselib, sys_ni_syscall)
+#define __NR_personality 135
+__SYSCALL(__NR_personality, sys_personality)
+
+#define __NR_64_ustat 136
+__SYSCALL(__NR_64_ustat, sys_ustat)
+#define __NR_64_statfs 137
+__SYSCALL(__NR_64_statfs, sys_statfs)
+#define __NR_64_fstatfs 138
+__SYSCALL(__NR_64_fstatfs, sys_fstatfs)
+#define __NR_sysfs 139
+__SYSCALL(__NR_sysfs, sys_sysfs)
+
+#define __NR_getpriority 140
+__SYSCALL(__NR_getpriority, sys_getpriority)
+#define __NR_setpriority 141
+__SYSCALL(__NR_setpriority, sys_setpriority)
+#define __NR_sched_setparam 142
+__SYSCALL(__NR_sched_setparam, sys_sched_setparam)
+#define __NR_sched_getparam 143
+__SYSCALL(__NR_sched_getparam, sys_sched_getparam)
+#define __NR_sched_setscheduler 144
+__SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler)
+#define __NR_sched_getscheduler 145
+__SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler)
+#define __NR_sched_get_priority_max 146
+__SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max)
+#define __NR_sched_get_priority_min 147
+__SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min)
+#define __NR_64_sched_rr_get_interval 148
+__SYSCALL(__NR_64_sched_rr_get_interval, sys_sched_rr_get_interval)
+
+#define __NR_mlock 149
+__SYSCALL(__NR_mlock, sys_mlock)
+#define __NR_munlock 150
+__SYSCALL(__NR_munlock, sys_munlock)
+#define __NR_mlockall 151
+__SYSCALL(__NR_mlockall, sys_mlockall)
+#define __NR_munlockall 152
+__SYSCALL(__NR_munlockall, sys_munlockall)
+
+#define __NR_vhangup 153
+__SYSCALL(__NR_vhangup, sys_vhangup)
+
+#define __NR_modify_ldt 154
+__SYSCALL(__NR_modify_ldt, sys_modify_ldt)
+
+#define __NR_pivot_root 155
+__SYSCALL(__NR_pivot_root, sys_pivot_root)
+
+#define __NR_64__sysctl 156
+__SYSCALL(__NR_64__sysctl, sys_sysctl)
+
+#define __NR_prctl 157
+__SYSCALL(__NR_prctl, sys_prctl)
+#define __NR_arch_prctl 158
+__SYSCALL(__NR_arch_prctl, sys_arch_prctl)
+
+#define __NR_64_adjtimex 159
+__SYSCALL(__NR_64_adjtimex, sys_adjtimex)
+
+#define __NR_64_setrlimit 160
+__SYSCALL(__NR_64_setrlimit, sys_setrlimit)
+
+#define __NR_chroot 161
+__SYSCALL(__NR_chroot, sys_chroot)
+
+#define __NR_sync 162
+__SYSCALL(__NR_sync, sys_sync)
+
+#define __NR_acct 163
+__SYSCALL(__NR_acct, sys_acct)
+
+#define __NR_64_settimeofday 164
+__SYSCALL(__NR_64_settimeofday, sys_settimeofday)
+
+#define __NR_mount 165
+__SYSCALL(__NR_mount, sys_mount)
+#define __NR_umount2 166
+__SYSCALL(__NR_umount2, sys_umount)
+
+#define __NR_swapon 167
+__SYSCALL(__NR_swapon, sys_swapon)
+#define __NR_swapoff 168
+__SYSCALL(__NR_swapoff, sys_swapoff)
+
+#define __NR_reboot 169
+__SYSCALL(__NR_reboot, sys_reboot)
+
+#define __NR_sethostname 170
+__SYSCALL(__NR_sethostname, sys_sethostname)
+#define __NR_setdomainname 171
+__SYSCALL(__NR_setdomainname, sys_setdomainname)
+
+#define __NR_iopl 172
+__SYSCALL(__NR_iopl, stub_iopl)
+#define __NR_ioperm 173
+__SYSCALL(__NR_ioperm, sys_ioperm)
+
+#define __NR_create_module 174
+__SYSCALL(__NR_create_module, sys_ni_syscall)
+#define __NR_init_module 175
+__SYSCALL(__NR_init_module, sys_init_module)
+#define __NR_delete_module 176
+__SYSCALL(__NR_delete_module, sys_delete_module)
+#define __NR_get_kernel_syms 177
+__SYSCALL(__NR_get_kernel_syms, sys_ni_syscall)
+#define __NR_query_module 178
+__SYSCALL(__NR_query_module, sys_ni_syscall)
+
+#define __NR_64_quotactl 179
+__SYSCALL(__NR_64_quotactl, sys_quotactl)
+
+#define __NR_64_nfsservctl 180
+__SYSCALL(__NR_64_nfsservctl, sys_nfsservctl)
/* reserved for LiS/STREAMS */
-#define __NR_x32_getpmsg (__NR_x32_base + 181)
-__SYSCALL(__NR_x32_getpmsg, sys_ni_syscall)
-#define __NR_x32_putpmsg (__NR_x32_base + 182)
-__SYSCALL(__NR_x32_putpmsg, sys_ni_syscall)
+#define __NR_getpmsg 181
+__SYSCALL(__NR_getpmsg, sys_ni_syscall)
+#define __NR_putpmsg 182
+__SYSCALL(__NR_putpmsg, sys_ni_syscall)
/* reserved for AFS */
-#define __NR_x32_afs_syscall (__NR_x32_base + 183)
-__SYSCALL(__NR_x32_afs_syscall, sys_ni_syscall)
+#define __NR_afs_syscall 183
+__SYSCALL(__NR_afs_syscall, sys_ni_syscall)
/* reserved for tux */
-#define __NR_x32_tuxcall (__NR_x32_base + 184)
-__SYSCALL(__NR_x32_tuxcall, sys_ni_syscall)
-
-#define __NR_x32_security (__NR_x32_base + 185)
-__SYSCALL(__NR_x32_security, sys_ni_syscall)
-
-#define __NR_x32_gettid (__NR_x32_base + 186)
-__SYSCALL(__NR_x32_gettid, sys_gettid)
-
-#define __NR_x32_readahead (__NR_x32_base + 187)
-__SYSCALL(__NR_x32_readahead, sys_readahead)
-#define __NR_x32_setxattr (__NR_x32_base + 188)
-__SYSCALL(__NR_x32_setxattr, sys_setxattr)
-#define __NR_x32_lsetxattr (__NR_x32_base + 189)
-__SYSCALL(__NR_x32_lsetxattr, sys_lsetxattr)
-#define __NR_x32_fsetxattr (__NR_x32_base + 190)
-__SYSCALL(__NR_x32_fsetxattr, sys_fsetxattr)
-#define __NR_x32_getxattr (__NR_x32_base + 191)
-__SYSCALL(__NR_x32_getxattr, sys_getxattr)
-#define __NR_x32_lgetxattr (__NR_x32_base + 192)
-__SYSCALL(__NR_x32_lgetxattr, sys_lgetxattr)
-#define __NR_x32_fgetxattr (__NR_x32_base + 193)
-__SYSCALL(__NR_x32_fgetxattr, sys_fgetxattr)
-#define __NR_x32_listxattr (__NR_x32_base + 194)
-__SYSCALL(__NR_x32_listxattr, sys_listxattr)
-#define __NR_x32_llistxattr (__NR_x32_base + 195)
-__SYSCALL(__NR_x32_llistxattr, sys_llistxattr)
-#define __NR_x32_flistxattr (__NR_x32_base + 196)
-__SYSCALL(__NR_x32_flistxattr, sys_flistxattr)
-#define __NR_x32_removexattr (__NR_x32_base + 197)
-__SYSCALL(__NR_x32_removexattr, sys_removexattr)
-#define __NR_x32_lremovexattr (__NR_x32_base + 198)
-__SYSCALL(__NR_x32_lremovexattr, sys_lremovexattr)
-#define __NR_x32_fremovexattr (__NR_x32_base + 199)
-__SYSCALL(__NR_x32_fremovexattr, sys_fremovexattr)
-#define __NR_x32_tkill (__NR_x32_base + 200)
-__SYSCALL(__NR_x32_tkill, sys_tkill)
-#define __NR_x32_time (__NR_x32_base + 201)
-__SYSCALL(__NR_x32_time, compat_sys_time)
-#define __NR_x32_futex (__NR_x32_base + 202)
-__SYSCALL(__NR_x32_futex, compat_sys_futex)
-#define __NR_x32_sched_setaffinity (__NR_x32_base + 203)
-__SYSCALL(__NR_x32_sched_setaffinity, compat_sys_sched_setaffinity)
-#define __NR_x32_sched_getaffinity (__NR_x32_base + 204)
-__SYSCALL(__NR_x32_sched_getaffinity, compat_sys_sched_getaffinity)
-#define __NR_x32_set_thread_area (__NR_x32_base + 205)
-__SYSCALL(__NR_x32_set_thread_area, sys_set_thread_area)
-#define __NR_x32_io_setup (__NR_x32_base + 206)
-__SYSCALL(__NR_x32_io_setup, compat_sys_io_setup)
-#define __NR_x32_io_destroy (__NR_x32_base + 207)
-__SYSCALL(__NR_x32_io_destroy, sys_io_destroy)
-#define __NR_x32_io_getevents (__NR_x32_base + 208)
-__SYSCALL(__NR_x32_io_getevents, compat_sys_io_getevents)
-#define __NR_x32_io_submit (__NR_x32_base + 209)
-__SYSCALL(__NR_x32_io_submit, compat_sys_io_submit)
-#define __NR_x32_io_cancel (__NR_x32_base + 210)
-__SYSCALL(__NR_x32_io_cancel, sys_io_cancel)
-#define __NR_x32_get_thread_area (__NR_x32_base + 211)
-__SYSCALL(__NR_x32_get_thread_area, sys_get_thread_area)
-#define __NR_x32_lookup_dcookie (__NR_x32_base + 212)
-__SYSCALL(__NR_x32_lookup_dcookie, sys_lookup_dcookie)
-#define __NR_x32_epoll_create (__NR_x32_base + 213)
-__SYSCALL(__NR_x32_epoll_create, sys_epoll_create)
-#define __NR_x32_epoll_ctl_old (__NR_x32_base + 214)
-__SYSCALL(__NR_x32_epoll_ctl_old, sys_ni_syscall)
-#define __NR_x32_epoll_wait_old (__NR_x32_base + 215)
-__SYSCALL(__NR_x32_epoll_wait_old, sys_ni_syscall)
-#define __NR_x32_remap_file_pages (__NR_x32_base + 216)
-__SYSCALL(__NR_x32_remap_file_pages, sys_remap_file_pages)
-#define __NR_x32_getdents64 (__NR_x32_base + 217)
-__SYSCALL(__NR_x32_getdents64, compat_sys_getdents64)
-#define __NR_x32_set_tid_address (__NR_x32_base + 218)
-__SYSCALL(__NR_x32_set_tid_address, sys_set_tid_address)
-#define __NR_x32_restart_syscall (__NR_x32_base + 219)
-__SYSCALL(__NR_x32_restart_syscall, sys_restart_syscall)
-#define __NR_x32_semtimedop (__NR_x32_base + 220)
-__SYSCALL(__NR_x32_semtimedop, compat_sys_semtimedop)
-#define __NR_x32_fadvise64 (__NR_x32_base + 221)
-__SYSCALL(__NR_x32_fadvise64, sys_fadvise64)
-#define __NR_x32_timer_create (__NR_x32_base + 222)
-__SYSCALL(__NR_x32_timer_create, compat_sys_timer_create)
-#define __NR_x32_timer_settime (__NR_x32_base + 223)
-__SYSCALL(__NR_x32_timer_settime, compat_sys_timer_settime)
-#define __NR_x32_timer_gettime (__NR_x32_base + 224)
-__SYSCALL(__NR_x32_timer_gettime, compat_sys_timer_gettime)
-#define __NR_x32_timer_getoverrun (__NR_x32_base + 225)
-__SYSCALL(__NR_x32_timer_getoverrun, sys_timer_getoverrun)
-#define __NR_x32_timer_delete (__NR_x32_base + 226)
-__SYSCALL(__NR_x32_timer_delete, sys_timer_delete)
-#define __NR_x32_clock_settime (__NR_x32_base + 227)
-__SYSCALL(__NR_x32_clock_settime, compat_sys_clock_settime)
-#define __NR_x32_clock_gettime (__NR_x32_base + 228)
-__SYSCALL(__NR_x32_clock_gettime, compat_sys_clock_gettime)
-#define __NR_x32_clock_getres (__NR_x32_base + 229)
-__SYSCALL(__NR_x32_clock_getres, compat_sys_clock_getres)
-#define __NR_x32_clock_nanosleep (__NR_x32_base + 230)
-__SYSCALL(__NR_x32_clock_nanosleep, compat_sys_clock_nanosleep)
-#define __NR_x32_exit_group (__NR_x32_base + 231)
-__SYSCALL(__NR_x32_exit_group, sys_exit_group)
-#define __NR_x32_epoll_wait (__NR_x32_base + 232)
-__SYSCALL(__NR_x32_epoll_wait, sys_epoll_wait)
-#define __NR_x32_epoll_ctl (__NR_x32_base + 233)
-__SYSCALL(__NR_x32_epoll_ctl, sys_epoll_ctl)
-#define __NR_x32_tgkill (__NR_x32_base + 234)
-__SYSCALL(__NR_x32_tgkill, sys_tgkill)
-#define __NR_x32_utimes (__NR_x32_base + 235)
-__SYSCALL(__NR_x32_utimes, compat_sys_utimes)
-#define __NR_x32_vserver (__NR_x32_base + 236)
-__SYSCALL(__NR_x32_vserver, sys_ni_syscall)
-#define __NR_x32_mbind (__NR_x32_base + 237)
-__SYSCALL(__NR_x32_mbind, sys_mbind)
-#define __NR_x32_set_mempolicy (__NR_x32_base + 238)
-__SYSCALL(__NR_x32_set_mempolicy, sys_set_mempolicy)
-#define __NR_x32_get_mempolicy (__NR_x32_base + 239)
-__SYSCALL(__NR_x32_get_mempolicy, sys_get_mempolicy)
-#define __NR_x32_mq_open (__NR_x32_base + 240)
-__SYSCALL(__NR_x32_mq_open, compat_sys_mq_open)
-#define __NR_x32_mq_unlink (__NR_x32_base + 241)
-__SYSCALL(__NR_x32_mq_unlink, sys_mq_unlink)
-#define __NR_x32_mq_timedsend (__NR_x32_base + 242)
-__SYSCALL(__NR_x32_mq_timedsend, compat_sys_mq_timedsend)
-#define __NR_x32_mq_timedreceive (__NR_x32_base + 243)
-__SYSCALL(__NR_x32_mq_timedreceive, compat_sys_mq_timedreceive)
-#define __NR_x32_mq_notify (__NR_x32_base + 244)
-__SYSCALL(__NR_x32_mq_notify, compat_sys_mq_notify)
-#define __NR_x32_mq_getsetattr (__NR_x32_base + 245)
-__SYSCALL(__NR_x32_mq_getsetattr, compat_sys_mq_getsetattr)
-#define __NR_x32_kexec_load (__NR_x32_base + 246)
-__SYSCALL(__NR_x32_kexec_load, compat_sys_kexec_load)
-#define __NR_x32_waitid (__NR_x32_base + 247)
-__SYSCALL(__NR_x32_waitid, compat_sys_waitid)
-#define __NR_x32_add_key (__NR_x32_base + 248)
-__SYSCALL(__NR_x32_add_key, sys_add_key)
-#define __NR_x32_request_key (__NR_x32_base + 249)
-__SYSCALL(__NR_x32_request_key, sys_request_key)
-#define __NR_x32_keyctl (__NR_x32_base + 250)
-__SYSCALL(__NR_x32_keyctl, sys_keyctl)
-#define __NR_x32_ioprio_set (__NR_x32_base + 251)
-__SYSCALL(__NR_x32_ioprio_set, sys_ioprio_set)
-#define __NR_x32_ioprio_get (__NR_x32_base + 252)
-__SYSCALL(__NR_x32_ioprio_get, sys_ioprio_get)
-#define __NR_x32_inotify_init (__NR_x32_base + 253)
-__SYSCALL(__NR_x32_inotify_init, sys_inotify_init)
-#define __NR_x32_inotify_add_watch (__NR_x32_base + 254)
-__SYSCALL(__NR_x32_inotify_add_watch, sys_inotify_add_watch)
-#define __NR_x32_inotify_rm_watch (__NR_x32_base + 255)
-__SYSCALL(__NR_x32_inotify_rm_watch, sys_inotify_rm_watch)
-#define __NR_x32_migrate_pages (__NR_x32_base + 256)
-__SYSCALL(__NR_x32_migrate_pages, sys_migrate_pages)
-#define __NR_x32_openat (__NR_x32_base + 257)
-__SYSCALL(__NR_x32_openat, compat_sys_openat)
-#define __NR_x32_mkdirat (__NR_x32_base + 258)
-__SYSCALL(__NR_x32_mkdirat, sys_mkdirat)
-#define __NR_x32_mknodat (__NR_x32_base + 259)
-__SYSCALL(__NR_x32_mknodat, sys_mknodat)
-#define __NR_x32_fchownat (__NR_x32_base + 260)
-__SYSCALL(__NR_x32_fchownat, sys_fchownat)
-#define __NR_x32_futimesat (__NR_x32_base + 261)
-__SYSCALL(__NR_x32_futimesat, compat_sys_futimesat)
-#define __NR_x32_fstatat64 (__NR_x32_base + 262)
-__SYSCALL(__NR_x32_fstatat64, sys32_fstatat)
-#define __NR_x32_unlinkat (__NR_x32_base + 263)
-__SYSCALL(__NR_x32_unlinkat, sys_unlinkat)
-#define __NR_x32_renameat (__NR_x32_base + 264)
-__SYSCALL(__NR_x32_renameat, sys_renameat)
-#define __NR_x32_linkat (__NR_x32_base + 265)
-__SYSCALL(__NR_x32_linkat, sys_linkat)
-#define __NR_x32_symlinkat (__NR_x32_base + 266)
-__SYSCALL(__NR_x32_symlinkat, sys_symlinkat)
-#define __NR_x32_readlinkat (__NR_x32_base + 267)
-__SYSCALL(__NR_x32_readlinkat, sys_readlinkat)
-#define __NR_x32_fchmodat (__NR_x32_base + 268)
-__SYSCALL(__NR_x32_fchmodat, sys_fchmodat)
-#define __NR_x32_faccessat (__NR_x32_base + 269)
-__SYSCALL(__NR_x32_faccessat, sys_faccessat)
-#define __NR_x32_pselect6 (__NR_x32_base + 270)
-__SYSCALL(__NR_x32_pselect6, compat_sys_pselect6)
-#define __NR_x32_ppoll (__NR_x32_base + 271)
-__SYSCALL(__NR_x32_ppoll, compat_sys_ppoll)
-#define __NR_x32_unshare (__NR_x32_base + 272)
-__SYSCALL(__NR_x32_unshare, sys_unshare)
-#define __NR_x32_set_robust_list (__NR_x32_base + 273)
-__SYSCALL(__NR_x32_set_robust_list, compat_sys_set_robust_list)
-#define __NR_x32_get_robust_list (__NR_x32_base + 274)
-__SYSCALL(__NR_x32_get_robust_list, compat_sys_get_robust_list)
-#define __NR_x32_splice (__NR_x32_base + 275)
-__SYSCALL(__NR_x32_splice, sys_splice)
-#define __NR_x32_tee (__NR_x32_base + 276)
-__SYSCALL(__NR_x32_tee, sys_tee)
-#define __NR_x32_sync_file_range (__NR_x32_base + 277)
-__SYSCALL(__NR_x32_sync_file_range, sys_sync_file_range)
-#define __NR_x32_vmsplice (__NR_x32_base + 278)
-__SYSCALL(__NR_x32_vmsplice, compat_sys_vmsplice)
-#define __NR_x32_move_pages (__NR_x32_base + 279)
-__SYSCALL(__NR_x32_move_pages, compat_sys_move_pages)
-#define __NR_x32_utimensat (__NR_x32_base + 280)
-__SYSCALL(__NR_x32_utimensat, compat_sys_utimensat)
+#define __NR_tuxcall 184
+__SYSCALL(__NR_tuxcall, sys_ni_syscall)
+
+#define __NR_security 185
+__SYSCALL(__NR_security, sys_ni_syscall)
+
+#define __NR_gettid 186
+__SYSCALL(__NR_gettid, sys_gettid)
+
+#define __NR_readahead 187
+__SYSCALL(__NR_readahead, sys_readahead)
+#define __NR_setxattr 188
+__SYSCALL(__NR_setxattr, sys_setxattr)
+#define __NR_lsetxattr 189
+__SYSCALL(__NR_lsetxattr, sys_lsetxattr)
+#define __NR_fsetxattr 190
+__SYSCALL(__NR_fsetxattr, sys_fsetxattr)
+#define __NR_getxattr 191
+__SYSCALL(__NR_getxattr, sys_getxattr)
+#define __NR_lgetxattr 192
+__SYSCALL(__NR_lgetxattr, sys_lgetxattr)
+#define __NR_fgetxattr 193
+__SYSCALL(__NR_fgetxattr, sys_fgetxattr)
+#define __NR_listxattr 194
+__SYSCALL(__NR_listxattr, sys_listxattr)
+#define __NR_llistxattr 195
+__SYSCALL(__NR_llistxattr, sys_llistxattr)
+#define __NR_flistxattr 196
+__SYSCALL(__NR_flistxattr, sys_flistxattr)
+#define __NR_removexattr 197
+__SYSCALL(__NR_removexattr, sys_removexattr)
+#define __NR_lremovexattr 198
+__SYSCALL(__NR_lremovexattr, sys_lremovexattr)
+#define __NR_fremovexattr 199
+__SYSCALL(__NR_fremovexattr, sys_fremovexattr)
+#define __NR_tkill 200
+__SYSCALL(__NR_tkill, sys_tkill)
+#define __NR_64_time 201
+__SYSCALL(__NR_64_time, sys_time)
+#define __NR_64_futex 202
+__SYSCALL(__NR_64_futex, sys_futex)
+#define __NR_64_sched_setaffinity 203
+__SYSCALL(__NR_64_sched_setaffinity, sys_sched_setaffinity)
+#define __NR_64_sched_getaffinity 204
+__SYSCALL(__NR_64_sched_getaffinity, sys_sched_getaffinity)
+#define __NR_set_thread_area 205
+__SYSCALL(__NR_set_thread_area, sys_ni_syscall) /* use arch_prctl */
+#define __NR_64_io_setup 206
+__SYSCALL(__NR_64_io_setup, sys_io_setup)
+#define __NR_io_destroy 207
+__SYSCALL(__NR_io_destroy, sys_io_destroy)
+#define __NR_64_io_getevents 208
+__SYSCALL(__NR_64_io_getevents, sys_io_getevents)
+#define __NR_64_io_submit 209
+__SYSCALL(__NR_64_io_submit, sys_io_submit)
+#define __NR_io_cancel 210
+__SYSCALL(__NR_io_cancel, sys_io_cancel)
+#define __NR_get_thread_area 211
+__SYSCALL(__NR_get_thread_area, sys_ni_syscall) /* use arch_prctl */
+#define __NR_lookup_dcookie 212
+__SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie)
+#define __NR_epoll_create 213
+__SYSCALL(__NR_epoll_create, sys_epoll_create)
+#define __NR_epoll_ctl_old 214
+__SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall)
+#define __NR_epoll_wait_old 215
+__SYSCALL(__NR_epoll_wait_old, sys_ni_syscall)
+#define __NR_remap_file_pages 216
+__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
+#define __NR_64_getdents64 217
+__SYSCALL(__NR_64_getdents64, sys_getdents64)
+#define __NR_set_tid_address 218
+__SYSCALL(__NR_set_tid_address, sys_set_tid_address)
+#define __NR_restart_syscall 219
+__SYSCALL(__NR_restart_syscall, sys_restart_syscall)
+#define __NR_64_semtimedop 220
+__SYSCALL(__NR_64_semtimedop, sys_semtimedop)
+#define __NR_fadvise64 221
+__SYSCALL(__NR_fadvise64, sys_fadvise64)
+#define __NR_64_timer_create 222
+__SYSCALL(__NR_64_timer_create, sys_timer_create)
+#define __NR_64_timer_settime 223
+__SYSCALL(__NR_64_timer_settime, sys_timer_settime)
+#define __NR_64_timer_gettime 224
+__SYSCALL(__NR_64_timer_gettime, sys_timer_gettime)
+#define __NR_timer_getoverrun 225
+__SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun)
+#define __NR_timer_delete 226
+__SYSCALL(__NR_timer_delete, sys_timer_delete)
+#define __NR_64_clock_settime 227
+__SYSCALL(__NR_64_clock_settime, sys_clock_settime)
+#define __NR_64_clock_gettime 228
+__SYSCALL(__NR_64_clock_gettime, sys_clock_gettime)
+#define __NR_64_clock_getres 229
+__SYSCALL(__NR_64_clock_getres, sys_clock_getres)
+#define __NR_64_clock_nanosleep 230
+__SYSCALL(__NR_64_clock_nanosleep, sys_clock_nanosleep)
+#define __NR_exit_group 231
+__SYSCALL(__NR_exit_group, sys_exit_group)
+#define __NR_epoll_wait 232
+__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
+#define __NR_epoll_ctl 233
+__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
+#define __NR_tgkill 234
+__SYSCALL(__NR_tgkill, sys_tgkill)
+#define __NR_64_utimes 235
+__SYSCALL(__NR_64_utimes, sys_utimes)
+#define __NR_vserver 236
+__SYSCALL(__NR_vserver, sys_ni_syscall)
+#define __NR_mbind 237
+__SYSCALL(__NR_mbind, sys_mbind)
+#define __NR_set_mempolicy 238
+__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy)
+#define __NR_get_mempolicy 239
+__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy)
+#define __NR_64_mq_open 240
+__SYSCALL(__NR_64_mq_open, sys_mq_open)
+#define __NR_mq_unlink 241
+__SYSCALL(__NR_mq_unlink, sys_mq_unlink)
+#define __NR_64_mq_timedsend 242
+__SYSCALL(__NR_64_mq_timedsend, sys_mq_timedsend)
+#define __NR_64_mq_timedreceive 243
+__SYSCALL(__NR_64_mq_timedreceive, sys_mq_timedreceive)
+#define __NR_64_mq_notify 244
+__SYSCALL(__NR_64_mq_notify, sys_mq_notify)
+#define __NR_64_mq_getsetattr 245
+__SYSCALL(__NR_64_mq_getsetattr, sys_mq_getsetattr)
+#define __NR_64_kexec_load 246
+__SYSCALL(__NR_64_kexec_load, sys_kexec_load)
+#define __NR_64_waitid 247
+__SYSCALL(__NR_64_waitid, sys_waitid)
+#define __NR_add_key 248
+__SYSCALL(__NR_add_key, sys_add_key)
+#define __NR_request_key 249
+__SYSCALL(__NR_request_key, sys_request_key)
+#define __NR_keyctl 250
+__SYSCALL(__NR_keyctl, sys_keyctl)
+#define __NR_ioprio_set 251
+__SYSCALL(__NR_ioprio_set, sys_ioprio_set)
+#define __NR_ioprio_get 252
+__SYSCALL(__NR_ioprio_get, sys_ioprio_get)
+#define __NR_inotify_init 253
+__SYSCALL(__NR_inotify_init, sys_inotify_init)
+#define __NR_inotify_add_watch 254
+__SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch)
+#define __NR_inotify_rm_watch 255
+__SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch)
+#define __NR_migrate_pages 256
+__SYSCALL(__NR_migrate_pages, sys_migrate_pages)
+#define __NR_64_openat 257
+__SYSCALL(__NR_64_openat, sys_openat)
+#define __NR_mkdirat 258
+__SYSCALL(__NR_mkdirat, sys_mkdirat)
+#define __NR_mknodat 259
+__SYSCALL(__NR_mknodat, sys_mknodat)
+#define __NR_fchownat 260
+__SYSCALL(__NR_fchownat, sys_fchownat)
+#define __NR_64_futimesat 261
+__SYSCALL(__NR_64_futimesat, sys_futimesat)
+#define __NR_64_newfstatat 262
+__SYSCALL(__NR_64_newfstatat, sys_newfstatat)
+#define __NR_unlinkat 263
+__SYSCALL(__NR_unlinkat, sys_unlinkat)
+#define __NR_renameat 264
+__SYSCALL(__NR_renameat, sys_renameat)
+#define __NR_linkat 265
+__SYSCALL(__NR_linkat, sys_linkat)
+#define __NR_symlinkat 266
+__SYSCALL(__NR_symlinkat, sys_symlinkat)
+#define __NR_readlinkat 267
+__SYSCALL(__NR_readlinkat, sys_readlinkat)
+#define __NR_fchmodat 268
+__SYSCALL(__NR_fchmodat, sys_fchmodat)
+#define __NR_faccessat 269
+__SYSCALL(__NR_faccessat, sys_faccessat)
+#define __NR_64_pselect6 270
+__SYSCALL(__NR_64_pselect6, sys_pselect6)
+#define __NR_64_ppoll 271
+__SYSCALL(__NR_64_ppoll, sys_ppoll)
+#define __NR_unshare 272
+__SYSCALL(__NR_unshare, sys_unshare)
+#define __NR_64_set_robust_list 273
+__SYSCALL(__NR_64_set_robust_list, sys_set_robust_list)
+#define __NR_64_get_robust_list 274
+__SYSCALL(__NR_64_get_robust_list, sys_get_robust_list)
+#define __NR_splice 275
+__SYSCALL(__NR_splice, sys_splice)
+#define __NR_tee 276
+__SYSCALL(__NR_tee, sys_tee)
+#define __NR_sync_file_range 277
+__SYSCALL(__NR_sync_file_range, sys_sync_file_range)
+#define __NR_64_vmsplice 278
+__SYSCALL(__NR_64_vmsplice, sys_vmsplice)
+#define __NR_64_move_pages 279
+__SYSCALL(__NR_64_move_pages, sys_move_pages)
+#define __NR_64_utimensat 280
+__SYSCALL(__NR_64_utimensat, sys_utimensat)
#define __IGNORE_getcpu /* implemented as a vsyscall */
-#define __NR_x32_epoll_pwait (__NR_x32_base + 281)
-__SYSCALL(__NR_x32_epoll_pwait, sys_epoll_pwait)
-#define __NR_x32_signalfd (__NR_x32_base + 282)
-__SYSCALL(__NR_x32_signalfd, compat_sys_signalfd)
-#define __NR_x32_timerfd_create (__NR_x32_base + 283)
-__SYSCALL(__NR_x32_timerfd_create, sys_timerfd_create)
-#define __NR_x32_eventfd (__NR_x32_base + 284)
-__SYSCALL(__NR_x32_eventfd, sys_eventfd)
-#define __NR_x32_fallocate (__NR_x32_base + 285)
-__SYSCALL(__NR_x32_fallocate, sys_fallocate)
-#define __NR_x32_timerfd_settime (__NR_x32_base + 286)
-__SYSCALL(__NR_x32_timerfd_settime, compat_sys_timerfd_settime)
-#define __NR_x32_timerfd_gettime (__NR_x32_base + 287)
-__SYSCALL(__NR_x32_timerfd_gettime, compat_sys_timerfd_gettime)
-#define __NR_x32_accept4 (__NR_x32_base + 288)
-__SYSCALL(__NR_x32_accept4, sys_accept4)
-#define __NR_x32_signalfd4 (__NR_x32_base + 289)
-__SYSCALL(__NR_x32_signalfd4, compat_sys_signalfd4)
-#define __NR_x32_eventfd2 (__NR_x32_base + 290)
-__SYSCALL(__NR_x32_eventfd2, sys_eventfd2)
-#define __NR_x32_epoll_create1 (__NR_x32_base + 291)
-__SYSCALL(__NR_x32_epoll_create1, sys_epoll_create1)
-#define __NR_x32_dup3 (__NR_x32_base + 292)
-__SYSCALL(__NR_x32_dup3, sys_dup3)
-#define __NR_x32_pipe2 (__NR_x32_base + 293)
-__SYSCALL(__NR_x32_pipe2, sys_pipe2)
-#define __NR_x32_inotify_init1 (__NR_x32_base + 294)
-__SYSCALL(__NR_x32_inotify_init1, sys_inotify_init1)
-#define __NR_x32_preadv (__NR_x32_base + 295)
-__SYSCALL(__NR_x32_preadv, sys_preadv)
-#define __NR_x32_pwritev (__NR_x32_base + 296)
-__SYSCALL(__NR_x32_pwritev, sys_pwritev)
-#define __NR_x32_rt_tgsigqueueinfo (__NR_x32_base + 297)
-__SYSCALL(__NR_x32_rt_tgsigqueueinfo, compat_sys_rt_tgsigqueueinfo)
-#define __NR_x32_perf_event_open (__NR_x32_base + 298)
-__SYSCALL(__NR_x32_perf_event_open, sys_perf_event_open)
-#define __NR_x32_recvmmsg (__NR_x32_base + 299)
-__SYSCALL(__NR_x32_recvmmsg, compat_sys_recvmmsg)
-#define __NR_x32_fanotify_init (__NR_x32_base + 300)
-__SYSCALL(__NR_x32_fanotify_init, sys_ni_syscall)
-#define __NR_x32_fanotify_mark (__NR_x32_base + 301)
-__SYSCALL(__NR_x32_fanotify_mark, sys_ni_syscall)
-#define __NR_x32_prlimit64 (__NR_x32_base + 302)
-__SYSCALL(__NR_x32_prlimit64, sys_ni_syscall)
-
-/* LFS support */
-#define __NR_x32_stat64 (__NR_x32_base + 303)
-__SYSCALL(__NR_x32_stat64, sys32_stat64)
-#define __NR_x32_fstat64 (__NR_x32_base + 304)
-__SYSCALL(__NR_x32_fstat64, sys32_fstat64)
-#define __NR_x32_lstat64 (__NR_x32_base + 305)
-__SYSCALL(__NR_x32_lstat64, sys32_lstat64)
-#define __NR_x32_statfs64 (__NR_x32_base + 306)
-__SYSCALL(__NR_x32_statfs64, compat_sys_statfs64)
-#define __NR_x32_fstatfs64 (__NR_x32_base + 307)
-__SYSCALL(__NR_x32_fstatfs64, compat_sys_fstatfs64)
-
-/* vDSO support */
-#define __NR_x32_getcpu (__NR_x32_base + 308)
-__SYSCALL(__NR_x32_getcpu, sys_getcpu)
+#define __NR_epoll_pwait 281
+__SYSCALL(__NR_epoll_pwait, sys_epoll_pwait)
+#define __NR_64_signalfd 282
+__SYSCALL(__NR_64_signalfd, sys_signalfd)
+#define __NR_timerfd_create 283
+__SYSCALL(__NR_timerfd_create, sys_timerfd_create)
+#define __NR_eventfd 284
+__SYSCALL(__NR_eventfd, sys_eventfd)
+#define __NR_fallocate 285
+__SYSCALL(__NR_fallocate, sys_fallocate)
+#define __NR_64_timerfd_settime 286
+__SYSCALL(__NR_64_timerfd_settime, sys_timerfd_settime)
+#define __NR_64_timerfd_gettime 287
+__SYSCALL(__NR_64_timerfd_gettime, sys_timerfd_gettime)
+#define __NR_accept4 288
+__SYSCALL(__NR_accept4, sys_accept4)
+#define __NR_64_signalfd4 289
+__SYSCALL(__NR_64_signalfd4, sys_signalfd4)
+#define __NR_eventfd2 290
+__SYSCALL(__NR_eventfd2, sys_eventfd2)
+#define __NR_epoll_create1 291
+__SYSCALL(__NR_epoll_create1, sys_epoll_create1)
+#define __NR_dup3 292
+__SYSCALL(__NR_dup3, sys_dup3)
+#define __NR_pipe2 293
+__SYSCALL(__NR_pipe2, sys_pipe2)
+#define __NR_inotify_init1 294
+__SYSCALL(__NR_inotify_init1, sys_inotify_init1)
+#define __NR_preadv 295
+__SYSCALL(__NR_preadv, sys_preadv)
+#define __NR_pwritev 296
+__SYSCALL(__NR_pwritev, sys_pwritev)
+#define __NR_64_rt_tgsigqueueinfo 297
+__SYSCALL(__NR_64_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo)
+#define __NR_perf_event_open 298
+__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
+#define __NR_64_recvmmsg 299
+__SYSCALL(__NR_64_recvmmsg, sys_recvmmsg)
+#define __NR_fanotify_init 300
+__SYSCALL(__NR_fanotify_init, sys_ni_syscall)
+#define __NR_fanotify_mark 301
+__SYSCALL(__NR_fanotify_mark, sys_ni_syscall)
+#define __NR_prlimit64 302
+__SYSCALL(__NR_prlimit64, sys_ni_syscall)
+#define __NR_name_to_handle_at 303
+__SYSCALL(__NR_name_to_handle_at, sys_ni_syscall)
+#define __NR_open_by_handle_at 304
+__SYSCALL(__NR_open_by_handle_at, sys_ni_syscall)
+#define __NR_clock_adjtime 305
+__SYSCALL(__NR_clock_adjtime, sys_ni_syscall)
+#define __NR_syncfs 306
+__SYSCALL(__NR_syncfs, sys_ni_syscall)
+#define __NR_sendmmsg 307
+__SYSCALL(__NR_sendmmsg, sys_ni_syscall)
+
+/* X32 support. */
+#define __NR_open 308
+__X32_SYSCALL(__NR_open, compat_sys_open)
+#define __NR_stat 309
+__X32_SYSCALL(__NR_stat, compat_sys_newstat)
+#define __NR_fstat 310
+__X32_SYSCALL(__NR_fstat, compat_sys_newfstat)
+#define __NR_lstat 311
+__X32_SYSCALL(__NR_lstat, compat_sys_newlstat)
+#define __NR_rt_sigaction 312
+__X32_SYSCALL(__NR_rt_sigaction, sys32_rt_sigaction)
+#define __NR_rt_sigprocmask 313
+__X32_SYSCALL(__NR_rt_sigprocmask, sys32_rt_sigprocmask)
+#define __NR_rt_sigreturn 314
+__X32_SYSCALL(__NR_rt_sigreturn, stub_x32_rt_sigreturn)
+#define __NR_ioctl 315
+__X32_SYSCALL(__NR_ioctl, compat_sys_ioctl)
+
+#define __NR_readv 316
+__X32_SYSCALL(__NR_readv, compat_sys_readv)
+#define __NR_writev 317
+__X32_SYSCALL(__NR_writev, compat_sys_writev)
+#define __NR_select 318
+__X32_SYSCALL(__NR_select, compat_sys_select)
+#define __NR_shmat 319
+__X32_SYSCALL(__NR_shmat, compat_sys_x32_shmat)
+#define __NR_shmctl 320
+__X32_SYSCALL(__NR_shmctl, compat_sys_shmctl)
+#define __NR_nanosleep 321
+__X32_SYSCALL(__NR_nanosleep, compat_sys_nanosleep)
+#define __NR_getitimer 322
+__X32_SYSCALL(__NR_getitimer, compat_sys_getitimer)
+#define __NR_setitimer 323
+__X32_SYSCALL(__NR_setitimer, compat_sys_setitimer)
+
+#define __NR_recvfrom 324
+__X32_SYSCALL(__NR_recvfrom, compat_sys_recvfrom)
+#define __NR_sendmsg 325
+__X32_SYSCALL(__NR_sendmsg, compat_sys_sendmsg)
+#define __NR_recvmsg 326
+__X32_SYSCALL(__NR_recvmsg, compat_sys_recvmsg)
+#define __NR_setsockopt 327
+__X32_SYSCALL(__NR_setsockopt, compat_sys_setsockopt)
+#define __NR_getsockopt 328
+__X32_SYSCALL(__NR_getsockopt, compat_sys_getsockopt)
+#define __NR_execve 329
+__X32_SYSCALL(__NR_execve, stub_x32_execve)
+#define __NR_wait4 330
+__X32_SYSCALL(__NR_wait4, compat_sys_wait4)
+#define __NR_semctl 331
+__X32_SYSCALL(__NR_semctl, compat_sys_x32_semctl)
+
+#define __NR_msgsnd 332
+__X32_SYSCALL(__NR_msgsnd, compat_sys_x32_msgsnd)
+#define __NR_msgrcv 333
+__X32_SYSCALL(__NR_msgrcv, compat_sys_x32_msgrcv)
+#define __NR_msgctl 334
+__X32_SYSCALL(__NR_msgctl, compat_sys_msgctl)
+#define __NR_fcntl 335
+__X32_SYSCALL(__NR_fcntl, compat_sys_fcntl64)
+#define __NR_getdents 336
+__X32_SYSCALL(__NR_getdents, compat_sys_getdents)
+#define __NR_gettimeofday 337
+__X32_SYSCALL(__NR_gettimeofday, compat_sys_gettimeofday)
+#define __NR_getrlimit 338
+__X32_SYSCALL(__NR_getrlimit, compat_sys_getrlimit)
+#define __NR_getrusage 339
+__X32_SYSCALL(__NR_getrusage, compat_sys_getrusage)
+
+#define __NR_sysinfo 340
+__X32_SYSCALL(__NR_sysinfo, compat_sys_sysinfo)
+#define __NR_times 341
+__X32_SYSCALL(__NR_times, compat_sys_times)
+#define __NR_rt_sigpending 342
+__X32_SYSCALL(__NR_rt_sigpending, sys32_rt_sigpending)
+#define __NR_rt_sigtimedwait 343
+__X32_SYSCALL(__NR_rt_sigtimedwait, compat_sys_rt_sigtimedwait)
+#define __NR_rt_sigqueueinfo 344
+__X32_SYSCALL(__NR_rt_sigqueueinfo, sys32_rt_sigqueueinfo)
+#define __NR_sigaltstack 345
+__X32_SYSCALL(__NR_sigaltstack, stub_x32_sigaltstack)
+#define __NR_utime 346
+__X32_SYSCALL(__NR_utime, compat_sys_utime)
+#define __NR_ustat 347
+__X32_SYSCALL(__NR_ustat, compat_sys_ustat)
+
+#define __NR_statfs 348
+__X32_SYSCALL(__NR_statfs, compat_sys_statfs)
+#define __NR_fstatfs 349
+__X32_SYSCALL(__NR_fstatfs, compat_sys_fstatfs)
+#define __NR_sched_rr_get_interval 350
+__X32_SYSCALL(__NR_sched_rr_get_interval, sys32_sched_rr_get_interval)
+#define __NR__sysctl 351
+__X32_SYSCALL(__NR__sysctl, compat_sys_sysctl)
+#define __NR_adjtimex 352
+__X32_SYSCALL(__NR_adjtimex, compat_sys_adjtimex)
+#define __NR_setrlimit 353
+__X32_SYSCALL(__NR_setrlimit, compat_sys_setrlimit)
+#define __NR_settimeofday 354
+__X32_SYSCALL(__NR_settimeofday, compat_sys_settimeofday)
+#define __NR_quotactl 355
+__X32_SYSCALL(__NR_quotactl, sys32_quotactl)
+
+#define __NR_nfsservctl 356
+__X32_SYSCALL(__NR_nfsservctl, compat_sys_nfsservctl)
+#define __NR_time 357
+__X32_SYSCALL(__NR_time, compat_sys_time)
+#define __NR_futex 358
+__X32_SYSCALL(__NR_futex, compat_sys_futex)
+#define __NR_sched_setaffinity 359
+__X32_SYSCALL(__NR_sched_setaffinity, compat_sys_sched_setaffinity)
+#define __NR_sched_getaffinity 360
+__X32_SYSCALL(__NR_sched_getaffinity, compat_sys_sched_getaffinity)
+#define __NR_io_setup 361
+__X32_SYSCALL(__NR_io_setup, compat_sys_io_setup)
+#define __NR_io_getevents 362
+__X32_SYSCALL(__NR_io_getevents, compat_sys_io_getevents)
+#define __NR_io_submit 363
+__X32_SYSCALL(__NR_io_submit, compat_sys_io_submit)
+
+#define __NR_getdents64 364
+__X32_SYSCALL(__NR_getdents64, compat_sys_getdents64)
+#define __NR_semtimedop 365
+__X32_SYSCALL(__NR_semtimedop, compat_sys_semtimedop)
+#define __NR_timer_create 366
+__X32_SYSCALL(__NR_timer_create, compat_sys_timer_create)
+#define __NR_timer_settime 367
+__X32_SYSCALL(__NR_timer_settime, compat_sys_timer_settime)
+#define __NR_timer_gettime 368
+__X32_SYSCALL(__NR_timer_gettime, compat_sys_timer_gettime)
+#define __NR_clock_settime 369
+__X32_SYSCALL(__NR_clock_settime, compat_sys_clock_settime)
+#define __NR_clock_gettime 370
+__X32_SYSCALL(__NR_clock_gettime, compat_sys_clock_gettime)
+#define __NR_clock_getres 371
+__X32_SYSCALL(__NR_clock_getres, compat_sys_clock_getres)
+
+#define __NR_clock_nanosleep 372
+__X32_SYSCALL(__NR_clock_nanosleep, compat_sys_clock_nanosleep)
+#define __NR_utimes 373
+__X32_SYSCALL(__NR_utimes, compat_sys_utimes)
+#define __NR_mq_open 374
+__X32_SYSCALL(__NR_mq_open, compat_sys_mq_open)
+#define __NR_mq_timedsend 375
+__X32_SYSCALL(__NR_mq_timedsend, compat_sys_mq_timedsend)
+#define __NR_mq_timedreceive 376
+__X32_SYSCALL(__NR_mq_timedreceive, compat_sys_mq_timedreceive)
+#define __NR_mq_notify 377
+__X32_SYSCALL(__NR_mq_notify, compat_sys_mq_notify)
+#define __NR_mq_getsetattr 378
+__X32_SYSCALL(__NR_mq_getsetattr, compat_sys_mq_getsetattr)
+#define __NR_kexec_load 379
+__X32_SYSCALL(__NR_kexec_load, compat_sys_kexec_load)
+
+#define __NR_waitid 380
+__X32_SYSCALL(__NR_waitid, compat_sys_waitid)
+#define __NR_openat 381
+__X32_SYSCALL(__NR_openat, compat_sys_openat)
+#define __NR_futimesat 382
+__X32_SYSCALL(__NR_futimesat, compat_sys_futimesat)
+#define __NR_fstatat64 383
+__X32_SYSCALL(__NR_fstatat64, sys32_fstatat)
+#define __NR_pselect6 384
+__X32_SYSCALL(__NR_pselect6, compat_sys_pselect6)
+#define __NR_ppoll 385
+__X32_SYSCALL(__NR_ppoll, compat_sys_ppoll)
+#define __NR_set_robust_list 386
+__X32_SYSCALL(__NR_set_robust_list, compat_sys_set_robust_list)
+#define __NR_get_robust_list 387
+__X32_SYSCALL(__NR_get_robust_list, compat_sys_get_robust_list)
+
+#define __NR_vmsplice 388
+__X32_SYSCALL(__NR_vmsplice, compat_sys_vmsplice)
+#define __NR_move_pages 389
+__X32_SYSCALL(__NR_move_pages, compat_sys_move_pages)
+#define __NR_utimensat 390
+__X32_SYSCALL(__NR_utimensat, compat_sys_utimensat)
+#define __NR_signalfd 391
+__X32_SYSCALL(__NR_signalfd, compat_sys_signalfd)
+#define __NR_timerfd_settime 392
+__X32_SYSCALL(__NR_timerfd_settime, compat_sys_timerfd_settime)
+#define __NR_timerfd_gettime 393
+__X32_SYSCALL(__NR_timerfd_gettime, compat_sys_timerfd_gettime)
+#define __NR_signalfd4 394
+__X32_SYSCALL(__NR_signalfd4, compat_sys_signalfd4)
+#define __NR_rt_tgsigqueueinfo 395
+__X32_SYSCALL(__NR_rt_tgsigqueueinfo, compat_sys_rt_tgsigqueueinfo)
+
+#define __NR_recvmmsg 396
+__X32_SYSCALL(__NR_recvmmsg, compat_sys_recvmmsg)
+#define __NR_stat64 397
+__X32_SYSCALL(__NR_stat64, sys32_stat64)
+#define __NR_fstat64 398
+__X32_SYSCALL(__NR_fstat64, sys32_fstat64)
+#define __NR_lstat64 399
+__X32_SYSCALL(__NR_lstat64, sys32_lstat64)
+#define __NR_statfs64 400
+__X32_SYSCALL(__NR_statfs64, compat_sys_statfs64)
+#define __NR_fstatfs64 401
+__X32_SYSCALL(__NR_fstatfs64, compat_sys_fstatfs64)
+/* Need it before vDSO is enabled. */
+#define __NR_getcpu 402
+__X32_SYSCALL(__NR_getcpu, sys_getcpu)
+
+#ifndef __NO_STUBS
+#define __ARCH_WANT_OLD_READDIR
+#define __ARCH_WANT_OLD_STAT
+#define __ARCH_WANT_SYS_ALARM
+#define __ARCH_WANT_SYS_GETHOSTNAME
+#define __ARCH_WANT_SYS_PAUSE
+#define __ARCH_WANT_SYS_SGETMASK
+#define __ARCH_WANT_SYS_SIGNAL
+#define __ARCH_WANT_SYS_UTIME
+#define __ARCH_WANT_SYS_WAITPID
+#define __ARCH_WANT_SYS_SOCKETCALL
+#define __ARCH_WANT_SYS_FADVISE64
+#define __ARCH_WANT_SYS_GETPGRP
+#define __ARCH_WANT_SYS_LLSEEK
+#define __ARCH_WANT_SYS_NICE
+#define __ARCH_WANT_SYS_OLD_GETRLIMIT
+#define __ARCH_WANT_SYS_OLD_UNAME
+#define __ARCH_WANT_SYS_OLDUMOUNT
+#define __ARCH_WANT_SYS_SIGPENDING
+#define __ARCH_WANT_SYS_SIGPROCMASK
+#define __ARCH_WANT_SYS_RT_SIGACTION
+#define __ARCH_WANT_SYS_RT_SIGSUSPEND
+#define __ARCH_WANT_SYS_TIME
+#define __ARCH_WANT_COMPAT_SYS_TIME
+#endif /* __NO_STUBS */
+
+#ifdef __KERNEL__
+
+#ifndef COMPILE_OFFSETS
+#include <asm/asm-offsets.h>
+#define NR_syscalls (__NR_syscall_max + 1)
+#endif
+
+/*
+ * "Conditional" syscalls
+ *
+ * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
+ * but it doesn't work on all toolchains, so we just do it by hand
+ */
+#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
+#endif /* __KERNEL__ */
#endif /* _ASM_X86_UNISTD_X32_H */
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
index 202320c..dfa5ab8 100644
--- a/arch/x86/kernel/asm-offsets_64.c
+++ b/arch/x86/kernel/asm-offsets_64.c
@@ -25,14 +25,12 @@
#define __NO_STUBS 1
#undef __SYSCALL
+#undef __X32_SYSCALL
#undef _ASM_X86_UNISTD_64_H
-#undef _ASM_X86_UNISTD_X32_H
#define __SYSCALL(nr, sym) [nr] = 1,
+#define __X32_SYSCALL(nr, sym) __SYSCALL(nr, sym)
static char syscalls[] = {
#include <asm/unistd_64.h>
-#ifdef CONFIG_X86_X32_ABI
-# include <asm/unistd_x32.h>
-#endif
};
int main(void)
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c
index 3356869..6083337 100644
--- a/arch/x86/kernel/syscall_64.c
+++ b/arch/x86/kernel/syscall_64.c
@@ -8,15 +8,21 @@
#define __NO_STUBS
#define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ;
+#ifdef CONFIG_X86_X32_ABI
+# define __X32_SYSCALL(nr, sym) __SYSCALL(nr, sym)
+#endif
#undef _ASM_X86_UNISTD_64_H
-#undef _ASM_X86_UNISTD_X32_H
#include <asm/unistd_64.h>
-#include <asm/unistd_x32.h>
#undef __SYSCALL
#define __SYSCALL(nr, sym) [nr] = sym,
+#undef __X32_SYSCALL
+#ifdef CONFIG_X86_X32_ABI
+# define __X32_SYSCALL(nr, sym) __SYSCALL(nr, sym)
+#else
+# define __X32_SYSCALL(nr, sym) __SYSCALL(nr, sys_ni_syscall)
+#endif
#undef _ASM_X86_UNISTD_64_H
-#undef _ASM_X86_UNISTD_X32_H
typedef void (*sys_call_ptr_t)(void);
@@ -29,7 +35,4 @@ const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = {
*/
[0 ... __NR_syscall_max] = &sys_ni_syscall,
#include <asm/unistd_64.h>
-#ifdef CONFIG_X86_X32_ABI
-# include <asm/unistd_x32.h>
-#endif
};
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
index 8ee65c8..c3f952a 100644
--- a/scripts/headers_install.pl
+++ b/scripts/headers_install.pl
@@ -39,7 +39,7 @@ foreach my $file (@files) {
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
$line =~ s/(^|\s|[(])(volatile)\b(\s|[(]|$)/$1__$2__$3/g;
- $line =~ s/__NR_x32_/__NR_/g;
+ $line =~ s/__NR_64_/__NR_/g;
printf {$out} "%s", $line;
}
close $out;
^ permalink raw reply related [flat|nested] 14+ messages in thread
* RE: X32 project status update
2011-05-21 18:55 ` H. Peter Anvin
2011-05-21 19:39 ` H.J. Lu
@ 2011-05-21 20:01 ` Anvin, H Peter
2011-05-21 23:48 ` H.J. Lu
1 sibling, 1 reply; 14+ messages in thread
From: Anvin, H Peter @ 2011-05-21 20:01 UTC (permalink / raw)
To: 'hjl.tools@gmail.com'
Cc: 'x32-abi@googlegroups.com', 'arnd@arndb.de',
'gcc@gcc.gnu.org', 'libc-alpha@sourceware.org',
'linux-kernel@vger.kernel.org'
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2790 bytes --]
I'll look at it but possibly not until the weekend.
-----Original Message-----
From: H.J. Lu [hjl.tools@gmail.com<mailto:hjl.tools@gmail.com>]
Sent: Saturday, May 21, 2011 12:39 PM Pacific Standard Time
To: Anvin, H Peter
Cc: x32-abi@googlegroups.com; Arnd Bergmann; GCC Development; GNU C Library; LKML
Subject: Re: X32 project status update
On Sat, May 21, 2011 at 11:55 AM, H. Peter Anvin
<h.peter.anvin@intel.com> wrote:
> On 05/21/2011 09:27 AM, H.J. Lu wrote:
>> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>>> This is the x32 project status update:
>>>>>
>>>>> https://sites.google.com/site/x32abi/
>>>>>
>>>>
>>>> I've had another look at the kernel patch. It basically
>>>> looks all good, but the system call table appears to
>>>> diverge from the x86_64 list for no (documented) reason,
>>>> in the calls above 302. Is that intentional?
>>>>
>>>> I can see why you might want to keep the numbers identical,
>>>> but if they are already different, why not use the generic
>>>> system call table from asm-generic/unistd.h for the new
>>>> ABI?
>>>
>>> We can sort it out when we start merging x32 kernel changes.
>>>
>>
>> Peter, is that possible to use the single syscall table for
>> both x86-64 and x32 system calls? Out of 300+ system
>> calls, only 84 are different for x86-64 and x32. That
>> is additional 8*84 == 672 bytes in syscall table.
>>
>
> Sort of... remember we talked about merging system calls at the tail
> end? The problem with that is that some system calls (like read()!)
> actually are different system calls in very subtle situations, due to
> abuse in some subsystems of the is_compat() construct. I think that may
> mean we have to have an unambiguous flag after all...
>
> Now, perhaps we can use a high bit for that and mask it before dispatch,
> then we don't need the additional table. A bit of a hack, but it should
> work.
How about this patch?
Merge x32 system calls with x86-64 system calls
Implemented with
1. Mark all x86-64 specific system calls with __NR_64_.
2. Mark all x32 specific system calls with __NR_x32_.
3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
build, which provides __NR_ versions of x86-64 specific system calls.
4. Append x32 specific system calls after the current x86-64 system
calls.
5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
_NR_.
6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
--
H.J.
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 20:01 ` Anvin, H Peter
@ 2011-05-21 23:48 ` H.J. Lu
2011-05-22 20:02 ` H.J. Lu
0 siblings, 1 reply; 14+ messages in thread
From: H.J. Lu @ 2011-05-21 23:48 UTC (permalink / raw)
To: Anvin, H Peter; +Cc: x32-abi, arnd, gcc, libc-alpha, linux-kernel
On Sat, May 21, 2011 at 1:01 PM, Anvin, H Peter <h.peter.anvin@intel.com> wrote:
> I'll look at it but possibly not until the weekend.
I checked it into hjl/x32/syscall branch at
http://git.kernel.org/?p=linux/kernel/git/hjl/linux-2.6.38.y.git;a=summary
H.J.
---
> -----Original Message-----
> From: H.J. Lu [hjl.tools@gmail.com]
> Sent: Saturday, May 21, 2011 12:39 PM Pacific Standard Time
> To: Anvin, H Peter
> Cc: x32-abi@googlegroups.com; Arnd Bergmann; GCC Development; GNU C Library;
> LKML
> Subject: Re: X32 project status update
>
> On Sat, May 21, 2011 at 11:55 AM, H. Peter Anvin
> <h.peter.anvin@intel.com> wrote:
>> On 05/21/2011 09:27 AM, H.J. Lu wrote:
>>> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>>>> This is the x32 project status update:
>>>>>>
>>>>>> https://sites.google.com/site/x32abi/
>>>>>>
>>>>>
>>>>> I've had another look at the kernel patch. It basically
>>>>> looks all good, but the system call table appears to
>>>>> diverge from the x86_64 list for no (documented) reason,
>>>>> in the calls above 302. Is that intentional?
>>>>>
>>>>> I can see why you might want to keep the numbers identical,
>>>>> but if they are already different, why not use the generic
>>>>> system call table from asm-generic/unistd.h for the new
>>>>> ABI?
>>>>
>>>> We can sort it out when we start merging x32 kernel changes.
>>>>
>>>
>>> Peter, is that possible to use the single syscall table for
>>> both x86-64 and x32 system calls? Out of 300+ system
>>> calls, only 84 are different for x86-64 and x32. That
>>> is additional 8*84 == 672 bytes in syscall table.
>>>
>>
>> Sort of... remember we talked about merging system calls at the tail
>> end? The problem with that is that some system calls (like read()!)
>> actually are different system calls in very subtle situations, due to
>> abuse in some subsystems of the is_compat() construct. I think that may
>> mean we have to have an unambiguous flag after all...
>>
>> Now, perhaps we can use a high bit for that and mask it before dispatch,
>> then we don't need the additional table. A bit of a hack, but it should
>> work.
>
> How about this patch?
>
> Merge x32 system calls with x86-64 system calls
>
> Implemented with
>
> 1. Mark all x86-64 specific system calls with __NR_64_.
> 2. Mark all x32 specific system calls with __NR_x32_.
> 3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
> build, which provides __NR_ versions of x86-64 specific system calls.
> 4. Append x32 specific system calls after the current x86-64 system
> calls.
> 5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
> _NR_.
> 6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
>
> --
> H.J.
>
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 23:48 ` H.J. Lu
@ 2011-05-22 20:02 ` H.J. Lu
2011-05-22 21:15 ` H.J. Lu
0 siblings, 1 reply; 14+ messages in thread
From: H.J. Lu @ 2011-05-22 20:02 UTC (permalink / raw)
To: Anvin, H Peter; +Cc: x32-abi, arnd, gcc, libc-alpha, linux-kernel
On Sat, May 21, 2011 at 4:48 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Sat, May 21, 2011 at 1:01 PM, Anvin, H Peter <h.peter.anvin@intel.com> wrote:
>> I'll look at it but possibly not until the weekend.
>
> I checked it into hjl/x32/syscall branch at
>
> http://git.kernel.org/?p=linux/kernel/git/hjl/linux-2.6.38.y.git;a=summary
>
We need to investigate if we need to have different x32 syscalls for
.quad sys32_fanotify_mark
.quad compat_sys_open_by_handle_at
.quad compat_sys_clock_adjtime
.quad compat_sys_sendmmsg /* 345 */
My guess is yes for the last 3 and unsure for fanotify_mark.
H.J.
> ---
>> -----Original Message-----
>> From: H.J. Lu [hjl.tools@gmail.com]
>> Sent: Saturday, May 21, 2011 12:39 PM Pacific Standard Time
>> To: Anvin, H Peter
>> Cc: x32-abi@googlegroups.com; Arnd Bergmann; GCC Development; GNU C Library;
>> LKML
>> Subject: Re: X32 project status update
>>
>> On Sat, May 21, 2011 at 11:55 AM, H. Peter Anvin
>> <h.peter.anvin@intel.com> wrote:
>>> On 05/21/2011 09:27 AM, H.J. Lu wrote:
>>>> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>>>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>>>>> This is the x32 project status update:
>>>>>>>
>>>>>>> https://sites.google.com/site/x32abi/
>>>>>>>
>>>>>>
>>>>>> I've had another look at the kernel patch. It basically
>>>>>> looks all good, but the system call table appears to
>>>>>> diverge from the x86_64 list for no (documented) reason,
>>>>>> in the calls above 302. Is that intentional?
>>>>>>
>>>>>> I can see why you might want to keep the numbers identical,
>>>>>> but if they are already different, why not use the generic
>>>>>> system call table from asm-generic/unistd.h for the new
>>>>>> ABI?
>>>>>
>>>>> We can sort it out when we start merging x32 kernel changes.
>>>>>
>>>>
>>>> Peter, is that possible to use the single syscall table for
>>>> both x86-64 and x32 system calls? Out of 300+ system
>>>> calls, only 84 are different for x86-64 and x32. That
>>>> is additional 8*84 == 672 bytes in syscall table.
>>>>
>>>
>>> Sort of... remember we talked about merging system calls at the tail
>>> end? The problem with that is that some system calls (like read()!)
>>> actually are different system calls in very subtle situations, due to
>>> abuse in some subsystems of the is_compat() construct. I think that may
>>> mean we have to have an unambiguous flag after all...
>>>
>>> Now, perhaps we can use a high bit for that and mask it before dispatch,
>>> then we don't need the additional table. A bit of a hack, but it should
>>> work.
>>
>> How about this patch?
>>
>> Merge x32 system calls with x86-64 system calls
>>
>> Implemented with
>>
>> 1. Mark all x86-64 specific system calls with __NR_64_.
>> 2. Mark all x32 specific system calls with __NR_x32_.
>> 3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
>> build, which provides __NR_ versions of x86-64 specific system calls.
>> 4. Append x32 specific system calls after the current x86-64 system
>> calls.
>> 5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
>> _NR_.
>> 6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
>>
>> --
>> H.J.
>>
>
>
>
> --
> H.J.
>
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-22 20:02 ` H.J. Lu
@ 2011-05-22 21:15 ` H.J. Lu
0 siblings, 0 replies; 14+ messages in thread
From: H.J. Lu @ 2011-05-22 21:15 UTC (permalink / raw)
To: Anvin, H Peter; +Cc: x32-abi, arnd, gcc, libc-alpha, linux-kernel
On Sun, May 22, 2011 at 1:02 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Sat, May 21, 2011 at 4:48 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Sat, May 21, 2011 at 1:01 PM, Anvin, H Peter <h.peter.anvin@intel.com> wrote:
>>> I'll look at it but possibly not until the weekend.
>>
>> I checked it into hjl/x32/syscall branch at
>>
>> http://git.kernel.org/?p=linux/kernel/git/hjl/linux-2.6.38.y.git;a=summary
>>
>
> We need to investigate if we need to have different x32 syscalls for
>
> .quad sys32_fanotify_mark
> .quad compat_sys_open_by_handle_at
> .quad compat_sys_clock_adjtime
> .quad compat_sys_sendmmsg /* 345 */
>
> My guess is yes for the last 3 and unsure for fanotify_mark.
There is no need for x32 fanotify_mark. I updated hjl/x32/syscall branch
for the other 3 system calls. Should we regroup x32 system calls?
I added
/* Need it before vDSO is enabled. */
#define __NR_x32_getcpu 402
since vDSO isn't enabled for x32. It should be removed/disabled after
x32 vDSO is supported.
H.J.
>> ---
>>> -----Original Message-----
>>> From: H.J. Lu [hjl.tools@gmail.com]
>>> Sent: Saturday, May 21, 2011 12:39 PM Pacific Standard Time
>>> To: Anvin, H Peter
>>> Cc: x32-abi@googlegroups.com; Arnd Bergmann; GCC Development; GNU C Library;
>>> LKML
>>> Subject: Re: X32 project status update
>>>
>>> On Sat, May 21, 2011 at 11:55 AM, H. Peter Anvin
>>> <h.peter.anvin@intel.com> wrote:
>>>> On 05/21/2011 09:27 AM, H.J. Lu wrote:
>>>>> On Sat, May 21, 2011 at 8:34 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>>>> On Sat, May 21, 2011 at 8:27 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>>>>>> On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
>>>>>>>> This is the x32 project status update:
>>>>>>>>
>>>>>>>> https://sites.google.com/site/x32abi/
>>>>>>>>
>>>>>>>
>>>>>>> I've had another look at the kernel patch. It basically
>>>>>>> looks all good, but the system call table appears to
>>>>>>> diverge from the x86_64 list for no (documented) reason,
>>>>>>> in the calls above 302. Is that intentional?
>>>>>>>
>>>>>>> I can see why you might want to keep the numbers identical,
>>>>>>> but if they are already different, why not use the generic
>>>>>>> system call table from asm-generic/unistd.h for the new
>>>>>>> ABI?
>>>>>>
>>>>>> We can sort it out when we start merging x32 kernel changes.
>>>>>>
>>>>>
>>>>> Peter, is that possible to use the single syscall table for
>>>>> both x86-64 and x32 system calls? Out of 300+ system
>>>>> calls, only 84 are different for x86-64 and x32. That
>>>>> is additional 8*84 == 672 bytes in syscall table.
>>>>>
>>>>
>>>> Sort of... remember we talked about merging system calls at the tail
>>>> end? The problem with that is that some system calls (like read()!)
>>>> actually are different system calls in very subtle situations, due to
>>>> abuse in some subsystems of the is_compat() construct. I think that may
>>>> mean we have to have an unambiguous flag after all...
>>>>
>>>> Now, perhaps we can use a high bit for that and mask it before dispatch,
>>>> then we don't need the additional table. A bit of a hack, but it should
>>>> work.
>>>
>>> How about this patch?
>>>
>>> Merge x32 system calls with x86-64 system calls
>>>
>>> Implemented with
>>>
>>> 1. Mark all x86-64 specific system calls with __NR_64_.
>>> 2. Mark all x32 specific system calls with __NR_x32_.
>>> 3. Include unistd_64_compat.h, instead of unistd_x32.h for kernel
>>> build, which provides __NR_ versions of x86-64 specific system calls.
>>> 4. Append x32 specific system calls after the current x86-64 system
>>> calls.
>>> 5. Generate unistd_x32.h from unistd_64.h, replacing __NR_x32_ with
>>> _NR_.
>>> 6. Install user-space unistd_64.h, replacing __NR_64_ with _NR_.
>>>
>>> --
>>> H.J.
>>>
>>
>>
>>
>> --
>> H.J.
>>
>
>
>
> --
> H.J.
>
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: X32 project status update
2011-05-21 15:27 ` Arnd Bergmann
2011-05-21 15:34 ` H.J. Lu
@ 2011-05-23 16:59 ` Anvin, H Peter
1 sibling, 0 replies; 14+ messages in thread
From: Anvin, H Peter @ 2011-05-23 16:59 UTC (permalink / raw)
To: Arnd Bergmann, H.J. Lu; +Cc: GCC Development, GNU C Library, LKML, x32-abi
The eventual goal is to merge it with the x86-64 syscall table, although we're still working out exactly where we can do it.
-hpa
-----Original Message-----
From: Arnd Bergmann [mailto:arnd@arndb.de]
Sent: Saturday, May 21, 2011 8:28
To: H.J. Lu
Cc: GCC Development; GNU C Library; LKML; x32-abi@googlegroups.com; Anvin, H Peter
Subject: Re: X32 project status update
On Saturday 21 May 2011 17:01:33 H.J. Lu wrote:
> This is the x32 project status update:
>
> https://sites.google.com/site/x32abi/
>
I've had another look at the kernel patch. It basically
looks all good, but the system call table appears to
diverge from the x86_64 list for no (documented) reason,
in the calls above 302. Is that intentional?
I can see why you might want to keep the numbers identical,
but if they are already different, why not use the generic
system call table from asm-generic/unistd.h for the new
ABI?
Arnd
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-05-21 15:01 X32 project status update H.J. Lu
2011-05-21 15:27 ` Arnd Bergmann
@ 2011-06-17 3:13 ` H.J. Lu
2011-07-29 21:29 ` H.J. Lu
2011-11-24 23:58 ` H.J. Lu
2 siblings, 1 reply; 14+ messages in thread
From: H.J. Lu @ 2011-06-17 3:13 UTC (permalink / raw)
To: GCC Development, GNU C Library, LKML, x32-abi
Hi,
This is the x32 project status update:
https://sites.google.com/site/x32abi/
With the latest x32 kernel, glibc, gcc and gdb, everything
works, including core dump and vDSO.
I'd like to see x32 kernel system call numbers be finalized
so that people don't have to recompile everything if the final
x32 kernel system call numbers are different from the current
one.
I started to prepare merging GCC x32 branch with trunk followed
by glibc and gdb patches. I have sent 7 middle-end patches so
far. I got feedbacks on 3 of them. I checked in one patch. I
provided one update and I am investigating the 3rd feedback.
I have more middle-end patches.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: X32 project status update
2011-06-17 3:13 ` H.J. Lu
@ 2011-07-29 21:29 ` H.J. Lu
0 siblings, 0 replies; 14+ messages in thread
From: H.J. Lu @ 2011-07-29 21:29 UTC (permalink / raw)
To: GCC Development, GNU C Library, LKML, x32-abi
Hi,
This is the x32 project status update:
https://sites.google.com/site/x32abi/
We have settled down on a preliminary system call number
scheme:
1. In kernel, x86-64 and x32 share the same system call slot if they
are the same.
2. First 512 system call slots are reserved for common and x86-64
specific ones. X32 specific system call slots start at 512.
3. All x32 system call numbers have the bit 30 set.
Gibc x32 binary rpms for Fedora 15/x86-64 are available from
the x32 website. People can try out x32 on Fedora 15.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
* X32 project status update
2011-05-21 15:01 X32 project status update H.J. Lu
2011-05-21 15:27 ` Arnd Bergmann
2011-06-17 3:13 ` H.J. Lu
@ 2011-11-24 23:58 ` H.J. Lu
2 siblings, 0 replies; 14+ messages in thread
From: H.J. Lu @ 2011-11-24 23:58 UTC (permalink / raw)
To: GCC Development, GNU C Library, LKML, x32-abi
Hi,
This is the x32 project status update:
https://sites.google.com/site/x32abi/
There are several changes:
1. We changed x32 kernel to use the 64bit filesystem interface (LFS) as well as
64bit time_t. We are targeting Linux kernel 3.3.
2. I backported x32 support to glibc 2.14, 2.13, 2.12 and 2.11. Since
glibc 2.11
is the first x32 release now, the x32 minimum ABI is changed from GLIBC_2.14
to GLIBC_2.11, which require recompiling all existing x32 binaries.
3. I am implementing address-size override:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50797
The result shows that it can improve SPEC CPU performance by another 5%
over the current x32 implementation. I am putting this on hjl/x32/addr32 branch
at
http://gcc.gnu.org/git/?p=gcc.git;a=summary
I also backported it to GCC 4.6 on hjl/x32/gcc-4_6-branch branch.
--
H.J.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2011-11-24 23:58 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-21 15:01 X32 project status update H.J. Lu
2011-05-21 15:27 ` Arnd Bergmann
2011-05-21 15:34 ` H.J. Lu
2011-05-21 16:27 ` H.J. Lu
2011-05-21 18:55 ` H. Peter Anvin
2011-05-21 19:39 ` H.J. Lu
2011-05-21 20:01 ` Anvin, H Peter
2011-05-21 23:48 ` H.J. Lu
2011-05-22 20:02 ` H.J. Lu
2011-05-22 21:15 ` H.J. Lu
2011-05-23 16:59 ` Anvin, H Peter
2011-06-17 3:13 ` H.J. Lu
2011-07-29 21:29 ` H.J. Lu
2011-11-24 23:58 ` H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).