# Copyright 2020 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.

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: arg0 == AF_UNIX || arg0 == AF_INET || arg0 == AF_INET6 || \
        arg0 == AF_NETLINK && arg2 == 0
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
sendto: 1

brk: 1
# Prevent PROT_WRITE | PROT_EXEC
mmap2: arg2 in ~PROT_WRITE || arg2 in ~PROT_EXEC
mremap: 1
munmap: 1
# Prevent PROT_WRITE | PROT_EXEC
mprotect: arg2 in ~PROT_WRITE || arg2 in ~PROT_EXEC
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
sched_yield: 1
sysinfo: 1
getrandom: 1
sendmmsg: 1

# Used by the http transfer.
bind: 1
# openssl 1.1.1d+ uses these to access the seeded state in shared memory if
# getrandom() is not implemented, which happens if linux kernel version is too
# old.
shmget: 1
shmat: 1
shmdt: 1

# These calls are attempted but apparently not necessary; return EPERM.
ioctl: return 1
prctl: return 1
prlimit64: arg2 == 0 && arg3 != 0
