# this file is used to list all the syscalls that will be supported by
# the Bionic C library. It is used to automatically generate the syscall
# stubs, the list of syscall constants (__NR_xxxx) and the content of <linux/_unistd.h>
#
# each non comment line has the following format:
#
# return_type    func_name[:syscall_name[:call_id]]([parameter_list])  (syscall_number|"stub")
#
# note that:
#      - syscall_name correspond to the name of the syscall, which may differ from
#        the exported function name (example: the exit syscall is implemented by the _exit()
#        function, which is not the same as the standard C exit() function which calls it)
#        The call_id parameter, given that func_name and syscall_name have
#        been provided, allows the user to specify dispatch style syscalls.
#        For example, socket() syscall on i386 actually becomes:
#          socketcall(__NR_socket, 1, *(rest of args on stack)).
#
#      - each parameter type is assumed to be stored on 32 bits, there is no plan to support
#        64-bit architectures at the moment
#
#      - it there is "stub" instead of a syscall number, the tool will not generate any
#        assembler template for the syscall; it's up to the bionic implementation to provide
#        a relevant C stub
#
#      - additionally, if the syscall number is different amoung ARM, and x86, MIPS use:
#        return_type funcname[:syscall_name](parameters) arm_number,x86_number,mips_number
#
# the file is processed by a python script named gensyscalls.py
#

# process management
void    _exit:exit_group (int)      248,252,246
void    _exit_thread:exit (int)     1
pid_t   __fork:fork (void)           2
pid_t   _waitpid:waitpid (pid_t, int*, int, struct rusage*)   -1,7,7
int     __waitid:waitid(int, pid_t, struct siginfo_t*, int,void*)          280,284,278

# NOTE: this system call is never called directly, but we list it there
#       to have __NR_clone properly defined.
#
pid_t   __sys_clone:clone (int, void*, int*, void*, int*) 120

int     execve (const char*, char* const*, char* const*)  11

int     __setuid:setuid32 (uid_t)    213,213,-1
int     __setuid:setuid (uid_t)   -1,-1,23
uid_t   getuid:getuid32 ()         199,199,-1
uid_t   getuid:getuid ()           -1,-1,24
gid_t   getgid:getgid32 ()         200,200,-1
gid_t   getgid:getgid ()           -1,-1,47
uid_t   geteuid:geteuid32 ()       201,201,-1
uid_t   geteuid:geteuid ()         -1,-1,49
gid_t   getegid:getegid32 ()       202,202,-1
gid_t   getegid:getegid ()         -1,-1,50
uid_t   getresuid:getresuid32 (uid_t *ruid, uid_t *euid, uid_t *suid)   209,209,-1
uid_t   getresuid:getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)     -1,-1,186
gid_t   getresgid:getresgid32 (gid_t *rgid, gid_t *egid, gid_t *sgid)   211,211,-1
gid_t   getresgid:getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)     -1,-1,191
pid_t   gettid()                   224,224,222
ssize_t readahead(int, off64_t, size_t)     225,225,223
int     getgroups:getgroups32(int, gid_t *)    205,205,-1
int     getgroups:getgroups(int, gid_t *)      -1,-1,80
pid_t   getpgid(pid_t)             132
pid_t   getppid()                  64
pid_t   getsid(pid_t)              147,147,151
pid_t   setsid()                   66
int     setgid:setgid32(gid_t)     214,214,-1
int     setgid:setgid(gid_t)       -1,-1,46
int     seteuid:seteuid32(uid_t)   stub
int     __setreuid:setreuid32(uid_t, uid_t)   203,203,-1
int     __setreuid:setreuid(uid_t, uid_t)     -1,-1,70
int     __setresuid:setresuid32(uid_t, uid_t, uid_t)   208,208,-1
int     __setresuid:setresuid(uid_t, uid_t, uid_t)     -1,-1,185
int     setresgid:setresgid32(gid_t, gid_t, gid_t)   210,210,-1
int     setresgid:setresgid(gid_t, gid_t, gid_t)     -1,-1,190
void*   __brk:brk(void*)           45
# see comments in arch-arm/bionic/kill.S to understand why we don't generate an ARM stub for kill/tkill
int     kill(pid_t, int)           -1,37,37
int     tkill(pid_t tid, int sig)  -1,238,236
int     tgkill(pid_t tgid, pid_t tid, int sig)  -1,270,266
int     __ptrace:ptrace(int request, int pid, void* addr, void* data)  26
int     __set_thread_area:set_thread_area(void*  user_desc)  -1,243,283
int     __getpriority:getpriority(int, int)  96
int     setpriority(int, int, int)   97
int     setrlimit(int resource, const struct rlimit *rlp)  75
int     getrlimit:ugetrlimit(int resource, struct rlimit *rlp)  191,191,-1
int     getrlimit:getrlimit(int resource, struct rlimit *rlp)  -1,-1,76
int     getrusage(int who, struct rusage*  r_usage)  77
int     setgroups:setgroups32(int, const gid_t *)   206,206,-1
int     setgroups:setgroups(int, const gid_t *)     -1,-1,81
pid_t   getpgrp(void)  stub
int     setpgid(pid_t, pid_t)  57
pid_t   vfork(void)  190,-1,-1
int     setregid:setregid32(gid_t, gid_t)  204,204,-1
int     setregid:setregid(gid_t, gid_t)    -1,-1,71
int     chroot(const char *)  61
# IMPORTANT: Even though <sys/prctl.h> declares prctl(int,...), the syscall stub must take 6 arguments
#            to match the kernel implementation.
int     prctl(int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5)  172,172,192
int     capget(cap_user_header_t header, cap_user_data_t data) 184,184,204
int     capset(cap_user_header_t header, const cap_user_data_t data) 185,185,205
int     sigaltstack(const stack_t*, stack_t*) 186,186,206
int     acct(const char*  filepath)  51

# file descriptors
ssize_t     read (int, void*, size_t)        3
ssize_t     write (int, const void*, size_t)       4
ssize_t     pread64 (int, void *, size_t, off64_t) 180,180,200
ssize_t     pwrite64 (int, void *, size_t, off64_t) 181,181,201
int         __open:open (const char*, int, mode_t)  5
int         __openat:openat (int, const char*, int, mode_t)  322,295,288
int         close (int)                      6
int         creat(const char*, mode_t)       stub
off_t       lseek(int, off_t, int)           19
int         __llseek:_llseek (int, unsigned long, unsigned long, loff_t*, int)  140
pid_t       getpid ()    20
void *      mmap(void *, size_t, int, int, int, long)  stub
void *      __mmap2:mmap2(void*, size_t, int, int, int, long)   192,192,210
int         munmap(void *, size_t)  91
void *      mremap(void *, size_t, size_t, unsigned long)  163,163,167
int         msync(const void *, size_t, int)    144
int         mprotect(const void *, size_t, int)  125
int         madvise(const void *, size_t, int)  220,219,218
int         mlock(const void *addr, size_t len)    150,150,154
int         munlock(const void *addr, size_t len)   151,151,155
int         mlockall(int flags)   152,152,156
int         munlockall()   153,153,157
int         mincore(void*  start, size_t  length, unsigned char*  vec)   219,218,217
int         __ioctl:ioctl(int, int, void *)  54
int         readv(int, const struct iovec *, int)   145
int         writev(int, const struct iovec *, int)  146
int         __fcntl:fcntl(int, int, void*)  55
int         flock(int, int)   143
int         fchmod(int, mode_t)  94
int         dup(int)  41
int         pipe(int *)  42,42,-1
int         pipe2(int *, int) 359,331,328
int         dup2(int, int)   63
int         select:_newselect(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *)  142
int         ftruncate(int, off_t)  93
int         ftruncate64(int, off64_t) 194,194,212
int         getdents:getdents64(unsigned int, struct dirent *, unsigned int)   217,220,219
int         fsync(int)  118
int         fdatasync(int) 148,148,152
int         fchown:fchown32(int, uid_t, gid_t)  207,207,-1
int         fchown:fchown(int, uid_t, gid_t)    -1,-1,95
void        sync(void)  36
int         __fcntl64:fcntl64(int, int, void *)  221,221,220
int         __fstatfs64:fstatfs64(int, size_t, struct statfs *)  267,269,256
ssize_t     sendfile(int out_fd, int in_fd, off_t *offset, size_t count)  187,187,207
int         fstatat:fstatat64(int dirfd, const char *path, struct stat *buf, int flags)   327,300,293
int         mkdirat(int dirfd, const char *pathname, mode_t mode)  323,296,289
int         fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags)  325,298,291
int         fchmodat(int dirfd, const char *path, mode_t mode, int flags)  333,306,299
int         renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath)  329,302,295
int         fsetxattr(int, const char *, const void *, size_t, int) 228,228,226
ssize_t     fgetxattr(int, const char *, void *, size_t) 231,231,229
ssize_t     flistxattr(int, char *, size_t) 234,234,232
int         fremovexattr(int, const char *) 237,237,235

# file system
int     link (const char*, const char*)  9
int     unlink (const char*)             10
int     unlinkat (int, const char *, int)   328,301,294
int     chdir (const char*)              12
int     mknod (const char*, mode_t, dev_t)  14
int     chmod (const char*,mode_t)          15
int     chown:chown32(const char *, uid_t, gid_t)  212,212,-1
int     chown:chown(const char *, uid_t, gid_t)    -1,-1,202
int     lchown:lchown32 (const char*, uid_t, gid_t)  198,198,-1
int     lchown:lchown (const char*, uid_t, gid_t)  -1,-1,16
int     mount (const char*, const char*, const char*, unsigned long, const void*)  21
int     umount(const char*)  stub
int     umount2 (const char*, int)  52
int     fstat:fstat64(int, struct stat*)    197,197,215
int     stat:stat64(const char *, struct stat *)  195,195,213
int     lstat:lstat64(const char *, struct stat *)  196,196,214
int     mkdir(const char *, mode_t) 39
int     readlink(const char *, char *, size_t)  85
int     rmdir(const char *)  40
int     rename(const char *, const char *)  38
int     __getcwd:getcwd(char * buf, size_t size)  183,183,203
int     access(const char *, int)  33
int     faccessat(int, const char *, int, int)  334,307,300
int     symlink(const char *, const char *)  83
int     fchdir(int)    133
int     truncate(const char*, off_t)    92
int     setxattr(const char *, const char *, const void *, size_t, int) 226,226,224
int     lsetxattr(const char *, const char *, const void *, size_t, int) 227,227,225
ssize_t getxattr(const char *, const char *, void *, size_t) 229,229,227
ssize_t lgetxattr(const char *, const char *, void *, size_t) 230,230,228
ssize_t listxattr(const char *, char *, size_t) 232,232,230
ssize_t llistxattr(const char *, char *, size_t) 233,233,231
int     removexattr(const char *, const char *) 235,235,233
int     lremovexattr(const char *, const char *) 236,236,234
int     __statfs64:statfs64(const char *, size_t, struct statfs *)  266,268,255
long    unshare(unsigned long)  337,310,303

# time
int           pause ()                       29
int           gettimeofday(struct timeval*, struct timezone*)       78
int           settimeofday(const struct timeval*, const struct timezone*)   79
clock_t       times(struct tms *)       43
int           nanosleep(const struct timespec *, struct timespec *)   162,162,166
int           clock_gettime(clockid_t clk_id, struct timespec *tp)    263,265,263
int           clock_settime(clockid_t clk_id, const struct timespec *tp)  262,264,262
int           clock_getres(clockid_t clk_id, struct timespec *res)   264,266,264
int           clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *req, struct timespec *rem)  265,267,265
int           getitimer(int, const struct itimerval *)   105
int           setitimer(int, const struct itimerval *, struct itimerval *)  104
int           __timer_create:timer_create(clockid_t clockid, struct sigevent *evp, timer_t *timerid)    257,259,257
int           __timer_settime:timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*) 258,260,258
int           __timer_gettime:timer_gettime(timer_t, struct itimerspec*)                                259,261,259
int           __timer_getoverrun:timer_getoverrun(timer_t)                                              260,262,260
int           __timer_delete:timer_delete(timer_t)                                                      261,263,261
int           utimes(const char*, const struct timeval tvp[2])                          269,271,267
int           utimensat(int, const char *, const struct timespec times[2], int)         348,320,316

# signals
int     sigaction(int, const struct sigaction *, struct sigaction *)  67
int     sigprocmask(int, const sigset_t *, sigset_t *)  126
int     __sigsuspend:sigsuspend(int unused1, int unused2, unsigned mask)  72,72,-1
int     __sigsuspend:sigsuspend(const sigset_t *mask)  -1,-1,72
int     __rt_sigaction:rt_sigaction (int sig, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize)  174,174,194
int     __rt_sigprocmask:rt_sigprocmask (int  how, const sigset_t *set, sigset_t *oset, size_t sigsetsize)  175,175,195
int     __rt_sigtimedwait:rt_sigtimedwait(const sigset_t *set, struct siginfo_t  *info, struct timespec_t  *timeout, size_t  sigset_size)  177,177,197
int     sigpending(sigset_t *)  73
int     signalfd4(int fd, const sigset_t *mask, size_t sizemask, int flags)  355,327,324

# sockets
int           socket(int, int, int)              281,-1,183
int           socketpair(int, int, int, int*)    288,-1,184
int           bind(int, struct sockaddr *, int)  282,-1,169
int           connect(int, struct sockaddr *, socklen_t)   283,-1,170
int           listen(int, int)                   284,-1,174
int           accept(int, struct sockaddr *, socklen_t *)  285,-1,168
int           getsockname(int, struct sockaddr *, socklen_t *)  286,-1,172
int           getpeername(int, struct sockaddr *, socklen_t *)  287,-1,171
int           sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t)  290,-1,180
int           recvfrom(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *)  292,-1,176
int           shutdown(int, int)  293,-1,182
int           setsockopt(int, int, int, const void *, socklen_t)  294,-1,181
int           getsockopt(int, int, int, void *, socklen_t *)    295,-1,173
int           sendmsg(int, const struct msghdr *, unsigned int)  296,-1,179
int           recvmsg(int, struct msghdr *, unsigned int)   297,-1,177

# sockets for x86. These are done as an "indexed" call to socketcall syscall.
int           socket:socketcall:1 (int, int, int) -1,102,-1
int           bind:socketcall:2 (int, struct sockaddr *, int)  -1,102,-1
int           connect:socketcall:3(int, struct sockaddr *, socklen_t)   -1,102,-1
int           listen:socketcall:4(int, int)                   -1,102,-1
int           accept:socketcall:5(int, struct sockaddr *, socklen_t *)  -1,102,-1
int           getsockname:socketcall:6(int, struct sockaddr *, socklen_t *)  -1,102,-1
int           getpeername:socketcall:7(int, struct sockaddr *, socklen_t *)  -1,102,-1
int           socketpair:socketcall:8(int, int, int, int*)    -1,102,-1
int           sendto:socketcall:11(int, const void *, size_t, int, const struct sockaddr *, socklen_t)  -1,102,-1
int           recvfrom:socketcall:12(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *)  -1,102,-1
int           shutdown:socketcall:13(int, int)  -1,102,-1
int           setsockopt:socketcall:14(int, int, int, const void *, socklen_t)  -1,102,-1
int           getsockopt:socketcall:15(int, int, int, void *, socklen_t *)    -1,102,-1
int           sendmsg:socketcall:16(int, const struct msghdr *, unsigned int)  -1,102,-1
int           recvmsg:socketcall:17(int, struct msghdr *, unsigned int)   -1,102,-1

# scheduler & real-time
int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param)  156,156,160
int sched_getscheduler(pid_t pid)  157,157,161
int sched_yield(void)  158,158,162
int sched_setparam(pid_t pid, const struct sched_param *param)  154,154,158
int sched_getparam(pid_t pid, struct sched_param *param)  155,155,159
int sched_get_priority_max(int policy)  159,159,163
int sched_get_priority_min(int policy)  160,160,164
int sched_rr_get_interval(pid_t pid, struct timespec *interval)  161,161,165
int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) 241,241,239
int __sched_getaffinity:sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set)  242,242,240
int __getcpu:getcpu(unsigned *cpu, unsigned *node, void *unused) 345,318,312

# io priorities
int ioprio_set(int which, int who, int ioprio) 314,289,314
int ioprio_get(int which, int who) 315,290,315

# other
int     uname(struct utsname *)  122
pid_t   __wait4:wait4(pid_t pid, int *status, int options, struct rusage *rusage)   114
mode_t  umask(mode_t)  60
int      __reboot:reboot(int, int, int, void *)  88
int     __syslog:syslog(int, char *, int)  103
int     init_module(void *, unsigned long, const char *)  128
int     delete_module(const char*, unsigned int)   129
int     klogctl:syslog(int, char *, int)   103
int     sysinfo(struct sysinfo *)  116
int     personality(unsigned long)  136
long    perf_event_open(struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) 364,336,333

# futex
int	futex(void *, int, int, void *, void *, int) 240,240,238

# epoll
int     epoll_create(int size)     250,254,248
int     epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)    251,255,249
int     epoll_wait(int epfd, struct epoll_event *events, int max, int timeout)   252,256,250

int     inotify_init(void)      316,291,284
int     inotify_add_watch(int, const char *, unsigned int)  317,292,285
int     inotify_rm_watch(int, unsigned int)  318,293,286

int     poll(struct pollfd *, unsigned int, long)  168,168,188

int     eventfd:eventfd2(unsigned int, int)  356,328,325

# ARM-specific ARM_NR_BASE == 0x0f0000 == 983040
int     __set_tls:ARM_set_tls(void*)                                 983045,-1,-1
int     cacheflush:ARM_cacheflush(long start, long end, long flags)  983042,-1,-1

# MIPS-specific
int	_flush_cache:cacheflush(char *addr, const int nbytes, const int op)	-1,-1,147
int	syscall(int number,...) -1,-1,0
