#
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

getpid: 1
gettid: 1
getuid32: 1
geteuid32: 1
getgid32: 1
getegid32: 1
getresuid32: 1
getresgid32: 1

clock_getres: 1
clock_gettime: 1
gettimeofday: 1

socket: 1
socketpair: 1
connect: 1
getsockname: 1
getpeername: 1
pipe: 1
pipe2: 1
send: 1
sendmsg: 1
recv: 1
recvmsg: 1
recvfrom: 1
setsockopt: 1
getsockopt: 1

epoll_create: 1
epoll_create1: 1
epoll_wait: 1
epoll_ctl: 1
poll: 1

open: 1
openat: 1
creat: 1
read: 1
write: 1
close: 1

inotify_init: 1
inotify_add_watch: 1
inotify_rm_watch: 1
_newselect: 1

fstat64: 1
stat64: 1
lstat64: 1
_llseek: 1
fcntl64: 1
access: 1

futex: 1
set_robust_list: 1
restart_syscall: 1
exit: 1
exit_group: 1
rt_sigreturn: 1
rt_sigprocmask: 1
rt_sigaction: 1
signalfd4: 1

brk: 1
mmap2: 1
munmap: 1
mprotect: 1
madvise: 1

clone: 1
setpriority: 1
setitimer: 1
pwrite64: 1
fdatasync: 1
fsync: 1
rename: 1
chmod: 1
tgkill: 1
set_tid_address: 1
ARM_set_tls: 1
uname: 1
ugetrlimit: 1
nanosleep: 1
ioctl: 1
sched_yield: 1

# This call is attempted but apparently not necessary; return EPERM.
prctl: return 1
prlimit64: arg2 == 0 && arg3 != 0
