# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

futex: 1
# ioctl: arg1 == BINDER_WRITE_READ
ioctl: arg1 == 0xc0306201
# prctl: arg0 == PR_SET_NAME || arg0 == PR_SET_VMA || arg0 == PR_SET_TIMERSLACK
# || arg0 == PR_GET_NO_NEW_PRIVS # used by crash_dump
prctl: arg0 == 15 || arg0 == 0x53564d41 || arg0 == 29 || arg0 == 39
openat: 1
mmap: 1
mprotect: 1
close: 1
getuid: 1
read: 1
faccessat: 1
write: 1
fstat: 1
clone: 1
munmap: 1
lseek: 1
sigaltstack: 1
writev: 1
setpriority: 1
restart_syscall: 1
exit: 1
exit_group: 1
rt_sigreturn: 1
getrlimit: 1
madvise: 1
clock_gettime: 1
getpid: 1

# used during process crash by crash_dump to dump process info
rt_sigprocmask: 1
rt_sigaction: 1
# socket: arg0 == AF_LOCAL
socket: arg0 == 1
connect: 1
recvmsg: 1
rt_tgsigqueueinfo: 1
