Import libseccomp_2.5.5-2.debian.tar.xz
authorFelix Geyer <fgeyer@debian.org>
Sun, 24 Nov 2024 20:54:16 +0000 (21:54 +0100)
committerFelix Geyer <fgeyer@debian.org>
Sun, 24 Nov 2024 20:54:16 +0000 (21:54 +0100)
[dgit import tarball libseccomp 2.5.5-2 libseccomp_2.5.5-2.debian.tar.xz]

37 files changed:
changelog [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
docs [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
libseccomp-dev.install [new file with mode: 0644]
libseccomp-dev.manpages [new file with mode: 0644]
libseccomp2.install [new file with mode: 0644]
libseccomp2.symbols [new file with mode: 0644]
not-installed [new file with mode: 0644]
patches/arch_Add_64-bit_LoongArch_support.patch [new file with mode: 0644]
patches/arch_adapt_arch-syscall-validate_to_Linux_6.11.patch [new file with mode: 0644]
patches/arch_unify_handling_of_syscall.tbl_in_arch-syscall-validate.patch [new file with mode: 0644]
patches/doc_update_README_and_manpage_for_64-bit_LoongArch.patch [new file with mode: 0644]
patches/python_Fix_distutils_DeprecationWarning.patch [new file with mode: 0644]
patches/python_single_version_externally_managed.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
patches/syscalls_Update_the_syscall_table_for_Linux_v6.12-rc5.patch [new file with mode: 0644]
patches/syscalls_update_to_Linux_v6.0.patch [new file with mode: 0644]
patches/tests_Add_64-bit_LoongArch_support.patch [new file with mode: 0644]
patches/tests_Fix_wrong_syscall-error_in_test_29.patch [new file with mode: 0644]
patches/tests_add_fstatfs_syscall_in_the_06-sim-actions.patch [new file with mode: 0644]
patches/tests_only_use_bogus_syscall_numbers_in_test_29.patch [new file with mode: 0644]
python-seccomp.install [new file with mode: 0644]
python3-seccomp.install [new file with mode: 0644]
rules [new file with mode: 0755]
salsa-ci.yml [new file with mode: 0644]
seccomp.install [new file with mode: 0644]
seccomp.manpages [new file with mode: 0644]
source/format [new file with mode: 0644]
tests/common [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/testsuite-live [new file with mode: 0644]
tests/testsuite-live-python3 [new file with mode: 0644]
upstream/metadata [new file with mode: 0644]
upstream/signing-key.asc [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/changelog b/changelog
new file mode 100644 (file)
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 <fgeyer@debian.org>  Sun, 24 Nov 2024 21:54:16 +0100
+
+libseccomp (2.5.5-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Felix Geyer <fgeyer@debian.org>  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 <fgeyer@debian.org>  Sun, 29 Oct 2023 15:13:08 +0100
+
+libseccomp (2.5.4-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Felix Geyer <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  Sun, 03 Oct 2021 23:26:59 +0200
+
+libseccomp (2.5.2-1) unstable; urgency=medium
+
+  * New upstream release.
+  * Update watch file.
+
+ -- Felix Geyer <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <fgeyer@debian.org>  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 <mpitt@debian.org>  Thu, 17 Nov 2016 10:16:44 +0100
+
+libseccomp (2.3.1-2) unstable; urgency=medium
+
+  * Add hppa (parisc) support (Closes: #820501)
+
+ -- Luca Bruno <lucab@debian.org>  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 <lucab@debian.org>  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 <lucab@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  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 <kees@debian.org>  Fri, 08 Jun 2012 12:32:22 -0700
+
+libseccomp (0.0.0~20120605-1) unstable; urgency=low
+
+  * Initial release (Closes: #676257).
+
+ -- Kees Cook <kees@debian.org>  Tue, 05 Jun 2012 11:28:07 -0700
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..592487b
--- /dev/null
+++ b/control
@@ -0,0 +1,64 @@
+Source: libseccomp
+Section: libs
+Priority: optional
+Maintainer: Kees Cook <kees@debian.org>
+Uploaders: Luca Bruno <lucab@debian.org>, Felix Geyer <fgeyer@debian.org>
+Build-Depends: debhelper-compat (= 12),
+               linux-libc-dev,
+               dh-python <!nopython>,
+               python3-all-dev:any <!nopython>,
+               libpython3-all-dev <!nopython>,
+               cython3:native <!nopython>,
+               python3-setuptools <!nopython>,
+               valgrind [amd64 arm64 armhf i386 mips mips64 powerpc ppc64 ppc64el s390x] <!nocheck>,
+               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: <!nopython>
+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 (file)
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 <pmoore@redhat.com>
+ 2012 Ashley Lai <adlai@us.ibm.com>
+ 2012 Corey Bryant <coreyb@linux.vnet.ibm.com>
+ 2012 Eduardo Otubo <otubo@linux.vnet.ibm.com>
+ 2012 Eric Paris <eparis@redhat.com>
+License: LGPL-2.1
+
+Files: tests/22-sim-basic_chains_array.tests
+Copyright: 2013 Vitaly Shukela <vi0oss@gmail.com>
+License: LGPL-2.1
+
+Files: src/hash.*
+Copyright: 2006 Bob Jenkins <bob_jenkins@burtleburtle.net>
+License: LGPL-2.1
+
+Files: debian/*
+Copyright: 2012 Kees Cook <kees@debian.org>
+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 <http://www.gnu.org/licenses>.
+ .
+ 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 (file)
index 0000000..b43bf86
--- /dev/null
+++ b/docs
@@ -0,0 +1 @@
+README.md
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
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 (file)
index 0000000..b973af4
--- /dev/null
@@ -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 (file)
index 0000000..7c72677
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man3/*
diff --git a/libseccomp2.install b/libseccomp2.install
new file mode 100644 (file)
index 0000000..3ddde58
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/lib*.so.*
diff --git a/libseccomp2.symbols b/libseccomp2.symbols
new file mode 100644 (file)
index 0000000..d1823d0
--- /dev/null
@@ -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 (file)
index 0000000..4f60595
--- /dev/null
@@ -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 (file)
index 0000000..ac7e0e4
--- /dev/null
@@ -0,0 +1,457 @@
+From 6966ec77b195ac289ae168c7c5646d59a307f33f Mon Sep 17 00:00:00 2001
+From: Xiaotian Wu <wuxiaotian@loongson.cn>
+Date: Tue, 9 Feb 2021 15:39:13 +0800
+Subject: [PATCH] arch: Add 64-bit LoongArch support
+
+Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
+Signed-off-by: WANG Xuerui <git@xen0n.name>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 <wuxiaotian@loongson.cn>
++ */
++
++/*
++ * 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 <http://www.gnu.org/licenses>.
++ */
++
++#include <stdlib.h>
++#include <errno.h>
++#include <linux/audit.h>
++
++#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 <wuxiaotian@loongson.cn>
++ */
++
++/*
++ * 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 <http://www.gnu.org/licenses>.
++ */
++
++#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 (file)
index 0000000..8e5131d
--- /dev/null
@@ -0,0 +1,59 @@
+From 26e2b31a71d14e139730c2a4bbb626a249ad35b5 Mon Sep 17 00:00:00 2001
+From: WANG Xuerui <git@xen0n.name>
+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 <git@xen0n.name>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..f0eee38
--- /dev/null
@@ -0,0 +1,221 @@
+From cfce7b02f3fa44e36b7890f4ed92a3f4b8eb578b Mon Sep 17 00:00:00 2001
+From: WANG Xuerui <git@xen0n.name>
+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 <git@xen0n.name>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..1dc04d3
--- /dev/null
@@ -0,0 +1,42 @@
+From 7179ff3e7c0bb9dca87848259114fe57938890a6 Mon Sep 17 00:00:00 2001
+From: Xiaotian Wu <wuxiaotian@loongson.cn>
+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 <wuxiaotian@loongson.cn>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..41896cc
--- /dev/null
@@ -0,0 +1,55 @@
+From afbde6ddaec7c58c3b281d43b0b287269ffca9bd Mon Sep 17 00:00:00 2001
+From: Tom Hromatka <tom.hromatka@oracle.com>
+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 <paul@paul-moore.com>
+Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
+---
+ 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 (file)
index 0000000..5e8be5b
--- /dev/null
@@ -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 (file)
index 0000000..5eb36ae
--- /dev/null
@@ -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 (file)
index 0000000..cb26266
--- /dev/null
@@ -0,0 +1,268 @@
+From f01e67509e45c672f4bdd643d94d90867cc19d90 Mon Sep 17 00:00:00 2001
+From: WANG Xuerui <git@xen0n.name>
+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 <git@xen0n.name>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..d708150
--- /dev/null
@@ -0,0 +1,1007 @@
+From b9633de506eec837a9f91d4e98dedf5101fd5227 Mon Sep 17 00:00:00 2001
+From: Xiaotian Wu <wuxiaotian@loongson.cn>
+Date: Sat, 6 Nov 2021 14:13:49 +0800
+Subject: [PATCH] syscalls: update to Linux v6.0
+
+Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
+Signed-off-by: WANG Xuerui <git@xen0n.name>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..1f39060
--- /dev/null
@@ -0,0 +1,569 @@
+From 80c2c9fe4eac515b31292c522b51657800028018 Mon Sep 17 00:00:00 2001
+From: Xiaotian Wu <wuxiaotian@loongson.cn>
+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 <wuxiaotian@loongson.cn>
+Signed-off-by: WANG Xuerui <git@xen0n.name>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..2a96b65
--- /dev/null
@@ -0,0 +1,28 @@
+From 1852fe3d772914d848907f9d0656747776ed3f98 Mon Sep 17 00:00:00 2001
+From: Mayank Mrinal <mayank.mrinal@sony.com>
+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 <mayank.mrinal@sony.com>
+Acked-by: Paul Moore <paul@paul-moore.com>
+Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
+---
+ 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 (file)
index 0000000..fccbf6f
--- /dev/null
@@ -0,0 +1,39 @@
+From 315f7b9ec6d8992035a2c0f652949ee34843db32 Mon Sep 17 00:00:00 2001
+From: Xiaotian Wu <wuxiaotian@loongson.cn>
+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 <wuxiaotian@loongson.cn>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ 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 (file)
index 0000000..92c6d46
--- /dev/null
@@ -0,0 +1,75 @@
+From 87876aa6ddb7cd70953f120f3d96495c2684ddda Mon Sep 17 00:00:00 2001
+From: Paul Moore <paul@paul-moore.com>
+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 <paul@paul-moore.com>
+Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
+---
+ 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 (file)
index 0000000..a71458d
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/python2.*/dist-packages/seccomp.so
diff --git a/python3-seccomp.install b/python3-seccomp.install
new file mode 100644 (file)
index 0000000..97a45dc
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/python3.*/site-packages/seccomp.cpython-*.so
diff --git a/rules b/rules
new file mode 100755 (executable)
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 (file)
index 0000000..3fa15ad
--- /dev/null
@@ -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 (file)
index 0000000..1df36c6
--- /dev/null
@@ -0,0 +1 @@
+usr/bin/*
diff --git a/seccomp.manpages b/seccomp.manpages
new file mode 100644 (file)
index 0000000..5ea05fe
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/*
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/tests/common b/tests/common
new file mode 100644 (file)
index 0000000..e02e8db
--- /dev/null
@@ -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 (file)
index 0000000..3d2c4ba
--- /dev/null
@@ -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 (file)
index 0000000..bbf20d0
--- /dev/null
@@ -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 (file)
index 0000000..f4fb094
--- /dev/null
@@ -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 (file)
index 0000000..0fef70b
--- /dev/null
@@ -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 (file)
index 0000000..5ddf435
--- /dev/null
@@ -0,0 +1,192 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBE6TSxkBEACy+4BPGoI7vphGh/q5WET0lmU7LcDwuNs/satPRH/vPoSYLxYU
+FmZ64A2zA4/imlohR+9VMfEVgOX6f23vZWheC2Z12bCtK0/cGLfoGMddFi7mg6aV
+hJeAegYkC6hDAYI+Mc/mt0fYvDB+bSPUCUdnB/NegbWegJMJur2pc0/nQqeeoRdp
+sazOyBEs4ipP1p05DZA/MifGNRASMHJg2bYG2FyC48Vx/xl0B+oactTwPODJlkQS
+n6+yYTcvYh7wIbbainEi0jBnyRj6bi6jODPTjArW2YRzEmPEkqbBsfA/HYEpH4DR
+IyZIJzqkP/+P+F+BVBjPVz4r6CWvCjnTMTlROfaUqIvfmpdKKtBDVN0Cjn6GVYae
+t9yoJM5bcJK+KEp5aNmW3U7vDMG2XEttw4vdfIFc9ZEWnu2kyiltQw9cUk3ucsIH
+79M4o24oVu2+J/z4QNGbRHdbxbO6c9R+IxAfiF/FAz5OhQfRHrDayfQV457cE/Ga
+ZhE1AeT7EdnXFF3G1RhTTE2lomQ1TfBSK6CyIyabU7I0R2Gh0aITpAE0fP4heZNZ
+zA8vPggdtRzgKgu4tC2is2Dg3NQnPc+k4mnU07LwmJuxCluN7pNhhlhtJkNWnA+a
+C2sV8zIicH7SAwmGoeMkp1kluxcdp/jGKsdRIfIDnVax4/t6VPL2+lKQzwARAQAB
+tB5QYXVsIE1vb3JlIDxwY21vb3JlQHVtaWNoLmVkdT6JAjgEEwECACIFAk6TS4MC
+GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEFXkWlroynyKs5MP/it8TqV6
+IVXZh9X6ioJbchNcofT+L74+BjHXpzmdlf0awutCrKdZTWz5zC4A7Xrnam5LNg9j
+aZr44oUOhnwIKwm1xxm2KBIGky7nKMinUfsSlYlfJybSJjWA3hv3dKI4Fpd7xsy1
+5CDcmfAD5NfQeW7KD5I0U89zKsdFyGCZV03xWbrvGPitncPB+Sifjp29lWmGwOwY
+5tNcg7Mvby5vi6Zit686Q4wjYzmgoCDKKgk6QSo/VAqXJn8PRttuZArDfckraL+h
+LXsxx1W0zaKVi9qeyR3n/++fDxPcc5rQIsd9TZj7nojj/5qGjoLCPwFDZaR97u8M
+v795+ITrMCLRPYAd8DE94e3sjZK8R+hCtD0Xp9KgaNWofnA4cIHQyWaKI5is4NaT
+9Y638We5RkTaYrFC0dxSgiekmnB0pogDU69smFNa26r0CX85cQf4YKYURc1xnbmS
+Cyh+gvIHXVSGglmGXgKJ436qUBFCq2/BlecLZm/Lk0vQyPdCr08ZzPc7AUfc1hAe
++PiZ7RDkhJzQaUN3ufjvcyeMGHoUejaO3G9ODE/yVZ6Yi8HQPN7IGmyeh73xaqcv
+5PpSrfpK+yjR13WGdi6PRL1IBfverc1fXtxXBywFhV4o/Jatj6XrS7hsU5EJ43An
+I9Cqa+8FBjLIrqzfAKHng3qYKA3R346+L0pPtB5QYXVsIE1vb3JlIDxwbW9vcmVA
+cmVkaGF0LmNvbT6JAjgEEwECACIFAk6TS60CGwMGCwkIBwMCBhUIAgkKCwQWAgMB
+Ah4BAheAAAoJEFXkWlroynyKK8AP+QFOxGd3sSxMgEgTjT2fUUwqjD0oRZUrC3RZ
+pld+fqmMIoGP0XRQYIpSZubX/ryn0DK9zd7D1o8nOz32lz8QfeEwshh+KAI93V0J
+iIFprZUtCJxXKIO2GuHVgwqyzQs+DbXoov6BiTmbNHDGy1xT+mx4Z0xboHX2ZzKc
+mLj42w7Qv5clL8X+4D3EiePCWeaw5e/p2xlPEVXfaYlu3nsUUrRwdx1RZSZ/qJE6
+CZLL348vp7mf9nR7bGBx8NiHrzbE3nh7ofZ8ai/dUTkkK+cFsxr5Gkt1nHegdv2t
+Q3pk/KoR6YYvGYIDeuyZB0zMs2VW6zLIrD7qPc9sFLIwAsgBW3pWyznZ9mZrpbqp
+JPzkhDYQH5XnTkL5g0tq4z3eDtOCODB2rNRrj/JvZcv3WmT1IK2d3x3E06Bfb4oy
+qMgTzD2z/IHgyL9Wt+yyogB0Y0zyGj3lV3fISIINT2mn+UtutYIqDEeGbSEtQrXx
+yIvQEViPO52mO+QdOtc5ZMfQ9ddsQKbawK/pqbzVMRPXX1z5hYKyx/Tv0roBrAzj
+DSBI2vP0NmfzzSUKZ3POOZLOxE0425AYeNE623SCntrOWNYdgwf9EfnAcMgsY2Kl
+a18e24ZHdAGFmJWBYx+XllheI6diU7dOZAlvuuuslVJfvD8ixzm7SR98elmUk57k
+wf9FO9yxtCBQYXVsIE1vb3JlIDxwYXVsQHBhdWwtbW9vcmUuY29tPokCOgQTAQIA
+JQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAk6TS8ACGQEACgkQVeRaWujK
+fIrtrg/2Kr2XYWu6jYDX2PSWeLQ/5P/VgGzjZI+AKaj5JyEID/5J31yvSKICjK3F
+Wl+lHRo/LQzQx8f6gQ9FEBeDTndpa1t23XQGmBgEDAev6FHX3jmheFTkJJ+dEYpc
+gX7R+jTjmrRYjAFu1Jo2fIblBTvECwlKLxDvSzAvp5giHYj8TDWcYPlZcDqfq9Aq
+5p7UjkRYvAAUlkwSxPE28zcWPwgQuikcyVw/ObPpNWon+0TfruzindsyKnMss7mE
+pxUMhRHAWM8KACBUmScP2TC95xKzm+KtlT6E/pdPXItPXiFg5sg8Vf5Rco8j16+b
+DzviiAC21Mp69wtnV8Mdsl1jiL65wotclG+SMcgUmyqD3rgBW3jSedDFFu6CHQyG
+FuthVj25eNUSXjhVOMCWQSxOgv4uN1jgk89paHJuBqHwKfk55ezQJFB1UlkJqH7L
+NJ2uVd0Go5PTE2mBbkBQ4bvSyfhlOUYbcjNUlZOZSHsaQPVXDUXCW90LjH4azg8j
+ek7YinygvZBpxQurRj7honmoqqyBfvOweA8wDdjIYURFrA4kwYwN8d+xdIDv5Pu5
+8U/ruus+y59MebQDhMr1BaM26QhgPZ6Ur/vHvTkW6bFo+Q0Rg9/abO67O00OZX/+
+oakt1BZ3Tb30L6nGu7ZosTXos+s9Leter/wcOk49JNd5q4WnZbkCDQROk0sZARAA
+7lIE/HyQ5pTSabH0OJKa78mNJckQ+2NsEwUpEj459Ca5s3DvJCT7ZBOUQaL5ctkl
+KgjByI+3BSIT90swim6vdMYxSrS7IpQ17zb3pdV5H5LFQSCvS1Dd466amWFWCyb6
+ZWl3g7kmf5xEEIob9PLMlCe37gsIXp9M0hbRIOVISeqCiWp5HkcMXwMEd5XHxGN6
+CCgG86vzxEOnLKoMdXQIxkenA4ggk5cCBoYd0FMURH53EznhuceS3euNSzu71+H3
+SJjIdjIjYQDhpHF6gXoI+u8NSWsZ9dEn/s+9e/uP2cYvAPmR01a73QyVIZS23eo9
+rmMqlPJNjJbybQ81uaHxQqA5ljC7WWqYl7tia+QSKYMEyMkHvTqnPPhJvghsQoJO
+aeN6j/qIQWIl5fQEENLRzkcGO6SLEDOKzEgABZSwP9Wff47jyzD4JVb71qApI60m
+3TGB829vBavFIkHNzhvr91m+6AfeUvZlWlFmC3v4BsqH/3SzwwQU28cxy53a/EDO
+wm2MDJL4wkVLO2Yh2CZ/4x07VZtjmGmG6wyVOq+9GQ3cnTPEgynfZYsdPaml/RJm
+kbCAmDbHbyV4NhT1RCg803thZZX8HzJcM2nywutGlzi0xxv63tP48tfTAV6ajqyQ
+5jeRGKCq/zpME9Ghr/oH414NlGcomYU0UQ5Fjpdk8eMAEQEAAYkCHwQYAQIACQUC
+TpNLGQIbDAAKCRBV5Fpa6Mp8iqQaD/9L2zMdzYznSOnApTz1SHhpgbi8RKaKy88j
+WTz0AxZGrYF6cKv8BH2fFgA7phlONcWhUvWpEEpP208EY52c811lohRocNhSlXgW
+XHYCiG2vydsQe9HEdBB6bUOO0z8g2DPcoBtUGWe1gDZddRW2VbqN2ts8Wxebog2Y
+Y3tvJ0ocMo150t5c0koldlStav/zM2eipz+zTjfsN4Xy04q/WQ63FIbub5o5jcUJ
+j1o177I1VtA8eEumsfnMMRgQBfz0t2bEIc/ZmrsuR+j/H4WlBAuIarNjWtIylH/e
+VJhxFtXGnCI5mO1gN90QG6IpwszcwEPJf3gU7dO8r+HXeTBifLYB/JnzGWixPaek
+DgCrNOZXz+48KEJEoVXUxsnqa8PRIUO5OtVRq3mk2uwcIHqPEBLb0yB6GRQjb9jQ
+qBdRPun2FavjxWRuTZBGS1RItLW8bmAJz1d/ySWizRqnoz8U0s9SyGGHx5OsyJJu
+FO6FFr31m7WZG5LPfQJUNiyR2y9ZrjdPbwXmchywhTLqyTb5N6j5RfAdn74H379t
+ilUhH5c7ieVLt/RLTtWXEnkZzsO7LvP/3X0jHt3eZD2WzvVg4llZFvnuie8C0/yC
+Twhc2xMJOLd2WpH6ZKHNbRqv1a2xg8K2KGdhlZrRo/AYbX/FjZ/k9klZwEjFsefd
+0Ff4mojoNokCNgQoAQgAIBYhBHEAqt+ubm6UDS4K1lXkWlroynyKBQJbxKnWAh0B
+AAoJEFXkWlroynyKGT4P/jXnXhB+VEkr+NL86MssDU+S9Gz+kCYEOSxFPFvhxpmk
+x+Q9Y2SXugaThp9h9IIUH6lhtAZeYimzGC67ObZh+Ev0SIfN24xvZ2nPzLLj1pay
+/2f/OQ0g7LalC7SpaF/7nIrxrYSP3Lyv3QAw/ZCeP8+U0CCV0Nw2Jrxck61ySXOR
+W9diyGKTszNwzWQOPUBOLlMw2BxjudQW0Djy8mYoqyByUYEWtbcGgJ3MSPzE0RgW
+PLgVujdzDunGDeJd9SBeI220ILxAHiB96JZYxmkVoz4trB7PwyA3plg19CXjwZ5J
+ediKZov02JG0aGNpL2678YwJAGDCLMNhBi9gDqx3Xf6rvzqK/CvR3xQs6/bAjiAC
+FHSUjv1oQ+p75yyt0clVrJOaB3kh6DICr+dZYuBvPGbls0yMTvEvCRxrj0rmpd9w
+tI2ZTvN6ak9+5c9ZI7N+tQKYRPonfrVigVR+VgoWS0UMh5IQedkcfMO1vX2S5i/m
+mmtDPT8aTyearL/ZpRoba8UvuTi/jksGTkR9QwKxBQeBWIy4xpKtddtp29RJFAFm
+m3uvsHTGfRIm0oAGnbSgAooQSqZiv9bQvjzP0maWc7A9uNIspKj4CaEjDttqMzPG
+u5GyplMDGnmEuldXbUhyCLlRXzVqmxuE46q0G2vl+qwiwwoYDauNoyvLvHK0AOZb
+uQINBFvEpn0BEACpnI2D7qSeKGEihHtIvbZAhN6x3zkkELaLB2+MmhWZAdTmzfFm
+JU28DXNLuCqxyy7GxATaBdPR5gPyq4LkA/xqTqC5nK9zTZqxtqwh9xTFCchUhmdC
+voSkFy3R1cZlifLVartuIBHQXd9XfYkJMop4whsbPcbzDJ9JYUqHpuqysNAAhHge
+vKIzZ93B7nW5JIBHf1/iVMSnC7+l3gSLMg0n+0UalGiQSpgzUSnyfgnoJjBbbyQT
+JMrOhGSJHviezcCT3OOctnn0j5I0DuU1IRJ5h+MZ4NpgV2YyHCTXdHE9x1DGE9Wu
+ExubFjiAvJtgcYkwcfqyqpbcK2IICWOUv+XJbrApm0PdaclyXbrJZRZ08QBOW9cZ
+8tnrkvb4PtktigiHzTy9LenoWP7lSXVeroju3+g+igkaa9ZbgVkHOkDRrrjtJhNl
+3yPEaK0RplLpJ6J/ysGvjuG9b/pWAsXptsfSN4TCCKIAqOg4/RINiyM5YzzIIqLc
+vwBzm8awFpoMsexhBBUJLdBC3F2s53AZJUkH+NYJ/lZgnDA9/EVYPAOGCXt5u/Ot
+ZyCyJzyYD6fZtLshQiRRdDMkeCZ+W88+HmgxA3Ck6vfSPIPyVUGYQYqREzZqfBVV
+FuANufrr+dBYYxE0R61zYMJdXL8fsNshHR5mlcHg4EODdnhOeRSeIuS+uQARAQAB
+iQI2BBgBCAAgFiEEcQCq365ubpQNLgrWVeRaWujKfIoFAlvEpn0CGwwACgkQVeRa
+WujKfIquIRAArTQcsGL/5Tw+L4g0OxUeH1/E7TQ54UrpT9f4PjPj0SPZevqzsV/b
+uRemr6bqpNx5aMvLhoeoAodq4a0GmC+BX9ucfGKELavgReQWpyAlFFop8/MCbonq
+q+07PdO+6ZJiff0VIMGFAdWOabzQ9VMkYQ4ibF+etTjgWNpJ0UiFhUNric+eT00t
+HMzEq2WdgbnS/bwANsEF7kIA3klF7lkYG5MFN5gTbWssHeavfUn3coR9AJVqmx+m
+bJdUiMxiMrzRORepUO1zs8XJzLMkOb5h2CElk1um0LfGI9T/RZ3nyP5uv3xU5aG/
+Rp2owv4EsvjhpATt+votq3iZk2hkwymYmMbKpZ690sNT7tTYS5E6dX085NRmEQpy
+/U+gX/V5rsWULPmQ2UJEoIizyRrhxq/O73ZinapkDZVO+DeePBrdXDwDOKlhDQ2V
+dMp/uLbOg8Hxs2N+Brnn5Ts6FADeP951F9VxTaRWrppOt9eRQgxasYE9hEzFS61e
+WY3qHfWT59Pnx+KPmuR69SobBrG5Y7qYvlQxHQUsiVhRlPDDlOuZk0nbK7QR4/aX
+7AwNxp2byo7cduCOecs+uSsAcWgA+KMif8yGzHxywHm34dTn7JY0Moqd03n09UY4
+3LISNC1atd/q0BTijMpzroU+4i3omeL3SSHJRBJJSMxSxU5SXV/DBMa5Ag0EW8Sm
+sQEQAOQoaAL4LSK1yQzbIJg4hojiJ+iOIMhz2BG9zVNp2CJ4veyfjgH0eUbSr8kX
+D1OBkdw9hJuyQXIu4hARvkh41H1N9BTDRMXt5VzeiZUQBS0mJlTQ6EJrX6z+Y497
+0OwPXHYTZG7EcBtTrrY9s+Bm0JnBQr5lZ4TdoGWg8sQxGZIY79zUYYjle6naBZQ0
+QFUTgfyKbx4n8gzXqIZbpj/SrbGctFve36HD+YVwmkcjIJuxKBKMcVfTRQ1AG1PV
+qoIyV/gTcmPbVMKcC8L9S0ixkWrqmVhkNJEblzkTEhN0WF5XjzasbxCkUGcJ24Cd
+oM5515LpCKaqOTSyuov2aDJfGrNoXi0LTo93M+xaBq6Li/kVUb9S7KY1CSD7buuw
+9CAriAVJZBYCuvByp49tBwYWSVhn2GURh7mex91NsJ2H7OveLygYEHSvT+S2ARA1
+lvpLDEG8LvIuKo8QrwmCkE5AO4WU6c62gnrajWwTDU0R38vXObD0dquguhvVyLWi
+OEVWacUUXfTN6hCLoqUlOAijKgSmHVhjIs2nngKdR/PLOQiVjKpMxxDoyStMJkfg
+khL8v9D/VBU398QwBOBHXFDovKZLhNz32KU3Ma2pE+RGZYBEQeCAWBK51MNdcpsd
+Q0p26O33H6Np+GWRHSwrtvO00HK0Wd4eOmO5LY2AiSUdK0NXABEBAAGJBGwEGAEI
+ACAWIQRxAKrfrm5ulA0uCtZV5Fpa6Mp8igUCW8SmsQIbAgJACRBV5Fpa6Mp8isF0
+IAQZAQgAHRYhBEtCqM8H8pnVVJd+7+og8tqXN4lzBQJbxKaxAAoJEOog8tqXN4lz
+0fkQAILG/ON167EqJq2VNMCD/e4Su5M5/RzcosEk+0xxmHyjOTn/36TG9uneNSr+
+IaNdSeH926LaVpcauSFdCKbegKjznUTtmMfdJQX+iTdfO7JTSdZACFHQUSva4Rs6
+33VMTnyhJdRerxrGvNAL0aAyDdTG5rc/CSQjj683AJGK9T7iZubgkBKWoYY8jtJi
+nsSuePp+gFetIhCQyG2nSq4yrIgXbd6l/kJdsqq6xEz42mbGJf2uPQ/BEbD/gzWj
+m8sRUAJ91u0lHqz3KjQ4MzdsU+Mm/ngZdyXWzwlfC24QbHAr9cnWwZvtLdvo2G7z
+igMX7PyMwfEq5l7i3gFS0Mny3LtvGqH1AS/YJczDeyonDtR2gAptYlyBHOBftdj7
+hVoZS0QNNss2B0kwHqSWOLtfgMHWiBXFq8buntwWGW2rUXs77gvKYG9TB1a0NYp1
+Hv2FOOUCWY9pzs/WBOkW0s5EOiatxoDfAFIoKH7FlqDf7Cnr3IpaKS6tXDH+7B35
+QBptYgMIY43v+GhqIEELkaYow3VnnTcbQFi0VfBxh/GgyhydhFyaUs5djklCZ091
+nRRYeDSyUhB1nlr7FnuLK91/rm6YI+IWmw2j3Z6urlnD6TNYPFfeZzXDoJgtlRsc
+HFQL2/HCIiCcObVFd8HbCvHmNpMdRxId8qogOr/y5Lu2FYvzRzEP/A8NNqwqj7zX
+Wk5w6lj4tVk796B4gPNZ0NUIXYeUobEtuuPjrh4SQSVOluvADCV5/8quP4fdw/iN
+tmaoTqYqmhpHArFgP9gjHQ7vL3+eHCQIqV0hdhsLm0t8ol5ArP3BgNtfS3RcQf3k
+Q9aQdIYscz5iTvCpcncVrMXDxz3wO7YKylzNHDUF7bo1FMc9HPedcKbzG/BRFnpw
+YNn8w24xlr9+o1YEzwgc48N7djcAsYl7KCIKq82vWrbeePNHLA4yo0rdqS1RP7jI
+lOlMWfxF+IGODkwCfiuMWVo35h5uMPueA0xyEfGobX1OtK6pkeFq1b1mNYCVr++4
+eWaJj64cv3ijx/sA+Ni51pD1dHrwURuX5FIixRJm0awwoJgxbsXLy54PGVgatNoa
+1Wx4lnt/6HA32MtM7Im0NMLGAt298GD/AIr3bAnbovevNTjaxwpO8KlMNLhANqYt
+GjFlhucGfQjVOxOU0c3QL1wBJ5s0bNltz5C8LqCRpqjJc43v3CfQ/IZzqZ+g51wJ
+WWgN9wAj62doD4x6JlVg17AZm6WRoGQjslyDUuBE3ZtZd2XXpc7P/rbmfZQCcr1W
+1h8moBknbU2eOji/cULgGM3Y8W5V3RwNgD7IFHDKr1I19PyBEMr+Qk+KVHpsw09S
+xOtqJHdjtKxzOrgL0rG+n0VYx6dl2Lt4mQINBF3C4AkBEADQxp4jfxmbJ3t/ZuKc
+sV4JxG8mhuGXBkzMB0k2uGULCpY4yh7dsN4PBU7PuHgUMkxJnJlbg0xVR2nux20I
+NzroYn8xzRe+jSmKTW0fTvNH+Nxyr4k+KgqmVZCcfyvwXuL7IOfG5luc/oSXJV62
+u+LHP891dVcJlVN0Ef9i5Sz9iRkkMUknwoTrOK9q1nZNOA+XoLMhCIdyWIPx6jFm
+PxfZpgEJw6YIeyOSRIPYtH4twuDj50bzQuTTfQ3ph9FdcXVLYwP3BayvfFasGhyJ
+6caqVW9GpMDa/OPvteNmt2WbqaRgcX9CWWOKonhFqkaWAXj0lYFkM65DTzSUKpNt
+oh2MRVA7qyGZ2zlHocNWSplQ8VJlly6ch9O95UEXlSIJFxAi/7NBNuG/CekHQxxQ
+ZhdslUe7LIsujlKS8Fy0bpYsTDPb/g+rUuIHWCOhEC+B0qOYVEf+wcc9jTQjZf6N
+P3zIV4dO+Mc9GVT+d3Kz0y11g1ON0b82qy2ONvRys1NmqXC2vCnXzKCQ6UTHRYt+
+EdV0nlo59G+lolCnT8t1sW7ezuByA4zWMI6hLyk0NLb8xwPK9BT732RGhzba7a7E
+aArTBsPA3rWvObC1kQWSaw+ule5rmnTL5Q4Jw3qDhgM9b2Bg3hLYP5/UU0INq7kr
+H413Kin0C29T1aNmLfMTfmS5EwARAQABtCZUb20gSHJvbWF0a2EgPHRvbS5ocm9t
+YXRrYUBvcmFjbGUuY29tPokCTgQTAQgAOBYhBEemj843x9cCT9ZeETVs5iwrUkCZ
+BQJdwuAJAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEDVs5iwrUkCZNL0P
+/3KFyrWXW5ouPuAzWeMMUZrQmyz31T70iVSS8PtPWb8S2QxQdzgpdVPrvxT+wfq5
+zJbdz3X5uPvdOXUeyv0bAQRqYQVX/tkz10zu6+m+Bgx0H6I5Xk9F7EDvag1EDDs/
+BDSLh9VbsTllSaNpLhFjSRj0dVmE1DgaUDX5F66npYMgSIspsAjEI1MZ1PDYQfho
+yxEMiz0ld14yv6HE7hBPekcQW2mAWzlpZmgw9NVIcqShy3znJNGGpQUbLEtGbrv/
+wRMNWjGWPJyfE5dLDvkfQjrdsTRWv5+Sd5/z3fwp0G8dUq1iWeegu6mFe0KRLB5z
+3lcc+QJSlWetyyoYWOhq1Jzn0QHjakZp2Nb4rtp9/b9TdhvD5cOjpsECmL5qMri1
+mn/j4F63AG4yLQaYrwwjWzDcz+jQ8wNuyl7cXQFD6UYbywC1tC9DE0VppV2nOirt
+TOPz8+etXMx6sg40STJ4dbYn/gJLhiycSaUAqGkSHpC24FbcvkVwKz5MBUYuLEgN
+H3RyNKVgnb5JWZofE7ehOVCc+VAmzMyobjE+71FRXlPdmqD/im4vYDsqzb15wX79
+VsXqI0bij+xVYaR7GoQbTfVQ0a6f6slWex6PmKOnZTjfLL7sEu1JhAteqlI9I0Nl
+NJBF/y32T6lQpO+3CJGhY+2rSiCpnI31NMusAkcufnxquQINBF3C4AkBEAC9ReOz
+Yf6nryTLn8lGg6M0kpMX3P7v8GlOV1hZ8hTDlUETpo+xxR3FvNjWEDNyuawCpvNz
+8Pu3OKqxKDIivyVdJNEc335glsMY7BmAevLvAtyfjb0rOzOXqLfhdsn108Nr6Ai+
+lkMs8xlK2hxGI3qpDHzImOYmhWD4J181gxlj5Gaj8fOyV8JZvfY6AZcei2tzlmHp
+j9SSh7K59trUZtaUDljUeVAEP4KfU1sLEYy3BUzS+eb4Qw1tleui+89E/J4zPrgw
+wuLg5OU+ScTigfbEF/05MMUAySiKieKhp8IFsT41+FXOlotBl0wz6Jbo4HxNtY5P
+trpv6BOrBlYfhfhZeANk4+y5OnLqRjjgTvf1p9CHmsgs6sx/lkNyXpzoxKR89Rzx
+HxnrgUATSa80JK9o/0tPZkN33HKJlkSndPQEM4uLrTsIxvNsBSOPIKC09siMbbBe
+I0t811P1pMh8zvTnRl2FSQjiumLoVhr+xxZ2wWiPxztVQkMLuuWXkzcxQUfuw5nE
+QCH+WdqYKNmV6rw2kU6j10q0kvvspWPMTbsI/vBY3KyiP1F8dToXiwulNT1U05NG
+J20YbzEHnYEKatBq9ZILLx63c8eLZ6VppkAE0ZlmgsOvn+zIcv81P4x9mDLvuqTO
+zRj/RuDAY6qJHuICpsV3F5A03z9ne/Z9u0mwSwARAQABiQI2BBgBCAAgFiEER6aP
+zjfH1wJP1l4RNWzmLCtSQJkFAl3C4AkCGwwACgkQNWzmLCtSQJkiQA/8Cm07bQf2
+FIKTdwRECJO7pvpuc3zE1XsSuLyu40qpsWX24Ll97S7cpOK7rN2jSZ6UDoXpNgXV
+iOzma5yiC+GO6UUWxr8xE/CDXeuawxHUt0Xrn+UQnWsirsrZifjVPkXou71QM+ka
+Q9qXy4liOpRaJjf8B7iz3ilgMUACnMcwOVn+jbswLQpNetsKk+vrLwQlILPkWcKG
+xIu1Iro3E7WoIPojHHtT7Co7mSRzaNI00VU7jMwZwXFQL/IbeGsKlaAyxh1BzRLn
+LdPN8hxiYtEq2IG66Uq3EmigtwOvh06d/Qi/gBH6CWxdahRk7HwATyrNvbjfduzN
+nhF+lPA39iKrI5+IGasK6Lp9HklUJD0Q9JK7yac/cUj5LptY/PBFC7eJKHJLyohm
+vlXYgRSeAXEm7uGpU5k/jUZDM4Z1o5JboiNVQoqDWs6iDYJb82cRjKKlvC2d2lFK
+xtBOR3xJZUUsIpoQrstxn1LA5DcBosPvd9ISyIZs38UyJNTz07GUedEpeE3YhLke
+sc6n2iL9D2Yjz/S4ANukxl9YZDW+EFS8LtTchvK11OHWubvWxWFV7txLFmkBYQwk
+2krCi2MVguRZGj8bodqjty1H8ZMfA5NYwAKeyQmsmTHqNmR1Ws/cdQCV7+3q9Rur
+lUtY1AVxx4LtnS16GX+OVCybWzbK1uqLrfo=
+=9JXr
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/watch b/watch
new file mode 100644 (file)
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@"