# Copyright 2018 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.
epoll_wait: 1
# Make sure PROT_WRITE (bit 1) and PROT_EXEC (bit 2) are not both set.
mmap: arg2 in 0xfffffffb || arg2 in 0xfffffffd
open: 1
openat: 1
recvmsg: 1
# Make sure PROT_WRITE (bit 1) and PROT_EXEC (bit 2) are not both set.
mprotect: arg2 in 0xfffffffb || arg2 in 0xfffffffd
read: 1
fstat: 1
close: 1
poll: 1
write: 1
sendmsg: 1
geteuid: 1
sendto: 1
getgid: 1
stat: 1
getegid: 1
getuid: 1
brk: 1
epoll_ctl: 1
rt_sigaction: 1
connect: 1
fcntl: 1
gettid: 1
socket: arg0 == AF_UNIX
pipe2: 1
restart_syscall: 1
exit: 1
exit_group: 1
rt_sigreturn: 1
epoll_create1: 1
getresuid: 1
getsockname: 1
lseek: 1
clock_getres: 1
clock_gettime: 1
getresgid: 1
arch_prctl: 1
access: 1
getrlimit: 1
set_tid_address: 1
set_robust_list: 1
ioctl: arg1 == TCGETS
munmap: 1
rt_sigprocmask: 1
getpid: 1
prlimit64: arg2 == 0 && arg3 != 0
