# Copyright 2012 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# rseq should be first due to frequency and purpose to decrease nptl latency
rseq: 1

read: 1
ioctl: 1
write: 1
timerfd_settime: 1
open: 1
poll: 1
close: 1
# Don't allow mmap with both PROT_WRITE and PROT_EXEC.
mmap: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
mseal: 1
mremap: 1
munmap: 1
# Don't allow mprotect with PROT_EXEC.
mprotect: arg2 in ~PROT_EXEC
lseek: 1
getdents: 1
getdents64: 1
openat: 1
faccessat: 1
faccessat2: 1
futex: 1
brk: 1
timerfd_create: 1
pipe: 1
fcntl: 1
recvmsg: 1
sendmsg: 1
rt_sigaction: 1
sendto: 1
gettid: 1
stat: 1
madvise: 1
dup: 1
dup2: 1
dup3: 1
set_robust_list: 1
# Allow socket(domain==PF_LOCAL) or socket(domain==PF_NETLINK)
socket: arg0 == 0x1 || arg0 == 0x10
sched_get_priority_max: 1
sched_getattr: 1
sched_setattr: 1
connect: 1
getsockname: 1
clock_getres: 1
clock_gettime: 1
exit_group: 1
clone: 1
clone3: 1
sched_get_priority_min: 1
setsockopt: 1
restart_syscall: 1
exit: 1
bind: 1
sched_getparam: 1
rt_sigprocmask: 1
access: 1
setsid: 1
getrlimit: 1
set_tid_address: 1
sched_getscheduler: 1
rt_sigreturn: 1
chdir: 1
pipe2: 1
getuid: 1
getgid: 1
geteuid: 1
getegid: 1
fstat: 1
newfstatat: 1
uname: 1
unlink: 1
tgkill: 1
gettimeofday: 1
time: 1
getresgid: 1
getresuid: 1
signalfd4: 1
# Allow PR_SET_NAME from libchrome's base::PlatformThread::SetName()
prctl: arg0 == 0xf
setpriority: 1
getrandom: arg2 in ~GRND_RANDOM
nanosleep: 1
clock_nanosleep: 1
epoll_create1: 1
epoll_ctl: 1
epoll_wait: 1
getpid: 1
prlimit64: arg2 == 0 && arg3 != 0
readlink: 1
readlinkat: 1
lstat: 1
fstatfs: 1
eventfd2: 1
statfs: 1
process_vm_readv: 1
