linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).