From cc2e4f6bd6429078faf501dc6b4266cccc422102 Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <wuxiaotian@loongson.cn>
Date: Sat, 6 Nov 2021 14:13:49 +0800
Subject: [PATCH 01/10] syscalls: update to include LoongArch syscall numbers

[xen0n: regenerated with Linux v6.7-rc3 sources with libseccomp v2.5.x
format, also swapped __PNR_fstat and __PNR_map_shadow_stack for keeping
the former number consistent with the main branch]

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>
(cherry-picked from commit b9633de506eec837a9f91d4e98dedf5101fd5227)
---
 include/seccomp-syscalls.h |   3 +-
 src/syscalls.csv           | 976 ++++++++++++++++++-------------------
 2 files changed, 490 insertions(+), 489 deletions(-)

diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h
index 611c78db..440973d6 100644
--- a/include/seccomp-syscalls.h
+++ b/include/seccomp-syscalls.h
@@ -276,7 +276,8 @@
 #define __PNR_renameat				-10242
 #define __PNR_riscv_flush_icache		-10243
 #define __PNR_memfd_secret			-10244
-#define __PNR_map_shadow_stack			-10245
+#define __PNR_fstat				-10245
+#define __PNR_map_shadow_stack			-10246
 
 /*
  * libseccomp syscall definitions
diff --git a/src/syscalls.csv b/src/syscalls.csv
index b0da8e6e..f998ba9c 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-rc3 2023-11-30),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

From 5ab3a4f9b2a0292a2aef7f2fe2cd774a9dce5528 Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <wuxiaotian@loongson.cn>
Date: Sun, 23 Oct 2022 14:36:42 +0800
Subject: [PATCH 02/10] 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>
(cherry-picked from commit 315f7b9ec6d8992035a2c0f652949ee34843db32)
---
 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 1ef38b32..6d791f07 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

From 8737b1ae02a2c057fd3c3332132fa1160c975f6c Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <wuxiaotian@loongson.cn>
Date: Tue, 9 Feb 2021 15:39:13 +0800
Subject: [PATCH 03/10] arch: Add 64-bit LoongArch support

[xen0n: remove kver mechanism for v2.5.x branch]

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>
(cherry-picked from commit 6966ec77b195ac289ae168c7c5646d59a307f33f)
---
 include/seccomp.h.in      | 12 ++++++++++
 src/Makefile.am           |  1 +
 src/arch-loongarch64.c    | 40 +++++++++++++++++++++++++++++++
 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            |  2 ++
 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, 172 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 ef4c6e4d..0a3ffae1 100644
--- a/include/seccomp.h.in
+++ b/include/seccomp.h.in
@@ -150,6 +150,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 1e5c092b..cc1652dd 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..87a7d9dc
--- /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 2055d342..cc76e2c0 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"
@@ -106,6 +107,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 3b69e9b2..efbf2216 100755
--- a/src/arch-syscall-validate
+++ b/src/arch-syscall-validate
@@ -305,6 +305,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
 #
@@ -593,6 +635,9 @@ function dump_sys() {
 	aarch64)
 		dump_sys_aarch64 "$2"
 		;;
+	loongarch64)
+		dump_sys_loongarch64 "$2"
+		;;
 	mips)
 		dump_sys_mips "$2"
 		;;
@@ -657,6 +702,9 @@ function dump_lib() {
 	aarch64)
 		dump_lib_aarch64
 		;;
+	loongarch64)
+		dump_lib_loongarch64
+		;;
 	mips)
 		dump_lib_mips
 		;;
@@ -717,6 +765,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"
@@ -806,6 +855,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 8ef77b1a..8c5363a8 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"
@@ -62,6 +63,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;
@@ -134,6 +137,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:
@@ -186,6 +191,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 d58f586f..f7ae4e45 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 0629bf1e..280143ff 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 2eeabc17..9e08cfd3 100644
--- a/src/python/seccomp.pyx
+++ b/src/python/seccomp.pyx
@@ -204,6 +204,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
@@ -225,6 +226,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
@@ -262,6 +264,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 af468a10..2617563f 100644
--- a/src/syscalls.h
+++ b/src/syscalls.h
@@ -14,6 +14,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"
@@ -41,6 +42,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 ae445bf5..94e9be7c 100644
--- a/src/system.c
+++ b/src/system.c
@@ -126,6 +126,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 b844a682..320b1afa 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 a3813143..a2b31f17 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 5687b30f..433bbfa4 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
  */

From ebee4f0d486f7cee57265d9196b6e98b18aaa3bb Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <wuxiaotian@loongson.cn>
Date: Tue, 9 Feb 2021 15:52:18 +0800
Subject: [PATCH 04/10] 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>
(cherry-picked from commit 80c2c9fe4eac515b31292c522b51657800028018)
---
 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 6d791f07..c3f63be8 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 6db69e86..c79894f0 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 0b141e1c..ee1a4a56 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);
@@ -145,6 +148,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 846553fb..ba38b91f 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 32739e5b..d10d3518 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 33eedb17..0cecbc95 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 c9b575e0..d3b7093d 100644
--- a/tests/36-sim-ipc_syscalls.c
+++ b/tests/36-sim-ipc_syscalls.c
@@ -57,6 +57,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 c6829ac9..d6ac7962 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 31092806..330b21a5 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 f938b1b9..19f93239 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"
@@ -44,6 +45,7 @@ GLBL_ARCH_32B_SUPPORT=" \
 GLBL_ARCH_64B_SUPPORT=" \
 	x86_64 \
 	aarch64 \
+	loongarch64 \
 	mips64 \
 	parisc64 \
 	ppc64 \
@@ -796,7 +798,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

From 838bc3815f550fd21b80d912d21b5f40f8d2541d Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <wuxiaotian@loongson.cn>
Date: Tue, 9 Feb 2021 15:52:55 +0800
Subject: [PATCH 05/10] 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>
(cherry-picked from commit 7179ff3e7c0bb9dca87848259114fe57938890a6)
---
 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 e3065129..7032802a 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 a2236077..2a1597f5 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,

From 00ff5be8a2bfe9392eaa266624d32d1881f78e19 Mon Sep 17 00:00:00 2001
From: WANG Xuerui <git@xen0n.name>
Date: Sat, 25 Feb 2023 01:49:07 +0800
Subject: [PATCH 06/10] arch,tools: change macros used to detect LoongArch64 to
 __loongarch_lp64

According to the LoongArch Toolchain Conventions [1], `__loongarch64`
is already deprecated for a while. What we care about here is the ABI
data model, so change the `__loongarch64` to `__loongarch_lp64` instead.

[1]: https://loongson.github.io/LoongArch-Documentation/LoongArch-toolchain-conventions-EN.html

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>
(cherry-picked from commit 49a382ddb48baf8496cf15bd2b491c83ac1f8039)
---
 src/arch.c   | 2 +-
 tools/util.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/arch.c b/src/arch.c
index 8c5363a8..84450f6f 100644
--- a/src/arch.c
+++ b/src/arch.c
@@ -63,7 +63,7 @@ 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
+#elif __loongarch_lp64
 const struct arch_def *arch_def_native = &arch_def_loongarch64;
 #elif __mips__ && _MIPS_SIM == _MIPS_SIM_ABI32
 #if __MIPSEB__
diff --git a/tools/util.c b/tools/util.c
index 433bbfa4..6f25921f 100644
--- a/tools/util.c
+++ b/tools/util.c
@@ -44,7 +44,7 @@
 #define ARCH_NATIVE		AUDIT_ARCH_ARM
 #elif __aarch64__
 #define ARCH_NATIVE		AUDIT_ARCH_AARCH64
-#elif __loongarch64
+#elif __loongarch_lp64
 #define ARCH_NATIVE		AUDIT_ARCH_LOONGARCH64
 #elif __mips__ && _MIPS_SIM == _MIPS_SIM_ABI32
 #if __MIPSEB__

From 469034e4a15aa2d76860b5e5a2d2fd540a549258 Mon Sep 17 00:00:00 2001
From: WANG Xuerui <git@xen0n.name>
Date: Sat, 25 Feb 2023 01:53:57 +0800
Subject: [PATCH 07/10] doc: mention SCMP_ARCH_LOONGARCH64 in
 seccomp_arch_add(3)

Just found out the missing bit while browsing the docs in preparation of
a pet project of mine.

Fixes: 6966ec7 ("arch: Add 64-bit LoongArch support")
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>
(cherry-picked from commit 76e3689dc851ff740ded38f8c623cfbce3bad393)
---
 doc/man/man3/seccomp_arch_add.3 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/man/man3/seccomp_arch_add.3 b/doc/man/man3/seccomp_arch_add.3
index da6ee761..b532cca8 100644
--- a/doc/man/man3/seccomp_arch_add.3
+++ b/doc/man/man3/seccomp_arch_add.3
@@ -17,6 +17,7 @@ seccomp_arch_add, seccomp_arch_remove, seccomp_arch_exist, seccomp_arch_native \
 .B #define SCMP_ARCH_X32
 .B #define SCMP_ARCH_ARM
 .B #define SCMP_ARCH_AARCH64
+.B #define SCMP_ARCH_LOONGARCH64
 .B #define SCMP_ARCH_MIPS
 .B #define SCMP_ARCH_MIPS64
 .B #define SCMP_ARCH_MIPS64N32

From 66b03b1ddb720cad823fd14ed29b4ab851adf04d Mon Sep 17 00:00:00 2001
From: WANG Xuerui <git@xen0n.name>
Date: Fri, 31 Mar 2023 14:39:48 +0800
Subject: [PATCH 08/10] all: fix various misspellings of "pseudo"

Drive-by fixes that should make the spell-checking CI happy.

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>
(cherry-picked from commit 5aceb9d68a14e055c7a702483d612b537244e276)
---
 src/gen_bpf.c  | 2 +-
 src/syscalls.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gen_bpf.c b/src/gen_bpf.c
index 90c38cc6..c88bf6b2 100644
--- a/src/gen_bpf.c
+++ b/src/gen_bpf.c
@@ -1303,7 +1303,7 @@ static inline bool _skip_syscall(struct bpf_state *state,
 	if (!syscall->valid)
 		return true;
 
-	/* psuedo-syscalls should not be added to the filter unless explicity
+	/* pseudo-syscalls should not be added to the filter unless explicitly
 	 * requested via SCMP_FLTATR_API_TSKIP
 	 */
 	if (((int)syscall->num < 0) &&
diff --git a/src/syscalls.c b/src/syscalls.c
index 9c58c127..5b2cd92a 100644
--- a/src/syscalls.c
+++ b/src/syscalls.c
@@ -146,7 +146,7 @@ static bool _abi_syscall_socket_test(const struct arch_def *arch, int sys)
 {
 	const char *name;
 
-	/* multiplexed pseduo-syscalls */
+	/* multiplexed pseudo-syscalls */
 	if (sys <= -100 && sys >= -120)
 		return true;
 
@@ -193,7 +193,7 @@ static bool _abi_syscall_ipc_test(const struct arch_def *arch, int sys)
 {
 	const char *name;
 
-	/* multiplexed pseduo-syscalls */
+	/* multiplexed pseudo-syscalls */
 	if (sys <= -200 && sys >= -224)
 		return true;
 

From 72866fa9ea9ec7bc56c449a5ae33dcccc4a78675 Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 1 Nov 2022 10:07:59 +0100
Subject: [PATCH 09/10] configure.ac: Fix variable escaping for newer autoconf

When using autoconf macros, one has to be careful because some
arguments as they may need additional escaping. In this
particular case, the second argument passed to
AC_DEFINE_UNQUOTED() is problematic as autoconf runs it in a
subshell resulting in 'yes' being interpreted as a name of a
variable instead of literal "yes" string. Putting quotes around
it lets shell know we want string comparison.

This problem was noticed with autoconf-2.71.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry-picked from commit bc2e1d155f4531eef5564639b50d3252af873273)
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 1912e804..126e59d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,7 +118,7 @@ AS_IF([test "$enable_python" = yes], [
 ])
 AM_CONDITIONAL([ENABLE_PYTHON], [test "$enable_python" = yes])
 AC_DEFINE_UNQUOTED([ENABLE_PYTHON],
-	[$(test "$enable_python" = yes && echo 1 || echo 0)],
+	[$(test "$enable_python" = "yes" && echo 1 || echo 0)],
 	[Python bindings build flag.])
 
 AC_CHECK_TOOL(GPERF, gperf)

From dec5f81e5817dce545a90f9060598854558b31d8 Mon Sep 17 00:00:00 2001
From: Paul Moore <paul@paul-moore.com>
Date: Tue, 9 May 2023 13:13:23 -0400
Subject: [PATCH 10/10] gen_bpf: squelch gcc v13.1.1 warnings

Squelch the following warning, first noticed in GCC v13.1.1, but
possibly present earlier:

  gen_bpf.c: In function '_gen_bpf_build_bpf':
  gen_bpf.c:2083:21: warning: storing the address of local variable
		     'pseudo_arch' in '*state.arch'
		     [-Wdangling-pointer=]

Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry-picked from commit 31583fab12370da984785cd16ceb8f031c94ae76)
---
 src/gen_bpf.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/gen_bpf.c b/src/gen_bpf.c
index c88bf6b2..a461fd68 100644
--- a/src/gen_bpf.c
+++ b/src/gen_bpf.c
@@ -2084,15 +2084,19 @@ static int _gen_bpf_build_bpf(struct bpf_state *state,
 			if (i_iter->jt.type == TGT_NXT) {
 				b_jmp = _gen_bpf_find_nxt(b_iter,
 							  i_iter->jt.tgt.nxt);
-				if (b_jmp == NULL)
-					return -EFAULT;
+				if (b_jmp == NULL) {
+					rc = -EFAULT;
+					goto state_reset;
+				}
 				i_iter->jt = _BPF_JMP_HSH(b_jmp->hash);
 			}
 			if (i_iter->jf.type == TGT_NXT) {
 				b_jmp = _gen_bpf_find_nxt(b_iter,
 							  i_iter->jf.tgt.nxt);
-				if (b_jmp == NULL)
-					return -EFAULT;
+				if (b_jmp == NULL) {
+					rc = -EFAULT;
+					goto state_reset;
+				}
 				i_iter->jf = _BPF_JMP_HSH(b_jmp->hash);
 			}
 			/* we shouldn't need to worry about a TGT_NXT in k */
@@ -2134,8 +2138,10 @@ static int _gen_bpf_build_bpf(struct bpf_state *state,
 						b_jmp = _blk_prepend(state,
 								     b_jmp,
 								     &instr);
-						if (b_jmp == NULL)
-							return -EFAULT;
+						if (b_jmp == NULL) {
+							rc = -EFAULT;
+							goto state_reset;
+						}
 					}
 					_BPF_INSTR(instr,
 						   _BPF_OP(state->arch,
@@ -2145,8 +2151,10 @@ static int _gen_bpf_build_bpf(struct bpf_state *state,
 							  b_jmp->acc_start.offset));
 					b_jmp = _blk_prepend(state,
 							     b_jmp, &instr);
-					if (b_jmp == NULL)
-						return -EFAULT;
+					if (b_jmp == NULL) {
+						rc = -EFAULT;
+						goto state_reset;
+					}
 					/* not reliant on the accumulator */
 					b_jmp->acc_start = _ACC_STATE_UNDEF;
 				}
@@ -2282,6 +2290,7 @@ static int _gen_bpf_build_bpf(struct bpf_state *state,
 		_blk_free(state, b_iter);
 	} while (b_head != NULL);
 
+	state->arch = NULL;
 	return 0;
 
 build_bpf_free_blks:
@@ -2292,6 +2301,8 @@ static int _gen_bpf_build_bpf(struct bpf_state *state,
 		__blk_free(state, b_iter);
 		b_iter = b_jmp;
 	}
+state_reset:
+	state->arch = NULL;
 	return rc;
 }
 
