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

# These seccomp rules specify the syscalls used by the touch_keyboard_handler
# on x86 systems.

access: 1
arch_prctl: 1
brk: 1
clone: 1
close: 1
execve: 1
exit: 1
exit_group: 1
fstat: 1
futex: 1
getpid: 1
getrlimit: 1
# ioctl: arg1 == EVIOCSFF
#        arg1 == EVIOCGABS(ABS_X) || arg1 == EVIOCGABS(ABS_Y) ||
#        arg1 == EVIOCGABS(ABS_PRESSURE) || arg1 == EVIOCGABS(ABS_MT_SLOT) ||
#        arg1 == EVIOCGABS(ABS_MT_TOUCH_MAJOR) ||
#        arg1 == EVIOCGABS(ABS_MT_TOUCH_MINOR) ||
#        arg1 == EVIOCGABS(ABS_MT_ORIENTATION) ||
#        arg1 == EVIOCGABS(ABS_MT_POSITION_X) ||
#        arg1 == EVIOCGABS(ABS_MT_POSITION_Y) ||
#        arg1 == EVIOCGABS(ABS_MT_TRACKING_ID) ||
#        arg1 == EVIOCGABS(ABS_MT_PRESSURE) ||
#        arg1 == EVIOCGBIT(0, EV_MAX) || arg1 == EVIOCGBIT(EV_ABS, KEY_MAX) ||
#        arg1 == UI_ABS_SETUP || arg1 == UI_DEV_CREATE ||
#        arg1 == UI_DEV_DESTROY || arg1 == UI_DEV_SETUP ||
#        arg1 == UI_SET_ABSBIT || arg1 == UI_SET_EVBIT ||
#        arg1 == UI_SET_KEYBIT
ioctl: arg1 == 0x40304580 || arg1 == 0x80184540 || arg1 == 0x80184541 || arg1 == 0x80184558 || arg1 == 0x8018456f || arg1 == 0x80184570 || arg1 == 0x80184571 || arg1 == 0x80184574 || arg1 == 0x80184575 || arg1 == 0x80184576 || arg1 == 0x80184579 || arg1 == 0x8018457a || arg1 == 0x801f4520 || arg1 == 0x82ff4523 || arg1 == 0x401c5504 || arg1 == 0x5501 || arg1 == 0x5502 || arg1 == 0x405c5503 || arg1 == 0x40045567 || arg1 == 0x40045564 || arg1 == 0x40045565
lseek: 1
mmap: 1
mprotect: 1
munmap: 1
open: 1
openat: 1
prlimit64: arg2 == 0 && arg3 != 0
read: 1
restart_syscall: 1
rt_sigaction: 1
rt_sigprocmask: 1
rt_sigreturn: 1
select: 1
set_robust_list: 1
set_tid_address: 1
stat: 1
wait4: 1
write: 1
