From 401d4bd6015253f4d4eaabe8a97bcef6deb57b76 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sun, 15 Nov 2015 02:37:51 +0000 Subject: [PATCH] Wire up userfaultfd, membarrier, and mlock2 syscalls * linux/dummy.h (membarrier, mlock2, userfaultfd): New stub aliases. * linux/32/syscallent.h (userfaultfd, membarrier, mlock2): New entries. * linux/64/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/arm/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/hppa/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/i386/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/ia64/syscallent.h (userfaultfd, membarrier): Likewise. * linux/m68k/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/microblaze/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-n32.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-n64.h (userfaultfd, membarrier, mlock2): Likewise. * linux/mips/syscallent-o32.h (userfaultfd, membarrier, mlock2): Likewise. * linux/powerpc/syscallent.h (userfaultfd, membarrier): Likewise. * linux/s390/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/s390x/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/sparc/syscallent.h (membarrier, userfaultfd, mlock2): Likewise. * linux/x32/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. * linux/x86_64/syscallent.h (userfaultfd, membarrier, mlock2): Likewise. --- linux/32/syscallent.h | 3 +++ linux/64/syscallent.h | 3 +++ linux/arm/syscallent.h | 5 ++++- linux/dummy.h | 3 +++ linux/hppa/syscallent.h | 3 +++ linux/i386/syscallent.h | 5 ++++- linux/ia64/syscallent.h | 2 ++ linux/m68k/syscallent.h | 5 ++++- linux/microblaze/syscallent.h | 3 +++ linux/mips/syscallent-n32.h | 5 ++++- linux/mips/syscallent-n64.h | 5 ++++- linux/mips/syscallent-o32.h | 5 ++++- linux/powerpc/syscallent.h | 4 +++- linux/s390/syscallent.h | 7 ++++--- linux/s390x/syscallent.h | 7 ++++--- linux/sparc/syscallent.h | 5 ++++- linux/x32/syscallent.h | 5 ++++- linux/x86_64/syscallent.h | 3 +++ 18 files changed, 63 insertions(+), 15 deletions(-) diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h index f3731cb3..f3e7d194 100644 --- a/linux/32/syscallent.h +++ b/linux/32/syscallent.h @@ -272,6 +272,9 @@ [279] = { 2, TD, SEN(memfd_create), "memfd_create", }, [280] = { 3, TD, SEN(bpf), "bpf", }, [281] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[282] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[283] = { 2, 0, SEN(membarrier), "membarrier", }, +[284] = { 3, TM, SEN(mlock2), "mlock2" }, #undef ARCH_mmap #undef ARCH_WANT_SYNC_FILE_RANGE2 diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h index 84c201a7..ec75d3cb 100644 --- a/linux/64/syscallent.h +++ b/linux/64/syscallent.h @@ -265,3 +265,6 @@ [279] = { 2, TD, SEN(memfd_create), "memfd_create", }, [280] = { 3, TD, SEN(bpf), "bpf", }, [281] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[282] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[283] = { 2, 0, SEN(membarrier), "membarrier", }, +[284] = { 3, TM, SEN(mlock2), "mlock2" }, diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index d0b680fa..47e119af 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -412,7 +412,10 @@ [385] = { 2, TD, SEN(memfd_create), "memfd_create", }, [386] = { 3, TD, SEN(bpf), "bpf", }, [387] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[388 ... 399] = { }, +[388] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[389] = { 2, 0, SEN(membarrier), "membarrier", }, +[390] = { 3, TM, SEN(mlock2), "mlock2" }, +[391 ... 399] = { }, #ifdef __ARM_EABI__ # define ARM_FIRST_SHUFFLED_SYSCALL 400 diff --git a/linux/dummy.h b/linux/dummy.h index ca76d0af..3a333ac3 100644 --- a/linux/dummy.h +++ b/linux/dummy.h @@ -37,9 +37,12 @@ #define sys_kcmp printargs #define sys_kexec_file_load printargs #define sys_lookup_dcookie printargs +#define sys_membarrier printargs +#define sys_mlock2 printargs #define sys_name_to_handle_at printargs #define sys_open_by_handle_at printargs #define sys_sysfs printargs +#define sys_userfaultfd printargs #define sys_vm86 printargs #define sys_vm86old printargs diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index 4ef47b2c..10ba33e5 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -345,3 +345,6 @@ [340] = { 2, TD, SEN(memfd_create), "memfd_create", }, [341] = { 3, TD, SEN(bpf), "bpf", }, [342] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[343] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[344] = { 2, 0, SEN(membarrier), "membarrier", }, +[345] = { 3, TM, SEN(mlock2), "mlock2" }, diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h index 7817c44d..1d9ad31a 100644 --- a/linux/i386/syscallent.h +++ b/linux/i386/syscallent.h @@ -400,7 +400,10 @@ [371] = { 6, TN, SEN(recvfrom), "recvfrom" }, [372] = { 3, TN, SEN(recvmsg), "recvmsg" }, [373] = { 2, TN, SEN(shutdown), "shutdown" }, -[374 ... 399] = { }, +[374] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[375] = { 2, 0, SEN(membarrier), "membarrier", }, +[376] = { 3, TM, SEN(mlock2), "mlock2" }, +[377 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index b2b2fb9c..58fa3a27 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -553,3 +553,5 @@ [1340] = { 2, TD, SEN(memfd_create), "memfd_create", }, [1341] = { 3, TD, SEN(bpf), "bpf", }, [1342] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[1343] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[1344] = { 2, 0, SEN(membarrier), "membarrier", }, diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index 4e55d133..c1dcf725 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -398,7 +398,10 @@ [370] = { 2, TN, SEN(shutdown), "shutdown" }, [371] = { 5, TN, SEN(recvmmsg), "recvmmsg" }, [372] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, -[373 ... 399] = { }, +[373] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[374] = { 2, 0, SEN(membarrier), "membarrier", }, +[375] = { 3, TM, SEN(mlock2), "mlock2" }, +[376 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h index 379e6cf0..1bdb8a70 100644 --- a/linux/microblaze/syscallent.h +++ b/linux/microblaze/syscallent.h @@ -414,3 +414,6 @@ [386] = { 2, TD, SEN(memfd_create), "memfd_create", }, [387] = { 3, TD, SEN(bpf), "bpf", }, [388] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[389] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[390] = { 2, 0, SEN(membarrier), "membarrier", }, +[391] = { 3, TM, SEN(mlock2), "mlock2" }, diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h index ea3fb981..ea53b22c 100644 --- a/linux/mips/syscallent-n32.h +++ b/linux/mips/syscallent-n32.h @@ -321,7 +321,10 @@ [6318] = { 2, TD, SEN(memfd_create), "memfd_create", }, [6319] = { 3, TD, SEN(bpf), "bpf", }, [6320] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[6321 ... 6399] = { }, +[6321] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[6322] = { 2, 0, SEN(membarrier), "membarrier", }, +[6323] = { 3, TM, SEN(mlock2), "mlock2" }, +[6324 ... 6399] = { }, # define SYS_socket_subcall 6400 # include "subcall.h" diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h index 1a7147ed..47b1ba1a 100644 --- a/linux/mips/syscallent-n64.h +++ b/linux/mips/syscallent-n64.h @@ -317,7 +317,10 @@ [5314] = { 2, TD, SEN(memfd_create), "memfd_create", }, [5315] = { 3, TD, SEN(bpf), "bpf", }, [5316] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[5317 ... 5399] = { }, +[5317] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[5318] = { 2, 0, SEN(membarrier), "membarrier", }, +[5319] = { 3, TM, SEN(mlock2), "mlock2" }, +[5320 ... 5399] = { }, # define SYS_socket_subcall 5400 # include "subcall.h" diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h index ef9752df..8045676a 100644 --- a/linux/mips/syscallent-o32.h +++ b/linux/mips/syscallent-o32.h @@ -357,7 +357,10 @@ [4354] = { 2, TD, SEN(memfd_create), "memfd_create", }, [4355] = { 3, TD, SEN(bpf), "bpf", }, [4356] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[4357 ... 4399] = { }, +[4357] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[4358] = { 2, 0, SEN(membarrier), "membarrier", }, +[4359] = { 3, TM, SEN(mlock2), "mlock2" }, +[4360 ... 4399] = { }, # define SYS_socket_subcall 4400 # include "subcall.h" diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index 2b7c0284..1bc3f071 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -390,7 +390,9 @@ [361] = { 3, TD, SEN(bpf), "bpf", }, [362] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, [363] = { 0, 0, SEN(printargs), "switch_endian" }, -[364 ... 399] = { }, +[364] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[365] = { 2, 0, SEN(membarrier), "membarrier", }, +[366 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 8e3a653c..925d92ad 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -383,8 +383,8 @@ [352] = { 3, 0, SEN(printargs), "s390_pci_mmio_write", }, [353] = { 3, 0, SEN(printargs), "s390_pci_mmio_read", }, [354] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[355] = { 1, 0, SEN(printargs), "userfaultfd", }, -[356] = { 2, 0, SEN(printargs), "membarrier", }, +[355] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[356] = { 2, 0, SEN(membarrier), "membarrier", }, [357] = { 5, TN, SEN(recvmmsg), "recvmmsg" }, [358] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [359] = { 3, TN, SEN(socket), "socket" }, @@ -402,7 +402,8 @@ [371] = { 6, TN, SEN(recvfrom), "recvfrom" }, [372] = { 3, TN, SEN(recvmsg), "recvmsg" }, [373] = { 2, TN, SEN(shutdown), "shutdown" }, -[374 ... 399] = { }, +[374] = { 3, TM, SEN(mlock2), "mlock2" }, +[375 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index 9aab5b9e..228f25bb 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -367,8 +367,8 @@ [352] = { 3, 0, SEN(printargs), "s390_pci_mmio_write", }, [353] = { 3, 0, SEN(printargs), "s390_pci_mmio_read", }, [354] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[355] = { 1, 0, SEN(printargs), "userfaultfd", }, -[356] = { 2, 0, SEN(printargs), "membarrier", }, +[355] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[356] = { 2, 0, SEN(membarrier), "membarrier", }, [357] = { 5, TN, SEN(recvmmsg), "recvmmsg" }, [358] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [359] = { 3, TN, SEN(socket), "socket" }, @@ -386,7 +386,8 @@ [371] = { 6, TN, SEN(recvfrom), "recvfrom" }, [372] = { 3, TN, SEN(recvmsg), "recvmsg" }, [373] = { 2, TN, SEN(shutdown), "shutdown" }, -[374 ... 399] = { }, +[374] = { 3, TM, SEN(mlock2), "mlock2" }, +[375 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index ea039309..01a10b3f 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -349,7 +349,10 @@ [348] = { 2, TD, SEN(memfd_create), "memfd_create", }, [349] = { 3, TD, SEN(bpf), "bpf", }, [350] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, -[351 ... 399] = { }, +[351] = { 2, 0, SEN(membarrier), "membarrier", }, +[352] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[353] = { 3, TM, SEN(mlock2), "mlock2" }, +[354 ... 399] = { }, #define SYS_socket_subcall 400 #include "subcall.h" diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h index 7171b138..566f63fb 100644 --- a/linux/x32/syscallent.h +++ b/linux/x32/syscallent.h @@ -321,7 +321,10 @@ [320] = { 5, TD, SEN(kexec_file_load), "kexec_file_load", }, [321] = { 3, TD, SEN(bpf), "bpf", }, [322] = { 5, TD|TF|TP|SE|SI, SEN(printargs), "64:execveat", }, -[323 ... 511] = { }, +[323] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[324] = { 2, 0, SEN(membarrier), "membarrier", }, +[325] = { 3, TM, SEN(mlock2), "mlock2" }, +[326 ... 511] = { }, /* * x32-specific system call numbers start at 512 to avoid cache impact * for native 64-bit operation. diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index ebf135f3..4d70b175 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -321,3 +321,6 @@ [320] = { 5, TD, SEN(kexec_file_load), "kexec_file_load", }, [321] = { 3, TD, SEN(bpf), "bpf", }, [322] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", }, +[323] = { 1, TD, SEN(userfaultfd), "userfaultfd", }, +[324] = { 2, 0, SEN(membarrier), "membarrier", }, +[325] = { 3, TM, SEN(mlock2), "mlock2" }, -- 2.40.0