From e68fdf10914109aa79bac18ab414607029140169 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sun, 24 Nov 2024 21:54:16 +0100 Subject: [PATCH] Import libseccomp_2.5.5-2.debian.tar.xz [dgit import tarball libseccomp 2.5.5-2 libseccomp_2.5.5-2.debian.tar.xz] --- changelog | 396 +++++++ control | 64 ++ copyright | 39 + docs | 1 + gbp.conf | 9 + libseccomp-dev.install | 4 + libseccomp-dev.manpages | 1 + libseccomp2.install | 1 + libseccomp2.symbols | 34 + not-installed | 3 + .../arch_Add_64-bit_LoongArch_support.patch | 457 ++++++++ ..._arch-syscall-validate_to_Linux_6.11.patch | 59 + ...syscall.tbl_in_arch-syscall-validate.patch | 221 ++++ ...DME_and_manpage_for_64-bit_LoongArch.patch | 42 + ...hon_Fix_distutils_DeprecationWarning.patch | 55 + ...on_single_version_externally_managed.patch | 14 + patches/series | 14 + ...he_syscall_table_for_Linux_v6.12-rc5.patch | 268 +++++ patches/syscalls_update_to_Linux_v6.0.patch | 1007 +++++++++++++++++ .../tests_Add_64-bit_LoongArch_support.patch | 569 ++++++++++ ...s_Fix_wrong_syscall-error_in_test_29.patch | 28 + ...statfs_syscall_in_the_06-sim-actions.patch | 39 + ...use_bogus_syscall_numbers_in_test_29.patch | 75 ++ python-seccomp.install | 1 + python3-seccomp.install | 1 + rules | 37 + salsa-ci.yml | 14 + seccomp.install | 1 + seccomp.manpages | 1 + source/format | 1 + tests/common | 12 + tests/control | 7 + tests/testsuite-live | 17 + tests/testsuite-live-python3 | 13 + upstream/metadata | 4 + upstream/signing-key.asc | 192 ++++ watch | 5 + 37 files changed, 3706 insertions(+) create mode 100644 changelog create mode 100644 control create mode 100644 copyright create mode 100644 docs create mode 100644 gbp.conf create mode 100644 libseccomp-dev.install create mode 100644 libseccomp-dev.manpages create mode 100644 libseccomp2.install create mode 100644 libseccomp2.symbols create mode 100644 not-installed create mode 100644 patches/arch_Add_64-bit_LoongArch_support.patch create mode 100644 patches/arch_adapt_arch-syscall-validate_to_Linux_6.11.patch create mode 100644 patches/arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch create mode 100644 patches/doc_update_README_and_manpage_for_64-bit_LoongArch.patch create mode 100644 patches/python_Fix_distutils_DeprecationWarning.patch create mode 100644 patches/python_single_version_externally_managed.patch create mode 100644 patches/series create mode 100644 patches/syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch create mode 100644 patches/syscalls_update_to_Linux_v6.0.patch create mode 100644 patches/tests_Add_64-bit_LoongArch_support.patch create mode 100644 patches/tests_Fix_wrong_syscall-error_in_test_29.patch create mode 100644 patches/tests_add_fstatfs_syscall_in_the_06-sim-actions.patch create mode 100644 patches/tests_only_use_bogus_syscall_numbers_in_test_29.patch create mode 100644 python-seccomp.install create mode 100644 python3-seccomp.install create mode 100755 rules create mode 100644 salsa-ci.yml create mode 100644 seccomp.install create mode 100644 seccomp.manpages create mode 100644 source/format create mode 100644 tests/common create mode 100644 tests/control create mode 100644 tests/testsuite-live create mode 100644 tests/testsuite-live-python3 create mode 100644 upstream/metadata create mode 100644 upstream/signing-key.asc create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..af40261 --- /dev/null +++ b/changelog @@ -0,0 +1,396 @@ +libseccomp (2.5.5-2) unstable; urgency=medium + + * Revert: Dynamically skip autopkgtests when the test runner already applies + seccomp restrictions. + - Container based backends usually apply a seccomp filter so it's better + to declare the isolation-machine restriction. + * Backport support for syscalls up to kernel v6.12-rc5 and loongarch64. + (Closes: #1051323) + - syscalls_update_to_Linux_v6.0.patch + - tests_add_fstatfs_syscall_in_the_06-sim-actions.patch + - arch_Add_64-bit_LoongArch_support.patch + - tests_Add_64-bit_LoongArch_support.patch + - doc_update_README_and_manpage_for_64-bit_LoongArch.patch + - tests_Fix_wrong_syscall-error_in_test_29.patch + - tests_only_use_bogus_syscall_numbers_in_test_29.patch + - arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch + - arch_adapt_arch-syscall-validate_to_Linux_6.11.patch + - syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch + + -- Felix Geyer Sun, 24 Nov 2024 21:54:16 +0100 + +libseccomp (2.5.5-1) unstable; urgency=medium + + * New upstream release. + + -- Felix Geyer Thu, 04 Jan 2024 18:29:54 +0100 + +libseccomp (2.5.4-2) unstable; urgency=medium + + * Fix watch file. (Closes: #1050659) + * Dynamically skip autopkgtests when the test runner already applies seccomp + restrictions. + - Drop isolation-machine restriction. + * Fix FTBFS with setuptools. (Closes: #1054788, #1033641) + - Add python_Fix_distutils_DeprecationWarning.patch + - Add python_single_version_externally_managed.patch + - Explicitly build-depend on python3-setuptools + + -- Felix Geyer Sun, 29 Oct 2023 15:13:08 +0100 + +libseccomp (2.5.4-1) unstable; urgency=medium + + * New upstream release. + + -- Felix Geyer Thu, 21 Apr 2022 22:23:12 +0200 + +libseccomp (2.5.3-2) unstable; urgency=medium + + [ Alex Murray ] + * Fix python version check in debian/rules to properly handle python3.10 + to resolve FTBFS (Closes: #999364) + + -- Felix Geyer Thu, 18 Nov 2021 17:52:23 +0100 + +libseccomp (2.5.3-1) experimental; urgency=medium + + * New upstream release. + * Drop patches from 2.5.2-2, fixed upstream. + + -- Felix Geyer Sat, 06 Nov 2021 16:46:51 +0100 + +libseccomp (2.5.2-2) unstable; urgency=medium + + * Revert mips and powerpc multiplexed syscall handling. + - Fixes test suite failures. (Closes: #994285) + + -- Felix Geyer Sun, 03 Oct 2021 23:26:59 +0200 + +libseccomp (2.5.2-1) unstable; urgency=medium + + * New upstream release. + * Update watch file. + + -- Felix Geyer Tue, 07 Sep 2021 11:14:34 +0200 + +libseccomp (2.5.1-1) unstable; urgency=medium + + * New upstream release. + * Drop all patches as they have been applied upstream. + + -- Felix Geyer Mon, 21 Dec 2020 10:50:30 +0100 + +libseccomp (2.5.0-3) unstable; urgency=medium + + * Cherry-pick patch from the 2.5 branch to fix test error on mips: + - arch_ensure_we_dont_munge_pseudo_syscall_numbers.patch + + -- Felix Geyer Sun, 08 Nov 2020 19:59:21 +0100 + +libseccomp (2.5.0-2) unstable; urgency=medium + + * Upload to unstable. + * Cherry-pick patches from the 2.5 branch to fix build and test errors: + - build_undefine_mips_to_prevent_build_problems.patch + - tests_use_openat_and_fstat_instead_of_open_and_stat_syscalls.patch + + -- Felix Geyer Sun, 08 Nov 2020 15:49:41 +0100 + +libseccomp (2.5.0-1) experimental; urgency=medium + + * New upstream release. + - Build-depend on gperf. + - Update symbols file. + * Remove patches that have been applied upstream: + - cython3.patch + - riscv64_support.patch + * Cherry-pick patches from the 2.5 branch: + - all_only_request_the_userspace_notification_fd_once.patch + - system_change_our_notification_fd_handling.patch + + -- Felix Geyer Sat, 24 Oct 2020 13:58:28 +0200 + +libseccomp (2.4.4-1) unstable; urgency=medium + + * Team upload. + + [ Debian Janitor ] + * Set upstream metadata fields: Repository, Repository-Browse. + * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository. + + [ Felix Geyer ] + * New upstream release. + * Download and verify orig gpg signature. + + -- Felix Geyer Sun, 20 Sep 2020 19:03:41 +0200 + +libseccomp (2.4.3-1) unstable; urgency=medium + + * New upstream release. + * Drop patches that have been applied upstream: + - tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch + - api_define__SNR_ppoll_again.patch + * Cherry-pick support for the riscv64 architecture. (Closes: #952386) + - Add riscv64_support.patch + + -- Felix Geyer Thu, 12 Mar 2020 23:35:13 +0100 + +libseccomp (2.4.2-2) unstable; urgency=medium + + [ Christian Ehrhardt ] + * d/rules: fix potential FTFBS after full python3 switch + * d/t/control: drop python2 test following the removal of the package + + [ Felix Geyer ] + * Remove build-dependency on valgrind for mips64el as it's broken there. + * Backport patch to define __SNR_ppoll again. + - Add api_define__SNR_ppoll_again.patch + * Replace custom patch for cython3 with the upstream fix. + + -- Felix Geyer Fri, 15 Nov 2019 18:12:53 +0100 + +libseccomp (2.4.2-1) unstable; urgency=medium + + [ Christian Ehrhardt ] + * New upstream release 2.4.2 for compatibility with newer kernels and + fixing FTBFS (LP: #1849785). + - drop d/p/python_install_dir.patch (now upstream) + - d/rules: adapt to python 3.8 lacking the m modifier on includes + see https://wiki.debian.org/Python/Python3.8 + - d/p/tests-rely-on-__SNR_xxx-instead-of-__NR_xxx-for-sysc.patch: fix + build time test on arm64 + + [ Felix Geyer ] + * Drop Python 2 bindings. (Closes: #936917) + - Add cython3.patch to use the Python 3 cython variant. + + -- Felix Geyer Wed, 13 Nov 2019 00:00:49 +0100 + +libseccomp (2.4.1-2) unstable; urgency=medium + + * Remove build-dependency on valgrind for mipsel and x32 as it's broken + on those archs. + * Set Rules-Requires-Root: no. + + -- Felix Geyer Fri, 19 Jul 2019 00:03:34 +0200 + +libseccomp (2.4.1-1) unstable; urgency=medium + + * New upstream release. + - Addresses CVE-2019-9893 (Closes: #924646) + * Drop all patches for parisc arch support, merged upstream. + * Build-depend on valgrind to run more unit tests. + * Run dh_auto_configure for every python 3 version to install the extension + in the correct path. + * Update the symbols file. + * Adapt autopkgtest to new upstream version: + - Build against pthread + - Build scmp_api_level tool + * Upgrade to debhelper compat level 12. + - Add d/not-installed file + * Fix install path of the python module. + - Add python_install_dir.patch + * Add autopkgtest for python packages. + + -- Felix Geyer Wed, 17 Jul 2019 23:23:28 +0200 + +libseccomp (2.3.3-4) unstable; urgency=medium + + [ Ondřej Nový ] + * d/copyright: Change Format URL to correct one + + [ Helmut Grohne ] + * Fix FTCBFS: (Closes: #903556) + + Multiarchify python Build-Depends. + + Annotate cython dependencies with :native for now. + + Drop noop dh_auto_build invocations. + + Pass a suitable PYTHONPATH for python2. + + Pass _PYTHON_SYSCONFIGDATA_NAME for python3. + + -- Felix Geyer Sun, 10 Feb 2019 12:25:44 +0100 + +libseccomp (2.3.3-3) unstable; urgency=medium + + * Fix FTBFS: Adapt to renamed README file. (Closes: #902767) + + -- Felix Geyer Sun, 01 Jul 2018 20:32:03 +0200 + +libseccomp (2.3.3-2) unstable; urgency=medium + + [ Helmut Grohne ] + * Support the nopython build profile. (Closes: #897057) + + [ Felix Geyer ] + * Run upstream "live" tests in an autopkgtest. + + -- Felix Geyer Sun, 13 May 2018 09:53:08 +0200 + +libseccomp (2.3.3-1) unstable; urgency=medium + + * New upstream release. (Closes: #895417) + - Adds pkey_mprotect syscall. (Closes: #893722) + * Refresh parisc patch. + * Move libseccomp2 back to /usr/lib. (Closes: #894988) + * Make test failures cause the build to fail. (Closes: 877901) + * Build python bindings. (Closes: #810712) + * Switch to debhelper compat level 10. + * Move git repo to salsa.debian.org + * Add myself to Uploaders. + + -- Felix Geyer Sun, 22 Apr 2018 23:55:03 +0200 + +libseccomp (2.3.1-2.1) unstable; urgency=medium + + [ Martin Pitt ] + * Non-maintainer upload with Kees' consent. + + [ Laurent Bigonville ] + * Ensure strict enough generated dependencies (Closes: #844496) + + -- Martin Pitt Thu, 17 Nov 2016 10:16:44 +0100 + +libseccomp (2.3.1-2) unstable; urgency=medium + + * Add hppa (parisc) support (Closes: #820501) + + -- Luca Bruno Sat, 28 May 2016 20:05:01 +0200 + +libseccomp (2.3.1-1) unstable; urgency=medium + + * New upstream release + * control: add Vcs-* fields + + -- Luca Bruno Tue, 05 Apr 2016 22:16:55 +0200 + +libseccomp (2.3.0-1) unstable; urgency=medium + + * New upstream release + + drop all patches, applied upstream + * libseccomp2: update symbols file + * control: add myself to uploaders + * control: bump policy version + + -- Luca Bruno Sun, 03 Apr 2016 00:31:09 +0200 + +libseccomp (2.2.3-3) unstable; urgency=medium + + [ Martin Pitt ] + * debian/patches/add-x86-32bit-socket-calls.patch: add the newly + connected direct socket calls. (Closes: #809556) + * debian/add-membarrier.patch: add membarrier syscall. + * Backport patches for ppc/ppc64 and s390x. (Closes: #800818) + + -- Kees Cook Tue, 01 Sep 2015 15:37:31 -0700 + +libseccomp (2.2.3-2) unstable; urgency=medium + + * debian/control: enable mips64, mips64el, and x32 architectures, + thanks to Helmut Grohne (Closes: 797383). + + -- Kees Cook Tue, 01 Sep 2015 15:37:31 -0700 + +libseccomp (2.2.3-1) unstable; urgency=medium + + * New upstream release (Closes: 793032). + * debian/control: update Homepage (Closes: 793033). + + -- Kees Cook Mon, 03 Aug 2015 15:06:08 -0700 + +libseccomp (2.2.1-2) unstable; urgency=medium + + * debian/{rules,*.install}: move to /lib, thanks to Michael Biebl + (Closes: 788923). + + -- Kees Cook Tue, 16 Jun 2015 12:45:08 -0700 + +libseccomp (2.2.1-1) unstable; urgency=medium + + * New upstream release (Closes: 785428). + - debian/patches dropped: incorporated upstream. + * debian/libseccomp2.symbols: include only documented symbols. + * debian/libseccomp-dev.install: include static library (Closes: 698508). + * debian/control: + - add newly supported arm64, mips, and mipsel. + - bump standards version, no changes needed. + + -- Kees Cook Sat, 16 May 2015 08:15:26 -0700 + +libseccomp (2.1.1-1) unstable; urgency=low + + * New upstream release (Closes: 733293). + * copyright: add a few missed people. + * rules: adjusted for new test target. + * libseccomp2.symbols: drop accidentally exported functions. + * control: + - bump standards, no changes needed. + - add armel target + + -- Kees Cook Sat, 12 Apr 2014 10:44:22 -0700 + +libseccomp (2.1.0+dfsg-1) unstable; urgency=low + + * Rebuild source package without accidental binaries (Closes: 725617). + - debian/watch: mangle upstream version check. + * debian/rules: make tests non-fatal while upstream fixes them + (Closes: 721292). + + -- Kees Cook Sun, 06 Oct 2013 15:05:51 -0700 + +libseccomp (2.1.0-1) unstable; urgency=low + + * New upstream release (Closes: 718398): + - dropped debian/patches/manpage-dashes.patch: taken upstream. + - dropped debian/patches/include-unistd.patch: not needed. + - debian/patches/testsuite-x86-write.patch: taken upstream. + - ABI bump: moved from libseccomp1 to libseccomp2. + * debian/control: + - added Arch: armhf, now supported upstream. + - added seccomp binary package for helper tools. + * Added debian/patches/manpage-typo.patch: spelling fix. + * Added debian/patches/build-ldflags.patch: fix LDFLAGS handling. + + -- Kees Cook Tue, 13 Aug 2013 00:02:01 -0700 + +libseccomp (1.0.1-2) unstable; urgency=low + + * debian/rules: enable testsuite at build time, thanks to + Stéphane Graber (Closes: 698803). + * Added debian/patches/include-unistd.patch: detect location of + asm/unistd.h correctly. + * Added debian/patches/testsuite-x86-write.patch: skip the "write" + syscall correctly on x86. + * debian/control: bump standards to 3.9.4, no changes needed. + + -- Kees Cook Wed, 23 Jan 2013 13:11:53 -0800 + +libseccomp (1.0.1-1) unstable; urgency=low + + * New upstream release. + * debian/control: only build on amd64 and i386 (Closes: 687368). + + -- Kees Cook Fri, 07 Dec 2012 11:38:03 -0800 + +libseccomp (1.0.0-1) unstable; urgency=low + + * New upstream release. + - bump ABI. + - drop build verbosity patch, use upstream V=1 instead. + * libseccomp-dev.manpages: fix build location (Closes: 682152, 682471). + * debian/patches/pkgconfig-macro.patch: use literals for macro. + + -- Kees Cook Fri, 03 Aug 2012 16:59:41 -0700 + +libseccomp (0.1.0-1) unstable; urgency=low + + * New upstream release. + - drop patches taken upstream: + - libexecdir.patch + - pass-flags.patch + + -- Kees Cook Fri, 08 Jun 2012 12:32:22 -0700 + +libseccomp (0.0.0~20120605-1) unstable; urgency=low + + * Initial release (Closes: #676257). + + -- Kees Cook Tue, 05 Jun 2012 11:28:07 -0700 diff --git a/control b/control new file mode 100644 index 0000000..592487b --- /dev/null +++ b/control @@ -0,0 +1,64 @@ +Source: libseccomp +Section: libs +Priority: optional +Maintainer: Kees Cook +Uploaders: Luca Bruno , Felix Geyer +Build-Depends: debhelper-compat (= 12), + linux-libc-dev, + dh-python , + python3-all-dev:any , + libpython3-all-dev , + cython3:native , + python3-setuptools , + valgrind [amd64 arm64 armhf i386 mips mips64 powerpc ppc64 ppc64el s390x] , + gperf +Rules-Requires-Root: no +Standards-Version: 3.9.7 +Homepage: https://github.com/seccomp/libseccomp +Vcs-Git: https://salsa.debian.org/debian/libseccomp.git +Vcs-Browser: https://salsa.debian.org/debian/libseccomp + +Package: libseccomp-dev +Section: libdevel +Architecture: linux-any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libseccomp2 (= ${binary:Version}), ${misc:Depends} +Suggests: seccomp +Description: high level interface to Linux seccomp filter (development files) + This library provides a high level interface to constructing, analyzing + and installing seccomp filters via a BPF passed to the Linux Kernel's + prctl() syscall. + . + This package contains the development files. + +Package: libseccomp2 +Architecture: linux-any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: high level interface to Linux seccomp filter + This library provides a high level interface to constructing, analyzing + and installing seccomp filters via a BPF passed to the Linux Kernel's + prctl() syscall. + +Package: seccomp +Section: utils +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: libseccomp-dev +Description: helper tools for high level interface to Linux seccomp filter + Provides helper tools for interacting with libseccomp. Currently, only + a single tool exists, providing a way to easily enumerate syscalls across + the supported architectures. + +Package: python3-seccomp +Build-Profiles: +Architecture: linux-any +Multi-Arch: same +Section: python +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends} +Description: high level interface to Linux seccomp filter (Python 3 bindings) + This library provides a high level interface to constructing, analyzing + and installing seccomp filters via a BPF passed to the Linux Kernel's + prctl() syscall. diff --git a/copyright b/copyright new file mode 100644 index 0000000..307817f --- /dev/null +++ b/copyright @@ -0,0 +1,39 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libseccomp +Source: https://sourceforge.net/projects/libseccomp/ + +Files: * +Copyright: 2012 Paul Moore + 2012 Ashley Lai + 2012 Corey Bryant + 2012 Eduardo Otubo + 2012 Eric Paris +License: LGPL-2.1 + +Files: tests/22-sim-basic_chains_array.tests +Copyright: 2013 Vitaly Shukela +License: LGPL-2.1 + +Files: src/hash.* +Copyright: 2006 Bob Jenkins +License: LGPL-2.1 + +Files: debian/* +Copyright: 2012 Kees Cook +License: LGPL-2.1 + +License: LGPL-2.1 + This library is free software; you can redistribute it and/or modify it + under the terms of version 2.1 of the GNU Lesser General Public License as + published by the Free Software Foundation. + . + This library is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + for more details. + . + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, see . + . + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in "/usr/share/common-licenses/LGPL-2.1". diff --git a/docs b/docs new file mode 100644 index 0000000..b43bf86 --- /dev/null +++ b/docs @@ -0,0 +1 @@ +README.md diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..c16083c --- /dev/null +++ b/gbp.conf @@ -0,0 +1,9 @@ +[DEFAULT] +upstream-tag = upstream/%(version)s +debian-tag = debian/%(version)s +pristine-tar = True +upstream-branch = upstream +debian-branch = debian/sid + +[buildpackage] +submodules = True diff --git a/libseccomp-dev.install b/libseccomp-dev.install new file mode 100644 index 0000000..b973af4 --- /dev/null +++ b/libseccomp-dev.install @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/*/lib*.so +usr/lib/*/lib*.a +usr/lib/*/pkgconfig/* diff --git a/libseccomp-dev.manpages b/libseccomp-dev.manpages new file mode 100644 index 0000000..7c72677 --- /dev/null +++ b/libseccomp-dev.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man3/* diff --git a/libseccomp2.install b/libseccomp2.install new file mode 100644 index 0000000..3ddde58 --- /dev/null +++ b/libseccomp2.install @@ -0,0 +1 @@ +usr/lib/*/lib*.so.* diff --git a/libseccomp2.symbols b/libseccomp2.symbols new file mode 100644 index 0000000..d1823d0 --- /dev/null +++ b/libseccomp2.symbols @@ -0,0 +1,34 @@ +libseccomp.so.2 libseccomp2 #MINVER# +* Build-Depends-Package: libseccomp-dev + seccomp_api_get@Base 2.4.1 + seccomp_api_set@Base 2.4.1 + seccomp_attr_get@Base 0.0.0~20120605 + seccomp_attr_set@Base 0.0.0~20120605 + seccomp_export_bpf@Base 0.0.0~20120605 + seccomp_export_pfc@Base 0.0.0~20120605 + seccomp_init@Base 0.0.0~20120605 + seccomp_load@Base 0.0.0~20120605 + seccomp_release@Base 0.0.0~20120605 + seccomp_reset@Base 0.0.0~20120605 + seccomp_rule_add@Base 0.0.0~20120605 + seccomp_rule_add_exact@Base 0.0.0~20120605 + seccomp_syscall_priority@Base 0.0.0~20120605 + seccomp_syscall_resolve_name@Base 1.0.1 + seccomp_merge@Base 1.0.1 + seccomp_notify_alloc@Base 2.5.0 + seccomp_notify_fd@Base 2.5.0 + seccomp_notify_free@Base 2.5.0 + seccomp_notify_id_valid@Base 2.5.0 + seccomp_notify_receive@Base 2.5.0 + seccomp_notify_respond@Base 2.5.0 + seccomp_arch_add@Base 1.0.1 + seccomp_arch_exist@Base 1.0.1 + seccomp_arch_remove@Base 1.0.1 + seccomp_arch_native@Base 2.1.0 + seccomp_rule_add_array@Base 2.1.0 + seccomp_rule_add_exact_array@Base 2.1.0 + seccomp_syscall_resolve_name_arch@Base 2.1.0 + seccomp_syscall_resolve_num_arch@Base 2.1.0 + seccomp_arch_resolve_name@Base 2.2.1 + seccomp_syscall_resolve_name_rewrite@Base 2.2.1 + seccomp_version@Base 2.3.0 diff --git a/not-installed b/not-installed new file mode 100644 index 0000000..4f60595 --- /dev/null +++ b/not-installed @@ -0,0 +1,3 @@ +usr/lib/python*/*-packages/install_files.txt +usr/lib/python*/*-packages/seccomp-*.egg-info +usr/lib/*/libseccomp.la diff --git a/patches/arch_Add_64-bit_LoongArch_support.patch b/patches/arch_Add_64-bit_LoongArch_support.patch new file mode 100644 index 0000000..ac7e0e4 --- /dev/null +++ b/patches/arch_Add_64-bit_LoongArch_support.patch @@ -0,0 +1,457 @@ +From 6966ec77b195ac289ae168c7c5646d59a307f33f Mon Sep 17 00:00:00 2001 +From: Xiaotian Wu +Date: Tue, 9 Feb 2021 15:39:13 +0800 +Subject: [PATCH] arch: Add 64-bit LoongArch support + +Signed-off-by: Xiaotian Wu +Signed-off-by: WANG Xuerui +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore +--- + include/seccomp.h.in | 12 ++++++++++ + src/Makefile.am | 1 + + src/arch-loongarch64.c | 42 ++++++++++++++++++++++++++++++++ + src/arch-loongarch64.h | 28 ++++++++++++++++++++++ + src/arch-syscall-dump.c | 4 ++++ + src/arch-syscall-validate | 50 +++++++++++++++++++++++++++++++++++++++ + src/arch.c | 7 ++++++ + src/gen_pfc.c | 2 ++ + src/python/libseccomp.pxd | 1 + + src/python/seccomp.pyx | 4 ++++ + src/syscalls.h | 4 ++++ + src/system.c | 1 + + tools/scmp_arch_detect.c | 3 +++ + tools/scmp_bpf_disasm.c | 2 ++ + tools/scmp_bpf_sim.c | 2 ++ + tools/util.c | 2 ++ + tools/util.h | 11 +++++++++ + 17 files changed, 176 insertions(+) + create mode 100644 src/arch-loongarch64.c + create mode 100644 src/arch-loongarch64.h + +diff --git a/include/seccomp.h.in b/include/seccomp.h.in +index dfbb2671..4ab10d9c 100644 +--- a/include/seccomp.h.in ++++ b/include/seccomp.h.in +@@ -152,6 +152,18 @@ struct scmp_arg_cmp { + #endif /* AUDIT_ARCH_AARCH64 */ + #define SCMP_ARCH_AARCH64 AUDIT_ARCH_AARCH64 + ++/** ++ * The LoongArch architecture tokens ++ */ ++/* 64-bit LoongArch audit support is upstream as of 5.19-rc1 */ ++#ifndef AUDIT_ARCH_LOONGARCH64 ++#ifndef EM_LOONGARCH ++#define EM_LOONGARCH 258 ++#endif /* EM_LOONGARCH */ ++#define AUDIT_ARCH_LOONGARCH64 (EM_LOONGARCH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) ++#endif /* AUDIT_ARCH_LOONGARCH64 */ ++#define SCMP_ARCH_LOONGARCH64 AUDIT_ARCH_LOONGARCH64 ++ + /** + * The MIPS architecture tokens + */ +diff --git a/src/Makefile.am b/src/Makefile.am +index 1ff0ee75..8c39d9e0 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -32,6 +32,7 @@ SOURCES_ALL = \ + arch-x32.h arch-x32.c \ + arch-arm.h arch-arm.c \ + arch-aarch64.h arch-aarch64.c \ ++ arch-loongarch64.h arch-loongarch64.c \ + arch-mips.h arch-mips.c \ + arch-mips64.h arch-mips64.c \ + arch-mips64n32.h arch-mips64n32.c \ +diff --git a/src/arch-loongarch64.c b/src/arch-loongarch64.c +new file mode 100644 +index 00000000..8268204d +--- /dev/null ++++ b/src/arch-loongarch64.c +@@ -0,0 +1,40 @@ ++/** ++ * Enhanced Seccomp 64-bit LoongArch Syscall Table ++ * ++ * Copyright (c) 2021 Xiaotian Wu ++ */ ++ ++/* ++ * This library is free software; you can redistribute it and/or modify it ++ * under the terms of version 2.1 of the GNU Lesser General Public License as ++ * published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library; if not, see . ++ */ ++ ++#include ++#include ++#include ++ ++#include "arch.h" ++#include "arch-loongarch64.h" ++#include "syscalls.h" ++ ++ARCH_DEF(loongarch64) ++ ++const struct arch_def arch_def_loongarch64 = { ++ .token = SCMP_ARCH_LOONGARCH64, ++ .token_bpf = AUDIT_ARCH_LOONGARCH64, ++ .size = ARCH_SIZE_64, ++ .endian = ARCH_ENDIAN_LITTLE, ++ .syscall_resolve_name_raw = loongarch64_syscall_resolve_name, ++ .syscall_resolve_num_raw = loongarch64_syscall_resolve_num, ++ .syscall_rewrite = NULL, ++ .rule_add = NULL, ++}; +diff --git a/src/arch-loongarch64.h b/src/arch-loongarch64.h +new file mode 100644 +index 00000000..c3c06af7 +--- /dev/null ++++ b/src/arch-loongarch64.h +@@ -0,0 +1,28 @@ ++/** ++ * Enhanced Seccomp 64-bit LoongArch Syscall Table ++ * ++ * Copyright (c) 2021 Xiaotian Wu ++ */ ++ ++/* ++ * This library is free software; you can redistribute it and/or modify it ++ * under the terms of version 2.1 of the GNU Lesser General Public License as ++ * published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library; if not, see . ++ */ ++ ++#ifndef _ARCH_LOONGARCH64_H ++#define _ARCH_LOONGARCH64_H ++ ++#include "arch.h" ++ ++ARCH_DECL(loongarch64) ++ ++#endif +diff --git a/src/arch-syscall-dump.c b/src/arch-syscall-dump.c +index 843483b2..abc1680f 100644 +--- a/src/arch-syscall-dump.c ++++ b/src/arch-syscall-dump.c +@@ -34,6 +34,7 @@ + #include "arch-x86_64.h" + #include "arch-x32.h" + #include "arch-arm.h" ++#include "arch-loongarch64.h" + #include "arch-mips.h" + #include "arch-mips64.h" + #include "arch-mips64n32.h" +@@ -107,6 +108,9 @@ int main(int argc, char *argv[]) + case SCMP_ARCH_AARCH64: + sys = aarch64_syscall_iterate(iter); + break; ++ case SCMP_ARCH_LOONGARCH64: ++ sys = loongarch64_syscall_iterate(iter); ++ break; + case SCMP_ARCH_MIPS: + case SCMP_ARCH_MIPSEL: + sys = mips_syscall_iterate(iter); +diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate +index 0cb4d8f4..b2f62c6d 100755 +--- a/src/arch-syscall-validate ++++ b/src/arch-syscall-validate +@@ -306,6 +306,48 @@ function dump_lib_aarch64() { + dump_lib_arch aarch64 | mangle_lib_syscall aarch64 + } + ++# ++# Dump the loongarch64 syscall table ++# ++# Arguments: ++# 1 path to the kernel source ++# ++# Dump the architecture's syscall table to stdout. ++# ++function dump_sys_loongarch64() { ++ local sed_filter="" ++ ++ sed_filter+='s/__NR3264_fadvise64/223/;' ++ sed_filter+='s/__NR3264_fcntl/25/;' ++ sed_filter+='s/__NR3264_fstatfs/44/;' ++ sed_filter+='s/__NR3264_ftruncate/46/;' ++ sed_filter+='s/__NR3264_lseek/62/;' ++ sed_filter+='s/__NR3264_mmap/222/;' ++ sed_filter+='s/__NR3264_sendfile/71/;' ++ sed_filter+='s/__NR3264_statfs/43/;' ++ sed_filter+='s/__NR3264_truncate/45/;' ++ ++ gcc -E -dM -I$1/include/uapi \ ++ -D__BITS_PER_LONG=64 \ ++ -D__ARCH_WANT_SYS_CLONE \ ++ -D__ARCH_WANT_SYS_CLONE3 \ ++ $1/arch/loongarch/include/uapi/asm/unistd.h | \ ++ grep "^#define __NR_" | \ ++ sed '/__NR_syscalls/d' | \ ++ sed '/__NR_arch_specific_syscall/d' | \ ++ sed 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+\(.*\)/\1,\2/' | \ ++ sed $sed_filter | sort ++} ++ ++# ++# Dump the loongarch64 library syscall table ++# ++# Dump the library's syscall table to stdout. ++# ++function dump_lib_loongarch64() { ++ dump_lib_arch loongarch64 | mangle_lib_syscall loongarch64 ++} ++ + # + # Dump the mips system syscall table + # +@@ -619,6 +661,9 @@ function dump_sys() { + aarch64) + dump_sys_aarch64 "$2" + ;; ++ loongarch64) ++ dump_sys_loongarch64 "$2" ++ ;; + mips) + dump_sys_mips "$2" + ;; +@@ -686,6 +731,9 @@ function dump_lib() { + aarch64) + dump_lib_aarch64 + ;; ++ loongarch64) ++ dump_lib_loongarch64 ++ ;; + mips) + dump_lib_mips + ;; +@@ -750,6 +798,7 @@ function gen_csv() { + abi_list="" + abi_list+=" x86 x86_64 x32" + abi_list+=" arm aarch64" ++ abi_list+=" loongarch64" + abi_list+=" mips mips64 mips64n32" + abi_list+=" parisc parisc64" + abi_list+=" ppc ppc64" +@@ -861,6 +910,7 @@ if [[ $opt_arches == "" ]]; then + opt_arches=" \ + x86 x86_64 x32 \ + arm aarch64 \ ++ loongarch64 \ + mips mips64 mips64n32 \ + parisc parisc64 \ + ppc ppc64 \ +diff --git a/src/arch.c b/src/arch.c +index 921e4557..8c45fa38 100644 +--- a/src/arch.c ++++ b/src/arch.c +@@ -35,6 +35,7 @@ + #include "arch-x32.h" + #include "arch-arm.h" + #include "arch-aarch64.h" ++#include "arch-loongarch64.h" + #include "arch-mips.h" + #include "arch-mips64.h" + #include "arch-mips64n32.h" +@@ -63,6 +64,8 @@ const struct arch_def *arch_def_native = &arch_def_x86_64; + const struct arch_def *arch_def_native = &arch_def_arm; + #elif __aarch64__ + const struct arch_def *arch_def_native = &arch_def_aarch64; ++#elif __loongarch64 ++const struct arch_def *arch_def_native = &arch_def_loongarch64; + #elif __mips__ && _MIPS_SIM == _MIPS_SIM_ABI32 + #if __MIPSEB__ + const struct arch_def *arch_def_native = &arch_def_mips; +@@ -141,6 +144,8 @@ const struct arch_def *arch_def_lookup(uint32_t token) + return &arch_def_arm; + case SCMP_ARCH_AARCH64: + return &arch_def_aarch64; ++ case SCMP_ARCH_LOONGARCH64: ++ return &arch_def_loongarch64; + case SCMP_ARCH_MIPS: + return &arch_def_mips; + case SCMP_ARCH_MIPSEL: +@@ -197,6 +202,8 @@ const struct arch_def *arch_def_lookup_name(const char *arch_name) + return &arch_def_arm; + else if (strcmp(arch_name, "aarch64") == 0) + return &arch_def_aarch64; ++ else if (strcmp(arch_name, "loongarch64") == 0) ++ return &arch_def_loongarch64; + else if (strcmp(arch_name, "mips") == 0) + return &arch_def_mips; + else if (strcmp(arch_name, "mipsel") == 0) +diff --git a/src/gen_pfc.c b/src/gen_pfc.c +index 4916055c..bb217c8e 100644 +--- a/src/gen_pfc.c ++++ b/src/gen_pfc.c +@@ -61,6 +61,8 @@ static const char *_pfc_arch(const struct arch_def *arch) + return "arm"; + case SCMP_ARCH_AARCH64: + return "aarch64"; ++ case SCMP_ARCH_LOONGARCH64: ++ return "loongarch64"; + case SCMP_ARCH_MIPS: + return "mips"; + case SCMP_ARCH_MIPSEL: +diff --git a/src/python/libseccomp.pxd b/src/python/libseccomp.pxd +index 55f8207d..a6bd0b43 100644 +--- a/src/python/libseccomp.pxd ++++ b/src/python/libseccomp.pxd +@@ -38,6 +38,7 @@ cdef extern from "seccomp.h": + SCMP_ARCH_X32 + SCMP_ARCH_ARM + SCMP_ARCH_AARCH64 ++ SCMP_ARCH_LOONGARCH64 + SCMP_ARCH_MIPS + SCMP_ARCH_MIPS64 + SCMP_ARCH_MIPS64N32 +diff --git a/src/python/seccomp.pyx b/src/python/seccomp.pyx +index 5657577f..9891d761 100644 +--- a/src/python/seccomp.pyx ++++ b/src/python/seccomp.pyx +@@ -206,6 +206,7 @@ cdef class Arch: + X32 - 64-bit x86 using the x32 ABI + ARM - ARM + AARCH64 - 64-bit ARM ++ LOONGARCH64 - 64-bit LoongArch + MIPS - MIPS O32 ABI + MIPS64 - MIPS 64-bit ABI + MIPS64N32 - MIPS N32 ABI +@@ -227,6 +228,7 @@ cdef class Arch: + X32 = libseccomp.SCMP_ARCH_X32 + ARM = libseccomp.SCMP_ARCH_ARM + AARCH64 = libseccomp.SCMP_ARCH_AARCH64 ++ LOONGARCH64 = libseccomp.SCMP_ARCH_LOONGARCH64 + MIPS = libseccomp.SCMP_ARCH_MIPS + MIPS64 = libseccomp.SCMP_ARCH_MIPS64 + MIPS64N32 = libseccomp.SCMP_ARCH_MIPS64N32 +@@ -264,6 +266,8 @@ cdef class Arch: + self._token = libseccomp.SCMP_ARCH_ARM + elif arch == libseccomp.SCMP_ARCH_AARCH64: + self._token = libseccomp.SCMP_ARCH_AARCH64 ++ elif arch == libseccomp.SCMP_ARCH_LOONGARCH64: ++ self._token = libseccomp.SCMP_ARCH_LOONGARCH64 + elif arch == libseccomp.SCMP_ARCH_MIPS: + self._token = libseccomp.SCMP_ARCH_MIPS + elif arch == libseccomp.SCMP_ARCH_MIPS64: +diff --git a/src/syscalls.h b/src/syscalls.h +index 3a9e0cb5..10b2b7a2 100644 +--- a/src/syscalls.h ++++ b/src/syscalls.h +@@ -15,6 +15,7 @@ + #include "arch-aarch64.h" + #include "arch-arm.h" + #include "arch.h" ++#include "arch-loongarch64.h" + #include "arch-mips64.h" + #include "arch-mips64n32.h" + #include "arch-mips.h" +@@ -51,6 +52,7 @@ struct arch_syscall_table { + int x32; + int arm; + int aarch64; ++ int loongarch64; + int mips; + int mips64; + int mips64n32; +diff --git a/src/system.c b/src/system.c +index 3d10e21d..e205de7a 100644 +--- a/src/system.c ++++ b/src/system.c +@@ -128,6 +128,7 @@ int sys_chk_seccomp_syscall(void) + case SCMP_ARCH_X86_64: + case SCMP_ARCH_ARM: + case SCMP_ARCH_AARCH64: ++ case SCMP_ARCH_LOONGARCH64: + case SCMP_ARCH_PPC64: + case SCMP_ARCH_PPC64LE: + case SCMP_ARCH_S390: +diff --git a/tools/scmp_arch_detect.c b/tools/scmp_arch_detect.c +index b6bd2bbd..c23cf7f6 100644 +--- a/tools/scmp_arch_detect.c ++++ b/tools/scmp_arch_detect.c +@@ -81,6 +81,9 @@ int main(int argc, char *argv[]) + case SCMP_ARCH_AARCH64: + printf("aarch64\n"); + break; ++ case SCMP_ARCH_LOONGARCH64: ++ printf("loongarch64\n"); ++ break; + case SCMP_ARCH_MIPS: + printf("mips\n"); + break; +diff --git a/tools/scmp_bpf_disasm.c b/tools/scmp_bpf_disasm.c +index b682de73..45726591 100644 +--- a/tools/scmp_bpf_disasm.c ++++ b/tools/scmp_bpf_disasm.c +@@ -484,6 +484,8 @@ int main(int argc, char *argv[]) + arch = AUDIT_ARCH_ARM; + else if (strcmp(optarg, "aarch64") == 0) + arch = AUDIT_ARCH_AARCH64; ++ else if (strcmp(optarg, "loongarch64") == 0) ++ arch = AUDIT_ARCH_LOONGARCH64; + else if (strcmp(optarg, "mips") == 0) + arch = AUDIT_ARCH_MIPS; + else if (strcmp(optarg, "mipsel") == 0) +diff --git a/tools/scmp_bpf_sim.c b/tools/scmp_bpf_sim.c +index 04edfbc3..7d31d790 100644 +--- a/tools/scmp_bpf_sim.c ++++ b/tools/scmp_bpf_sim.c +@@ -259,6 +259,8 @@ int main(int argc, char *argv[]) + arch = AUDIT_ARCH_ARM; + else if (strcmp(optarg, "aarch64") == 0) + arch = AUDIT_ARCH_AARCH64; ++ else if (strcmp(optarg, "loongarch64") == 0) ++ arch = AUDIT_ARCH_LOONGARCH64; + else if (strcmp(optarg, "mips") == 0) + arch = AUDIT_ARCH_MIPS; + else if (strcmp(optarg, "mipsel") == 0) +diff --git a/tools/util.c b/tools/util.c +index afea6c90..327fc148 100644 +--- a/tools/util.c ++++ b/tools/util.c +@@ -44,6 +44,8 @@ + #define ARCH_NATIVE AUDIT_ARCH_ARM + #elif __aarch64__ + #define ARCH_NATIVE AUDIT_ARCH_AARCH64 ++#elif __loongarch64 ++#define ARCH_NATIVE AUDIT_ARCH_LOONGARCH64 + #elif __mips__ && _MIPS_SIM == _MIPS_SIM_ABI32 + #if __MIPSEB__ + #define ARCH_NATIVE AUDIT_ARCH_MIPS +diff --git a/tools/util.h b/tools/util.h +index 6c2ca33d..24b9ed6a 100644 +--- a/tools/util.h ++++ b/tools/util.h +@@ -37,6 +37,17 @@ + #define AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) + #endif /* AUDIT_ARCH_AARCH64 */ + ++/** ++ * The 64-bit LoongArch architecture tokens ++ */ ++/* 64-bit LoongArch audit support is upstream as of 5.19-rc1 */ ++#ifndef AUDIT_ARCH_LOONGARCH64 ++#ifndef EM_LOONGARCH ++#define EM_LOONGARCH 258 ++#endif /* EM_LOONGARCH */ ++#define AUDIT_ARCH_LOONGARCH64 (EM_LOONGARCH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) ++#endif /* AUDIT_ARCH_LOONGARCH64 */ ++ + /** + * The MIPS architecture tokens + */ diff --git a/patches/arch_adapt_arch-syscall-validate_to_Linux_6.11.patch b/patches/arch_adapt_arch-syscall-validate_to_Linux_6.11.patch new file mode 100644 index 0000000..8e5131d --- /dev/null +++ b/patches/arch_adapt_arch-syscall-validate_to_Linux_6.11.patch @@ -0,0 +1,59 @@ +From 26e2b31a71d14e139730c2a4bbb626a249ad35b5 Mon Sep 17 00:00:00 2001 +From: WANG Xuerui +Date: Tue, 20 Aug 2024 12:16:55 +0800 +Subject: [PATCH] arch: adapt arch-syscall-validate to Linux 6.11 + +The aarch64, loongarch64 and riscv64 architectures have their syscall +table sources changed to scripts/syscall.tbl, from the original +inclusion of asm-generic/unistd.h. Make the script recognize the new +format for these architectures. + +Signed-off-by: WANG Xuerui +Signed-off-by: Paul Moore +--- + src/arch-syscall-validate | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate +index b9808e8d..92229cd5 100755 +--- a/src/arch-syscall-validate ++++ b/src/arch-syscall-validate +@@ -287,6 +287,13 @@ function dump_lib_arm() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_aarch64() { ++ local syscall_tbl_file="$1/arch/arm64/tools/syscall_64.tbl" ++ if [[ -e $syscall_tbl_file ]]; then ++ dump_from_syscall_tbl "$syscall_tbl_file" \ ++ 64 renameat rlimit memfd_secret ++ return ++ fi ++ + local sed_filter="" + + sed_filter+='s/__NR3264_statfs/43/;' +@@ -332,6 +339,11 @@ function dump_lib_aarch64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_loongarch64() { ++ if [[ -e $1/arch/loongarch/kernel/Makefile.syscalls ]]; then ++ dump_from_syscall_tbl "$1/scripts/syscall.tbl" 64 ++ return ++ fi ++ + local sed_filter="" + + sed_filter+='s/__NR3264_fadvise64/223/;' +@@ -543,6 +555,12 @@ function dump_lib_ppc64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_riscv64() { ++ if [[ -e $1/arch/riscv/kernel/Makefile.syscalls ]]; then ++ dump_from_syscall_tbl "$1/scripts/syscall.tbl" \ ++ 64 riscv rlimit memfd_secret ++ return ++ fi ++ + local sed_filter="" + + sed_filter+='s/__NR3264_fadvise64/223/;' diff --git a/patches/arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch b/patches/arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch new file mode 100644 index 0000000..f0eee38 --- /dev/null +++ b/patches/arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch @@ -0,0 +1,221 @@ +From cfce7b02f3fa44e36b7890f4ed92a3f4b8eb578b Mon Sep 17 00:00:00 2001 +From: WANG Xuerui +Date: Tue, 20 Aug 2024 12:05:46 +0800 +Subject: [PATCH] arch: unify handling of syscall.tbl in arch-syscall-validate + +Apart from de-duplication of logic, this refactor is also going to help +syncing to the Linux 6.11+ definitions, where all architectures are +converted to source their syscall definitions from syscall.tbl files. + +The change is tested on Linux 6.2 sources to not affect the generated +syscalls.csv apart from timestamp changes. + +Signed-off-by: WANG Xuerui +Signed-off-by: Paul Moore +--- + src/arch-syscall-validate | 113 ++++++++++++++++---------------------- + 1 file changed, 47 insertions(+), 66 deletions(-) + +diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate +index bbe2f4a8..b9808e8d 100755 +--- a/src/arch-syscall-validate ++++ b/src/arch-syscall-validate +@@ -162,6 +162,31 @@ function mangle_lib_syscall() { + sed $sed_filter | sed '/,-[0-9]\+$/d' + } + ++# ++# Dump syscalls matching specified tags from the given syscall.tbl file ++# ++# Arguments: ++# 1 path to the syscall.tbl file to dump ++# (rest) tags to match (except "common" which is always included) ++# ++# Dump the matched syscall table entries to stdout. ++# ++function dump_from_syscall_tbl() { ++ local file="$1" ++ shift ++ ++ local tag ++ local tag_regexp='^(common' ++ for tag in "$@"; do ++ tag_regexp="${tag_regexp}|${tag}" ++ done ++ tag_regexp="${tag_regexp}) " ++ ++ cat "$file" | grep -v '^#\|^$' | awk '{ print $2,$3,$1 }' | \ ++ grep -E "$tag_regexp" | awk '{ print $2","$3 }' | sort | \ ++ grep -Ev '^(reserved|unused)[0-9]+,' ++} ++ + # + # Dump the x86 system syscall table + # +@@ -171,9 +196,7 @@ function mangle_lib_syscall() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_x86() { +- cat $1/arch/x86/entry/syscalls/syscall_32.tbl | \ +- grep -v "^#" | awk '{ print $3","$1 }' | \ +- sort ++ dump_from_syscall_tbl "$1/arch/x86/entry/syscalls/syscall_32.tbl" i386 + } + + # +@@ -194,9 +217,7 @@ function dump_lib_x86() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_x86_64() { +- cat $1/arch/x86/entry/syscalls/syscall_64.tbl | \ +- grep -v "^#" | sed '/^$/d' | awk '{ print $2,$3,$1 }' | \ +- sed '/^x32/d' | awk '{ print $2","$3 }' | sort ++ dump_from_syscall_tbl "$1/arch/x86/entry/syscalls/syscall_64.tbl" 64 + } + + # +@@ -217,9 +238,7 @@ function dump_lib_x86_64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_x32() { +- cat $1/arch/x86/entry/syscalls/syscall_64.tbl | \ +- grep -v "^#" | sed '/^$/d' | awk '{ print $2,$3,$1 }' | \ +- sed '/^64/d' | awk '{ print $2","$3 }' | sort ++ dump_from_syscall_tbl "$1/arch/x86/entry/syscalls/syscall_64.tbl" x32 + } + + # +@@ -240,14 +259,12 @@ function dump_lib_x32() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_arm() { +- cat $1/arch/arm/tools/syscall.tbl | grep -v "^#" | \ +- sed -n "/[0-9]\+[ \t]\+\(common\|eabi\)/p" | \ +- awk '{ print $3","$1 }' | sort | (cat -; \ +- (cat $1/arch/arm/include/uapi/asm/unistd.h | \ +- grep "^#define __ARM_NR_" | \ +- grep -v "^#define __ARM_NR_BASE" | \ +- sed 's/#define __ARM_NR_\([a-z0-9_]*\)[ \t]\+(__ARM_NR_BASE+\(.*\))/\1 983040 + \2/' | \ +- awk '{ print $1","$2+$4 }')) | sort ++ dump_from_syscall_tbl "$1/arch/arm/tools/syscall.tbl" eabi | (cat -; \ ++ (cat $1/arch/arm/include/uapi/asm/unistd.h | \ ++ grep "^#define __ARM_NR_" | \ ++ grep -v "^#define __ARM_NR_BASE" | \ ++ sed 's/#define __ARM_NR_\([a-z0-9_]*\)[ \t]\+(__ARM_NR_BASE+\(.*\))/\1 983040 + \2/' | \ ++ awk '{ print $1","$2+$4 }')) | sort + } + + # +@@ -381,11 +394,7 @@ function dump_lib_m68k() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_mips() { +- cat $1/arch/mips/kernel/syscalls/syscall_o32.tbl | \ +- grep -v "^#" | \ +- sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \ +- sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \ +- awk '{ print $3","$1 }' | sort ++ dump_from_syscall_tbl "$1/arch/mips/kernel/syscalls/syscall_o32.tbl" o32 + } + + # +@@ -406,11 +415,7 @@ function dump_lib_mips() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_mips64() { +- cat $1/arch/mips/kernel/syscalls/syscall_n64.tbl | \ +- grep -v "^#" | \ +- sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \ +- sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \ +- awk '{ print $3","$1 }' | sort ++ dump_from_syscall_tbl "$1/arch/mips/kernel/syscalls/syscall_n64.tbl" n64 + } + + # +@@ -431,11 +436,7 @@ function dump_lib_mips64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_mips64n32() { +- cat $1/arch/mips/kernel/syscalls/syscall_n32.tbl | \ +- grep -v "^#" | \ +- sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \ +- sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \ +- awk '{ print $3","$1 }' | sort ++ dump_from_syscall_tbl "$1/arch/mips/kernel/syscalls/syscall_n32.tbl" n32 + } + + # +@@ -456,11 +457,7 @@ function dump_lib_mips64n32() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_parisc() { +- cat $1/arch/parisc/kernel/syscalls/syscall.tbl | \ +- grep -v "^#" | \ +- sed -n "/[0-9]\+[ \t]\+\(common\|32\)/p" | \ +- awk '{ print $3","$1 }' | \ +- sort ++ dump_from_syscall_tbl "$1/arch/parisc/kernel/syscalls/syscall.tbl" 32 + } + + # +@@ -481,11 +478,7 @@ function dump_lib_parisc() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_parisc64() { +- cat $1/arch/parisc/kernel/syscalls/syscall.tbl | \ +- grep -v "^#" | \ +- sed -n "/[0-9]\+[ \t]\+\(common\|64\)/p" | \ +- awk '{ print $3","$1 }' | \ +- sort ++ dump_from_syscall_tbl "$1/arch/parisc/kernel/syscalls/syscall.tbl" 64 + } + + # +@@ -506,9 +499,8 @@ function dump_lib_parisc64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_ppc() { +- cat $1/arch/powerpc/kernel/syscalls/syscall.tbl | grep -v "^#" | \ +- sed -ne "/[0-9]\+[ \t]\+\(common\|nospu\|32\)/p" | \ +- awk '{ print $3","$1 }' | sort ++ dump_from_syscall_tbl "$1/arch/powerpc/kernel/syscalls/syscall.tbl" \ ++ nospu 32 + } + + # +@@ -529,9 +521,8 @@ function dump_lib_ppc() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_ppc64() { +- cat $1/arch/powerpc/kernel/syscalls/syscall.tbl | grep -v "^#" | \ +- sed -ne "/[0-9]\+[ \t]\+\(common\|nospu\|64\)/p" | \ +- awk '{ print $3","$1 }' | sort ++ dump_from_syscall_tbl "$1/arch/powerpc/kernel/syscalls/syscall.tbl" \ ++ nospu 64 + } + + # +@@ -595,10 +586,7 @@ function dump_lib_riscv64() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_s390() { +- cat $1/arch/s390/kernel/syscalls/syscall.tbl | grep -v "^#" | \ +- sed -ne "/[0-9]\+[ \t]\+\(common\|32\)/p" | \ +- awk '{ print $3","$1 }' | \ +- sort ++ dump_from_syscall_tbl "$1/arch/s390/kernel/syscalls/syscall.tbl" 32 + } + + # +@@ -619,10 +607,7 @@ function dump_lib_s390() { + # Dump the architecture's syscall table to stdout. + # + function dump_sys_s390x() { +- cat $1/arch/s390/kernel/syscalls/syscall.tbl | grep -v "^#" | \ +- sed -ne "/[0-9]\+[ \t]\+\(common\|64\)/p" | \ +- awk '{ print $3","$1 }' | \ +- sort ++ dump_from_syscall_tbl "$1/arch/s390/kernel/syscalls/syscall.tbl" 64 + } + + # diff --git a/patches/doc_update_README_and_manpage_for_64-bit_LoongArch.patch b/patches/doc_update_README_and_manpage_for_64-bit_LoongArch.patch new file mode 100644 index 0000000..1dc04d3 --- /dev/null +++ b/patches/doc_update_README_and_manpage_for_64-bit_LoongArch.patch @@ -0,0 +1,42 @@ +From 7179ff3e7c0bb9dca87848259114fe57938890a6 Mon Sep 17 00:00:00 2001 +From: Xiaotian Wu +Date: Tue, 9 Feb 2021 15:52:55 +0800 +Subject: [PATCH] doc: update README and manpage for 64-bit LoongArch + +Signed-off-by: Xiaotian Wu +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore +--- + README.md | 1 + + doc/man/man1/scmp_sys_resolver.1 | 6 +++--- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/README.md b/README.md +index 18a5d5ba..ccbad2fe 100644 +--- a/README.md ++++ b/README.md +@@ -33,6 +33,7 @@ The libseccomp library currently supports the architectures listed below: + * 64-bit x86 x32 ABI (x32) + * 32-bit ARM EABI (arm) + * 64-bit ARM (aarch64) ++* 64-bit LoongArch (loongarch64) + * 32-bit MIPS (mips) + * 32-bit MIPS little endian (mipsel) + * 64-bit MIPS (mips64) +diff --git a/doc/man/man1/scmp_sys_resolver.1 b/doc/man/man1/scmp_sys_resolver.1 +index 267187b9..37d48c16 100644 +--- a/doc/man/man1/scmp_sys_resolver.1 ++++ b/doc/man/man1/scmp_sys_resolver.1 +@@ -34,9 +34,9 @@ special manner by libseccomp depending on the operation. + .B \-a \fIARCH + The architecture to use for resolving the system call. Valid + .I ARCH +-values are "x86", "x86_64", "x32", "arm", "aarch64", "mips", "mipsel", "mips64", +-"mipsel64", "mips64n32", "mipsel64n32", "parisc", "parisc64", "ppc", "ppc64", +-"ppc64le", "s390" and "s390x". ++values are "x86", "x86_64", "x32", "arm", "aarch64", "loongarch64", "mips", ++"mipsel", "mips64", "mipsel64", "mips64n32", "mipsel64n32", "parisc", ++"parisc64", "ppc", "ppc64", "ppc64le", "s390" and "s390x". + .TP + .B \-t + If necessary, translate the system call name to the proper system call number, diff --git a/patches/python_Fix_distutils_DeprecationWarning.patch b/patches/python_Fix_distutils_DeprecationWarning.patch new file mode 100644 index 0000000..41896cc --- /dev/null +++ b/patches/python_Fix_distutils_DeprecationWarning.patch @@ -0,0 +1,55 @@ +From afbde6ddaec7c58c3b281d43b0b287269ffca9bd Mon Sep 17 00:00:00 2001 +From: Tom Hromatka +Date: Mon, 21 Mar 2022 11:24:25 -0600 +Subject: [PATCH] python: Fix distutils DeprecationWarning + +The python distutils package is deprecated. Utilize +setuptools and cythonize instead. + + ./setup.py:26: DeprecationWarning: The distutils + package is deprecated and slated for removal in + Python 3.12. Use setuptools or check PEP 632 [1] for + potential alternatives + +[1] https://peps.python.org/pep-0632/ + +Fixes: https://github.com/seccomp/libseccomp/issues/372 +Acked-by: Paul Moore +Signed-off-by: Tom Hromatka +--- + src/python/setup.py | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/src/python/setup.py b/src/python/setup.py +index 04191117..46f9a731 100755 +--- a/src/python/setup.py ++++ b/src/python/setup.py +@@ -23,9 +23,9 @@ + + import os + +-from distutils.core import setup +-from distutils.extension import Extension +-from Cython.Distutils import build_ext ++from setuptools import setup ++from setuptools.extension import Extension ++from Cython.Build import cythonize + + setup( + name = "seccomp", +@@ -37,12 +37,9 @@ + maintainer_email = "paul@paul-moore.com", + license = "LGPLv2.1", + platforms = "Linux", +- cmdclass = {'build_ext': build_ext}, +- ext_modules = [ ++ ext_modules = cythonize([ + Extension("seccomp", ["seccomp.pyx"], + # unable to handle libtool libraries directly +- extra_objects=["../.libs/libseccomp.a"], +- # fix build warnings, see PEP 3123 +- extra_compile_args=["-fno-strict-aliasing"]) +- ] ++ extra_objects=["../.libs/libseccomp.a"]), ++ ]) + ) diff --git a/patches/python_single_version_externally_managed.patch b/patches/python_single_version_externally_managed.patch new file mode 100644 index 0000000..5e8be5b --- /dev/null +++ b/patches/python_single_version_externally_managed.patch @@ -0,0 +1,14 @@ +Fix building with setuptools instead of distutils. + +--- libseccomp-2.5.4.orig/src/python/Makefile.am ++++ libseccomp-2.5.4/src/python/Makefile.am +@@ -40,7 +40,8 @@ build: ../libseccomp.la libseccomp.pxd s + + install-exec-local: build + ${PY_INSTALL} --install-lib=${DESTDIR}/${pyexecdir} \ +- --record=${DESTDIR}/${pyexecdir}/install_files.txt ++ --record=${DESTDIR}/${pyexecdir}/install_files.txt \ ++ --single-version-externally-managed + + uninstall-local: + cat ${DESTDIR}/${pyexecdir}/install_files.txt | xargs ${RM} -f diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..5eb36ae --- /dev/null +++ b/patches/series @@ -0,0 +1,14 @@ +python_Fix_distutils_DeprecationWarning.patch +python_single_version_externally_managed.patch + +# loongarch64 support +syscalls_update_to_Linux_v6.0.patch +tests_add_fstatfs_syscall_in_the_06-sim-actions.patch +arch_Add_64-bit_LoongArch_support.patch +tests_Add_64-bit_LoongArch_support.patch +doc_update_README_and_manpage_for_64-bit_LoongArch.patch +tests_Fix_wrong_syscall-error_in_test_29.patch +tests_only_use_bogus_syscall_numbers_in_test_29.patch +arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch +arch_adapt_arch-syscall-validate_to_Linux_6.11.patch +syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch diff --git a/patches/syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch b/patches/syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch new file mode 100644 index 0000000..cb26266 --- /dev/null +++ b/patches/syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch @@ -0,0 +1,268 @@ +From f01e67509e45c672f4bdd643d94d90867cc19d90 Mon Sep 17 00:00:00 2001 +From: WANG Xuerui +Date: Tue, 20 Aug 2024 12:21:21 +0800 +Subject: [PATCH] syscalls: Update the syscall table for Linux v6.12-rc5 + +Due to the addition of fstat & newfstatat to the LoongArch syscall ABI, +tests 38 and 55 have to be updated for the changed syscall numbers. + +As for the PNR additions, normally they are allocated alphabetically for +the syscalls introduced between updates of the table, but in the v2.5 +release branch -10245 is already assigned to map_shadow_stack in +commit 53267af3fb5 ("all: update the syscall table for Linux v6.7-rc3"). +While the map_shadow_stack syscall is in fact available across all +architectures, for consistency with v2.5.5 and later it is kept in the +same position in this update. + +Signed-off-by: WANG Xuerui +Signed-off-by: Paul Moore +--- + include/seccomp-syscalls.h | 51 +++++++++++++++++++++++++++--- + src/syscalls.csv | 26 +++++++++++---- + tests/38-basic-pfc_coverage.pfc | 6 ++-- + tests/55-basic-pfc_binary_tree.pfc | 20 ++++++------ + 4 files changed, 80 insertions(+), 23 deletions(-) + +diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h +index 9488adc4..aff07d44 100644 +--- a/include/seccomp-syscalls.h ++++ b/include/seccomp-syscalls.h +@@ -276,6 +276,11 @@ + #define __PNR_memfd_secret -10244 + #define __PNR_map_shadow_stack -10245 + #define __PNR_fstat -10246 ++#define __PNR_atomic_barrier -10247 ++#define __PNR_atomic_cmpxchg_32 -10248 ++#define __PNR_getpagesize -10249 ++#define __PNR_riscv_hwprobe -10250 ++#define __PNR_uretprobe -10251 + + /* + * libseccomp syscall definitions +@@ -1065,6 +1078,8 @@ + #define __SNR_listen __PNR_listen + #endif + ++#define __SNR_listmount __NR_listmount ++ + #define __SNR_listxattr __NR_listxattr + + #define __SNR_llistxattr __NR_llistxattr +@@ -1083,6 +1098,12 @@ + + #define __SNR_lsetxattr __NR_lsetxattr + ++#define __SNR_lsm_get_self_attr __NR_lsm_get_self_attr ++ ++#define __SNR_lsm_list_modules __NR_lsm_list_modules ++ ++#define __SNR_lsm_set_self_attr __NR_lsm_set_self_attr ++ + #ifdef __NR_lstat + #define __SNR_lstat __NR_lstat + #else +@@ -1219,6 +1246,8 @@ + + #define __SNR_mremap __NR_mremap + ++#define __SNR_mseal __NR_mseal ++ + #ifdef __NR_msgctl + #define __SNR_msgctl __NR_msgctl + #else +@@ -1561,6 +1590,12 @@ + #define __SNR_riscv_flush_icache __PNR_riscv_flush_icache + #endif + ++#ifdef __NR_riscv_hwprobe ++#define __SNR_riscv_hwprobe __NR_riscv_hwprobe ++#else ++#define __SNR_riscv_hwprobe __PNR_riscv_hwprobe ++#endif ++ + #ifdef __NR_rmdir + #define __SNR_rmdir __NR_rmdir + #else +@@ -2051,6 +2086,8 @@ + #define __SNR_statfs64 __PNR_statfs64 + #endif + ++#define __SNR_statmount __NR_statmount ++ + #ifdef __NR_statx + #define __SNR_statx __NR_statx + #else +@@ -2259,6 +2296,12 @@ + + #define __SNR_unshare __NR_unshare + ++#ifdef __NR_uretprobe ++#define __SNR_uretprobe __NR_uretprobe ++#else ++#define __SNR_uretprobe __PNR_uretprobe ++#endif ++ + #ifdef __NR_uselib + #define __SNR_uselib __NR_uselib + #else +diff --git a/src/syscalls.csv b/src/syscalls.csv +index 1a831bfd..322fced6 100644 +--- a/src/syscalls.csv ++++ b/src/syscalls.csv +@@ -1,4 +1,4 @@ +-#syscall (v6.7.0 2024-02-05),x86,x86_64,x32,arm,aarch64,loongarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv64,s390,s390x ++#syscall (v6.12.0-rc5 2024-10-31),x86,x86_64,x32,arm,aarch64,loongarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv64,s390,s390x + accept,PNR,43,43,285,202,202,168,42,42,35,35,330,330,202,PNR,PNR + accept4,364,288,288,366,242,242,334,293,297,320,320,344,344,242,364,364 + access,33,21,21,33,PNR,PNR,33,20,20,33,33,33,33,PNR,33,33 +@@ -90,7 +90,7 @@ + fsmount,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432 + fsopen,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430 + fspick,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433 +-fstat,108,5,5,108,80,PNR,108,5,5,28,28,108,108,80,108,108 ++fstat,108,5,5,108,80,80,108,5,5,28,28,108,108,80,108,108 + fstat64,197,PNR,PNR,197,PNR,PNR,215,PNR,PNR,112,112,197,PNR,PNR,197,PNR + fstatat64,300,PNR,PNR,327,PNR,PNR,293,PNR,PNR,280,280,291,PNR,PNR,293,PNR + fstatfs,100,138,138,100,44,44,100,135,135,100,100,100,100,44,100,100 +@@ -183,6 +183,7 @@ + link,9,86,86,9,PNR,PNR,9,84,84,9,9,9,9,PNR,9,9 + linkat,303,265,265,330,37,37,296,255,259,283,283,294,294,37,296,296 + listen,363,50,50,284,201,201,174,49,49,32,32,329,329,201,363,363 ++listmount,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458 + listxattr,232,194,194,232,11,11,230,186,186,244,244,215,215,11,230,230 + llistxattr,233,195,195,233,12,12,231,187,187,245,245,216,216,12,231,231 + _llseek,140,PNR,PNR,140,PNR,PNR,140,PNR,PNR,140,140,140,140,PNR,140,PNR +@@ -191,10 +192,13 @@ + lremovexattr,236,198,198,236,15,15,234,190,190,248,248,219,219,15,234,234 + lseek,19,8,8,19,62,62,19,8,8,19,19,19,19,62,19,19 + lsetxattr,227,189,189,227,6,6,225,181,181,239,239,210,210,6,225,225 ++lsm_get_self_attr,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459 ++lsm_list_modules,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461 ++lsm_set_self_attr,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460 + lstat,107,6,6,107,PNR,PNR,107,6,6,84,84,107,107,PNR,107,107 + lstat64,196,PNR,PNR,196,PNR,PNR,214,PNR,PNR,198,198,196,PNR,PNR,196,PNR + madvise,219,28,28,220,233,233,218,27,27,119,119,205,205,233,219,219 +-map_shadow_stack,453,453,PNR,453,453,453,453,453,453,453,453,453,453,453,453,453 ++map_shadow_stack,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453 + mbind,274,237,237,319,235,235,268,227,231,260,260,259,259,235,268,268 + membarrier,375,324,324,389,283,283,358,318,322,343,343,365,365,283,356,356 + memfd_create,356,319,319,385,279,279,354,314,318,340,340,360,360,279,350,350 +@@ -226,6 +230,7 @@ + mq_timedsend_time64,418,PNR,PNR,418,PNR,PNR,418,PNR,418,418,PNR,418,PNR,PNR,418,PNR + mq_unlink,278,241,241,275,181,181,272,231,235,230,230,263,263,181,272,272 + mremap,163,25,25,163,216,216,167,24,24,163,163,163,163,216,163,163 ++mseal,462,462,462,462,462,462,462,462,462,462,462,462,462,462,462,462 + msgctl,402,71,71,304,187,187,402,69,69,191,191,402,402,187,402,402 + msgget,399,68,68,303,186,186,399,66,66,190,190,399,399,186,399,399 + msgrcv,401,70,70,302,188,188,401,68,68,189,189,401,401,188,401,401 +@@ -237,7 +242,7 @@ + munmap,91,11,11,91,215,215,91,11,11,91,91,91,91,215,91,91 + name_to_handle_at,341,303,303,370,264,264,339,298,303,325,325,345,345,264,335,335 + nanosleep,162,35,35,162,101,101,166,34,34,162,162,162,162,101,162,162 +-newfstatat,PNR,262,262,PNR,79,PNR,PNR,252,256,PNR,PNR,PNR,291,79,PNR,293 ++newfstatat,PNR,262,262,PNR,79,79,PNR,252,256,PNR,PNR,PNR,291,79,PNR,293 + _newselect,142,PNR,PNR,142,PNR,PNR,142,22,22,142,142,142,142,PNR,142,PNR + nfsservctl,169,180,PNR,169,42,42,189,173,173,PNR,PNR,168,168,42,169,169 + nice,34,PNR,PNR,34,PNR,PNR,34,PNR,PNR,34,34,34,34,PNR,34,34 +@@ -310,6 +315,7 @@ + request_key,287,249,249,310,218,218,281,240,244,265,265,270,270,218,279,279 + restart_syscall,0,219,219,0,128,128,253,213,214,0,0,0,0,128,7,7 + riscv_flush_icache,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,259,PNR,PNR ++riscv_hwprobe,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,258,PNR,PNR + rmdir,40,84,84,40,PNR,PNR,40,82,82,40,40,40,40,PNR,40,40 + rseq,386,334,334,398,293,293,367,327,331,354,354,387,387,293,383,383 + rtas,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,255,255,PNR,PNR,PNR +@@ -415,6 +421,7 @@ + stat64,195,PNR,PNR,195,PNR,PNR,213,PNR,PNR,101,101,195,PNR,PNR,195,PNR + statfs,99,137,137,99,43,43,99,134,134,99,99,99,99,43,99,99 + statfs64,268,PNR,PNR,266,PNR,PNR,255,PNR,217,298,298,252,252,PNR,265,265 ++statmount,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457 + statx,383,332,332,397,291,291,366,326,330,349,349,383,383,291,379,379 + stime,25,PNR,PNR,PNR,PNR,PNR,25,PNR,PNR,25,25,25,25,PNR,25,PNR + stty,31,PNR,PNR,PNR,PNR,PNR,31,PNR,PNR,PNR,PNR,31,31,PNR,PNR,PNR +@@ -466,6 +473,7 @@ + unlink,10,87,87,10,PNR,PNR,10,85,85,10,10,10,10,PNR,10,10 + unlinkat,301,263,263,328,35,35,294,253,257,281,281,292,292,35,294,294 + unshare,310,272,272,337,97,97,303,262,266,288,288,282,282,97,303,303 ++uretprobe,PNR,335,335,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR + uselib,86,134,PNR,86,PNR,PNR,86,PNR,PNR,86,86,86,86,PNR,86,86 + userfaultfd,374,323,323,388,282,282,357,317,321,344,344,364,364,282,355,355 + usr26,PNR,PNR,PNR,983043,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +diff --git a/tests/38-basic-pfc_coverage.pfc b/tests/38-basic-pfc_coverage.pfc +index 815470e6..02cbf726 100644 +--- a/tests/38-basic-pfc_coverage.pfc ++++ b/tests/38-basic-pfc_coverage.pfc +@@ -305,15 +305,15 @@ if ($arch == 3221225730) + # filter for syscall "open" (4294957130) [priority: 65535] + if ($syscall == 4294957130) + action KILL; +- # filter for syscall "fstat" (4294957051) [priority: 65535] +- if ($syscall == 4294957051) +- action KILL_PROCESS; + # filter for syscall "exit_group" (94) [priority: 65535] + if ($syscall == 94) + action LOG; + # filter for syscall "exit" (93) [priority: 65535] + if ($syscall == 93) + action TRACE(1); ++ # filter for syscall "fstat" (80) [priority: 65535] ++ if ($syscall == 80) ++ action KILL_PROCESS; + # filter for syscall "close" (57) [priority: 65535] + if ($syscall == 57) + action ERRNO(1); +diff --git a/tests/55-basic-pfc_binary_tree.pfc b/tests/55-basic-pfc_binary_tree.pfc +index 33109454..e63aa12c 100644 +--- a/tests/55-basic-pfc_binary_tree.pfc ++++ b/tests/55-basic-pfc_binary_tree.pfc +@@ -178,8 +178,8 @@ if ($arch == 3221225655) + # filter for arch loongarch64 (3221225730) + if ($arch == 3221225730) + if ($syscall > 62) +- if ($syscall > 214) +- if ($syscall > 4294957051) ++ if ($syscall > 139) ++ if ($syscall > 226) + # filter for syscall "lstat" (4294957133) [priority: 65535] + if ($syscall == 4294957133) + action ERRNO(6); +@@ -192,12 +192,7 @@ if ($arch == 3221225730) + # filter for syscall "stat" (4294957122) [priority: 65535] + if ($syscall == 4294957122) + action ERRNO(4); +- else # ($syscall <= 4294957051) +- # filter for syscall "fstat" (4294957051) [priority: 65533] +- if ($syscall == 4294957051) +- if ($a0.hi32 == 0) +- if ($a0.lo32 == 103) +- action ERRNO(5); ++ else # ($syscall <= 226) + # filter for syscall "mprotect" (226) [priority: 65533] + if ($syscall == 226) + if ($a0.hi32 == 0) +@@ -209,11 +204,11 @@ if ($arch == 3221225730) + # filter for syscall "munmap" (215) [priority: 65535] + if ($syscall == 215) + action ERRNO(11); +- else # ($syscall <= 214) +- if ($syscall > 68) + # filter for syscall "brk" (214) [priority: 65535] + if ($syscall == 214) + action ERRNO(12); ++ else # ($syscall <= 139) ++ if ($syscall > 68) + # filter for syscall "rt_sigreturn" (139) [priority: 65535] + if ($syscall == 139) + action ERRNO(15); +@@ -223,6 +218,11 @@ if ($arch == 3221225730) + # filter for syscall "rt_sigaction" (134) [priority: 65535] + if ($syscall == 134) + action ERRNO(13); ++ # filter for syscall "fstat" (80) [priority: 65533] ++ if ($syscall == 80) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 103) ++ action ERRNO(5); + else # ($syscall <= 68) + # filter for syscall "pwrite64" (68) [priority: 65531] + if ($syscall == 68) diff --git a/patches/syscalls_update_to_Linux_v6.0.patch b/patches/syscalls_update_to_Linux_v6.0.patch new file mode 100644 index 0000000..d708150 --- /dev/null +++ b/patches/syscalls_update_to_Linux_v6.0.patch @@ -0,0 +1,1007 @@ +From b9633de506eec837a9f91d4e98dedf5101fd5227 Mon Sep 17 00:00:00 2001 +From: Xiaotian Wu +Date: Sat, 6 Nov 2021 14:13:49 +0800 +Subject: [PATCH] syscalls: update to Linux v6.0 + +Signed-off-by: Xiaotian Wu +Signed-off-by: WANG Xuerui +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore +--- + include/seccomp-syscalls.h | 1 + + src/syscalls.csv | 964 ++++++++++++++++++------------------- + 2 files changed, 483 insertions(+), 482 deletions(-) + +diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h +index 845adb76..e1576d37 100644 +--- a/include/seccomp-syscalls.h ++++ b/include/seccomp-syscalls.h +@@ -276,6 +276,7 @@ + #define __PNR_riscv_flush_icache -10243 + #define __PNR_memfd_secret -10244 + #define __PNR_map_shadow_stack -10245 ++#define __PNR_fstat -10246 + + /* + * libseccomp syscall definitions +diff --git a/src/syscalls.csv b/src/syscalls.csv +index c08c27c5..aeb7c9e5 100644 +--- a/src/syscalls.csv ++++ b/src/syscalls.csv +@@ -1,488 +1,488 @@ +-#syscall (v6.7.0-rc3 2023-11-30),x86,x86_64,x32,arm,aarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv64,s390,s390x +-accept,PNR,43,43,285,202,168,42,42,35,35,330,330,202,PNR,PNR +-accept4,364,288,288,366,242,334,293,297,320,320,344,344,242,364,364 +-access,33,21,21,33,PNR,33,20,20,33,33,33,33,PNR,33,33 +-acct,51,163,163,51,89,51,158,158,51,51,51,51,89,51,51 +-add_key,286,248,248,309,217,280,239,243,264,264,269,269,217,278,278 +-adjtimex,124,159,159,124,171,124,154,154,124,124,124,124,171,124,124 +-afs_syscall,137,183,183,PNR,PNR,137,176,176,PNR,PNR,137,137,PNR,137,137 +-alarm,27,37,37,PNR,PNR,27,37,37,27,27,27,27,PNR,27,27 +-arch_prctl,384,158,158,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-arm_fadvise64_64,PNR,PNR,PNR,270,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-arm_sync_file_range,PNR,PNR,PNR,341,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-bdflush,134,PNR,PNR,134,PNR,134,PNR,PNR,134,134,134,134,PNR,134,134 +-bind,361,49,49,282,200,169,48,48,22,22,327,327,200,361,361 +-bpf,357,321,321,386,280,355,315,319,341,341,361,361,280,351,351 +-break,17,PNR,PNR,PNR,PNR,17,PNR,PNR,PNR,PNR,17,17,PNR,PNR,PNR +-breakpoint,PNR,PNR,PNR,983041,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-brk,45,12,12,45,214,45,12,12,45,45,45,45,214,45,45 +-cachectl,PNR,PNR,PNR,PNR,PNR,148,198,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-cacheflush,PNR,PNR,PNR,983042,PNR,147,197,197,356,356,PNR,PNR,PNR,PNR,PNR +-cachestat,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451 +-capget,184,125,125,184,90,204,123,123,106,106,183,183,90,184,184 +-capset,185,126,126,185,91,205,124,124,107,107,184,184,91,185,185 +-chdir,12,80,80,12,49,12,78,78,12,12,12,12,49,12,12 +-chmod,15,90,90,15,PNR,15,88,88,15,15,15,15,PNR,15,15 +-chown,182,92,92,182,PNR,202,90,90,180,180,181,181,PNR,182,212 +-chown32,212,PNR,PNR,212,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,212,PNR +-chroot,61,161,161,61,51,61,156,156,61,61,61,61,51,61,61 +-clock_adjtime,343,305,305,372,266,341,300,305,324,324,347,347,266,337,337 +-clock_adjtime64,405,PNR,PNR,405,PNR,405,PNR,405,405,PNR,405,PNR,PNR,405,PNR +-clock_getres,266,229,229,264,114,264,223,227,257,257,247,247,114,261,261 +-clock_getres_time64,406,PNR,PNR,406,PNR,406,PNR,406,406,PNR,406,PNR,PNR,406,PNR +-clock_gettime,265,228,228,263,113,263,222,226,256,256,246,246,113,260,260 +-clock_gettime64,403,PNR,PNR,403,PNR,403,PNR,403,403,PNR,403,PNR,PNR,403,PNR +-clock_nanosleep,267,230,230,265,115,265,224,228,258,258,248,248,115,262,262 +-clock_nanosleep_time64,407,PNR,PNR,407,PNR,407,PNR,407,407,PNR,407,PNR,PNR,407,PNR +-clock_settime,264,227,227,262,112,262,221,225,255,255,245,245,112,259,259 +-clock_settime64,404,PNR,PNR,404,PNR,404,PNR,404,404,PNR,404,PNR,PNR,404,PNR +-clone,120,56,56,120,220,120,55,55,120,120,120,120,220,120,120 +-clone3,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435 +-close,6,3,3,6,57,6,3,3,6,6,6,6,57,6,6 +-close_range,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436 +-connect,362,42,42,283,203,170,41,41,31,31,328,328,203,362,362 +-copy_file_range,377,326,326,391,285,360,320,324,346,346,379,379,285,375,375 +-creat,8,85,85,8,PNR,8,83,83,8,8,8,8,PNR,8,8 +-create_module,127,174,PNR,PNR,PNR,127,167,167,PNR,PNR,127,127,PNR,127,127 +-delete_module,129,176,176,129,106,129,169,169,129,129,129,129,106,129,129 +-dup,41,32,32,41,23,41,31,31,41,41,41,41,23,41,41 +-dup2,63,33,33,63,PNR,63,32,32,63,63,63,63,PNR,63,63 +-dup3,330,292,292,358,24,327,286,290,312,312,316,316,24,326,326 +-epoll_create,254,213,213,250,PNR,248,207,207,224,224,236,236,PNR,249,249 +-epoll_create1,329,291,291,357,20,326,285,289,311,311,315,315,20,327,327 +-epoll_ctl,255,233,233,251,21,249,208,208,225,225,237,237,21,250,250 +-epoll_ctl_old,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-epoll_pwait,319,281,281,346,22,313,272,276,297,297,303,303,22,312,312 +-epoll_pwait2,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441 +-epoll_wait,256,232,232,252,PNR,250,209,209,226,226,238,238,PNR,251,251 +-epoll_wait_old,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-eventfd,323,284,284,351,PNR,319,278,282,304,304,307,307,PNR,318,318 +-eventfd2,328,290,290,356,19,325,284,288,310,310,314,314,19,323,323 +-execve,11,59,520,11,221,11,57,57,11,11,11,11,221,11,11 +-execveat,358,322,545,387,281,356,316,320,342,342,362,362,281,354,354 +-exit,1,60,60,1,93,1,58,58,1,1,1,1,93,1,1 +-exit_group,252,231,231,248,94,246,205,205,222,222,234,234,94,248,248 +-faccessat,307,269,269,334,48,300,259,263,287,287,298,298,48,300,300 +-faccessat2,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439 +-fadvise64,250,221,221,PNR,223,254,215,216,PNR,PNR,233,233,223,253,253 +-fadvise64_64,272,PNR,PNR,PNR,PNR,PNR,PNR,PNR,236,236,254,PNR,PNR,264,PNR +-fallocate,324,285,285,352,47,320,279,283,305,305,309,309,47,314,314 +-fanotify_init,338,300,300,367,262,336,295,300,322,322,323,323,262,332,332 +-fanotify_mark,339,301,301,368,263,337,296,301,323,323,324,324,263,333,333 +-fchdir,133,81,81,133,50,133,79,79,133,133,133,133,50,133,133 +-fchmod,94,91,91,94,52,94,89,89,94,94,94,94,52,94,94 +-fchmodat,306,268,268,333,53,299,258,262,286,286,297,297,53,299,299 +-fchmodat2,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452 +-fchown,95,93,93,95,55,95,91,91,95,95,95,95,55,95,207 +-fchown32,207,PNR,PNR,207,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,207,PNR +-fchownat,298,260,260,325,54,291,250,254,278,278,289,289,54,291,291 +-fcntl,55,72,72,55,25,55,70,70,55,55,55,55,25,55,55 +-fcntl64,221,PNR,PNR,221,PNR,220,PNR,212,202,202,204,PNR,PNR,221,PNR +-fdatasync,148,75,75,148,83,152,73,73,148,148,148,148,83,148,148 +-fgetxattr,231,193,193,231,10,229,185,185,243,243,214,214,10,229,229 +-finit_module,350,313,313,379,273,348,307,312,333,333,353,353,273,344,344 +-flistxattr,234,196,196,234,13,232,188,188,246,246,217,217,13,232,232 +-flock,143,73,73,143,32,143,71,71,143,143,143,143,32,143,143 +-fork,2,57,57,2,PNR,2,56,56,2,2,2,2,PNR,2,2 +-fremovexattr,237,199,199,237,16,235,191,191,249,249,220,220,16,235,235 +-fsconfig,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431 +-fsetxattr,228,190,190,228,7,226,182,182,240,240,211,211,7,226,226 +-fsmount,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432 +-fsopen,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430 +-fspick,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433 +-fstat,108,5,5,108,80,108,5,5,28,28,108,108,80,108,108 +-fstat64,197,PNR,PNR,197,PNR,215,PNR,PNR,112,112,197,PNR,PNR,197,PNR +-fstatat64,300,PNR,PNR,327,PNR,293,PNR,PNR,280,280,291,PNR,PNR,293,PNR +-fstatfs,100,138,138,100,44,100,135,135,100,100,100,100,44,100,100 +-fstatfs64,269,PNR,PNR,267,PNR,256,PNR,218,299,299,253,253,PNR,266,266 +-fsync,118,74,74,118,82,118,72,72,118,118,118,118,82,118,118 +-ftime,35,PNR,PNR,PNR,PNR,35,PNR,PNR,PNR,PNR,35,35,PNR,PNR,PNR +-ftruncate,93,77,77,93,46,93,75,75,93,93,93,93,46,93,93 +-ftruncate64,194,PNR,PNR,194,PNR,212,PNR,PNR,200,200,194,PNR,PNR,194,PNR +-futex,240,202,202,240,98,238,194,194,210,210,221,221,98,238,238 +-futex_requeue,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456 +-futex_time64,422,PNR,PNR,422,PNR,422,PNR,422,422,PNR,422,PNR,PNR,422,PNR +-futex_wait,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455 +-futex_waitv,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449 +-futex_wake,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454 +-futimesat,299,261,261,326,PNR,292,251,255,279,279,290,290,PNR,292,292 +-getcpu,318,309,309,345,168,312,271,275,296,296,302,302,168,311,311 +-getcwd,183,79,79,183,17,203,77,77,110,110,182,182,17,183,183 +-getdents,141,78,78,141,PNR,141,76,76,141,141,141,141,PNR,141,141 +-getdents64,220,217,217,217,61,219,308,299,201,201,202,202,61,220,220 +-getegid,50,108,108,50,177,50,106,106,50,50,50,50,177,50,202 +-getegid32,202,PNR,PNR,202,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,202,PNR +-geteuid,49,107,107,49,175,49,105,105,49,49,49,49,175,49,201 +-geteuid32,201,PNR,PNR,201,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,PNR +-getgid,47,104,104,47,176,47,102,102,47,47,47,47,176,47,200 +-getgid32,200,PNR,PNR,200,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,200,PNR +-getgroups,80,115,115,80,158,80,113,113,80,80,80,80,158,80,205 +-getgroups32,205,PNR,PNR,205,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,205,PNR +-getitimer,105,36,36,105,102,105,35,35,105,105,105,105,102,105,105 +-get_kernel_syms,130,177,PNR,PNR,PNR,130,170,170,PNR,PNR,130,130,PNR,130,130 +-get_mempolicy,275,239,239,320,236,269,228,232,261,261,260,260,236,269,269 +-getpeername,368,52,52,287,205,171,51,51,53,53,332,332,205,368,368 +-getpgid,132,121,121,132,155,132,119,119,132,132,132,132,155,132,132 +-getpgrp,65,111,111,65,PNR,65,109,109,65,65,65,65,PNR,65,65 +-getpid,20,39,39,20,172,20,38,38,20,20,20,20,172,20,20 +-getpmsg,188,181,181,PNR,PNR,208,174,174,PNR,PNR,187,187,PNR,188,188 +-getppid,64,110,110,64,173,64,108,108,64,64,64,64,173,64,64 +-getpriority,96,140,140,96,141,96,137,137,96,96,96,96,141,96,96 +-getrandom,355,318,318,384,278,353,313,317,339,339,359,359,278,349,349 +-getresgid,171,120,120,171,150,191,118,118,171,171,170,170,150,171,211 +-getresgid32,211,PNR,PNR,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,211,PNR +-getresuid,165,118,118,165,148,186,116,116,165,165,165,165,148,165,209 +-getresuid32,209,PNR,PNR,209,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,209,PNR +-getrlimit,76,97,97,PNR,163,76,95,95,76,76,76,76,163,76,191 +-get_robust_list,312,274,531,339,100,310,269,273,290,290,299,299,100,305,305 +-getrusage,77,98,98,77,165,77,96,96,77,77,77,77,165,77,77 +-getsid,147,124,124,147,156,151,122,122,147,147,147,147,156,147,147 +-getsockname,367,51,51,286,204,172,50,50,44,44,331,331,204,367,367 +-getsockopt,365,55,542,295,209,173,54,54,182,182,340,340,209,365,365 +-get_thread_area,244,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-gettid,224,186,186,224,178,222,178,178,206,206,207,207,178,236,236 +-gettimeofday,78,96,96,78,169,78,94,94,78,78,78,78,169,78,78 +-get_tls,PNR,PNR,PNR,983046,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-getuid,24,102,102,24,174,24,100,100,24,24,24,24,174,24,199 +-getuid32,199,PNR,PNR,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,199,PNR +-getxattr,229,191,191,229,8,227,183,183,241,241,212,212,8,227,227 +-gtty,32,PNR,PNR,PNR,PNR,32,PNR,PNR,PNR,PNR,32,32,PNR,PNR,PNR +-idle,112,PNR,PNR,PNR,PNR,112,PNR,PNR,PNR,PNR,112,112,PNR,112,112 +-init_module,128,175,175,128,105,128,168,168,128,128,128,128,105,128,128 +-inotify_add_watch,292,254,254,317,27,285,244,248,270,270,276,276,27,285,285 +-inotify_init,291,253,253,316,PNR,284,243,247,269,269,275,275,PNR,284,284 +-inotify_init1,332,294,294,360,26,329,288,292,314,314,318,318,26,324,324 +-inotify_rm_watch,293,255,255,318,28,286,245,249,271,271,277,277,28,286,286 +-io_cancel,249,210,210,247,3,245,204,204,219,219,231,231,3,247,247 +-ioctl,54,16,514,54,29,54,15,15,54,54,54,54,29,54,54 +-io_destroy,246,207,207,244,1,242,201,201,216,216,228,228,1,244,244 +-io_getevents,247,208,208,245,4,243,202,202,217,217,229,229,4,245,245 +-ioperm,101,173,173,PNR,PNR,101,PNR,PNR,PNR,PNR,101,101,PNR,101,PNR +-io_pgetevents,385,333,333,399,292,368,328,332,350,350,388,388,292,382,382 +-io_pgetevents_time64,416,PNR,PNR,416,PNR,416,PNR,416,416,PNR,416,PNR,PNR,416,PNR +-iopl,110,172,172,PNR,PNR,110,PNR,PNR,PNR,PNR,110,110,PNR,PNR,PNR +-ioprio_get,290,252,252,315,31,315,274,278,268,268,274,274,31,283,283 +-ioprio_set,289,251,251,314,30,314,273,277,267,267,273,273,30,282,282 +-io_setup,245,206,543,243,0,241,200,200,215,215,227,227,0,243,243 +-io_submit,248,209,544,246,2,244,203,203,218,218,230,230,2,246,246 +-io_uring_enter,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426 +-io_uring_register,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427 +-io_uring_setup,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425 +-ipc,117,PNR,PNR,PNR,PNR,117,PNR,PNR,PNR,PNR,117,117,PNR,117,117 +-kcmp,349,312,312,378,272,347,306,311,332,332,354,354,272,343,343 +-kexec_file_load,PNR,320,320,401,294,PNR,PNR,PNR,355,355,382,382,294,381,381 +-kexec_load,283,246,528,347,104,311,270,274,300,300,268,268,104,277,277 +-keyctl,288,250,250,311,219,282,241,245,266,266,271,271,219,280,280 +-kill,37,62,62,37,129,37,60,60,37,37,37,37,129,37,37 +-landlock_add_rule,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445 +-landlock_create_ruleset,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444 +-landlock_restrict_self,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446 +-lchown,16,94,94,16,PNR,16,92,92,16,16,16,16,PNR,16,198 +-lchown32,198,PNR,PNR,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,198,PNR +-lgetxattr,230,192,192,230,9,228,184,184,242,242,213,213,9,228,228 +-link,9,86,86,9,PNR,9,84,84,9,9,9,9,PNR,9,9 +-linkat,303,265,265,330,37,296,255,259,283,283,294,294,37,296,296 +-listen,363,50,50,284,201,174,49,49,32,32,329,329,201,363,363 +-listxattr,232,194,194,232,11,230,186,186,244,244,215,215,11,230,230 +-llistxattr,233,195,195,233,12,231,187,187,245,245,216,216,12,231,231 +-_llseek,140,PNR,PNR,140,PNR,140,PNR,PNR,140,140,140,140,PNR,140,PNR +-lock,53,PNR,PNR,PNR,PNR,53,PNR,PNR,PNR,PNR,53,53,PNR,PNR,PNR +-lookup_dcookie,253,212,212,249,18,247,206,206,223,223,235,235,18,110,110 +-lremovexattr,236,198,198,236,15,234,190,190,248,248,219,219,15,234,234 +-lseek,19,8,8,19,62,19,8,8,19,19,19,19,62,19,19 +-lsetxattr,227,189,189,227,6,225,181,181,239,239,210,210,6,225,225 +-lstat,107,6,6,107,PNR,107,6,6,84,84,107,107,PNR,107,107 +-lstat64,196,PNR,PNR,196,PNR,214,PNR,PNR,198,198,196,PNR,PNR,196,PNR +-madvise,219,28,28,220,233,218,27,27,119,119,205,205,233,219,219 +-map_shadow_stack,453,453,PNR,453,453,453,453,453,453,453,453,453,453,453,453 +-mbind,274,237,237,319,235,268,227,231,260,260,259,259,235,268,268 +-membarrier,375,324,324,389,283,358,318,322,343,343,365,365,283,356,356 +-memfd_create,356,319,319,385,279,354,314,318,340,340,360,360,279,350,350 +-memfd_secret,447,447,447,PNR,447,PNR,PNR,PNR,PNR,PNR,PNR,PNR,447,447,447 +-migrate_pages,294,256,256,400,238,287,246,250,272,272,258,258,238,287,287 +-mincore,218,27,27,219,232,217,26,26,72,72,206,206,232,218,218 +-mkdir,39,83,83,39,PNR,39,81,81,39,39,39,39,PNR,39,39 +-mkdirat,296,258,258,323,34,289,248,252,276,276,287,287,34,289,289 +-mknod,14,133,133,14,PNR,14,131,131,14,14,14,14,PNR,14,14 +-mknodat,297,259,259,324,33,290,249,253,277,277,288,288,33,290,290 +-mlock,150,149,149,150,228,154,146,146,150,150,150,150,228,150,150 +-mlock2,376,325,325,390,284,359,319,323,345,345,378,378,284,374,374 +-mlockall,152,151,151,152,230,156,148,148,152,152,152,152,230,152,152 +-mmap,90,9,9,PNR,222,90,9,9,90,90,90,90,222,90,90 +-mmap2,192,PNR,PNR,192,PNR,210,PNR,PNR,89,89,192,PNR,PNR,192,PNR +-modify_ldt,123,154,154,PNR,PNR,123,PNR,PNR,PNR,PNR,123,123,PNR,PNR,PNR +-mount,21,165,165,21,40,21,160,160,21,21,21,21,40,21,21 +-mount_setattr,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442 +-move_mount,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429 +-move_pages,317,279,533,344,239,308,267,271,295,295,301,301,239,310,310 +-mprotect,125,10,10,125,226,125,10,10,125,125,125,125,226,125,125 +-mpx,56,PNR,PNR,PNR,PNR,56,PNR,PNR,PNR,PNR,56,56,PNR,PNR,PNR +-mq_getsetattr,282,245,245,279,185,276,235,239,234,234,267,267,185,276,276 +-mq_notify,281,244,527,278,184,275,234,238,233,233,266,266,184,275,275 +-mq_open,277,240,240,274,180,271,230,234,229,229,262,262,180,271,271 +-mq_timedreceive,280,243,243,277,183,274,233,237,232,232,265,265,183,274,274 +-mq_timedreceive_time64,419,PNR,PNR,419,PNR,419,PNR,419,419,PNR,419,PNR,PNR,419,PNR +-mq_timedsend,279,242,242,276,182,273,232,236,231,231,264,264,182,273,273 +-mq_timedsend_time64,418,PNR,PNR,418,PNR,418,PNR,418,418,PNR,418,PNR,PNR,418,PNR +-mq_unlink,278,241,241,275,181,272,231,235,230,230,263,263,181,272,272 +-mremap,163,25,25,163,216,167,24,24,163,163,163,163,216,163,163 +-msgctl,402,71,71,304,187,402,69,69,191,191,402,402,187,402,402 +-msgget,399,68,68,303,186,399,66,66,190,190,399,399,186,399,399 +-msgrcv,401,70,70,302,188,401,68,68,189,189,401,401,188,401,401 +-msgsnd,400,69,69,301,189,400,67,67,188,188,400,400,189,400,400 +-msync,144,26,26,144,227,144,25,25,144,144,144,144,227,144,144 +-multiplexer,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,201,PNR,PNR,PNR +-munlock,151,150,150,151,229,155,147,147,151,151,151,151,229,151,151 +-munlockall,153,152,152,153,231,157,149,149,153,153,153,153,231,153,153 +-munmap,91,11,11,91,215,91,11,11,91,91,91,91,215,91,91 +-name_to_handle_at,341,303,303,370,264,339,298,303,325,325,345,345,264,335,335 +-nanosleep,162,35,35,162,101,166,34,34,162,162,162,162,101,162,162 +-newfstatat,PNR,262,262,PNR,79,PNR,252,256,PNR,PNR,PNR,291,79,PNR,293 +-_newselect,142,PNR,PNR,142,PNR,142,22,22,142,142,142,142,PNR,142,PNR +-nfsservctl,169,180,PNR,169,42,189,173,173,PNR,PNR,168,168,42,169,169 +-nice,34,PNR,PNR,34,PNR,34,PNR,PNR,34,34,34,34,PNR,34,34 +-oldfstat,28,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,28,28,PNR,PNR,PNR +-oldlstat,84,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,84,84,PNR,PNR,PNR +-oldolduname,59,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,59,59,PNR,PNR,PNR +-oldstat,18,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,18,18,PNR,PNR,PNR +-olduname,109,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,109,109,PNR,PNR,PNR +-open,5,2,2,5,PNR,5,2,2,5,5,5,5,PNR,5,5 +-openat,295,257,257,322,56,288,247,251,275,275,286,286,56,288,288 +-openat2,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437 +-open_by_handle_at,342,304,304,371,265,340,299,304,326,326,346,346,265,336,336 +-open_tree,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428 +-pause,29,34,34,29,PNR,29,33,33,29,29,29,29,PNR,29,29 +-pciconfig_iobase,PNR,PNR,PNR,271,PNR,PNR,PNR,PNR,PNR,PNR,200,200,PNR,PNR,PNR +-pciconfig_read,PNR,PNR,PNR,272,PNR,PNR,PNR,PNR,PNR,PNR,198,198,PNR,PNR,PNR +-pciconfig_write,PNR,PNR,PNR,273,PNR,PNR,PNR,PNR,PNR,PNR,199,199,PNR,PNR,PNR +-perf_event_open,336,298,298,364,241,333,292,296,318,318,319,319,241,331,331 +-personality,136,135,135,136,92,136,132,132,136,136,136,136,92,136,136 +-pidfd_getfd,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438 +-pidfd_open,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434 +-pidfd_send_signal,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424 +-pipe,42,22,22,42,PNR,42,21,21,42,42,42,42,PNR,42,42 +-pipe2,331,293,293,359,59,328,287,291,313,313,317,317,59,325,325 +-pivot_root,217,155,155,218,41,216,151,151,67,67,203,203,41,217,217 +-pkey_alloc,381,330,330,395,289,364,324,328,352,352,384,384,289,385,385 +-pkey_free,382,331,331,396,290,365,325,329,353,353,385,385,290,386,386 +-pkey_mprotect,380,329,329,394,288,363,323,327,351,351,386,386,288,384,384 +-poll,168,7,7,168,PNR,188,7,7,168,168,167,167,PNR,168,168 +-ppoll,309,271,271,336,73,302,261,265,274,274,281,281,73,302,302 +-ppoll_time64,414,PNR,PNR,414,PNR,414,PNR,414,414,PNR,414,PNR,PNR,414,PNR +-prctl,172,157,157,172,167,192,153,153,172,172,171,171,167,172,172 +-pread64,180,17,17,180,67,200,16,16,108,108,179,179,67,180,180 +-preadv,333,295,534,361,69,330,289,293,315,315,320,320,69,328,328 +-preadv2,378,327,546,392,286,361,321,325,347,347,380,380,286,376,376 +-prlimit64,340,302,302,369,261,338,297,302,321,321,325,325,261,334,334 +-process_madvise,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440 +-process_mrelease,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448 +-process_vm_readv,347,310,539,376,270,345,304,309,330,330,351,351,270,340,340 +-process_vm_writev,348,311,540,377,271,346,305,310,331,331,352,352,271,341,341 +-prof,44,PNR,PNR,PNR,PNR,44,PNR,PNR,PNR,PNR,44,44,PNR,PNR,PNR +-profil,98,PNR,PNR,PNR,PNR,98,PNR,PNR,PNR,PNR,98,98,PNR,PNR,PNR +-pselect6,308,270,270,335,72,301,260,264,273,273,280,280,72,301,301 +-pselect6_time64,413,PNR,PNR,413,PNR,413,PNR,413,413,PNR,413,PNR,PNR,413,PNR +-ptrace,26,101,521,26,117,26,99,99,26,26,26,26,117,26,26 +-putpmsg,189,182,182,PNR,PNR,209,175,175,PNR,PNR,188,188,PNR,189,189 +-pwrite64,181,18,18,181,68,201,17,17,109,109,180,180,68,181,181 +-pwritev,334,296,535,362,70,331,290,294,316,316,321,321,70,329,329 +-pwritev2,379,328,547,393,287,362,322,326,348,348,381,381,287,377,377 +-query_module,167,178,PNR,PNR,PNR,187,171,171,PNR,PNR,166,166,PNR,167,167 +-quotactl,131,179,179,131,60,131,172,172,131,131,131,131,60,131,131 +-quotactl_fd,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443 +-read,3,0,0,3,63,3,0,0,3,3,3,3,63,3,3 +-readahead,225,187,187,225,213,223,179,179,207,207,191,191,213,222,222 +-readdir,89,PNR,PNR,PNR,PNR,89,PNR,PNR,PNR,PNR,89,89,PNR,89,89 +-readlink,85,89,89,85,PNR,85,87,87,85,85,85,85,PNR,85,85 +-readlinkat,305,267,267,332,78,298,257,261,285,285,296,296,78,298,298 +-readv,145,19,515,145,65,145,18,18,145,145,145,145,65,145,145 +-reboot,88,169,169,88,142,88,164,164,88,88,88,88,142,88,88 +-recv,PNR,PNR,PNR,291,PNR,175,PNR,PNR,98,98,336,336,PNR,PNR,PNR +-recvfrom,371,45,517,292,207,176,44,44,123,123,337,337,207,371,371 +-recvmmsg,337,299,537,365,243,335,294,298,319,319,343,343,243,357,357 +-recvmmsg_time64,417,PNR,PNR,417,PNR,417,PNR,417,417,PNR,417,PNR,PNR,417,PNR +-recvmsg,372,47,519,297,212,177,46,46,184,184,342,342,212,372,372 +-remap_file_pages,257,216,216,253,234,251,210,210,227,227,239,239,234,267,267 +-removexattr,235,197,197,235,14,233,189,189,247,247,218,218,14,233,233 +-rename,38,82,82,38,PNR,38,80,80,38,38,38,38,PNR,38,38 +-renameat,302,264,264,329,38,295,254,258,282,282,293,293,PNR,295,295 +-renameat2,353,316,316,382,276,351,311,315,337,337,357,357,276,347,347 +-request_key,287,249,249,310,218,281,240,244,265,265,270,270,218,279,279 +-restart_syscall,0,219,219,0,128,253,213,214,0,0,0,0,128,7,7 +-riscv_flush_icache,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,259,PNR,PNR +-rmdir,40,84,84,40,PNR,40,82,82,40,40,40,40,PNR,40,40 +-rseq,386,334,334,398,293,367,327,331,354,354,387,387,293,383,383 +-rtas,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,255,255,PNR,PNR,PNR +-rt_sigaction,174,13,512,174,134,194,13,13,174,174,173,173,134,174,174 +-rt_sigpending,176,127,522,176,136,196,125,125,176,176,175,175,136,176,176 +-rt_sigprocmask,175,14,14,175,135,195,14,14,175,175,174,174,135,175,175 +-rt_sigqueueinfo,178,129,524,178,138,198,127,127,178,178,177,177,138,178,178 +-rt_sigreturn,173,15,513,173,139,193,211,211,173,173,172,172,139,173,173 +-rt_sigsuspend,179,130,130,179,133,199,128,128,179,179,178,178,133,179,179 +-rt_sigtimedwait,177,128,523,177,137,197,126,126,177,177,176,176,137,177,177 +-rt_sigtimedwait_time64,421,PNR,PNR,421,PNR,421,PNR,421,421,PNR,421,PNR,PNR,421,PNR +-rt_tgsigqueueinfo,335,297,536,363,240,332,291,295,317,317,322,322,240,330,330 +-s390_guarded_storage,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,378,378 +-s390_pci_mmio_read,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,353,353 +-s390_pci_mmio_write,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,352,352 +-s390_runtime_instr,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,342,342 +-s390_sthyi,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,380,380 +-sched_getaffinity,242,204,204,242,123,240,196,196,212,212,223,223,123,240,240 +-sched_getattr,352,315,315,381,275,350,310,314,335,335,356,356,275,346,346 +-sched_getparam,155,143,143,155,121,159,140,140,155,155,155,155,121,155,155 +-sched_get_priority_max,159,146,146,159,125,163,143,143,159,159,159,159,125,159,159 +-sched_get_priority_min,160,147,147,160,126,164,144,144,160,160,160,160,126,160,160 +-sched_getscheduler,157,145,145,157,120,161,142,142,157,157,157,157,120,157,157 +-sched_rr_get_interval,161,148,148,161,127,165,145,145,161,161,161,161,127,161,161 +-sched_rr_get_interval_time64,423,PNR,PNR,423,PNR,423,PNR,423,423,PNR,423,PNR,PNR,423,PNR +-sched_setaffinity,241,203,203,241,122,239,195,195,211,211,222,222,122,239,239 +-sched_setattr,351,314,314,380,274,349,309,313,334,334,355,355,274,345,345 +-sched_setparam,154,142,142,154,118,158,139,139,154,154,154,154,118,154,154 +-sched_setscheduler,156,144,144,156,119,160,141,141,156,156,156,156,119,156,156 +-sched_yield,158,24,24,158,124,162,23,23,158,158,158,158,124,158,158 +-seccomp,354,317,317,383,277,352,312,316,338,338,358,358,277,348,348 +-security,PNR,185,185,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-select,82,23,23,PNR,PNR,PNR,PNR,PNR,PNR,PNR,82,82,PNR,PNR,142 +-semctl,394,66,66,300,191,394,64,64,187,187,394,394,191,394,394 +-semget,393,64,64,299,190,393,62,62,186,186,393,393,190,393,393 +-semop,PNR,65,65,298,193,PNR,63,63,185,185,PNR,PNR,193,PNR,PNR +-semtimedop,PNR,220,220,312,192,PNR,214,215,228,228,PNR,392,192,PNR,392 +-semtimedop_time64,420,PNR,PNR,420,PNR,420,PNR,420,420,PNR,420,PNR,PNR,420,PNR +-send,PNR,PNR,PNR,289,PNR,178,PNR,PNR,58,58,334,334,PNR,PNR,PNR +-sendfile,187,40,40,187,71,207,39,39,122,122,186,186,71,187,187 +-sendfile64,239,PNR,PNR,239,PNR,237,PNR,219,209,209,226,PNR,PNR,223,PNR +-sendmmsg,345,307,538,374,269,343,302,307,329,329,349,349,269,358,358 +-sendmsg,370,46,518,296,211,179,45,45,183,183,341,341,211,370,370 +-sendto,369,44,44,290,206,180,43,43,82,82,335,335,206,369,369 +-setdomainname,121,171,171,121,162,121,166,166,121,121,121,121,162,121,121 +-setfsgid,139,123,123,139,152,139,121,121,139,139,139,139,152,139,216 +-setfsgid32,216,PNR,PNR,216,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,216,PNR +-setfsuid,138,122,122,138,151,138,120,120,138,138,138,138,151,138,215 +-setfsuid32,215,PNR,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,215,PNR +-setgid,46,106,106,46,144,46,104,104,46,46,46,46,144,46,214 +-setgid32,214,PNR,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,214,PNR +-setgroups,81,116,116,81,159,81,114,114,81,81,81,81,159,81,206 +-setgroups32,206,PNR,PNR,206,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,206,PNR +-sethostname,74,170,170,74,161,74,165,165,74,74,74,74,161,74,74 +-setitimer,104,38,38,104,103,104,36,36,104,104,104,104,103,104,104 +-set_mempolicy,276,238,238,321,237,270,229,233,262,262,261,261,237,270,270 +-set_mempolicy_home_node,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450 +-setns,346,308,308,375,268,344,303,308,328,328,350,350,268,339,339 +-setpgid,57,109,109,57,154,57,107,107,57,57,57,57,154,57,57 +-setpriority,97,141,141,97,140,97,138,138,97,97,97,97,140,97,97 +-setregid,71,114,114,71,143,71,112,112,71,71,71,71,143,71,204 +-setregid32,204,PNR,PNR,204,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,204,PNR +-setresgid,170,119,119,170,149,190,117,117,170,170,169,169,149,170,210 +-setresgid32,210,PNR,PNR,210,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,210,PNR +-setresuid,164,117,117,164,147,185,115,115,164,164,164,164,147,164,208 +-setresuid32,208,PNR,PNR,208,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,208,PNR +-setreuid,70,113,113,70,145,70,111,111,70,70,70,70,145,70,203 +-setreuid32,203,PNR,PNR,203,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,203,PNR +-setrlimit,75,160,160,75,164,75,155,155,75,75,75,75,164,75,75 +-set_robust_list,311,273,530,338,99,309,268,272,289,289,300,300,99,304,304 +-setsid,66,112,112,66,157,66,110,110,66,66,66,66,157,66,66 +-setsockopt,366,54,541,294,208,181,53,53,181,181,339,339,208,366,366 +-set_thread_area,243,205,PNR,PNR,PNR,283,242,246,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-set_tid_address,258,218,218,256,96,252,212,213,237,237,232,232,96,252,252 +-settimeofday,79,164,164,79,170,79,159,159,79,79,79,79,170,79,79 +-set_tls,PNR,PNR,PNR,983045,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-setuid,23,105,105,23,146,23,103,103,23,23,23,23,146,23,213 +-setuid32,213,PNR,PNR,213,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,213,PNR +-setxattr,226,188,188,226,5,224,180,180,238,238,209,209,5,224,224 +-sgetmask,68,PNR,PNR,PNR,PNR,68,PNR,PNR,68,68,68,68,PNR,PNR,PNR +-shmat,397,30,30,305,196,397,29,29,192,192,397,397,196,397,397 +-shmctl,396,31,31,308,195,396,30,30,195,195,396,396,195,396,396 +-shmdt,398,67,67,306,197,398,65,65,193,193,398,398,197,398,398 +-shmget,395,29,29,307,194,395,28,28,194,194,395,395,194,395,395 +-shutdown,373,48,48,293,210,182,47,47,117,117,338,338,210,373,373 +-sigaction,67,PNR,PNR,67,PNR,67,PNR,PNR,PNR,PNR,67,67,PNR,67,67 +-sigaltstack,186,131,525,186,132,206,129,129,166,166,185,185,132,186,186 +-signal,48,PNR,PNR,PNR,PNR,48,PNR,PNR,48,48,48,48,PNR,48,48 +-signalfd,321,282,282,349,PNR,317,276,280,302,302,305,305,PNR,316,316 +-signalfd4,327,289,289,355,74,324,283,287,309,309,313,313,74,322,322 +-sigpending,73,PNR,PNR,73,PNR,73,PNR,PNR,73,73,73,73,PNR,73,73 +-sigprocmask,126,PNR,PNR,126,PNR,126,PNR,PNR,126,126,126,126,PNR,126,126 +-sigreturn,119,PNR,PNR,119,PNR,119,PNR,PNR,PNR,PNR,119,119,PNR,119,119 +-sigsuspend,72,PNR,PNR,72,PNR,72,PNR,PNR,PNR,PNR,72,72,PNR,72,72 +-socket,359,41,41,281,198,183,40,40,17,17,326,326,198,359,359 +-socketcall,102,PNR,PNR,PNR,PNR,102,PNR,PNR,PNR,PNR,102,102,PNR,102,102 +-socketpair,360,53,53,288,199,184,52,52,56,56,333,333,199,360,360 +-splice,313,275,275,340,76,304,263,267,291,291,283,283,76,306,306 +-spu_create,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,279,279,PNR,PNR,PNR +-spu_run,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,278,278,PNR,PNR,PNR +-ssetmask,69,PNR,PNR,PNR,PNR,69,PNR,PNR,69,69,69,69,PNR,PNR,PNR +-stat,106,4,4,106,PNR,106,4,4,18,18,106,106,PNR,106,106 +-stat64,195,PNR,PNR,195,PNR,213,PNR,PNR,101,101,195,PNR,PNR,195,PNR +-statfs,99,137,137,99,43,99,134,134,99,99,99,99,43,99,99 +-statfs64,268,PNR,PNR,266,PNR,255,PNR,217,298,298,252,252,PNR,265,265 +-statx,383,332,332,397,291,366,326,330,349,349,383,383,291,379,379 +-stime,25,PNR,PNR,PNR,PNR,25,PNR,PNR,25,25,25,25,PNR,25,PNR +-stty,31,PNR,PNR,PNR,PNR,31,PNR,PNR,PNR,PNR,31,31,PNR,PNR,PNR +-subpage_prot,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,310,310,PNR,PNR,PNR +-swapcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,249,249,PNR,PNR,PNR +-swapoff,115,168,168,115,225,115,163,163,115,115,115,115,225,115,115 +-swapon,87,167,167,87,224,87,162,162,87,87,87,87,224,87,87 +-switch_endian,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,363,363,PNR,PNR,PNR +-symlink,83,88,88,83,PNR,83,86,86,83,83,83,83,PNR,83,83 +-symlinkat,304,266,266,331,36,297,256,260,284,284,295,295,36,297,297 +-sync,36,162,162,36,81,36,157,157,36,36,36,36,81,36,36 +-sync_file_range,314,277,277,PNR,84,305,264,268,292,292,PNR,PNR,84,307,307 +-sync_file_range2,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,308,308,PNR,PNR,PNR +-syncfs,344,306,306,373,267,342,301,306,327,327,348,348,267,338,338 +-syscall,PNR,PNR,PNR,PNR,PNR,0,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-_sysctl,149,156,PNR,149,PNR,153,152,152,149,149,149,149,PNR,149,149 +-sys_debug_setcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,256,256,PNR,PNR,PNR +-sysfs,135,139,139,135,PNR,135,136,136,135,135,135,135,PNR,135,135 +-sysinfo,116,99,99,116,179,116,97,97,116,116,116,116,179,116,116 +-syslog,103,103,103,103,116,103,101,101,103,103,103,103,116,103,103 +-sysmips,PNR,PNR,PNR,PNR,PNR,149,199,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-tee,315,276,276,342,77,306,265,269,293,293,284,284,77,308,308 +-tgkill,270,234,234,268,131,266,225,229,259,259,250,250,131,241,241 +-time,13,201,201,PNR,PNR,13,PNR,PNR,13,13,13,13,PNR,13,PNR +-timer_create,259,222,526,257,107,257,216,220,250,250,240,240,107,254,254 +-timer_delete,263,226,226,261,111,261,220,224,254,254,244,244,111,258,258 +-timerfd,PNR,PNR,PNR,PNR,PNR,318,277,281,PNR,PNR,PNR,PNR,PNR,317,317 +-timerfd_create,322,283,283,350,85,321,280,284,306,306,306,306,85,319,319 +-timerfd_gettime,326,287,287,354,87,322,281,285,308,308,312,312,87,321,321 +-timerfd_gettime64,410,PNR,PNR,410,PNR,410,PNR,410,410,PNR,410,PNR,PNR,410,PNR +-timerfd_settime,325,286,286,353,86,323,282,286,307,307,311,311,86,320,320 +-timerfd_settime64,411,PNR,PNR,411,PNR,411,PNR,411,411,PNR,411,PNR,PNR,411,PNR +-timer_getoverrun,262,225,225,260,109,260,219,223,253,253,243,243,109,257,257 +-timer_gettime,261,224,224,259,108,259,218,222,252,252,242,242,108,256,256 +-timer_gettime64,408,PNR,PNR,408,PNR,408,PNR,408,408,PNR,408,PNR,PNR,408,PNR +-timer_settime,260,223,223,258,110,258,217,221,251,251,241,241,110,255,255 +-timer_settime64,409,PNR,PNR,409,PNR,409,PNR,409,409,PNR,409,PNR,PNR,409,PNR +-times,43,100,100,43,153,43,98,98,43,43,43,43,153,43,43 +-tkill,238,200,200,238,130,236,192,192,208,208,208,208,130,237,237 +-truncate,92,76,76,92,45,92,74,74,92,92,92,92,45,92,92 +-truncate64,193,PNR,PNR,193,PNR,211,PNR,PNR,199,199,193,PNR,PNR,193,PNR +-tuxcall,PNR,184,184,PNR,PNR,PNR,PNR,PNR,PNR,PNR,225,225,PNR,PNR,PNR +-ugetrlimit,191,PNR,PNR,191,PNR,PNR,PNR,PNR,PNR,PNR,190,190,PNR,191,PNR +-ulimit,58,PNR,PNR,PNR,PNR,58,PNR,PNR,PNR,PNR,58,58,PNR,PNR,PNR +-umask,60,95,95,60,166,60,93,93,60,60,60,60,166,60,60 +-umount,22,PNR,PNR,PNR,PNR,22,PNR,PNR,PNR,PNR,22,22,PNR,22,22 +-umount2,52,166,166,52,39,52,161,161,52,52,52,52,39,52,52 +-uname,122,63,63,122,160,122,61,61,59,59,122,122,160,122,122 +-unlink,10,87,87,10,PNR,10,85,85,10,10,10,10,PNR,10,10 +-unlinkat,301,263,263,328,35,294,253,257,281,281,292,292,35,294,294 +-unshare,310,272,272,337,97,303,262,266,288,288,282,282,97,303,303 +-uselib,86,134,PNR,86,PNR,86,PNR,PNR,86,86,86,86,PNR,86,86 +-userfaultfd,374,323,323,388,282,357,317,321,344,344,364,364,282,355,355 +-usr26,PNR,PNR,PNR,983043,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-usr32,PNR,PNR,PNR,983044,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-ustat,62,136,136,62,PNR,62,133,133,62,62,62,62,PNR,62,62 +-utime,30,132,132,PNR,PNR,30,130,130,30,30,30,30,PNR,30,30 +-utimensat,320,280,280,348,88,316,275,279,301,301,304,304,88,315,315 +-utimensat_time64,412,PNR,PNR,412,PNR,412,PNR,412,412,PNR,412,PNR,PNR,412,PNR +-utimes,271,235,235,269,PNR,267,226,230,336,336,251,251,PNR,313,313 +-vfork,190,58,58,190,PNR,PNR,PNR,PNR,113,113,189,189,PNR,190,190 +-vhangup,111,153,153,111,58,111,150,150,111,111,111,111,58,111,111 +-vm86,166,PNR,PNR,PNR,PNR,113,PNR,PNR,PNR,PNR,113,113,PNR,PNR,PNR +-vm86old,113,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-vmsplice,316,278,532,343,75,307,266,270,294,294,285,285,75,309,309 +-vserver,273,236,PNR,313,PNR,277,236,240,PNR,PNR,PNR,PNR,PNR,PNR,PNR +-wait4,114,61,61,114,260,114,59,59,114,114,114,114,260,114,114 +-waitid,284,247,529,280,95,278,237,241,235,235,272,272,95,281,281 +-waitpid,7,PNR,PNR,PNR,PNR,7,PNR,PNR,7,7,7,7,PNR,PNR,PNR +-write,4,1,1,4,64,4,1,1,4,4,4,4,64,4,4 +-writev,146,20,516,146,66,146,19,19,146,146,146,146,66,146,146 ++#syscall (v6.7.0 2024-02-05),x86,x86_64,x32,arm,aarch64,loongarch64,mips,mips64,mips64n32,parisc,parisc64,ppc,ppc64,riscv64,s390,s390x ++accept,PNR,43,43,285,202,202,168,42,42,35,35,330,330,202,PNR,PNR ++accept4,364,288,288,366,242,242,334,293,297,320,320,344,344,242,364,364 ++access,33,21,21,33,PNR,PNR,33,20,20,33,33,33,33,PNR,33,33 ++acct,51,163,163,51,89,89,51,158,158,51,51,51,51,89,51,51 ++add_key,286,248,248,309,217,217,280,239,243,264,264,269,269,217,278,278 ++adjtimex,124,159,159,124,171,171,124,154,154,124,124,124,124,171,124,124 ++afs_syscall,137,183,183,PNR,PNR,PNR,137,176,176,PNR,PNR,137,137,PNR,137,137 ++alarm,27,37,37,PNR,PNR,PNR,27,37,37,27,27,27,27,PNR,27,27 ++arch_prctl,384,158,158,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++arm_fadvise64_64,PNR,PNR,PNR,270,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++arm_sync_file_range,PNR,PNR,PNR,341,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++bdflush,134,PNR,PNR,134,PNR,PNR,134,PNR,PNR,134,134,134,134,PNR,134,134 ++bind,361,49,49,282,200,200,169,48,48,22,22,327,327,200,361,361 ++bpf,357,321,321,386,280,280,355,315,319,341,341,361,361,280,351,351 ++break,17,PNR,PNR,PNR,PNR,PNR,17,PNR,PNR,PNR,PNR,17,17,PNR,PNR,PNR ++breakpoint,PNR,PNR,PNR,983041,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++brk,45,12,12,45,214,214,45,12,12,45,45,45,45,214,45,45 ++cachectl,PNR,PNR,PNR,PNR,PNR,PNR,148,198,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++cacheflush,PNR,PNR,PNR,983042,PNR,PNR,147,197,197,356,356,PNR,PNR,PNR,PNR,PNR ++cachestat,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451 ++capget,184,125,125,184,90,90,204,123,123,106,106,183,183,90,184,184 ++capset,185,126,126,185,91,91,205,124,124,107,107,184,184,91,185,185 ++chdir,12,80,80,12,49,49,12,78,78,12,12,12,12,49,12,12 ++chmod,15,90,90,15,PNR,PNR,15,88,88,15,15,15,15,PNR,15,15 ++chown,182,92,92,182,PNR,PNR,202,90,90,180,180,181,181,PNR,182,212 ++chown32,212,PNR,PNR,212,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,212,PNR ++chroot,61,161,161,61,51,51,61,156,156,61,61,61,61,51,61,61 ++clock_adjtime,343,305,305,372,266,266,341,300,305,324,324,347,347,266,337,337 ++clock_adjtime64,405,PNR,PNR,405,PNR,PNR,405,PNR,405,405,PNR,405,PNR,PNR,405,PNR ++clock_getres,266,229,229,264,114,114,264,223,227,257,257,247,247,114,261,261 ++clock_getres_time64,406,PNR,PNR,406,PNR,PNR,406,PNR,406,406,PNR,406,PNR,PNR,406,PNR ++clock_gettime,265,228,228,263,113,113,263,222,226,256,256,246,246,113,260,260 ++clock_gettime64,403,PNR,PNR,403,PNR,PNR,403,PNR,403,403,PNR,403,PNR,PNR,403,PNR ++clock_nanosleep,267,230,230,265,115,115,265,224,228,258,258,248,248,115,262,262 ++clock_nanosleep_time64,407,PNR,PNR,407,PNR,PNR,407,PNR,407,407,PNR,407,PNR,PNR,407,PNR ++clock_settime,264,227,227,262,112,112,262,221,225,255,255,245,245,112,259,259 ++clock_settime64,404,PNR,PNR,404,PNR,PNR,404,PNR,404,404,PNR,404,PNR,PNR,404,PNR ++clone,120,56,56,120,220,220,120,55,55,120,120,120,120,220,120,120 ++clone3,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435 ++close,6,3,3,6,57,57,6,3,3,6,6,6,6,57,6,6 ++close_range,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436 ++connect,362,42,42,283,203,203,170,41,41,31,31,328,328,203,362,362 ++copy_file_range,377,326,326,391,285,285,360,320,324,346,346,379,379,285,375,375 ++creat,8,85,85,8,PNR,PNR,8,83,83,8,8,8,8,PNR,8,8 ++create_module,127,174,PNR,PNR,PNR,PNR,127,167,167,PNR,PNR,127,127,PNR,127,127 ++delete_module,129,176,176,129,106,106,129,169,169,129,129,129,129,106,129,129 ++dup,41,32,32,41,23,23,41,31,31,41,41,41,41,23,41,41 ++dup2,63,33,33,63,PNR,PNR,63,32,32,63,63,63,63,PNR,63,63 ++dup3,330,292,292,358,24,24,327,286,290,312,312,316,316,24,326,326 ++epoll_create,254,213,213,250,PNR,PNR,248,207,207,224,224,236,236,PNR,249,249 ++epoll_create1,329,291,291,357,20,20,326,285,289,311,311,315,315,20,327,327 ++epoll_ctl,255,233,233,251,21,21,249,208,208,225,225,237,237,21,250,250 ++epoll_ctl_old,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++epoll_pwait,319,281,281,346,22,22,313,272,276,297,297,303,303,22,312,312 ++epoll_pwait2,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441 ++epoll_wait,256,232,232,252,PNR,PNR,250,209,209,226,226,238,238,PNR,251,251 ++epoll_wait_old,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++eventfd,323,284,284,351,PNR,PNR,319,278,282,304,304,307,307,PNR,318,318 ++eventfd2,328,290,290,356,19,19,325,284,288,310,310,314,314,19,323,323 ++execve,11,59,520,11,221,221,11,57,57,11,11,11,11,221,11,11 ++execveat,358,322,545,387,281,281,356,316,320,342,342,362,362,281,354,354 ++exit,1,60,60,1,93,93,1,58,58,1,1,1,1,93,1,1 ++exit_group,252,231,231,248,94,94,246,205,205,222,222,234,234,94,248,248 ++faccessat,307,269,269,334,48,48,300,259,263,287,287,298,298,48,300,300 ++faccessat2,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439 ++fadvise64,250,221,221,PNR,223,223,254,215,216,PNR,PNR,233,233,223,253,253 ++fadvise64_64,272,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,236,236,254,PNR,PNR,264,PNR ++fallocate,324,285,285,352,47,47,320,279,283,305,305,309,309,47,314,314 ++fanotify_init,338,300,300,367,262,262,336,295,300,322,322,323,323,262,332,332 ++fanotify_mark,339,301,301,368,263,263,337,296,301,323,323,324,324,263,333,333 ++fchdir,133,81,81,133,50,50,133,79,79,133,133,133,133,50,133,133 ++fchmod,94,91,91,94,52,52,94,89,89,94,94,94,94,52,94,94 ++fchmodat,306,268,268,333,53,53,299,258,262,286,286,297,297,53,299,299 ++fchmodat2,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452 ++fchown,95,93,93,95,55,55,95,91,91,95,95,95,95,55,95,207 ++fchown32,207,PNR,PNR,207,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,207,PNR ++fchownat,298,260,260,325,54,54,291,250,254,278,278,289,289,54,291,291 ++fcntl,55,72,72,55,25,25,55,70,70,55,55,55,55,25,55,55 ++fcntl64,221,PNR,PNR,221,PNR,PNR,220,PNR,212,202,202,204,PNR,PNR,221,PNR ++fdatasync,148,75,75,148,83,83,152,73,73,148,148,148,148,83,148,148 ++fgetxattr,231,193,193,231,10,10,229,185,185,243,243,214,214,10,229,229 ++finit_module,350,313,313,379,273,273,348,307,312,333,333,353,353,273,344,344 ++flistxattr,234,196,196,234,13,13,232,188,188,246,246,217,217,13,232,232 ++flock,143,73,73,143,32,32,143,71,71,143,143,143,143,32,143,143 ++fork,2,57,57,2,PNR,PNR,2,56,56,2,2,2,2,PNR,2,2 ++fremovexattr,237,199,199,237,16,16,235,191,191,249,249,220,220,16,235,235 ++fsconfig,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431,431 ++fsetxattr,228,190,190,228,7,7,226,182,182,240,240,211,211,7,226,226 ++fsmount,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432 ++fsopen,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430 ++fspick,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433 ++fstat,108,5,5,108,80,PNR,108,5,5,28,28,108,108,80,108,108 ++fstat64,197,PNR,PNR,197,PNR,PNR,215,PNR,PNR,112,112,197,PNR,PNR,197,PNR ++fstatat64,300,PNR,PNR,327,PNR,PNR,293,PNR,PNR,280,280,291,PNR,PNR,293,PNR ++fstatfs,100,138,138,100,44,44,100,135,135,100,100,100,100,44,100,100 ++fstatfs64,269,PNR,PNR,267,PNR,PNR,256,PNR,218,299,299,253,253,PNR,266,266 ++fsync,118,74,74,118,82,82,118,72,72,118,118,118,118,82,118,118 ++ftime,35,PNR,PNR,PNR,PNR,PNR,35,PNR,PNR,PNR,PNR,35,35,PNR,PNR,PNR ++ftruncate,93,77,77,93,46,46,93,75,75,93,93,93,93,46,93,93 ++ftruncate64,194,PNR,PNR,194,PNR,PNR,212,PNR,PNR,200,200,194,PNR,PNR,194,PNR ++futex,240,202,202,240,98,98,238,194,194,210,210,221,221,98,238,238 ++futex_requeue,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456 ++futex_time64,422,PNR,PNR,422,PNR,PNR,422,PNR,422,422,PNR,422,PNR,PNR,422,PNR ++futex_wait,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455 ++futex_waitv,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449 ++futex_wake,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454 ++futimesat,299,261,261,326,PNR,PNR,292,251,255,279,279,290,290,PNR,292,292 ++getcpu,318,309,309,345,168,168,312,271,275,296,296,302,302,168,311,311 ++getcwd,183,79,79,183,17,17,203,77,77,110,110,182,182,17,183,183 ++getdents,141,78,78,141,PNR,PNR,141,76,76,141,141,141,141,PNR,141,141 ++getdents64,220,217,217,217,61,61,219,308,299,201,201,202,202,61,220,220 ++getegid,50,108,108,50,177,177,50,106,106,50,50,50,50,177,50,202 ++getegid32,202,PNR,PNR,202,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,202,PNR ++geteuid,49,107,107,49,175,175,49,105,105,49,49,49,49,175,49,201 ++geteuid32,201,PNR,PNR,201,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,PNR ++getgid,47,104,104,47,176,176,47,102,102,47,47,47,47,176,47,200 ++getgid32,200,PNR,PNR,200,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,200,PNR ++getgroups,80,115,115,80,158,158,80,113,113,80,80,80,80,158,80,205 ++getgroups32,205,PNR,PNR,205,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,205,PNR ++getitimer,105,36,36,105,102,102,105,35,35,105,105,105,105,102,105,105 ++get_kernel_syms,130,177,PNR,PNR,PNR,PNR,130,170,170,PNR,PNR,130,130,PNR,130,130 ++get_mempolicy,275,239,239,320,236,236,269,228,232,261,261,260,260,236,269,269 ++getpeername,368,52,52,287,205,205,171,51,51,53,53,332,332,205,368,368 ++getpgid,132,121,121,132,155,155,132,119,119,132,132,132,132,155,132,132 ++getpgrp,65,111,111,65,PNR,PNR,65,109,109,65,65,65,65,PNR,65,65 ++getpid,20,39,39,20,172,172,20,38,38,20,20,20,20,172,20,20 ++getpmsg,188,181,181,PNR,PNR,PNR,208,174,174,PNR,PNR,187,187,PNR,188,188 ++getppid,64,110,110,64,173,173,64,108,108,64,64,64,64,173,64,64 ++getpriority,96,140,140,96,141,141,96,137,137,96,96,96,96,141,96,96 ++getrandom,355,318,318,384,278,278,353,313,317,339,339,359,359,278,349,349 ++getresgid,171,120,120,171,150,150,191,118,118,171,171,170,170,150,171,211 ++getresgid32,211,PNR,PNR,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,211,PNR ++getresuid,165,118,118,165,148,148,186,116,116,165,165,165,165,148,165,209 ++getresuid32,209,PNR,PNR,209,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,209,PNR ++getrlimit,76,97,97,PNR,163,PNR,76,95,95,76,76,76,76,163,76,191 ++get_robust_list,312,274,531,339,100,100,310,269,273,290,290,299,299,100,305,305 ++getrusage,77,98,98,77,165,165,77,96,96,77,77,77,77,165,77,77 ++getsid,147,124,124,147,156,156,151,122,122,147,147,147,147,156,147,147 ++getsockname,367,51,51,286,204,204,172,50,50,44,44,331,331,204,367,367 ++getsockopt,365,55,542,295,209,209,173,54,54,182,182,340,340,209,365,365 ++get_thread_area,244,211,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++gettid,224,186,186,224,178,178,222,178,178,206,206,207,207,178,236,236 ++gettimeofday,78,96,96,78,169,169,78,94,94,78,78,78,78,169,78,78 ++get_tls,PNR,PNR,PNR,983046,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++getuid,24,102,102,24,174,174,24,100,100,24,24,24,24,174,24,199 ++getuid32,199,PNR,PNR,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,199,PNR ++getxattr,229,191,191,229,8,8,227,183,183,241,241,212,212,8,227,227 ++gtty,32,PNR,PNR,PNR,PNR,PNR,32,PNR,PNR,PNR,PNR,32,32,PNR,PNR,PNR ++idle,112,PNR,PNR,PNR,PNR,PNR,112,PNR,PNR,PNR,PNR,112,112,PNR,112,112 ++init_module,128,175,175,128,105,105,128,168,168,128,128,128,128,105,128,128 ++inotify_add_watch,292,254,254,317,27,27,285,244,248,270,270,276,276,27,285,285 ++inotify_init,291,253,253,316,PNR,PNR,284,243,247,269,269,275,275,PNR,284,284 ++inotify_init1,332,294,294,360,26,26,329,288,292,314,314,318,318,26,324,324 ++inotify_rm_watch,293,255,255,318,28,28,286,245,249,271,271,277,277,28,286,286 ++io_cancel,249,210,210,247,3,3,245,204,204,219,219,231,231,3,247,247 ++ioctl,54,16,514,54,29,29,54,15,15,54,54,54,54,29,54,54 ++io_destroy,246,207,207,244,1,1,242,201,201,216,216,228,228,1,244,244 ++io_getevents,247,208,208,245,4,4,243,202,202,217,217,229,229,4,245,245 ++ioperm,101,173,173,PNR,PNR,PNR,101,PNR,PNR,PNR,PNR,101,101,PNR,101,PNR ++io_pgetevents,385,333,333,399,292,292,368,328,332,350,350,388,388,292,382,382 ++io_pgetevents_time64,416,PNR,PNR,416,PNR,PNR,416,PNR,416,416,PNR,416,PNR,PNR,416,PNR ++iopl,110,172,172,PNR,PNR,PNR,110,PNR,PNR,PNR,PNR,110,110,PNR,PNR,PNR ++ioprio_get,290,252,252,315,31,31,315,274,278,268,268,274,274,31,283,283 ++ioprio_set,289,251,251,314,30,30,314,273,277,267,267,273,273,30,282,282 ++io_setup,245,206,543,243,0,0,241,200,200,215,215,227,227,0,243,243 ++io_submit,248,209,544,246,2,2,244,203,203,218,218,230,230,2,246,246 ++io_uring_enter,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426 ++io_uring_register,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427 ++io_uring_setup,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425 ++ipc,117,PNR,PNR,PNR,PNR,PNR,117,PNR,PNR,PNR,PNR,117,117,PNR,117,117 ++kcmp,349,312,312,378,272,272,347,306,311,332,332,354,354,272,343,343 ++kexec_file_load,PNR,320,320,401,294,294,PNR,PNR,PNR,355,355,382,382,294,381,381 ++kexec_load,283,246,528,347,104,104,311,270,274,300,300,268,268,104,277,277 ++keyctl,288,250,250,311,219,219,282,241,245,266,266,271,271,219,280,280 ++kill,37,62,62,37,129,129,37,60,60,37,37,37,37,129,37,37 ++landlock_add_rule,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445 ++landlock_create_ruleset,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444 ++landlock_restrict_self,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446 ++lchown,16,94,94,16,PNR,PNR,16,92,92,16,16,16,16,PNR,16,198 ++lchown32,198,PNR,PNR,198,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,198,PNR ++lgetxattr,230,192,192,230,9,9,228,184,184,242,242,213,213,9,228,228 ++link,9,86,86,9,PNR,PNR,9,84,84,9,9,9,9,PNR,9,9 ++linkat,303,265,265,330,37,37,296,255,259,283,283,294,294,37,296,296 ++listen,363,50,50,284,201,201,174,49,49,32,32,329,329,201,363,363 ++listxattr,232,194,194,232,11,11,230,186,186,244,244,215,215,11,230,230 ++llistxattr,233,195,195,233,12,12,231,187,187,245,245,216,216,12,231,231 ++_llseek,140,PNR,PNR,140,PNR,PNR,140,PNR,PNR,140,140,140,140,PNR,140,PNR ++lock,53,PNR,PNR,PNR,PNR,PNR,53,PNR,PNR,PNR,PNR,53,53,PNR,PNR,PNR ++lookup_dcookie,253,212,212,249,18,18,247,206,206,223,223,235,235,18,110,110 ++lremovexattr,236,198,198,236,15,15,234,190,190,248,248,219,219,15,234,234 ++lseek,19,8,8,19,62,62,19,8,8,19,19,19,19,62,19,19 ++lsetxattr,227,189,189,227,6,6,225,181,181,239,239,210,210,6,225,225 ++lstat,107,6,6,107,PNR,PNR,107,6,6,84,84,107,107,PNR,107,107 ++lstat64,196,PNR,PNR,196,PNR,PNR,214,PNR,PNR,198,198,196,PNR,PNR,196,PNR ++madvise,219,28,28,220,233,233,218,27,27,119,119,205,205,233,219,219 ++map_shadow_stack,453,453,PNR,453,453,453,453,453,453,453,453,453,453,453,453,453 ++mbind,274,237,237,319,235,235,268,227,231,260,260,259,259,235,268,268 ++membarrier,375,324,324,389,283,283,358,318,322,343,343,365,365,283,356,356 ++memfd_create,356,319,319,385,279,279,354,314,318,340,340,360,360,279,350,350 ++memfd_secret,447,447,447,PNR,447,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,447,447,447 ++migrate_pages,294,256,256,400,238,238,287,246,250,272,272,258,258,238,287,287 ++mincore,218,27,27,219,232,232,217,26,26,72,72,206,206,232,218,218 ++mkdir,39,83,83,39,PNR,PNR,39,81,81,39,39,39,39,PNR,39,39 ++mkdirat,296,258,258,323,34,34,289,248,252,276,276,287,287,34,289,289 ++mknod,14,133,133,14,PNR,PNR,14,131,131,14,14,14,14,PNR,14,14 ++mknodat,297,259,259,324,33,33,290,249,253,277,277,288,288,33,290,290 ++mlock,150,149,149,150,228,228,154,146,146,150,150,150,150,228,150,150 ++mlock2,376,325,325,390,284,284,359,319,323,345,345,378,378,284,374,374 ++mlockall,152,151,151,152,230,230,156,148,148,152,152,152,152,230,152,152 ++mmap,90,9,9,PNR,222,222,90,9,9,90,90,90,90,222,90,90 ++mmap2,192,PNR,PNR,192,PNR,PNR,210,PNR,PNR,89,89,192,PNR,PNR,192,PNR ++modify_ldt,123,154,154,PNR,PNR,PNR,123,PNR,PNR,PNR,PNR,123,123,PNR,PNR,PNR ++mount,21,165,165,21,40,40,21,160,160,21,21,21,21,40,21,21 ++mount_setattr,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442 ++move_mount,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429 ++move_pages,317,279,533,344,239,239,308,267,271,295,295,301,301,239,310,310 ++mprotect,125,10,10,125,226,226,125,10,10,125,125,125,125,226,125,125 ++mpx,56,PNR,PNR,PNR,PNR,PNR,56,PNR,PNR,PNR,PNR,56,56,PNR,PNR,PNR ++mq_getsetattr,282,245,245,279,185,185,276,235,239,234,234,267,267,185,276,276 ++mq_notify,281,244,527,278,184,184,275,234,238,233,233,266,266,184,275,275 ++mq_open,277,240,240,274,180,180,271,230,234,229,229,262,262,180,271,271 ++mq_timedreceive,280,243,243,277,183,183,274,233,237,232,232,265,265,183,274,274 ++mq_timedreceive_time64,419,PNR,PNR,419,PNR,PNR,419,PNR,419,419,PNR,419,PNR,PNR,419,PNR ++mq_timedsend,279,242,242,276,182,182,273,232,236,231,231,264,264,182,273,273 ++mq_timedsend_time64,418,PNR,PNR,418,PNR,PNR,418,PNR,418,418,PNR,418,PNR,PNR,418,PNR ++mq_unlink,278,241,241,275,181,181,272,231,235,230,230,263,263,181,272,272 ++mremap,163,25,25,163,216,216,167,24,24,163,163,163,163,216,163,163 ++msgctl,402,71,71,304,187,187,402,69,69,191,191,402,402,187,402,402 ++msgget,399,68,68,303,186,186,399,66,66,190,190,399,399,186,399,399 ++msgrcv,401,70,70,302,188,188,401,68,68,189,189,401,401,188,401,401 ++msgsnd,400,69,69,301,189,189,400,67,67,188,188,400,400,189,400,400 ++msync,144,26,26,144,227,227,144,25,25,144,144,144,144,227,144,144 ++multiplexer,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,201,201,PNR,PNR,PNR ++munlock,151,150,150,151,229,229,155,147,147,151,151,151,151,229,151,151 ++munlockall,153,152,152,153,231,231,157,149,149,153,153,153,153,231,153,153 ++munmap,91,11,11,91,215,215,91,11,11,91,91,91,91,215,91,91 ++name_to_handle_at,341,303,303,370,264,264,339,298,303,325,325,345,345,264,335,335 ++nanosleep,162,35,35,162,101,101,166,34,34,162,162,162,162,101,162,162 ++newfstatat,PNR,262,262,PNR,79,PNR,PNR,252,256,PNR,PNR,PNR,291,79,PNR,293 ++_newselect,142,PNR,PNR,142,PNR,PNR,142,22,22,142,142,142,142,PNR,142,PNR ++nfsservctl,169,180,PNR,169,42,42,189,173,173,PNR,PNR,168,168,42,169,169 ++nice,34,PNR,PNR,34,PNR,PNR,34,PNR,PNR,34,34,34,34,PNR,34,34 ++oldfstat,28,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,28,28,PNR,PNR,PNR ++oldlstat,84,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,84,84,PNR,PNR,PNR ++oldolduname,59,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,59,59,PNR,PNR,PNR ++oldstat,18,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,18,18,PNR,PNR,PNR ++olduname,109,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,109,109,PNR,PNR,PNR ++open,5,2,2,5,PNR,PNR,5,2,2,5,5,5,5,PNR,5,5 ++openat,295,257,257,322,56,56,288,247,251,275,275,286,286,56,288,288 ++openat2,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437 ++open_by_handle_at,342,304,304,371,265,265,340,299,304,326,326,346,346,265,336,336 ++open_tree,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428 ++pause,29,34,34,29,PNR,PNR,29,33,33,29,29,29,29,PNR,29,29 ++pciconfig_iobase,PNR,PNR,PNR,271,PNR,PNR,PNR,PNR,PNR,PNR,PNR,200,200,PNR,PNR,PNR ++pciconfig_read,PNR,PNR,PNR,272,PNR,PNR,PNR,PNR,PNR,PNR,PNR,198,198,PNR,PNR,PNR ++pciconfig_write,PNR,PNR,PNR,273,PNR,PNR,PNR,PNR,PNR,PNR,PNR,199,199,PNR,PNR,PNR ++perf_event_open,336,298,298,364,241,241,333,292,296,318,318,319,319,241,331,331 ++personality,136,135,135,136,92,92,136,132,132,136,136,136,136,92,136,136 ++pidfd_getfd,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438 ++pidfd_open,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434,434 ++pidfd_send_signal,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424 ++pipe,42,22,22,42,PNR,PNR,42,21,21,42,42,42,42,PNR,42,42 ++pipe2,331,293,293,359,59,59,328,287,291,313,313,317,317,59,325,325 ++pivot_root,217,155,155,218,41,41,216,151,151,67,67,203,203,41,217,217 ++pkey_alloc,381,330,330,395,289,289,364,324,328,352,352,384,384,289,385,385 ++pkey_free,382,331,331,396,290,290,365,325,329,353,353,385,385,290,386,386 ++pkey_mprotect,380,329,329,394,288,288,363,323,327,351,351,386,386,288,384,384 ++poll,168,7,7,168,PNR,PNR,188,7,7,168,168,167,167,PNR,168,168 ++ppoll,309,271,271,336,73,73,302,261,265,274,274,281,281,73,302,302 ++ppoll_time64,414,PNR,PNR,414,PNR,PNR,414,PNR,414,414,PNR,414,PNR,PNR,414,PNR ++prctl,172,157,157,172,167,167,192,153,153,172,172,171,171,167,172,172 ++pread64,180,17,17,180,67,67,200,16,16,108,108,179,179,67,180,180 ++preadv,333,295,534,361,69,69,330,289,293,315,315,320,320,69,328,328 ++preadv2,378,327,546,392,286,286,361,321,325,347,347,380,380,286,376,376 ++prlimit64,340,302,302,369,261,261,338,297,302,321,321,325,325,261,334,334 ++process_madvise,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440 ++process_mrelease,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448 ++process_vm_readv,347,310,539,376,270,270,345,304,309,330,330,351,351,270,340,340 ++process_vm_writev,348,311,540,377,271,271,346,305,310,331,331,352,352,271,341,341 ++prof,44,PNR,PNR,PNR,PNR,PNR,44,PNR,PNR,PNR,PNR,44,44,PNR,PNR,PNR ++profil,98,PNR,PNR,PNR,PNR,PNR,98,PNR,PNR,PNR,PNR,98,98,PNR,PNR,PNR ++pselect6,308,270,270,335,72,72,301,260,264,273,273,280,280,72,301,301 ++pselect6_time64,413,PNR,PNR,413,PNR,PNR,413,PNR,413,413,PNR,413,PNR,PNR,413,PNR ++ptrace,26,101,521,26,117,117,26,99,99,26,26,26,26,117,26,26 ++putpmsg,189,182,182,PNR,PNR,PNR,209,175,175,PNR,PNR,188,188,PNR,189,189 ++pwrite64,181,18,18,181,68,68,201,17,17,109,109,180,180,68,181,181 ++pwritev,334,296,535,362,70,70,331,290,294,316,316,321,321,70,329,329 ++pwritev2,379,328,547,393,287,287,362,322,326,348,348,381,381,287,377,377 ++query_module,167,178,PNR,PNR,PNR,PNR,187,171,171,PNR,PNR,166,166,PNR,167,167 ++quotactl,131,179,179,131,60,60,131,172,172,131,131,131,131,60,131,131 ++quotactl_fd,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443 ++read,3,0,0,3,63,63,3,0,0,3,3,3,3,63,3,3 ++readahead,225,187,187,225,213,213,223,179,179,207,207,191,191,213,222,222 ++readdir,89,PNR,PNR,PNR,PNR,PNR,89,PNR,PNR,PNR,PNR,89,89,PNR,89,89 ++readlink,85,89,89,85,PNR,PNR,85,87,87,85,85,85,85,PNR,85,85 ++readlinkat,305,267,267,332,78,78,298,257,261,285,285,296,296,78,298,298 ++readv,145,19,515,145,65,65,145,18,18,145,145,145,145,65,145,145 ++reboot,88,169,169,88,142,142,88,164,164,88,88,88,88,142,88,88 ++recv,PNR,PNR,PNR,291,PNR,PNR,175,PNR,PNR,98,98,336,336,PNR,PNR,PNR ++recvfrom,371,45,517,292,207,207,176,44,44,123,123,337,337,207,371,371 ++recvmmsg,337,299,537,365,243,243,335,294,298,319,319,343,343,243,357,357 ++recvmmsg_time64,417,PNR,PNR,417,PNR,PNR,417,PNR,417,417,PNR,417,PNR,PNR,417,PNR ++recvmsg,372,47,519,297,212,212,177,46,46,184,184,342,342,212,372,372 ++remap_file_pages,257,216,216,253,234,234,251,210,210,227,227,239,239,234,267,267 ++removexattr,235,197,197,235,14,14,233,189,189,247,247,218,218,14,233,233 ++rename,38,82,82,38,PNR,PNR,38,80,80,38,38,38,38,PNR,38,38 ++renameat,302,264,264,329,38,PNR,295,254,258,282,282,293,293,PNR,295,295 ++renameat2,353,316,316,382,276,276,351,311,315,337,337,357,357,276,347,347 ++request_key,287,249,249,310,218,218,281,240,244,265,265,270,270,218,279,279 ++restart_syscall,0,219,219,0,128,128,253,213,214,0,0,0,0,128,7,7 ++riscv_flush_icache,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,259,PNR,PNR ++rmdir,40,84,84,40,PNR,PNR,40,82,82,40,40,40,40,PNR,40,40 ++rseq,386,334,334,398,293,293,367,327,331,354,354,387,387,293,383,383 ++rtas,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,255,255,PNR,PNR,PNR ++rt_sigaction,174,13,512,174,134,134,194,13,13,174,174,173,173,134,174,174 ++rt_sigpending,176,127,522,176,136,136,196,125,125,176,176,175,175,136,176,176 ++rt_sigprocmask,175,14,14,175,135,135,195,14,14,175,175,174,174,135,175,175 ++rt_sigqueueinfo,178,129,524,178,138,138,198,127,127,178,178,177,177,138,178,178 ++rt_sigreturn,173,15,513,173,139,139,193,211,211,173,173,172,172,139,173,173 ++rt_sigsuspend,179,130,130,179,133,133,199,128,128,179,179,178,178,133,179,179 ++rt_sigtimedwait,177,128,523,177,137,137,197,126,126,177,177,176,176,137,177,177 ++rt_sigtimedwait_time64,421,PNR,PNR,421,PNR,PNR,421,PNR,421,421,PNR,421,PNR,PNR,421,PNR ++rt_tgsigqueueinfo,335,297,536,363,240,240,332,291,295,317,317,322,322,240,330,330 ++s390_guarded_storage,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,378,378 ++s390_pci_mmio_read,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,353,353 ++s390_pci_mmio_write,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,352,352 ++s390_runtime_instr,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,342,342 ++s390_sthyi,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,380,380 ++sched_getaffinity,242,204,204,242,123,123,240,196,196,212,212,223,223,123,240,240 ++sched_getattr,352,315,315,381,275,275,350,310,314,335,335,356,356,275,346,346 ++sched_getparam,155,143,143,155,121,121,159,140,140,155,155,155,155,121,155,155 ++sched_get_priority_max,159,146,146,159,125,125,163,143,143,159,159,159,159,125,159,159 ++sched_get_priority_min,160,147,147,160,126,126,164,144,144,160,160,160,160,126,160,160 ++sched_getscheduler,157,145,145,157,120,120,161,142,142,157,157,157,157,120,157,157 ++sched_rr_get_interval,161,148,148,161,127,127,165,145,145,161,161,161,161,127,161,161 ++sched_rr_get_interval_time64,423,PNR,PNR,423,PNR,PNR,423,PNR,423,423,PNR,423,PNR,PNR,423,PNR ++sched_setaffinity,241,203,203,241,122,122,239,195,195,211,211,222,222,122,239,239 ++sched_setattr,351,314,314,380,274,274,349,309,313,334,334,355,355,274,345,345 ++sched_setparam,154,142,142,154,118,118,158,139,139,154,154,154,154,118,154,154 ++sched_setscheduler,156,144,144,156,119,119,160,141,141,156,156,156,156,119,156,156 ++sched_yield,158,24,24,158,124,124,162,23,23,158,158,158,158,124,158,158 ++seccomp,354,317,317,383,277,277,352,312,316,338,338,358,358,277,348,348 ++security,PNR,185,185,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++select,82,23,23,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,82,82,PNR,PNR,142 ++semctl,394,66,66,300,191,191,394,64,64,187,187,394,394,191,394,394 ++semget,393,64,64,299,190,190,393,62,62,186,186,393,393,190,393,393 ++semop,PNR,65,65,298,193,193,PNR,63,63,185,185,PNR,PNR,193,PNR,PNR ++semtimedop,PNR,220,220,312,192,192,PNR,214,215,228,228,PNR,392,192,PNR,392 ++semtimedop_time64,420,PNR,PNR,420,PNR,PNR,420,PNR,420,420,PNR,420,PNR,PNR,420,PNR ++send,PNR,PNR,PNR,289,PNR,PNR,178,PNR,PNR,58,58,334,334,PNR,PNR,PNR ++sendfile,187,40,40,187,71,71,207,39,39,122,122,186,186,71,187,187 ++sendfile64,239,PNR,PNR,239,PNR,PNR,237,PNR,219,209,209,226,PNR,PNR,223,PNR ++sendmmsg,345,307,538,374,269,269,343,302,307,329,329,349,349,269,358,358 ++sendmsg,370,46,518,296,211,211,179,45,45,183,183,341,341,211,370,370 ++sendto,369,44,44,290,206,206,180,43,43,82,82,335,335,206,369,369 ++setdomainname,121,171,171,121,162,162,121,166,166,121,121,121,121,162,121,121 ++setfsgid,139,123,123,139,152,152,139,121,121,139,139,139,139,152,139,216 ++setfsgid32,216,PNR,PNR,216,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,216,PNR ++setfsuid,138,122,122,138,151,151,138,120,120,138,138,138,138,151,138,215 ++setfsuid32,215,PNR,PNR,215,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,215,PNR ++setgid,46,106,106,46,144,144,46,104,104,46,46,46,46,144,46,214 ++setgid32,214,PNR,PNR,214,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,214,PNR ++setgroups,81,116,116,81,159,159,81,114,114,81,81,81,81,159,81,206 ++setgroups32,206,PNR,PNR,206,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,206,PNR ++sethostname,74,170,170,74,161,161,74,165,165,74,74,74,74,161,74,74 ++setitimer,104,38,38,104,103,103,104,36,36,104,104,104,104,103,104,104 ++set_mempolicy,276,238,238,321,237,237,270,229,233,262,262,261,261,237,270,270 ++set_mempolicy_home_node,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450 ++setns,346,308,308,375,268,268,344,303,308,328,328,350,350,268,339,339 ++setpgid,57,109,109,57,154,154,57,107,107,57,57,57,57,154,57,57 ++setpriority,97,141,141,97,140,140,97,138,138,97,97,97,97,140,97,97 ++setregid,71,114,114,71,143,143,71,112,112,71,71,71,71,143,71,204 ++setregid32,204,PNR,PNR,204,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,204,PNR ++setresgid,170,119,119,170,149,149,190,117,117,170,170,169,169,149,170,210 ++setresgid32,210,PNR,PNR,210,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,210,PNR ++setresuid,164,117,117,164,147,147,185,115,115,164,164,164,164,147,164,208 ++setresuid32,208,PNR,PNR,208,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,208,PNR ++setreuid,70,113,113,70,145,145,70,111,111,70,70,70,70,145,70,203 ++setreuid32,203,PNR,PNR,203,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,203,PNR ++setrlimit,75,160,160,75,164,PNR,75,155,155,75,75,75,75,164,75,75 ++set_robust_list,311,273,530,338,99,99,309,268,272,289,289,300,300,99,304,304 ++setsid,66,112,112,66,157,157,66,110,110,66,66,66,66,157,66,66 ++setsockopt,366,54,541,294,208,208,181,53,53,181,181,339,339,208,366,366 ++set_thread_area,243,205,PNR,PNR,PNR,PNR,283,242,246,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++set_tid_address,258,218,218,256,96,96,252,212,213,237,237,232,232,96,252,252 ++settimeofday,79,164,164,79,170,170,79,159,159,79,79,79,79,170,79,79 ++set_tls,PNR,PNR,PNR,983045,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++setuid,23,105,105,23,146,146,23,103,103,23,23,23,23,146,23,213 ++setuid32,213,PNR,PNR,213,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,213,PNR ++setxattr,226,188,188,226,5,5,224,180,180,238,238,209,209,5,224,224 ++sgetmask,68,PNR,PNR,PNR,PNR,PNR,68,PNR,PNR,68,68,68,68,PNR,PNR,PNR ++shmat,397,30,30,305,196,196,397,29,29,192,192,397,397,196,397,397 ++shmctl,396,31,31,308,195,195,396,30,30,195,195,396,396,195,396,396 ++shmdt,398,67,67,306,197,197,398,65,65,193,193,398,398,197,398,398 ++shmget,395,29,29,307,194,194,395,28,28,194,194,395,395,194,395,395 ++shutdown,373,48,48,293,210,210,182,47,47,117,117,338,338,210,373,373 ++sigaction,67,PNR,PNR,67,PNR,PNR,67,PNR,PNR,PNR,PNR,67,67,PNR,67,67 ++sigaltstack,186,131,525,186,132,132,206,129,129,166,166,185,185,132,186,186 ++signal,48,PNR,PNR,PNR,PNR,PNR,48,PNR,PNR,48,48,48,48,PNR,48,48 ++signalfd,321,282,282,349,PNR,PNR,317,276,280,302,302,305,305,PNR,316,316 ++signalfd4,327,289,289,355,74,74,324,283,287,309,309,313,313,74,322,322 ++sigpending,73,PNR,PNR,73,PNR,PNR,73,PNR,PNR,73,73,73,73,PNR,73,73 ++sigprocmask,126,PNR,PNR,126,PNR,PNR,126,PNR,PNR,126,126,126,126,PNR,126,126 ++sigreturn,119,PNR,PNR,119,PNR,PNR,119,PNR,PNR,PNR,PNR,119,119,PNR,119,119 ++sigsuspend,72,PNR,PNR,72,PNR,PNR,72,PNR,PNR,PNR,PNR,72,72,PNR,72,72 ++socket,359,41,41,281,198,198,183,40,40,17,17,326,326,198,359,359 ++socketcall,102,PNR,PNR,PNR,PNR,PNR,102,PNR,PNR,PNR,PNR,102,102,PNR,102,102 ++socketpair,360,53,53,288,199,199,184,52,52,56,56,333,333,199,360,360 ++splice,313,275,275,340,76,76,304,263,267,291,291,283,283,76,306,306 ++spu_create,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,279,279,PNR,PNR,PNR ++spu_run,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,278,278,PNR,PNR,PNR ++ssetmask,69,PNR,PNR,PNR,PNR,PNR,69,PNR,PNR,69,69,69,69,PNR,PNR,PNR ++stat,106,4,4,106,PNR,PNR,106,4,4,18,18,106,106,PNR,106,106 ++stat64,195,PNR,PNR,195,PNR,PNR,213,PNR,PNR,101,101,195,PNR,PNR,195,PNR ++statfs,99,137,137,99,43,43,99,134,134,99,99,99,99,43,99,99 ++statfs64,268,PNR,PNR,266,PNR,PNR,255,PNR,217,298,298,252,252,PNR,265,265 ++statx,383,332,332,397,291,291,366,326,330,349,349,383,383,291,379,379 ++stime,25,PNR,PNR,PNR,PNR,PNR,25,PNR,PNR,25,25,25,25,PNR,25,PNR ++stty,31,PNR,PNR,PNR,PNR,PNR,31,PNR,PNR,PNR,PNR,31,31,PNR,PNR,PNR ++subpage_prot,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,310,310,PNR,PNR,PNR ++swapcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,249,249,PNR,PNR,PNR ++swapoff,115,168,168,115,225,225,115,163,163,115,115,115,115,225,115,115 ++swapon,87,167,167,87,224,224,87,162,162,87,87,87,87,224,87,87 ++switch_endian,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,363,363,PNR,PNR,PNR ++symlink,83,88,88,83,PNR,PNR,83,86,86,83,83,83,83,PNR,83,83 ++symlinkat,304,266,266,331,36,36,297,256,260,284,284,295,295,36,297,297 ++sync,36,162,162,36,81,81,36,157,157,36,36,36,36,81,36,36 ++sync_file_range,314,277,277,PNR,84,84,305,264,268,292,292,PNR,PNR,84,307,307 ++sync_file_range2,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,308,308,PNR,PNR,PNR ++syncfs,344,306,306,373,267,267,342,301,306,327,327,348,348,267,338,338 ++syscall,PNR,PNR,PNR,PNR,PNR,PNR,0,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++_sysctl,149,156,PNR,149,PNR,PNR,153,152,152,149,149,149,149,PNR,149,149 ++sys_debug_setcontext,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,256,256,PNR,PNR,PNR ++sysfs,135,139,139,135,PNR,PNR,135,136,136,135,135,135,135,PNR,135,135 ++sysinfo,116,99,99,116,179,179,116,97,97,116,116,116,116,179,116,116 ++syslog,103,103,103,103,116,116,103,101,101,103,103,103,103,116,103,103 ++sysmips,PNR,PNR,PNR,PNR,PNR,PNR,149,199,199,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++tee,315,276,276,342,77,77,306,265,269,293,293,284,284,77,308,308 ++tgkill,270,234,234,268,131,131,266,225,229,259,259,250,250,131,241,241 ++time,13,201,201,PNR,PNR,PNR,13,PNR,PNR,13,13,13,13,PNR,13,PNR ++timer_create,259,222,526,257,107,107,257,216,220,250,250,240,240,107,254,254 ++timer_delete,263,226,226,261,111,111,261,220,224,254,254,244,244,111,258,258 ++timerfd,PNR,PNR,PNR,PNR,PNR,PNR,318,277,281,PNR,PNR,PNR,PNR,PNR,317,317 ++timerfd_create,322,283,283,350,85,85,321,280,284,306,306,306,306,85,319,319 ++timerfd_gettime,326,287,287,354,87,87,322,281,285,308,308,312,312,87,321,321 ++timerfd_gettime64,410,PNR,PNR,410,PNR,PNR,410,PNR,410,410,PNR,410,PNR,PNR,410,PNR ++timerfd_settime,325,286,286,353,86,86,323,282,286,307,307,311,311,86,320,320 ++timerfd_settime64,411,PNR,PNR,411,PNR,PNR,411,PNR,411,411,PNR,411,PNR,PNR,411,PNR ++timer_getoverrun,262,225,225,260,109,109,260,219,223,253,253,243,243,109,257,257 ++timer_gettime,261,224,224,259,108,108,259,218,222,252,252,242,242,108,256,256 ++timer_gettime64,408,PNR,PNR,408,PNR,PNR,408,PNR,408,408,PNR,408,PNR,PNR,408,PNR ++timer_settime,260,223,223,258,110,110,258,217,221,251,251,241,241,110,255,255 ++timer_settime64,409,PNR,PNR,409,PNR,PNR,409,PNR,409,409,PNR,409,PNR,PNR,409,PNR ++times,43,100,100,43,153,153,43,98,98,43,43,43,43,153,43,43 ++tkill,238,200,200,238,130,130,236,192,192,208,208,208,208,130,237,237 ++truncate,92,76,76,92,45,45,92,74,74,92,92,92,92,45,92,92 ++truncate64,193,PNR,PNR,193,PNR,PNR,211,PNR,PNR,199,199,193,PNR,PNR,193,PNR ++tuxcall,PNR,184,184,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,225,225,PNR,PNR,PNR ++ugetrlimit,191,PNR,PNR,191,PNR,PNR,PNR,PNR,PNR,PNR,PNR,190,190,PNR,191,PNR ++ulimit,58,PNR,PNR,PNR,PNR,PNR,58,PNR,PNR,PNR,PNR,58,58,PNR,PNR,PNR ++umask,60,95,95,60,166,166,60,93,93,60,60,60,60,166,60,60 ++umount,22,PNR,PNR,PNR,PNR,PNR,22,PNR,PNR,PNR,PNR,22,22,PNR,22,22 ++umount2,52,166,166,52,39,39,52,161,161,52,52,52,52,39,52,52 ++uname,122,63,63,122,160,160,122,61,61,59,59,122,122,160,122,122 ++unlink,10,87,87,10,PNR,PNR,10,85,85,10,10,10,10,PNR,10,10 ++unlinkat,301,263,263,328,35,35,294,253,257,281,281,292,292,35,294,294 ++unshare,310,272,272,337,97,97,303,262,266,288,288,282,282,97,303,303 ++uselib,86,134,PNR,86,PNR,PNR,86,PNR,PNR,86,86,86,86,PNR,86,86 ++userfaultfd,374,323,323,388,282,282,357,317,321,344,344,364,364,282,355,355 ++usr26,PNR,PNR,PNR,983043,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++usr32,PNR,PNR,PNR,983044,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++ustat,62,136,136,62,PNR,PNR,62,133,133,62,62,62,62,PNR,62,62 ++utime,30,132,132,PNR,PNR,PNR,30,130,130,30,30,30,30,PNR,30,30 ++utimensat,320,280,280,348,88,88,316,275,279,301,301,304,304,88,315,315 ++utimensat_time64,412,PNR,PNR,412,PNR,PNR,412,PNR,412,412,PNR,412,PNR,PNR,412,PNR ++utimes,271,235,235,269,PNR,PNR,267,226,230,336,336,251,251,PNR,313,313 ++vfork,190,58,58,190,PNR,PNR,PNR,PNR,PNR,113,113,189,189,PNR,190,190 ++vhangup,111,153,153,111,58,58,111,150,150,111,111,111,111,58,111,111 ++vm86,166,PNR,PNR,PNR,PNR,PNR,113,PNR,PNR,PNR,PNR,113,113,PNR,PNR,PNR ++vm86old,113,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++vmsplice,316,278,532,343,75,75,307,266,270,294,294,285,285,75,309,309 ++vserver,273,236,PNR,313,PNR,PNR,277,236,240,PNR,PNR,PNR,PNR,PNR,PNR,PNR ++wait4,114,61,61,114,260,260,114,59,59,114,114,114,114,260,114,114 ++waitid,284,247,529,280,95,95,278,237,241,235,235,272,272,95,281,281 ++waitpid,7,PNR,PNR,PNR,PNR,PNR,7,PNR,PNR,7,7,7,7,PNR,PNR,PNR ++write,4,1,1,4,64,64,4,1,1,4,4,4,4,64,4,4 ++writev,146,20,516,146,66,66,146,19,19,146,146,146,146,66,146,146 diff --git a/patches/tests_Add_64-bit_LoongArch_support.patch b/patches/tests_Add_64-bit_LoongArch_support.patch new file mode 100644 index 0000000..1f39060 --- /dev/null +++ b/patches/tests_Add_64-bit_LoongArch_support.patch @@ -0,0 +1,569 @@ +From 80c2c9fe4eac515b31292c522b51657800028018 Mon Sep 17 00:00:00 2001 +From: Xiaotian Wu +Date: Tue, 9 Feb 2021 15:52:18 +0800 +Subject: [PATCH] tests: Add 64-bit LoongArch support + +[xen0n: LoongArch (and a few upcoming architectures / ABIs) does not +have fstat, so the fstat in 06-sim-actions is also being changed to +fstatfs for uniformity across the board.] + +Signed-off-by: Xiaotian Wu +Signed-off-by: WANG Xuerui +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore +--- + tests/06-sim-actions.py | 2 +- + tests/06-sim-actions.tests | 7 ++- + tests/15-basic-resolver.c | 1 + + tests/16-sim-arch_basic.c | 6 ++ + tests/16-sim-arch_basic.py | 1 + + tests/23-sim-arch_all_le_basic.c | 3 + + tests/23-sim-arch_all_le_basic.py | 1 + + tests/36-sim-ipc_syscalls.c | 3 + + tests/38-basic-pfc_coverage.c | 3 + + tests/38-basic-pfc_coverage.pfc | 97 ++++++++++++++++++++++++++++++ + tests/53-sim-binary_tree.c | 3 + + tests/53-sim-binary_tree.py | 1 + + tests/53-sim-binary_tree.tests | 78 ++++++++++++------------ + tests/55-basic-pfc_binary_tree.c | 3 + + tests/55-basic-pfc_binary_tree.pfc | 87 +++++++++++++++++++++++++++ + tests/56-basic-iterate_syscalls.c | 1 + + tests/56-basic-iterate_syscalls.py | 1 + + tests/regression | 4 +- + 18 files changed, 258 insertions(+), 44 deletions(-) + +diff --git a/tests/06-sim-actions.py b/tests/06-sim-actions.py +index 253061df..cfbd4f47 100755 +--- a/tests/06-sim-actions.py ++++ b/tests/06-sim-actions.py +@@ -38,7 +38,7 @@ def test(args): + f.add_rule(ERRNO(errno.EPERM), "write") + f.add_rule(TRAP, "close") + f.add_rule(TRACE(1234), "openat") +- f.add_rule(KILL_PROCESS, "fstat") ++ f.add_rule(KILL_PROCESS, "fstatfs") + return f + + args = util.get_opt() +diff --git a/tests/06-sim-actions.tests b/tests/06-sim-actions.tests +index 0d1fda45..2092c385 100644 +--- a/tests/06-sim-actions.tests ++++ b/tests/06-sim-actions.tests +@@ -15,12 +15,13 @@ test type: bpf-sim + 06-sim-actions all fstatfs 4 0x856B008 N N N N KILL_PROCESS + 06-sim-actions all rt_sigreturn N N N N N N LOG + 06-sim-actions x86 0-2 N N N N N N KILL +-06-sim-actions x86 7-107 N N N N N N KILL +-06-sim-actions x86 109-172 N N N N N N KILL ++06-sim-actions x86 7-99 N N N N N N KILL ++06-sim-actions x86 101-172 N N N N N N KILL + 06-sim-actions x86 174-294 N N N N N N KILL + 06-sim-actions x86 296-350 N N N N N N KILL + 06-sim-actions x86_64 6-14 N N N N N N KILL +-06-sim-actions x86_64 16-256 N N N N N N KILL ++06-sim-actions x86_64 16-137 N N N N N N KILL ++06-sim-actions x86_64 139-256 N N N N N N KILL + 06-sim-actions x86_64 258-350 N N N N N N KILL + + test type: bpf-sim-fuzz +diff --git a/tests/15-basic-resolver.c b/tests/15-basic-resolver.c +index c759dd19..bdb73f79 100644 +--- a/tests/15-basic-resolver.c ++++ b/tests/15-basic-resolver.c +@@ -32,6 +32,7 @@ unsigned int arch_list[] = { + SCMP_ARCH_X32, + SCMP_ARCH_ARM, + SCMP_ARCH_AARCH64, ++ SCMP_ARCH_LOONGARCH64, + SCMP_ARCH_MIPS, + SCMP_ARCH_MIPS64, + SCMP_ARCH_MIPS64N32, +diff --git a/tests/16-sim-arch_basic.c b/tests/16-sim-arch_basic.c +index 4fcbb5ca..be269c99 100644 +--- a/tests/16-sim-arch_basic.c ++++ b/tests/16-sim-arch_basic.c +@@ -78,6 +78,9 @@ int main(int argc, char *argv[]) + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_AARCH64); ++ if (rc != 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, SCMP_ARCH_LOONGARCH64); + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_MIPSEL); +@@ -148,6 +151,9 @@ int main(int argc, char *argv[]) + if (rc != 0) + goto out; + rc = seccomp_arch_remove(ctx, SCMP_ARCH_AARCH64); ++ if (rc != 0) ++ goto out; ++ rc = seccomp_arch_remove(ctx, SCMP_ARCH_LOONGARCH64); + if (rc != 0) + goto out; + rc = seccomp_arch_remove(ctx, SCMP_ARCH_MIPSEL); +diff --git a/tests/16-sim-arch_basic.py b/tests/16-sim-arch_basic.py +index f22c9855..79e68541 100755 +--- a/tests/16-sim-arch_basic.py ++++ b/tests/16-sim-arch_basic.py +@@ -40,6 +40,7 @@ def test(args): + f.add_arch(Arch("x32")) + f.add_arch(Arch("arm")) + f.add_arch(Arch("aarch64")) ++ f.add_arch(Arch("loongarch64")) + f.add_arch(Arch("mipsel")) + f.add_arch(Arch("mipsel64")) + f.add_arch(Arch("mipsel64n32")) +diff --git a/tests/23-sim-arch_all_le_basic.c b/tests/23-sim-arch_all_le_basic.c +index 08f030c8..ef6d2c3a 100644 +--- a/tests/23-sim-arch_all_le_basic.c ++++ b/tests/23-sim-arch_all_le_basic.c +@@ -57,6 +57,9 @@ int main(int argc, char *argv[]) + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, seccomp_arch_resolve_name("aarch64")); ++ if (rc != 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, seccomp_arch_resolve_name("loongarch64")); + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, seccomp_arch_resolve_name("mipsel")); +diff --git a/tests/23-sim-arch_all_le_basic.py b/tests/23-sim-arch_all_le_basic.py +index 12bb243f..783dc251 100755 +--- a/tests/23-sim-arch_all_le_basic.py ++++ b/tests/23-sim-arch_all_le_basic.py +@@ -36,6 +36,7 @@ def test(args): + f.add_arch(Arch("x32")) + f.add_arch(Arch("arm")) + f.add_arch(Arch("aarch64")) ++ f.add_arch(Arch("loongarch64")) + f.add_arch(Arch("mipsel")) + f.add_arch(Arch("mipsel64")) + f.add_arch(Arch("mipsel64n32")) +diff --git a/tests/36-sim-ipc_syscalls.c b/tests/36-sim-ipc_syscalls.c +index 06aaf6ac..da087e9a 100644 +--- a/tests/36-sim-ipc_syscalls.c ++++ b/tests/36-sim-ipc_syscalls.c +@@ -60,6 +60,9 @@ int main(int argc, char *argv[]) + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_MIPSEL); ++ if (rc != 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, SCMP_ARCH_LOONGARCH64); + if (rc != 0) + goto out; + +diff --git a/tests/38-basic-pfc_coverage.c b/tests/38-basic-pfc_coverage.c +index 64a656e4..c094cd44 100644 +--- a/tests/38-basic-pfc_coverage.c ++++ b/tests/38-basic-pfc_coverage.c +@@ -64,6 +64,9 @@ int main(int argc, char *argv[]) + if (rc < 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_AARCH64); ++ if (rc < 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, SCMP_ARCH_LOONGARCH64); + if (rc < 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_MIPSEL); +diff --git a/tests/38-basic-pfc_coverage.pfc b/tests/38-basic-pfc_coverage.pfc +index c91f1a84..815470e6 100644 +--- a/tests/38-basic-pfc_coverage.pfc ++++ b/tests/38-basic-pfc_coverage.pfc +@@ -300,6 +300,103 @@ if ($arch == 3221225655) + action KILL; + # default action + action ALLOW; ++# filter for arch loongarch64 (3221225730) ++if ($arch == 3221225730) ++ # filter for syscall "open" (4294957130) [priority: 65535] ++ if ($syscall == 4294957130) ++ action KILL; ++ # filter for syscall "fstat" (4294957051) [priority: 65535] ++ if ($syscall == 4294957051) ++ action KILL_PROCESS; ++ # filter for syscall "exit_group" (94) [priority: 65535] ++ if ($syscall == 94) ++ action LOG; ++ # filter for syscall "exit" (93) [priority: 65535] ++ if ($syscall == 93) ++ action TRACE(1); ++ # filter for syscall "close" (57) [priority: 65535] ++ if ($syscall == 57) ++ action ERRNO(1); ++ # filter for syscall "write" (64) [priority: 65527] ++ if ($syscall == 64) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 0) ++ else ++ if ($a1.hi32 > 0) ++ else ++ if ($a1.hi32 == 0) ++ if ($a1.lo32 > 1) ++ else ++ if ($a2.hi32 > 0) ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 >= 2) ++ else ++ action TRAP; ++ else ++ action TRAP; ++ else ++ if ($a2.hi32 > 0) ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 >= 2) ++ else ++ action TRAP; ++ else ++ action TRAP; ++ else ++ if ($a1.hi32 > 0) ++ else ++ if ($a1.hi32 == 0) ++ if ($a1.lo32 > 1) ++ else ++ if ($a2.hi32 > 0) ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 >= 2) ++ else ++ action TRAP; ++ else ++ action TRAP; ++ else ++ if ($a2.hi32 > 0) ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 >= 2) ++ else ++ action TRAP; ++ else ++ action TRAP; ++ # filter for syscall "read" (63) [priority: 65525] ++ if ($syscall == 63) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 0) ++ if ($a1.hi32 > 0) ++ if ($a2.hi32 > 0) ++ if ($a3.hi32 & 0x00000000 == 0) ++ if ($a3.lo32 & 0x0000000f == 3) ++ action KILL; ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 > 2) ++ if ($a3.hi32 & 0x00000000 == 0) ++ if ($a3.lo32 & 0x0000000f == 3) ++ action KILL; ++ else ++ if ($a1.hi32 == 0) ++ if ($a1.lo32 >= 1) ++ if ($a2.hi32 > 0) ++ if ($a3.hi32 & 0x00000000 == 0) ++ if ($a3.lo32 & 0x0000000f == 3) ++ action KILL; ++ else ++ if ($a2.hi32 == 0) ++ if ($a2.lo32 > 2) ++ if ($a3.hi32 & 0x00000000 == 0) ++ if ($a3.lo32 & 0x0000000f == 3) ++ action KILL; ++ # default action ++ action ALLOW; + # filter for arch mipsel (1073741832) + if ($arch == 1073741832) + # filter for syscall "exit_group" (4246) [priority: 65535] +diff --git a/tests/53-sim-binary_tree.c b/tests/53-sim-binary_tree.c +index 4aa5f136..98b9e2cb 100644 +--- a/tests/53-sim-binary_tree.c ++++ b/tests/53-sim-binary_tree.c +@@ -103,6 +103,9 @@ int main(int argc, char *argv[]) + goto out; + + rc = seccomp_arch_add(ctx, SCMP_ARCH_AARCH64); ++ if (rc != 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, SCMP_ARCH_LOONGARCH64); + if (rc != 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_PPC64LE); +diff --git a/tests/53-sim-binary_tree.py b/tests/53-sim-binary_tree.py +index 8ee58cda..8cda8107 100755 +--- a/tests/53-sim-binary_tree.py ++++ b/tests/53-sim-binary_tree.py +@@ -72,6 +72,7 @@ def test(args): + + f.remove_arch(Arch()) + f.add_arch(Arch("aarch64")) ++ f.add_arch(Arch("loongarch64")) + f.add_arch(Arch("ppc64le")) + f.add_arch(Arch("x86_64")) + +diff --git a/tests/53-sim-binary_tree.tests b/tests/53-sim-binary_tree.tests +index 2ebaafd5..9813d0d6 100644 +--- a/tests/53-sim-binary_tree.tests ++++ b/tests/53-sim-binary_tree.tests +@@ -8,56 +8,56 @@ + test type: bpf-sim + + # Testname Arch Syscall Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Result +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 read N N N N N N ERRNO(0) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 write N N N N N N ERRNO(1) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 read N N N N N N ERRNO(0) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 write N N N N N N ERRNO(1) + 53-sim-binary_tree +x86_64,+ppc64le open N N N N N N ERRNO(2) +-53-sim-binary_tree +aarch64 open N N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 close N N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 close 100 1234 N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 close 100 101 N N N N ERRNO(3) ++53-sim-binary_tree +aarch64,+loongarch64 open N N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 close N N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 close 100 1234 N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 close 100 101 N N N N ERRNO(3) + 53-sim-binary_tree +x86_64,+ppc64le stat N N N N N N ERRNO(4) +-53-sim-binary_tree +aarch64 stat N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 stat N N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le,+aarch64 fstat N N N N N N ERRNO(5) + 53-sim-binary_tree +x86_64,+ppc64le lstat N N N N N N ERRNO(6) +-53-sim-binary_tree +aarch64 lstat N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 lstat N N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le poll 102 N N N N N ERRNO(7) +-53-sim-binary_tree +aarch64 poll 102 N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 lseek 103 104 N N N N ERRNO(8) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 mmap N N N N N N ERRNO(9) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 mprotect N N N N N N ERRNO(10) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 munmap N N N N N N ERRNO(11) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 brk N N N N N N ERRNO(12) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 rt_sigaction N N N N N N ERRNO(13) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 rt_sigprocmask N N N N N N ERRNO(14) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 rt_sigreturn N N N N N N ERRNO(15) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 ioctl N N N N N N ERRNO(16) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 pread64 105 N N N N N ERRNO(17) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 pwrite64 N N N N N N ERRNO(18) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 readv N N N N N N ERRNO(19) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 writev N N N N N N ERRNO(20) ++53-sim-binary_tree +aarch64,+loongarch64 poll 102 N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 lseek 103 104 N N N N ERRNO(8) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 mmap N N N N N N ERRNO(9) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 mprotect N N N N N N ERRNO(10) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 munmap N N N N N N ERRNO(11) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 brk N N N N N N ERRNO(12) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 rt_sigaction N N N N N N ERRNO(13) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 rt_sigprocmask N N N N N N ERRNO(14) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 rt_sigreturn N N N N N N ERRNO(15) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 ioctl N N N N N N ERRNO(16) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 pread64 105 N N N N N ERRNO(17) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 pwrite64 N N N N N N ERRNO(18) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 readv N N N N N N ERRNO(19) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 writev N N N N N N ERRNO(20) + 53-sim-binary_tree +x86_64,+ppc64le access N N N N N N ERRNO(21) +-53-sim-binary_tree +aarch64 access N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 access N N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le pipe N N N N N N ERRNO(22) +-53-sim-binary_tree +aarch64 pipe N N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 select N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 pipe N N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 select N N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le select 106 107 N N N N ERRNO(23) +-53-sim-binary_tree +aarch64 select 106 107 N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 sched_yield N N N N N N ERRNO(24) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 mremap N N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 mremap 108 109 N N N N ERRNO(25) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 msync N N N N N N ERRNO(26) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 mincore N N N N N N ERRNO(27) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 madvise N N N N N N ERRNO(28) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 dup 112 N N N N N ERRNO(32) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 dup 5678 N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 select 106 107 N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 sched_yield N N N N N N ERRNO(24) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 mremap N N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 mremap 108 109 N N N N ERRNO(25) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 msync N N N N N N ERRNO(26) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 mincore N N N N N N ERRNO(27) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 madvise N N N N N N ERRNO(28) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 dup 112 N N N N N ERRNO(32) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 dup 5678 N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le dup2 N N N N N N ERRNO(33) +-53-sim-binary_tree +aarch64 dup2 N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 dup2 N N N N N N ALLOW + 53-sim-binary_tree +x86_64,+ppc64le pause N N N N N N ERRNO(34) +-53-sim-binary_tree +aarch64 pause N N N N N N ALLOW +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 nanosleep N N N N N N ERRNO(35) +-53-sim-binary_tree +x86_64,+ppc64le,+aarch64 getitimer N N N N N N ERRNO(36) ++53-sim-binary_tree +aarch64,+loongarch64 pause N N N N N N ALLOW ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 nanosleep N N N N N N ERRNO(35) ++53-sim-binary_tree +x86_64,+ppc64le,+aarch64,+loongarch64 getitimer N N N N N N ERRNO(36) + 53-sim-binary_tree +x86_64,+ppc64le alarm N N N N N N ERRNO(37) +-53-sim-binary_tree +aarch64 alarm N N N N N N ALLOW ++53-sim-binary_tree +aarch64,+loongarch64 alarm N N N N N N ALLOW + + test type: bpf-valgrind + +diff --git a/tests/55-basic-pfc_binary_tree.c b/tests/55-basic-pfc_binary_tree.c +index e364fd6b..0919f6b1 100644 +--- a/tests/55-basic-pfc_binary_tree.c ++++ b/tests/55-basic-pfc_binary_tree.c +@@ -87,6 +87,9 @@ int main(int argc, char *argv[]) + if (rc < 0) + goto out; + rc = seccomp_arch_add(ctx, SCMP_ARCH_AARCH64); ++ if (rc < 0) ++ goto out; ++ rc = seccomp_arch_add(ctx, SCMP_ARCH_LOONGARCH64); + if (rc < 0) + goto out; + rc = seccomp_attr_set(ctx, SCMP_FLTATR_CTL_OPTIMIZE, 2); +diff --git a/tests/55-basic-pfc_binary_tree.pfc b/tests/55-basic-pfc_binary_tree.pfc +index ba3244c4..33109454 100644 +--- a/tests/55-basic-pfc_binary_tree.pfc ++++ b/tests/55-basic-pfc_binary_tree.pfc +@@ -175,6 +175,93 @@ if ($arch == 3221225655) + action ERRNO(16); + # default action + action ALLOW; ++# filter for arch loongarch64 (3221225730) ++if ($arch == 3221225730) ++ if ($syscall > 62) ++ if ($syscall > 214) ++ if ($syscall > 4294957051) ++ # filter for syscall "lstat" (4294957133) [priority: 65535] ++ if ($syscall == 4294957133) ++ action ERRNO(6); ++ # filter for syscall "open" (4294957130) [priority: 65535] ++ if ($syscall == 4294957130) ++ action ERRNO(2); ++ # filter for syscall "poll" (4294957127) [priority: 65535] ++ if ($syscall == 4294957127) ++ action ERRNO(7); ++ # filter for syscall "stat" (4294957122) [priority: 65535] ++ if ($syscall == 4294957122) ++ action ERRNO(4); ++ else # ($syscall <= 4294957051) ++ # filter for syscall "fstat" (4294957051) [priority: 65533] ++ if ($syscall == 4294957051) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 103) ++ action ERRNO(5); ++ # filter for syscall "mprotect" (226) [priority: 65533] ++ if ($syscall == 226) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 105) ++ action ERRNO(10); ++ # filter for syscall "mmap" (222) [priority: 65535] ++ if ($syscall == 222) ++ action ERRNO(9); ++ # filter for syscall "munmap" (215) [priority: 65535] ++ if ($syscall == 215) ++ action ERRNO(11); ++ else # ($syscall <= 214) ++ if ($syscall > 68) ++ # filter for syscall "brk" (214) [priority: 65535] ++ if ($syscall == 214) ++ action ERRNO(12); ++ # filter for syscall "rt_sigreturn" (139) [priority: 65535] ++ if ($syscall == 139) ++ action ERRNO(15); ++ # filter for syscall "rt_sigprocmask" (135) [priority: 65535] ++ if ($syscall == 135) ++ action ERRNO(14); ++ # filter for syscall "rt_sigaction" (134) [priority: 65535] ++ if ($syscall == 134) ++ action ERRNO(13); ++ else # ($syscall <= 68) ++ # filter for syscall "pwrite64" (68) [priority: 65531] ++ if ($syscall == 68) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 107) ++ if ($a1.hi32 == 0) ++ if ($a1.lo32 == 108) ++ action ERRNO(18); ++ # filter for syscall "pread64" (67) [priority: 65533] ++ if ($syscall == 67) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 106) ++ action ERRNO(17); ++ # filter for syscall "write" (64) [priority: 65533] ++ if ($syscall == 64) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 102) ++ action ERRNO(1); ++ # filter for syscall "read" (63) [priority: 65531] ++ if ($syscall == 63) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 100) ++ if ($a1.hi32 == 0) ++ if ($a1.lo32 == 101) ++ action ERRNO(0); ++ else # ($syscall <= 62) ++ # filter for syscall "lseek" (62) [priority: 65533] ++ if ($syscall == 62) ++ if ($a0.hi32 == 0) ++ if ($a0.lo32 == 104) ++ action ERRNO(8); ++ # filter for syscall "close" (57) [priority: 65535] ++ if ($syscall == 57) ++ action ERRNO(3); ++ # filter for syscall "ioctl" (29) [priority: 65535] ++ if ($syscall == 29) ++ action ERRNO(16); ++ # default action ++ action ALLOW; + # invalid architecture action + action KILL; + # +diff --git a/tests/56-basic-iterate_syscalls.c b/tests/56-basic-iterate_syscalls.c +index 5e7ab679..b514afa1 100644 +--- a/tests/56-basic-iterate_syscalls.c ++++ b/tests/56-basic-iterate_syscalls.c +@@ -33,6 +33,7 @@ unsigned int arch_list[] = { + SCMP_ARCH_X32, + SCMP_ARCH_ARM, + SCMP_ARCH_AARCH64, ++ SCMP_ARCH_LOONGARCH64, + SCMP_ARCH_MIPS, + SCMP_ARCH_MIPS64, + SCMP_ARCH_MIPS64N32, +diff --git a/tests/56-basic-iterate_syscalls.py b/tests/56-basic-iterate_syscalls.py +index 77a5b893..d69dd0cf 100755 +--- a/tests/56-basic-iterate_syscalls.py ++++ b/tests/56-basic-iterate_syscalls.py +@@ -33,6 +33,7 @@ + "x32", + "arm", + "aarch64", ++ "loongarch64", + "mipsel", + "mipsel64", + "mipsel64n32", +diff --git a/tests/regression b/tests/regression +index 746cea9a..32463c0a 100755 +--- a/tests/regression ++++ b/tests/regression +@@ -24,6 +24,7 @@ + GLBL_ARCH_LE_SUPPORT=" \ + x86 x86_64 x32 \ + arm aarch64 \ ++ loongarch64 \ + mipsel mipsel64 mipsel64n32 \ + ppc64le \ + riscv64" +@@ -47,6 +48,7 @@ GLBL_ARCH_32B_SUPPORT=" \ + GLBL_ARCH_64B_SUPPORT=" \ + x86_64 \ + aarch64 \ ++ loongarch64 \ + mips64 \ + parisc64 \ + ppc64 \ +@@ -801,7 +803,7 @@ function run_test_live() { + + # setup the arch specific return values + case "$arch" in +- x86|x86_64|x32|arm|aarch64|parisc|parisc64|ppc|ppc64|ppc64le|ppc|s390|s390x|riscv64) ++ x86|x86_64|x32|arm|aarch64|loongarch64|parisc|parisc64|ppc|ppc64|ppc64le|ppc|s390|s390x|riscv64) + rc_kill_process=159 + rc_kill=159 + rc_allow=160 diff --git a/patches/tests_Fix_wrong_syscall-error_in_test_29.patch b/patches/tests_Fix_wrong_syscall-error_in_test_29.patch new file mode 100644 index 0000000..2a96b65 --- /dev/null +++ b/patches/tests_Fix_wrong_syscall-error_in_test_29.patch @@ -0,0 +1,28 @@ +From 1852fe3d772914d848907f9d0656747776ed3f98 Mon Sep 17 00:00:00 2001 +From: Mayank Mrinal +Date: Thu, 1 Jun 2023 14:53:44 +0530 +Subject: [PATCH] tests: Fix wrong syscall-error in test 29 + +29-sim-pseudo_syscall.c was using `-11001` syscall. +Corrected it to `-10001`. + +Signed-off-by: Mayank Mrinal +Acked-by: Paul Moore +Signed-off-by: Tom Hromatka +--- + tests/29-sim-pseudo_syscall.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/29-sim-pseudo_syscall.c b/tests/29-sim-pseudo_syscall.c +index acf9c193..86734a84 100644 +--- a/tests/29-sim-pseudo_syscall.c ++++ b/tests/29-sim-pseudo_syscall.c +@@ -57,7 +57,7 @@ int main(int argc, char *argv[]) + if (rc == 0) + goto out; + /* -10001 == 4294957295 (unsigned) */ +- rc = seccomp_rule_add_exact(ctx, SCMP_ACT_KILL, -11001, 0); ++ rc = seccomp_rule_add_exact(ctx, SCMP_ACT_KILL, -10001, 0); + if (rc == 0) + goto out; + diff --git a/patches/tests_add_fstatfs_syscall_in_the_06-sim-actions.patch b/patches/tests_add_fstatfs_syscall_in_the_06-sim-actions.patch new file mode 100644 index 0000000..fccbf6f --- /dev/null +++ b/patches/tests_add_fstatfs_syscall_in_the_06-sim-actions.patch @@ -0,0 +1,39 @@ +From 315f7b9ec6d8992035a2c0f652949ee34843db32 Mon Sep 17 00:00:00 2001 +From: Xiaotian Wu +Date: Sun, 23 Oct 2022 14:36:42 +0800 +Subject: [PATCH] tests: add fstatfs() syscall in the 06-sim-actions + +Signed-off-by: Xiaotian Wu +Acked-by: Tom Hromatka +Signed-off-by: Paul Moore +--- + tests/06-sim-actions.c | 2 +- + tests/06-sim-actions.tests | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/06-sim-actions.c b/tests/06-sim-actions.c +index da636c94..56a60fda 100644 +--- a/tests/06-sim-actions.c ++++ b/tests/06-sim-actions.c +@@ -64,7 +64,7 @@ int main(int argc, char *argv[]) + if (rc != 0) + goto out; + +- rc = seccomp_rule_add(ctx, SCMP_ACT_KILL_PROCESS, SCMP_SYS(fstat), 0); ++ rc = seccomp_rule_add(ctx, SCMP_ACT_KILL_PROCESS, SCMP_SYS(fstatfs), 0); + if (rc != 0) + goto out; + +diff --git a/tests/06-sim-actions.tests b/tests/06-sim-actions.tests +index 76072a7a..0d1fda45 100644 +--- a/tests/06-sim-actions.tests ++++ b/tests/06-sim-actions.tests +@@ -12,7 +12,7 @@ test type: bpf-sim + 06-sim-actions all write 1 0x856B008 N N N N ERRNO(1) + 06-sim-actions all close 4 N N N N N TRAP + 06-sim-actions all openat 0 0x856B008 4 N N N TRACE(1234) +-06-sim-actions all fstat N N N N N N KILL_PROCESS ++06-sim-actions all fstatfs 4 0x856B008 N N N N KILL_PROCESS + 06-sim-actions all rt_sigreturn N N N N N N LOG + 06-sim-actions x86 0-2 N N N N N N KILL + 06-sim-actions x86 7-107 N N N N N N KILL diff --git a/patches/tests_only_use_bogus_syscall_numbers_in_test_29.patch b/patches/tests_only_use_bogus_syscall_numbers_in_test_29.patch new file mode 100644 index 0000000..92c6d46 --- /dev/null +++ b/patches/tests_only_use_bogus_syscall_numbers_in_test_29.patch @@ -0,0 +1,75 @@ +From 87876aa6ddb7cd70953f120f3d96495c2684ddda Mon Sep 17 00:00:00 2001 +From: Paul Moore +Date: Thu, 5 Sep 2024 17:29:13 -0400 +Subject: [PATCH] tests: only use bogus syscall numbers in test 29 + +The goal of test 29 is to test bogus negative syscall numbers, +unfortunately it appears our choice of syscalls was not bogus on all +the architectures we support. This commit fixes that by picking a +syscall number well outside the pseudo-syscall/PNR range and removing +the sysmips(2) syscall from the test so as to not cause problems +at a later date. + +Signed-off-by: Paul Moore +Signed-off-by: Tom Hromatka +--- + tests/29-sim-pseudo_syscall.c | 11 ++--------- + tests/29-sim-pseudo_syscall.py | 7 +------ + tests/29-sim-pseudo_syscall.tests | 3 +-- + 3 files changed, 4 insertions(+), 17 deletions(-) + +diff --git a/tests/29-sim-pseudo_syscall.c b/tests/29-sim-pseudo_syscall.c +index 86734a84..3c3405a8 100644 +--- a/tests/29-sim-pseudo_syscall.c ++++ b/tests/29-sim-pseudo_syscall.c +@@ -49,15 +49,8 @@ int main(int argc, char *argv[]) + if (rc < 0) + goto out; + +- /* SCMP_SYS(sysmips) == 4294957190 (unsigned) */ +- rc = seccomp_rule_add(ctx, SCMP_ACT_KILL, SCMP_SYS(sysmips), 0); +- if (rc < 0) +- goto out; +- rc = seccomp_rule_add_exact(ctx, SCMP_ACT_KILL, SCMP_SYS(sysmips), 0); +- if (rc == 0) +- goto out; +- /* -10001 == 4294957295 (unsigned) */ +- rc = seccomp_rule_add_exact(ctx, SCMP_ACT_KILL, -10001, 0); ++ /* -100001 == 4294867295 (unsigned) */ ++ rc = seccomp_rule_add_exact(ctx, SCMP_ACT_KILL, -100001, 0); + if (rc == 0) + goto out; + +diff --git a/tests/29-sim-pseudo_syscall.py b/tests/29-sim-pseudo_syscall.py +index d7ab33be..74ffc61d 100755 +--- a/tests/29-sim-pseudo_syscall.py ++++ b/tests/29-sim-pseudo_syscall.py +@@ -32,13 +32,8 @@ def test(args): + f = SyscallFilter(ALLOW) + f.remove_arch(Arch()) + f.add_arch(Arch("x86")) +- f.add_rule(KILL, "sysmips") + try: +- f.add_rule_exactly(KILL, "sysmips") +- except RuntimeError: +- pass +- try: +- f.add_rule_exactly(KILL, -10001) ++ f.add_rule_exactly(KILL, -100001) + except RuntimeError: + pass + return f +diff --git a/tests/29-sim-pseudo_syscall.tests b/tests/29-sim-pseudo_syscall.tests +index 45f8dceb..779761e8 100644 +--- a/tests/29-sim-pseudo_syscall.tests ++++ b/tests/29-sim-pseudo_syscall.tests +@@ -9,8 +9,7 @@ test type: bpf-sim + + # Testname Arch Syscall Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Result + 29-sim-pseudo_syscall +x86 0-10 N N N N N N ALLOW +-29-sim-pseudo_syscall +x86 4294957190 N N N N N N ALLOW +-29-sim-pseudo_syscall +x86 4294957295 N N N N N N ALLOW ++29-sim-pseudo_syscall +x86 4294867295 N N N N N N ALLOW + + test type: bpf-valgrind + diff --git a/python-seccomp.install b/python-seccomp.install new file mode 100644 index 0000000..a71458d --- /dev/null +++ b/python-seccomp.install @@ -0,0 +1 @@ +usr/lib/python2.*/dist-packages/seccomp.so diff --git a/python3-seccomp.install b/python3-seccomp.install new file mode 100644 index 0000000..97a45dc --- /dev/null +++ b/python3-seccomp.install @@ -0,0 +1 @@ +usr/lib/python3.*/site-packages/seccomp.cpython-*.so diff --git a/rules b/rules new file mode 100755 index 0000000..df1b96a --- /dev/null +++ b/rules @@ -0,0 +1,37 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Enable verbose build details. +export V=1 + +include /usr/share/dpkg/architecture.mk + +%: +ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) + dh $@ --with python3 +else + dh $@ +endif + +ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) + +override_dh_auto_install: + dh_auto_install + for pyver in `py3versions -s`; do \ + set -e; \ + if python3 -c "pyver=tuple(map(int, '$$pyver'[6:].split('.'))); exit(0 if pyver >= (3,8) else 1)"; then \ + export _PYTHON_SYSCONFIGDATA_NAME='_sysconfigdata__${DEB_HOST_ARCH_OS}_${DEB_HOST_MULTIARCH}'; \ + else \ + export _PYTHON_SYSCONFIGDATA_NAME='_sysconfigdata_m_${DEB_HOST_ARCH_OS}_${DEB_HOST_MULTIARCH}'; \ + fi; \ + dh_auto_configure -- --enable-python PYTHON=$$pyver; \ + dh_auto_install --sourcedirectory=src/python -- PYTHON=$$pyver; \ + done +endif + +override_dh_auto_clean: + dh_auto_clean + rm -f regression.out diff --git a/salsa-ci.yml b/salsa-ci.yml new file mode 100644 index 0000000..3fa15ad --- /dev/null +++ b/salsa-ci.yml @@ -0,0 +1,14 @@ +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml + +variables: + SALSA_CI_ENABLE_BUILD_PACKAGE_PROFILES: 1 + # job doesn't seem to be stable + SALSA_CI_DISABLE_CROSSBUILD_ARM64: 1 + +test-build-profiles: + extends: .test-build-package-profiles + parallel: + matrix: + - BUILD_PROFILES: nocheck + - BUILD_PROFILES: nopython diff --git a/seccomp.install b/seccomp.install new file mode 100644 index 0000000..1df36c6 --- /dev/null +++ b/seccomp.install @@ -0,0 +1 @@ +usr/bin/* diff --git a/seccomp.manpages b/seccomp.manpages new file mode 100644 index 0000000..5ea05fe --- /dev/null +++ b/seccomp.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/* diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/common b/tests/common new file mode 100644 index 0000000..e02e8db --- /dev/null +++ b/tests/common @@ -0,0 +1,12 @@ +SRCDIR="$(pwd)" + +mkdir "$AUTOPKGTEST_TMP/tests" "$AUTOPKGTEST_TMP/tools" +cp -a tests/. "$AUTOPKGTEST_TMP/tests/" + +cd "$AUTOPKGTEST_TMP/tests" + +# build tools needed for tests +for tool in scmp_api_level scmp_arch_detect scmp_sys_resolver; do + echo "Building $tool ..." + gcc -O2 -g "$SRCDIR/tools/$tool.c" "$SRCDIR/tools/util.c" -lseccomp -o ../tools/$tool +done diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..3d2c4ba --- /dev/null +++ b/tests/control @@ -0,0 +1,7 @@ +Tests: testsuite-live +Depends: libseccomp-dev, build-essential +Restrictions: isolation-machine + +Tests: testsuite-live-python3 +Depends: libseccomp-dev, build-essential, python3-seccomp +Restrictions: isolation-machine, allow-stderr diff --git a/tests/testsuite-live b/tests/testsuite-live new file mode 100644 index 0000000..bbf20d0 --- /dev/null +++ b/tests/testsuite-live @@ -0,0 +1,17 @@ +#!/bin/sh + +set -eu + +. debian/tests/common + +# manually build necessary files against the installed libseccomp + +# build live tests +for filename in *-live-*.tests; do + testname=$(echo "$filename" | cut -f 1 -d '.') + echo "Building $testname ..." + gcc -O2 -g "${testname}.c" util.c -pthread -lseccomp -o "$testname" +done + +echo "Running test suite ..." +./regression -T live diff --git a/tests/testsuite-live-python3 b/tests/testsuite-live-python3 new file mode 100644 index 0000000..f4fb094 --- /dev/null +++ b/tests/testsuite-live-python3 @@ -0,0 +1,13 @@ +#!/bin/sh + +set -eu + +. debian/tests/common + +# make sure "python" points to python3 as this is not configurable +# in the regression script +mkdir python3env +ln -s /usr/bin/python3 python3env/python + +echo "Running test suite ..." +PATH="$(pwd)/python3env:$PATH" ./regression -T live -m python diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 0000000..0fef70b --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,4 @@ +Bug-Database: https://github.com/seccomp/libseccomp/issues +Bug-Submit: https://github.com/seccomp/libseccomp/issues/new +Repository: https://github.com/seccomp/libseccomp.git +Repository-Browse: https://github.com/seccomp/libseccomp diff --git a/upstream/signing-key.asc b/upstream/signing-key.asc new file mode 100644 index 0000000..5ddf435 --- /dev/null +++ b/upstream/signing-key.asc @@ -0,0 +1,192 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +lUtY1AVxx4LtnS16GX+OVCybWzbK1uqLrfo= +=9JXr +-----END PGP PUBLIC KEY BLOCK----- diff --git a/watch b/watch new file mode 100644 index 0000000..7db2017 --- /dev/null +++ b/watch @@ -0,0 +1,5 @@ +version=4 +opts="searchmode=plain,\ +pgpsigurlmangle=s/$/.asc/" \ +https://api.github.com/repos/seccomp/libseccomp/releases?per_page=50 \ +https://github.com/seccomp/libseccomp/releases/download/[^/]+/libseccomp-@ANY_VERSION@@ARCHIVE_EXT@" -- 2.30.2