H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 1 | #ifndef _ASM_X86_UNISTD_H |
| 2 | #define _ASM_X86_UNISTD_H 1 |
| 3 | |
H. Peter Anvin | 6cbb369 | 2012-02-14 14:38:31 -0800 | [diff] [blame] | 4 | /* x32 syscall flag bit */ |
| 5 | #define __X32_SYSCALL_BIT 0x40000000 |
| 6 | |
Thomas Gleixner | 96a388d | 2007-10-11 11:20:03 +0200 | [diff] [blame] | 7 | #ifdef __KERNEL__ |
H. Peter Anvin | fca460f | 2012-02-19 07:56:26 -0800 | [diff] [blame] | 8 | |
| 9 | # ifdef CONFIG_X86_X32_ABI |
| 10 | # define __SYSCALL_MASK (~(__X32_SYSCALL_BIT)) |
| 11 | # else |
| 12 | # define __SYSCALL_MASK (~0) |
| 13 | # endif |
| 14 | |
Adrian Bunk | b11caa7 | 2008-04-20 22:02:17 +0300 | [diff] [blame] | 15 | # ifdef CONFIG_X86_32 |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 16 | |
| 17 | # include <asm/unistd_32.h> |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 18 | # define __ARCH_WANT_STAT64 |
H. Peter Anvin | 4f2f81a | 2012-01-19 12:41:25 -0800 | [diff] [blame] | 19 | # define __ARCH_WANT_SYS_IPC |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 20 | # define __ARCH_WANT_SYS_OLD_MMAP |
| 21 | # define __ARCH_WANT_SYS_OLD_SELECT |
| 22 | |
Adrian Bunk | b11caa7 | 2008-04-20 22:02:17 +0300 | [diff] [blame] | 23 | # else |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 24 | |
| 25 | # include <asm/unistd_64.h> |
H. Peter Anvin | ea499fe | 2012-02-14 14:46:23 -0800 | [diff] [blame] | 26 | # include <asm/unistd_64_x32.h> |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 27 | # define __ARCH_WANT_COMPAT_SYS_TIME |
| 28 | |
Adrian Bunk | b11caa7 | 2008-04-20 22:02:17 +0300 | [diff] [blame] | 29 | # endif |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 30 | |
| 31 | # define __ARCH_WANT_OLD_READDIR |
| 32 | # define __ARCH_WANT_OLD_STAT |
| 33 | # define __ARCH_WANT_SYS_ALARM |
| 34 | # define __ARCH_WANT_SYS_FADVISE64 |
| 35 | # define __ARCH_WANT_SYS_GETHOSTNAME |
| 36 | # define __ARCH_WANT_SYS_GETPGRP |
| 37 | # define __ARCH_WANT_SYS_LLSEEK |
| 38 | # define __ARCH_WANT_SYS_NICE |
| 39 | # define __ARCH_WANT_SYS_OLDUMOUNT |
| 40 | # define __ARCH_WANT_SYS_OLD_GETRLIMIT |
| 41 | # define __ARCH_WANT_SYS_OLD_UNAME |
| 42 | # define __ARCH_WANT_SYS_PAUSE |
| 43 | # define __ARCH_WANT_SYS_RT_SIGACTION |
| 44 | # define __ARCH_WANT_SYS_RT_SIGSUSPEND |
| 45 | # define __ARCH_WANT_SYS_SGETMASK |
| 46 | # define __ARCH_WANT_SYS_SIGNAL |
| 47 | # define __ARCH_WANT_SYS_SIGPENDING |
| 48 | # define __ARCH_WANT_SYS_SIGPROCMASK |
| 49 | # define __ARCH_WANT_SYS_SOCKETCALL |
| 50 | # define __ARCH_WANT_SYS_TIME |
| 51 | # define __ARCH_WANT_SYS_UTIME |
| 52 | # define __ARCH_WANT_SYS_WAITPID |
| 53 | |
| 54 | /* |
| 55 | * "Conditional" syscalls |
| 56 | * |
| 57 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), |
| 58 | * but it doesn't work on all toolchains, so we just do it by hand |
| 59 | */ |
| 60 | # define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") |
| 61 | |
Adrian Bunk | b11caa7 | 2008-04-20 22:02:17 +0300 | [diff] [blame] | 62 | #else |
| 63 | # ifdef __i386__ |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 64 | # include <asm/unistd_32.h> |
H.J. Lu | 98e5272 | 2012-04-23 14:51:14 -0700 | [diff] [blame] | 65 | # elif defined(__ILP32__) |
H. Peter Anvin | 6cbb369 | 2012-02-14 14:38:31 -0800 | [diff] [blame] | 66 | # include <asm/unistd_x32.h> |
H.J. Lu | 98e5272 | 2012-04-23 14:51:14 -0700 | [diff] [blame] | 67 | # else |
| 68 | # include <asm/unistd_64.h> |
Thomas Gleixner | 96a388d | 2007-10-11 11:20:03 +0200 | [diff] [blame] | 69 | # endif |
| 70 | #endif |
H. Peter Anvin | 303395a | 2011-11-11 16:07:41 -0800 | [diff] [blame] | 71 | |
| 72 | #endif /* _ASM_X86_UNISTD_H */ |