unistd.h 1.7 KB
Newer Older
1 2 3
#ifndef _ASM_X86_UNISTD_H
#define _ASM_X86_UNISTD_H 1

4 5 6
/* x32 syscall flag bit */
#define __X32_SYSCALL_BIT	0x40000000

7
#ifdef __KERNEL__
8 9 10 11 12 13 14

# ifdef CONFIG_X86_X32_ABI
#  define __SYSCALL_MASK (~(__X32_SYSCALL_BIT))
# else
#  define __SYSCALL_MASK (~0)
# endif

A
Adrian Bunk 已提交
15
# ifdef CONFIG_X86_32
16 17 18

#  include <asm/unistd_32.h>
#  define __ARCH_WANT_STAT64
19
#  define __ARCH_WANT_SYS_IPC
20 21 22
#  define __ARCH_WANT_SYS_OLD_MMAP
#  define __ARCH_WANT_SYS_OLD_SELECT

A
Adrian Bunk 已提交
23
# else
24 25

#  include <asm/unistd_64.h>
26
#  include <asm/unistd_64_x32.h>
27 28
#  define __ARCH_WANT_COMPAT_SYS_TIME

A
Adrian Bunk 已提交
29
# endif
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

# define __ARCH_WANT_OLD_READDIR
# define __ARCH_WANT_OLD_STAT
# define __ARCH_WANT_SYS_ALARM
# define __ARCH_WANT_SYS_FADVISE64
# define __ARCH_WANT_SYS_GETHOSTNAME
# define __ARCH_WANT_SYS_GETPGRP
# define __ARCH_WANT_SYS_LLSEEK
# define __ARCH_WANT_SYS_NICE
# define __ARCH_WANT_SYS_OLDUMOUNT
# define __ARCH_WANT_SYS_OLD_GETRLIMIT
# define __ARCH_WANT_SYS_OLD_UNAME
# define __ARCH_WANT_SYS_PAUSE
# define __ARCH_WANT_SYS_RT_SIGACTION
# define __ARCH_WANT_SYS_RT_SIGSUSPEND
# define __ARCH_WANT_SYS_SGETMASK
# define __ARCH_WANT_SYS_SIGNAL
# define __ARCH_WANT_SYS_SIGPENDING
# define __ARCH_WANT_SYS_SIGPROCMASK
# define __ARCH_WANT_SYS_SOCKETCALL
# define __ARCH_WANT_SYS_TIME
# define __ARCH_WANT_SYS_UTIME
# define __ARCH_WANT_SYS_WAITPID

/*
 * "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")

A
Adrian Bunk 已提交
62 63
#else
# ifdef __i386__
64
#  include <asm/unistd_32.h>
65
# elif defined(__ILP32__)
66
#  include <asm/unistd_x32.h>
67 68
# else
#  include <asm/unistd_64.h>
69 70
# endif
#endif
71 72

#endif /* _ASM_X86_UNISTD_H */