2008-10-23 12:26:29 +07:00
|
|
|
#ifndef _ASM_X86_UNISTD_64_H
|
|
|
|
#define _ASM_X86_UNISTD_64_H
|
2005-04-17 05:20:36 +07:00
|
|
|
|
|
|
|
#ifndef __SYSCALL
|
2008-03-23 15:03:52 +07:00
|
|
|
#define __SYSCALL(a, b)
|
2005-04-17 05:20:36 +07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This file contains the system call numbers.
|
2007-10-17 23:04:39 +07:00
|
|
|
*
|
2005-04-17 05:20:36 +07:00
|
|
|
* Note: holes are not allowed.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* at least 8 syscall per cacheline */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_read 0
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_read, sys_read)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_write 1
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_write, sys_write)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_open 2
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_open, sys_open)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_close 3
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_close, sys_close)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_stat 4
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_stat, sys_newstat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fstat 5
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fstat, sys_newfstat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lstat 6
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lstat, sys_newlstat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_poll 7
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_poll, sys_poll)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lseek 8
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lseek, sys_lseek)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mmap 9
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mmap, sys_mmap)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mprotect 10
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mprotect, sys_mprotect)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_munmap 11
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_munmap, sys_munmap)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_brk 12
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_brk, sys_brk)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigaction 13
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigaction, sys_rt_sigaction)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigprocmask 14
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigreturn 15
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigreturn, stub_rt_sigreturn)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ioctl 16
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_ioctl, sys_ioctl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pread64 17
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_pread64, sys_pread64)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pwrite64 18
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_pwrite64, sys_pwrite64)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_readv 19
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_readv, sys_readv)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_writev 20
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_writev, sys_writev)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_access 21
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_access, sys_access)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pipe 22
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_pipe, sys_pipe)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_select 23
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_select, sys_select)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_yield 24
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_yield, sys_sched_yield)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mremap 25
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mremap, sys_mremap)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_msync 26
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_msync, sys_msync)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mincore 27
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mincore, sys_mincore)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_madvise 28
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_madvise, sys_madvise)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_shmget 29
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_shmget, sys_shmget)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_shmat 30
|
2005-05-01 22:59:12 +07:00
|
|
|
__SYSCALL(__NR_shmat, sys_shmat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_shmctl 31
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_shmctl, sys_shmctl)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_dup 32
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_dup, sys_dup)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_dup2 33
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_dup2, sys_dup2)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pause 34
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_pause, sys_pause)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_nanosleep 35
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_nanosleep, sys_nanosleep)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getitimer 36
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getitimer, sys_getitimer)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_alarm 37
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_alarm, sys_alarm)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setitimer 38
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setitimer, sys_setitimer)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getpid 39
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpid, sys_getpid)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sendfile 40
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sendfile, sys_sendfile64)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_socket 41
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_socket, sys_socket)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_connect 42
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_connect, sys_connect)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_accept 43
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_accept, sys_accept)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sendto 44
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sendto, sys_sendto)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_recvfrom 45
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_recvfrom, sys_recvfrom)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sendmsg 46
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sendmsg, sys_sendmsg)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_recvmsg 47
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_recvmsg, sys_recvmsg)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_shutdown 48
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_shutdown, sys_shutdown)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_bind 49
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_bind, sys_bind)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_listen 50
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_listen, sys_listen)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getsockname 51
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getsockname, sys_getsockname)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getpeername 52
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpeername, sys_getpeername)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_socketpair 53
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_socketpair, sys_socketpair)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setsockopt 54
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setsockopt, sys_setsockopt)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getsockopt 55
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getsockopt, sys_getsockopt)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_clone 56
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_clone, stub_clone)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fork 57
|
|
|
|
__SYSCALL(__NR_fork, stub_fork)
|
|
|
|
#define __NR_vfork 58
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_vfork, stub_vfork)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_execve 59
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_execve, stub_execve)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_exit 60
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_exit, sys_exit)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_wait4 61
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_wait4, sys_wait4)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_kill 62
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_kill, sys_kill)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_uname 63
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_uname, sys_uname)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_semget 64
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_semget, sys_semget)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_semop 65
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_semop, sys_semop)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_semctl 66
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_semctl, sys_semctl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_shmdt 67
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_shmdt, sys_shmdt)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_msgget 68
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_msgget, sys_msgget)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_msgsnd 69
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_msgsnd, sys_msgsnd)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_msgrcv 70
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_msgrcv, sys_msgrcv)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_msgctl 71
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_msgctl, sys_msgctl)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fcntl 72
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fcntl, sys_fcntl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_flock 73
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_flock, sys_flock)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fsync 74
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fsync, sys_fsync)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fdatasync 75
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fdatasync, sys_fdatasync)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_truncate 76
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_truncate, sys_truncate)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ftruncate 77
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_ftruncate, sys_ftruncate)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getdents 78
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getdents, sys_getdents)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getcwd 79
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getcwd, sys_getcwd)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_chdir 80
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_chdir, sys_chdir)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fchdir 81
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fchdir, sys_fchdir)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rename 82
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rename, sys_rename)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mkdir 83
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mkdir, sys_mkdir)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rmdir 84
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rmdir, sys_rmdir)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_creat 85
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_creat, sys_creat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_link 86
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_link, sys_link)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_unlink 87
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_unlink, sys_unlink)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_symlink 88
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_symlink, sys_symlink)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_readlink 89
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_readlink, sys_readlink)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_chmod 90
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_chmod, sys_chmod)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fchmod 91
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fchmod, sys_fchmod)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_chown 92
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_chown, sys_chown)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fchown 93
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fchown, sys_fchown)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lchown 94
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lchown, sys_lchown)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_umask 95
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_umask, sys_umask)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_gettimeofday 96
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_gettimeofday, sys_gettimeofday)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getrlimit 97
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getrlimit, sys_getrlimit)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getrusage 98
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getrusage, sys_getrusage)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sysinfo 99
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sysinfo, sys_sysinfo)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_times 100
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_times, sys_times)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ptrace 101
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_ptrace, sys_ptrace)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getuid 102
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getuid, sys_getuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_syslog 103
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_syslog, sys_syslog)
|
|
|
|
|
|
|
|
/* at the very end the stuff that never runs during the benchmarks */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getgid 104
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getgid, sys_getgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setuid 105
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setuid, sys_setuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setgid 106
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setgid, sys_setgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_geteuid 107
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_geteuid, sys_geteuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getegid 108
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getegid, sys_getegid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setpgid 109
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setpgid, sys_setpgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getppid 110
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getppid, sys_getppid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getpgrp 111
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpgrp, sys_getpgrp)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setsid 112
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setsid, sys_setsid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setreuid 113
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setreuid, sys_setreuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setregid 114
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setregid, sys_setregid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getgroups 115
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getgroups, sys_getgroups)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setgroups 116
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setgroups, sys_setgroups)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setresuid 117
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setresuid, sys_setresuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getresuid 118
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getresuid, sys_getresuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setresgid 119
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setresgid, sys_setresgid)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getresgid 120
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getresgid, sys_getresgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getpgid 121
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpgid, sys_getpgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setfsuid 122
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setfsuid, sys_setfsuid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setfsgid 123
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setfsgid, sys_setfsgid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getsid 124
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getsid, sys_getsid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_capget 125
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_capget, sys_capget)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_capset 126
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_capset, sys_capset)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigpending 127
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigpending, sys_rt_sigpending)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigtimedwait 128
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigtimedwait, sys_rt_sigtimedwait)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigqueueinfo 129
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_rt_sigsuspend 130
|
2008-06-18 18:42:11 +07:00
|
|
|
__SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sigaltstack 131
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sigaltstack, stub_sigaltstack)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_utime 132
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_utime, sys_utime)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mknod 133
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mknod, sys_mknod)
|
|
|
|
|
|
|
|
/* Only needed for a.out */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_uselib 134
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_uselib, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_personality 135
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_personality, sys_personality)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ustat 136
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_ustat, sys_ustat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_statfs 137
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_statfs, sys_statfs)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fstatfs 138
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fstatfs, sys_fstatfs)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sysfs 139
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sysfs, sys_sysfs)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getpriority 140
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpriority, sys_getpriority)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setpriority 141
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setpriority, sys_setpriority)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_setparam 142
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_setparam, sys_sched_setparam)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_getparam 143
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_getparam, sys_sched_getparam)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_setscheduler 144
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_getscheduler 145
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_get_priority_max 146
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_get_priority_min 147
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_rr_get_interval 148
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_rr_get_interval, sys_sched_rr_get_interval)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mlock 149
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mlock, sys_mlock)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_munlock 150
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_munlock, sys_munlock)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mlockall 151
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mlockall, sys_mlockall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_munlockall 152
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_munlockall, sys_munlockall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_vhangup 153
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_vhangup, sys_vhangup)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_modify_ldt 154
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_modify_ldt, sys_modify_ldt)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pivot_root 155
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_pivot_root, sys_pivot_root)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR__sysctl 156
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR__sysctl, sys_sysctl)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_prctl 157
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_prctl, sys_prctl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_arch_prctl 158
|
|
|
|
__SYSCALL(__NR_arch_prctl, sys_arch_prctl)
|
2005-04-17 05:20:36 +07:00
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_adjtimex 159
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_adjtimex, sys_adjtimex)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setrlimit 160
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setrlimit, sys_setrlimit)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_chroot 161
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_chroot, sys_chroot)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sync 162
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sync, sys_sync)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_acct 163
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_acct, sys_acct)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_settimeofday 164
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_settimeofday, sys_settimeofday)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mount 165
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mount, sys_mount)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_umount2 166
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_umount2, sys_umount)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_swapon 167
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_swapon, sys_swapon)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_swapoff 168
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_swapoff, sys_swapoff)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_reboot 169
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_reboot, sys_reboot)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sethostname 170
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sethostname, sys_sethostname)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setdomainname 171
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setdomainname, sys_setdomainname)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_iopl 172
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_iopl, stub_iopl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ioperm 173
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_ioperm, sys_ioperm)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_create_module 174
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_create_module, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_init_module 175
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_init_module, sys_init_module)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_delete_module 176
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_delete_module, sys_delete_module)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_get_kernel_syms 177
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_get_kernel_syms, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_query_module 178
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_query_module, sys_ni_syscall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_quotactl 179
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_quotactl, sys_quotactl)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_nfsservctl 180
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_nfsservctl, sys_nfsservctl)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
/* reserved for LiS/STREAMS */
|
|
|
|
#define __NR_getpmsg 181
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getpmsg, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_putpmsg 182
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_putpmsg, sys_ni_syscall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
/* reserved for AFS */
|
|
|
|
#define __NR_afs_syscall 183
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_afs_syscall, sys_ni_syscall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
/* reserved for tux */
|
|
|
|
#define __NR_tuxcall 184
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_tuxcall, sys_ni_syscall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_security 185
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_security, sys_ni_syscall)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_gettid 186
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_gettid, sys_gettid)
|
|
|
|
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_readahead 187
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_readahead, sys_readahead)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_setxattr 188
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_setxattr, sys_setxattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lsetxattr 189
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lsetxattr, sys_lsetxattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fsetxattr 190
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fsetxattr, sys_fsetxattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getxattr 191
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getxattr, sys_getxattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lgetxattr 192
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lgetxattr, sys_lgetxattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#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_time 201
|
2005-11-05 23:25:54 +07:00
|
|
|
__SYSCALL(__NR_time, sys_time)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_futex 202
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_futex, sys_futex)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_setaffinity 203
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_setaffinity, sys_sched_setaffinity)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sched_getaffinity 204
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_sched_getaffinity, sys_sched_getaffinity)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_set_thread_area 205
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_set_thread_area, sys_ni_syscall) /* use arch_prctl */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_io_setup 206
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_io_setup, sys_io_setup)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_io_destroy 207
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_io_destroy, sys_io_destroy)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_io_getevents 208
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_io_getevents, sys_io_getevents)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_io_submit 209
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_io_submit, sys_io_submit)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_io_cancel 210
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_io_cancel, sys_io_cancel)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_get_thread_area 211
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_get_thread_area, sys_ni_syscall) /* use arch_prctl */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_lookup_dcookie 212
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_create 213
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_epoll_create, sys_epoll_create)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_ctl_old 214
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_wait_old 215
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_epoll_wait_old, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_remap_file_pages 216
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_getdents64 217
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_getdents64, sys_getdents64)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_set_tid_address 218
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_set_tid_address, sys_set_tid_address)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_restart_syscall 219
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_restart_syscall, sys_restart_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_semtimedop 220
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_semtimedop, sys_semtimedop)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fadvise64 221
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_fadvise64, sys_fadvise64)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_timer_create 222
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_timer_create, sys_timer_create)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_timer_settime 223
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_timer_settime, sys_timer_settime)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_timer_gettime 224
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_timer_gettime, sys_timer_gettime)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_timer_getoverrun 225
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_timer_delete 226
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_timer_delete, sys_timer_delete)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_clock_settime 227
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_clock_settime, sys_clock_settime)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_clock_gettime 228
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_clock_gettime, sys_clock_gettime)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_clock_getres 229
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_clock_getres, sys_clock_getres)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_clock_nanosleep 230
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_exit_group 231
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_exit_group, sys_exit_group)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_wait 232
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_ctl 233
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_tgkill 234
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_tgkill, sys_tgkill)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_utimes 235
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_utimes, sys_utimes)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_vserver 236
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_vserver, sys_ni_syscall)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mbind 237
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mbind, sys_mbind)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_set_mempolicy 238
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_get_mempolicy 239
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_open 240
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_open, sys_mq_open)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_unlink 241
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_unlink, sys_mq_unlink)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_timedsend 242
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_timedsend, sys_mq_timedsend)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_timedreceive 243
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_timedreceive, sys_mq_timedreceive)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_notify 244
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_notify, sys_mq_notify)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mq_getsetattr 245
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_kexec_load 246
|
2005-06-26 04:58:02 +07:00
|
|
|
__SYSCALL(__NR_kexec_load, sys_kexec_load)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_waitid 247
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_waitid, sys_waitid)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_add_key 248
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_add_key, sys_add_key)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_request_key 249
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_request_key, sys_request_key)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_keyctl 250
|
2005-04-17 05:20:36 +07:00
|
|
|
__SYSCALL(__NR_keyctl, sys_keyctl)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ioprio_set 251
|
2005-06-27 15:55:12 +07:00
|
|
|
__SYSCALL(__NR_ioprio_set, sys_ioprio_set)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ioprio_get 252
|
2005-06-27 15:55:12 +07:00
|
|
|
__SYSCALL(__NR_ioprio_get, sys_ioprio_get)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_inotify_init 253
|
2005-07-26 02:19:29 +07:00
|
|
|
__SYSCALL(__NR_inotify_init, sys_inotify_init)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_inotify_add_watch 254
|
2005-07-26 02:19:29 +07:00
|
|
|
__SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_inotify_rm_watch 255
|
2005-07-26 02:19:29 +07:00
|
|
|
__SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_migrate_pages 256
|
2006-01-08 16:00:51 +07:00
|
|
|
__SYSCALL(__NR_migrate_pages, sys_migrate_pages)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_openat 257
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_openat, sys_openat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mkdirat 258
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_mkdirat, sys_mkdirat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_mknodat 259
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_mknodat, sys_mknodat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fchownat 260
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_fchownat, sys_fchownat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_futimesat 261
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_futimesat, sys_futimesat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_newfstatat 262
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_newfstatat, sys_newfstatat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_unlinkat 263
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_unlinkat, sys_unlinkat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_renameat 264
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_renameat, sys_renameat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_linkat 265
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_linkat, sys_linkat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_symlinkat 266
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_symlinkat, sys_symlinkat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_readlinkat 267
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_readlinkat, sys_readlinkat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fchmodat 268
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_fchmodat, sys_fchmodat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_faccessat 269
|
2006-01-19 08:43:56 +07:00
|
|
|
__SYSCALL(__NR_faccessat, sys_faccessat)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_pselect6 270
|
2006-09-26 15:52:27 +07:00
|
|
|
__SYSCALL(__NR_pselect6, sys_pselect6)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_ppoll 271
|
2006-09-26 15:52:27 +07:00
|
|
|
__SYSCALL(__NR_ppoll, sys_ppoll)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_unshare 272
|
2006-02-09 06:35:50 +07:00
|
|
|
__SYSCALL(__NR_unshare, sys_unshare)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_set_robust_list 273
|
2006-03-27 16:16:26 +07:00
|
|
|
__SYSCALL(__NR_set_robust_list, sys_set_robust_list)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_get_robust_list 274
|
2006-03-27 16:16:26 +07:00
|
|
|
__SYSCALL(__NR_get_robust_list, sys_get_robust_list)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_splice 275
|
2006-03-30 20:15:30 +07:00
|
|
|
__SYSCALL(__NR_splice, sys_splice)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_tee 276
|
2006-04-11 20:51:17 +07:00
|
|
|
__SYSCALL(__NR_tee, sys_tee)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_sync_file_range 277
|
2006-04-18 17:35:19 +07:00
|
|
|
__SYSCALL(__NR_sync_file_range, sys_sync_file_range)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_vmsplice 278
|
2006-04-26 15:59:21 +07:00
|
|
|
__SYSCALL(__NR_vmsplice, sys_vmsplice)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_move_pages 279
|
2006-06-23 16:03:56 +07:00
|
|
|
__SYSCALL(__NR_move_pages, sys_move_pages)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_utimensat 280
|
utimensat implementation
Implement utimensat(2) which is an extension to futimesat(2) in that it
a) supports nano-second resolution for the timestamps
b) allows to selectively ignore the atime/mtime value
c) allows to selectively use the current time for either atime or mtime
d) supports changing the atime/mtime of a symlink itself along the lines
of the BSD lutimes(3) functions
For this change the internally used do_utimes() functions was changed to
accept a timespec time value and an additional flags parameter.
Additionally the sys_utime function was changed to match compat_sys_utime
which already use do_utimes instead of duplicating the work.
Also, the completely missing futimensat() functionality is added. We have
such a function in glibc but we have to resort to using /proc/self/fd/* which
not everybody likes (chroot etc).
Test application (the syscall number will need per-arch editing):
#include <errno.h>
#include <fcntl.h>
#include <time.h>
#include <sys/time.h>
#include <stddef.h>
#include <syscall.h>
#define __NR_utimensat 280
#define UTIME_NOW ((1l << 30) - 1l)
#define UTIME_OMIT ((1l << 30) - 2l)
int
main(void)
{
int status = 0;
int fd = open("ttt", O_RDWR|O_CREAT|O_EXCL, 0666);
if (fd == -1)
error (1, errno, "failed to create test file \"ttt\"");
struct stat64 st1;
if (fstat64 (fd, &st1) != 0)
error (1, errno, "fstat failed");
struct timespec t[2];
t[0].tv_sec = 0;
t[0].tv_nsec = 0;
t[1].tv_sec = 0;
t[1].tv_nsec = 0;
if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
error (1, errno, "utimensat failed");
struct stat64 st2;
if (fstat64 (fd, &st2) != 0)
error (1, errno, "fstat failed");
if (st2.st_atim.tv_sec != 0 || st2.st_atim.tv_nsec != 0)
{
puts ("atim not reset to zero");
status = 1;
}
if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
{
puts ("mtim not reset to zero");
status = 1;
}
if (status != 0)
goto out;
t[0] = st1.st_atim;
t[1].tv_sec = 0;
t[1].tv_nsec = UTIME_OMIT;
if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
error (1, errno, "utimensat failed");
if (fstat64 (fd, &st2) != 0)
error (1, errno, "fstat failed");
if (st2.st_atim.tv_sec != st1.st_atim.tv_sec
|| st2.st_atim.tv_nsec != st1.st_atim.tv_nsec)
{
puts ("atim not set");
status = 1;
}
if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
{
puts ("mtim changed from zero");
status = 1;
}
if (status != 0)
goto out;
t[0].tv_sec = 0;
t[0].tv_nsec = UTIME_OMIT;
t[1] = st1.st_mtim;
if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
error (1, errno, "utimensat failed");
if (fstat64 (fd, &st2) != 0)
error (1, errno, "fstat failed");
if (st2.st_atim.tv_sec != st1.st_atim.tv_sec
|| st2.st_atim.tv_nsec != st1.st_atim.tv_nsec)
{
puts ("mtim changed from original time");
status = 1;
}
if (st2.st_mtim.tv_sec != st1.st_mtim.tv_sec
|| st2.st_mtim.tv_nsec != st1.st_mtim.tv_nsec)
{
puts ("mtim not set");
status = 1;
}
if (status != 0)
goto out;
sleep (2);
t[0].tv_sec = 0;
t[0].tv_nsec = UTIME_NOW;
t[1].tv_sec = 0;
t[1].tv_nsec = UTIME_NOW;
if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
error (1, errno, "utimensat failed");
if (fstat64 (fd, &st2) != 0)
error (1, errno, "fstat failed");
struct timeval tv;
gettimeofday(&tv,NULL);
if (st2.st_atim.tv_sec <= st1.st_atim.tv_sec
|| st2.st_atim.tv_sec > tv.tv_sec)
{
puts ("atim not set to NOW");
status = 1;
}
if (st2.st_mtim.tv_sec <= st1.st_mtim.tv_sec
|| st2.st_mtim.tv_sec > tv.tv_sec)
{
puts ("mtim not set to NOW");
status = 1;
}
if (symlink ("ttt", "tttsym") != 0)
error (1, errno, "cannot create symlink");
t[0].tv_sec = 0;
t[0].tv_nsec = 0;
t[1].tv_sec = 0;
t[1].tv_nsec = 0;
if (syscall(__NR_utimensat, AT_FDCWD, "tttsym", t, AT_SYMLINK_NOFOLLOW) != 0)
error (1, errno, "utimensat failed");
if (lstat64 ("tttsym", &st2) != 0)
error (1, errno, "lstat failed");
if (st2.st_atim.tv_sec != 0 || st2.st_atim.tv_nsec != 0)
{
puts ("symlink atim not reset to zero");
status = 1;
}
if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
{
puts ("symlink mtim not reset to zero");
status = 1;
}
if (status != 0)
goto out;
t[0].tv_sec = 1;
t[0].tv_nsec = 0;
t[1].tv_sec = 1;
t[1].tv_nsec = 0;
if (syscall(__NR_utimensat, fd, NULL, t, 0) != 0)
error (1, errno, "utimensat failed");
if (fstat64 (fd, &st2) != 0)
error (1, errno, "fstat failed");
if (st2.st_atim.tv_sec != 1 || st2.st_atim.tv_nsec != 0)
{
puts ("atim not reset to one");
status = 1;
}
if (st2.st_mtim.tv_sec != 1 || st2.st_mtim.tv_nsec != 0)
{
puts ("mtim not reset to one");
status = 1;
}
if (status == 0)
puts ("all OK");
out:
close (fd);
unlink ("ttt");
unlink ("tttsym");
return status;
}
[akpm@linux-foundation.org: add missing i386 syscall table entry]
Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Cc: Alexey Dobriyan <adobriyan@openvz.org>
Cc: Michael Kerrisk <mtk-manpages@gmx.net>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 14:33:25 +07:00
|
|
|
__SYSCALL(__NR_utimensat, sys_utimensat)
|
2007-05-11 12:22:18 +07:00
|
|
|
#define __IGNORE_getcpu /* implemented as a vsyscall */
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_epoll_pwait 281
|
2007-05-11 12:22:18 +07:00
|
|
|
__SYSCALL(__NR_epoll_pwait, sys_epoll_pwait)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_signalfd 282
|
2007-05-11 12:23:14 +07:00
|
|
|
__SYSCALL(__NR_signalfd, sys_signalfd)
|
2008-02-05 13:27:28 +07:00
|
|
|
#define __NR_timerfd_create 283
|
|
|
|
__SYSCALL(__NR_timerfd_create, sys_timerfd_create)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_eventfd 284
|
2007-05-11 12:23:20 +07:00
|
|
|
__SYSCALL(__NR_eventfd, sys_eventfd)
|
2007-10-17 23:04:39 +07:00
|
|
|
#define __NR_fallocate 285
|
sys_fallocate() implementation on i386, x86_64 and powerpc
fallocate() is a new system call being proposed here which will allow
applications to preallocate space to any file(s) in a file system.
Each file system implementation that wants to use this feature will need
to support an inode operation called ->fallocate().
Applications can use this feature to avoid fragmentation to certain
level and thus get faster access speed. With preallocation, applications
also get a guarantee of space for particular file(s) - even if later the
the system becomes full.
Currently, glibc provides an interface called posix_fallocate() which
can be used for similar cause. Though this has the advantage of working
on all file systems, but it is quite slow (since it writes zeroes to
each block that has to be preallocated). Without a doubt, file systems
can do this more efficiently within the kernel, by implementing
the proposed fallocate() system call. It is expected that
posix_fallocate() will be modified to call this new system call first
and incase the kernel/filesystem does not implement it, it should fall
back to the current implementation of writing zeroes to the new blocks.
ToDos:
1. Implementation on other architectures (other than i386, x86_64,
and ppc). Patches for s390(x) and ia64 are already available from
previous posts, but it was decided that they should be added later
once fallocate is in the mainline. Hence not including those patches
in this take.
2. Changes to glibc,
a) to support fallocate() system call
b) to make posix_fallocate() and posix_fallocate64() call fallocate()
Signed-off-by: Amit Arora <aarora@in.ibm.com>
2007-07-18 08:42:44 +07:00
|
|
|
__SYSCALL(__NR_fallocate, sys_fallocate)
|
2008-02-05 13:27:28 +07:00
|
|
|
#define __NR_timerfd_settime 286
|
|
|
|
__SYSCALL(__NR_timerfd_settime, sys_timerfd_settime)
|
|
|
|
#define __NR_timerfd_gettime 287
|
|
|
|
__SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime)
|
reintroduce accept4
Introduce a new accept4() system call. The addition of this system call
matches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),
inotify_init1(), epoll_create1(), pipe2()) which added new system calls
that differed from analogous traditional system calls in adding a flags
argument that can be used to access additional functionality.
The accept4() system call is exactly the same as accept(), except that
it adds a flags bit-mask argument. Two flags are initially implemented.
(Most of the new system calls in 2.6.27 also had both of these flags.)
SOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled
for the new file descriptor returned by accept4(). This is a useful
security feature to avoid leaking information in a multithreaded
program where one thread is doing an accept() at the same time as
another thread is doing a fork() plus exec(). More details here:
http://udrepper.livejournal.com/20407.html "Secure File Descriptor Handling",
Ulrich Drepper).
The other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag
to be enabled on the new open file description created by accept4().
(This flag is merely a convenience, saving the use of additional calls
fcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.
Here's a test program. Works on x86-32. Should work on x86-64, but
I (mtk) don't have a system to hand to test with.
It tests accept4() with each of the four possible combinations of
SOCK_CLOEXEC and SOCK_NONBLOCK set/clear in 'flags', and verifies
that the appropriate flags are set on the file descriptor/open file
description returned by accept4().
I tested Ulrich's patch in this thread by applying against 2.6.28-rc2,
and it passes according to my test program.
/* test_accept4.c
Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk
<mtk.manpages@gmail.com>
Licensed under the GNU GPLv2 or later.
*/
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#define PORT_NUM 33333
#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)
/**********************************************************************/
/* The following is what we need until glibc gets a wrapper for
accept4() */
/* Flags for socket(), socketpair(), accept4() */
#ifndef SOCK_CLOEXEC
#define SOCK_CLOEXEC O_CLOEXEC
#endif
#ifndef SOCK_NONBLOCK
#define SOCK_NONBLOCK O_NONBLOCK
#endif
#ifdef __x86_64__
#define SYS_accept4 288
#elif __i386__
#define USE_SOCKETCALL 1
#define SYS_ACCEPT4 18
#else
#error "Sorry -- don't know the syscall # on this architecture"
#endif
static int
accept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
{
printf("Calling accept4(): flags = %x", flags);
if (flags != 0) {
printf(" (");
if (flags & SOCK_CLOEXEC)
printf("SOCK_CLOEXEC");
if ((flags & SOCK_CLOEXEC) && (flags & SOCK_NONBLOCK))
printf(" ");
if (flags & SOCK_NONBLOCK)
printf("SOCK_NONBLOCK");
printf(")");
}
printf("\n");
#if USE_SOCKETCALL
long args[6];
args[0] = fd;
args[1] = (long) sockaddr;
args[2] = (long) addrlen;
args[3] = flags;
return syscall(SYS_socketcall, SYS_ACCEPT4, args);
#else
return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);
#endif
}
/**********************************************************************/
static int
do_test(int lfd, struct sockaddr_in *conn_addr,
int closeonexec_flag, int nonblock_flag)
{
int connfd, acceptfd;
int fdf, flf, fdf_pass, flf_pass;
struct sockaddr_in claddr;
socklen_t addrlen;
printf("=======================================\n");
connfd = socket(AF_INET, SOCK_STREAM, 0);
if (connfd == -1)
die("socket");
if (connect(connfd, (struct sockaddr *) conn_addr,
sizeof(struct sockaddr_in)) == -1)
die("connect");
addrlen = sizeof(struct sockaddr_in);
acceptfd = accept4(lfd, (struct sockaddr *) &claddr, &addrlen,
closeonexec_flag | nonblock_flag);
if (acceptfd == -1) {
perror("accept4()");
close(connfd);
return 0;
}
fdf = fcntl(acceptfd, F_GETFD);
if (fdf == -1)
die("fcntl:F_GETFD");
fdf_pass = ((fdf & FD_CLOEXEC) != 0) ==
((closeonexec_flag & SOCK_CLOEXEC) != 0);
printf("Close-on-exec flag is %sset (%s); ",
(fdf & FD_CLOEXEC) ? "" : "not ",
fdf_pass ? "OK" : "failed");
flf = fcntl(acceptfd, F_GETFL);
if (flf == -1)
die("fcntl:F_GETFD");
flf_pass = ((flf & O_NONBLOCK) != 0) ==
((nonblock_flag & SOCK_NONBLOCK) !=0);
printf("nonblock flag is %sset (%s)\n",
(flf & O_NONBLOCK) ? "" : "not ",
flf_pass ? "OK" : "failed");
close(acceptfd);
close(connfd);
printf("Test result: %s\n", (fdf_pass && flf_pass) ? "PASS" : "FAIL");
return fdf_pass && flf_pass;
}
static int
create_listening_socket(int port_num)
{
struct sockaddr_in svaddr;
int lfd;
int optval;
memset(&svaddr, 0, sizeof(struct sockaddr_in));
svaddr.sin_family = AF_INET;
svaddr.sin_addr.s_addr = htonl(INADDR_ANY);
svaddr.sin_port = htons(port_num);
lfd = socket(AF_INET, SOCK_STREAM, 0);
if (lfd == -1)
die("socket");
optval = 1;
if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &optval,
sizeof(optval)) == -1)
die("setsockopt");
if (bind(lfd, (struct sockaddr *) &svaddr,
sizeof(struct sockaddr_in)) == -1)
die("bind");
if (listen(lfd, 5) == -1)
die("listen");
return lfd;
}
int
main(int argc, char *argv[])
{
struct sockaddr_in conn_addr;
int lfd;
int port_num;
int passed;
passed = 1;
port_num = (argc > 1) ? atoi(argv[1]) : PORT_NUM;
memset(&conn_addr, 0, sizeof(struct sockaddr_in));
conn_addr.sin_family = AF_INET;
conn_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
conn_addr.sin_port = htons(port_num);
lfd = create_listening_socket(port_num);
if (!do_test(lfd, &conn_addr, 0, 0))
passed = 0;
if (!do_test(lfd, &conn_addr, SOCK_CLOEXEC, 0))
passed = 0;
if (!do_test(lfd, &conn_addr, 0, SOCK_NONBLOCK))
passed = 0;
if (!do_test(lfd, &conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))
passed = 0;
close(lfd);
exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);
}
[mtk.manpages@gmail.com: rewrote changelog, updated test program]
Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Tested-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: <linux-api@vger.kernel.org>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-20 06:36:14 +07:00
|
|
|
#define __NR_accept4 288
|
|
|
|
__SYSCALL(__NR_accept4, sys_accept4)
|
flag parameters: signalfd
This patch adds the new signalfd4 syscall. It extends the old signalfd
syscall by one parameter which is meant to hold a flag value. In this
patch the only flag support is SFD_CLOEXEC which causes the close-on-exec
flag for the returned file descriptor to be set.
A new name SFD_CLOEXEC is introduced which in this implementation must
have the same value as O_CLOEXEC.
The following test must be adjusted for architectures other than x86 and
x86-64 and in case the syscall numbers changed.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/syscall.h>
#ifndef __NR_signalfd4
# ifdef __x86_64__
# define __NR_signalfd4 289
# elif defined __i386__
# define __NR_signalfd4 327
# else
# error "need __NR_signalfd4"
# endif
#endif
#define SFD_CLOEXEC O_CLOEXEC
int
main (void)
{
sigset_t ss;
sigemptyset (&ss);
sigaddset (&ss, SIGUSR1);
int fd = syscall (__NR_signalfd4, -1, &ss, 8, 0);
if (fd == -1)
{
puts ("signalfd4(0) failed");
return 1;
}
int coe = fcntl (fd, F_GETFD);
if (coe == -1)
{
puts ("fcntl failed");
return 1;
}
if (coe & FD_CLOEXEC)
{
puts ("signalfd4(0) set close-on-exec flag");
return 1;
}
close (fd);
fd = syscall (__NR_signalfd4, -1, &ss, 8, SFD_CLOEXEC);
if (fd == -1)
{
puts ("signalfd4(SFD_CLOEXEC) failed");
return 1;
}
coe = fcntl (fd, F_GETFD);
if (coe == -1)
{
puts ("fcntl failed");
return 1;
}
if ((coe & FD_CLOEXEC) == 0)
{
puts ("signalfd4(SFD_CLOEXEC) does not set close-on-exec flag");
return 1;
}
close (fd);
puts ("OK");
return 0;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[akpm@linux-foundation.org: add sys_ni stub]
Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Acked-by: Davide Libenzi <davidel@xmailserver.org>
Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-24 11:29:24 +07:00
|
|
|
#define __NR_signalfd4 289
|
|
|
|
__SYSCALL(__NR_signalfd4, sys_signalfd4)
|
2008-07-24 11:29:25 +07:00
|
|
|
#define __NR_eventfd2 290
|
|
|
|
__SYSCALL(__NR_eventfd2, sys_eventfd2)
|
2008-07-24 11:29:43 +07:00
|
|
|
#define __NR_epoll_create1 291
|
|
|
|
__SYSCALL(__NR_epoll_create1, sys_epoll_create1)
|
2008-07-24 11:29:29 +07:00
|
|
|
#define __NR_dup3 292
|
|
|
|
__SYSCALL(__NR_dup3, sys_dup3)
|
2008-07-24 11:29:30 +07:00
|
|
|
#define __NR_pipe2 293
|
|
|
|
__SYSCALL(__NR_pipe2, sys_pipe2)
|
2008-07-24 11:29:32 +07:00
|
|
|
#define __NR_inotify_init1 294
|
|
|
|
__SYSCALL(__NR_inotify_init1, sys_inotify_init1)
|
2008-02-05 13:27:28 +07:00
|
|
|
|
2006-02-09 06:35:50 +07:00
|
|
|
|
2005-04-17 05:20:36 +07:00
|
|
|
#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_OLDUMOUNT
|
|
|
|
#define __ARCH_WANT_SYS_SIGPENDING
|
|
|
|
#define __ARCH_WANT_SYS_SIGPROCMASK
|
|
|
|
#define __ARCH_WANT_SYS_RT_SIGACTION
|
2006-09-26 15:52:26 +07:00
|
|
|
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
|
2005-11-05 23:25:54 +07:00
|
|
|
#define __ARCH_WANT_SYS_TIME
|
2005-04-17 05:20:36 +07:00
|
|
|
#define __ARCH_WANT_COMPAT_SYS_TIME
|
2006-10-02 16:18:31 +07:00
|
|
|
#endif /* __NO_STUBS */
|
2005-04-17 05:20:36 +07:00
|
|
|
|
2007-10-17 23:04:36 +07:00
|
|
|
#ifdef __KERNEL__
|
2005-04-17 05:20:36 +07:00
|
|
|
/*
|
|
|
|
* "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")
|
2007-10-17 23:04:36 +07:00
|
|
|
#endif /* __KERNEL__ */
|
2005-04-17 05:20:36 +07:00
|
|
|
|
2008-10-23 12:26:29 +07:00
|
|
|
#endif /* _ASM_X86_UNISTD_64_H */
|