# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

access: 1
alarm: 1
arch_prctl: 1
bind: 1
brk: 1
chdir: 1
clock_gettime: 1
clone: 1
close: 1
connect: 1
dup: 1
epoll_create: 1
epoll_ctl: 1
epoll_wait: 1
execve: 1
exit: 1
exit_group: 1
fallocate: 1
fchmod: 1
fcntl: 1
fdatasync: 1
fstat: 1
fsync: 1
ftruncate: 1
futex: 1
getcwd: 1
getdents: 1
getdents64: 1
getegid: 1
geteuid: 1
getpeername: 1
getpid: 1
getrandom: 1
getrlimit: 1
getsockname: 1
getsockopt: 1
gettimeofday: 1
getuid: 1
# ioctl: arg1 == TCGETS || arg1 == TCSETS || arg1 == TCSETSF ||
#        arg1 == FIONREAD || arg1 == FIONBIO ||
#        arg1 == SIOCGIFINDEX || arg1 == SIOCETHTOOL
ioctl: arg1 == 0x5401 || arg1 == 0x5402 || arg1 == 0x5404 || arg1 == 0x541b || arg1 == 0x5421 || arg1 == 0x8933 || arg1 == 0x8946
lseek: 1
lstat: 1
kill: 1
mkdir: 1
# Make sure PROT_WRITE (bit 1) and PROT_EXEC (bit 2) are not both set.
mmap: arg2 in 0xfffffffb || arg2 in 0xfffffffd
mprotect: arg2 in 0xfffffffb || arg2 in 0xfffffffd
msync: 1
munmap: 1
newfstatat: 1
openat: 1
open: 1
pipe: 1
poll: 1
pread64: 1
preadv: 1
prlimit64: arg2 == 0 && arg3 != 0
pwrite64: 1
pwritev: 1
read: 1
readv: 1
recvfrom: 1
recvmsg: 1
rename: 1
restart_syscall: 1
rt_sigaction: 1
rt_sigprocmask: 1
rt_sigreturn: 1
rt_sigsuspend: 1
select: 1
sendmmsg: 1
sendmsg: 1
sendto: 1
setsockopt: 1
set_robust_list: 1
set_tid_address: 1
shutdown: 1
# socket: arg0 == PF_INET || arg0 == PF_LOCAL || arg0 == PF_INET6 || arg0 == PF_NETLINK
socket: arg0 == 2 || arg0 == 1 || arg0 == 10 || arg0 == 16
stat: 1
sysinfo: 1
umask: 1
uname: 1
unlink: 1
utime: 1
utimensat: 1
wait4: 1
write: 1
writev: 1
