# 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
clock_gettime: 1
clone: 1
close: 1
connect: 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
getdents: 1
getegid: 1
geteuid: 1
getpeername: 1
getrandom: 1
getrlimit: 1
getsockname: 1
getsockopt: 1
getuid: 1
# ioctl: arg1 == SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS ||
#        arg1 == SNDCTL_TMR_START or SNDRV_TIMER_IOCTL_TREAD or TCSETS ||
#        arg1 == SNDCTL_TMR_CONTINUE or SNDRV_TIMER_IOCTL_GPARAMS or 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
msync: 1
openat: 1
open: 1
pipe: 1
poll: 1
pwrite64: 1
read: 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
wait4: 1
writev: 1
write: 1

getpid: 1
prlimit64: arg2 == 0 && arg3 != 0
gettimeofday: 1
