From cc2e4f6bd6429078faf501dc6b4266cccc422102 Mon Sep 17 00:00:00 2001
From: Xiaotian Wu <[email protected]>
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 <[email protected]>
Signed-off-by: WANG Xuerui <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Signed-off-by: WANG Xuerui <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
+ */
+
+/*
+ * 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 <[email protected]>
+ */
+
+/*
+ * 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 <[email protected]>
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 <[email protected]>
Signed-off-by: WANG Xuerui <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
Acked-by: Tom Hromatka <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
(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 <[email protected]>
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 <[email protected]>
(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;
}