aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-10-21 14:18:08 +0200
committerDmitry Vyukov <dvyukov@google.com>2021-10-21 15:05:59 +0200
commitc5cb7da830c941bb15b077cb5e4591b2e2e54554 (patch)
tree5e606169f3b8a209f078f82d217368c95f959aa7 /sys/linux
parent7841d8b1babc796e48daf138d80288c2ba1c6ea2 (diff)
sys/linux: extend userfaultfd descriptions
2 new ioctl's were added + some new flags: https://elixir.bootlin.com/linux/v5.15-rc6/source/include/uapi/linux/userfaultfd.h#L82
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/uffd.txt25
-rw-r--r--sys/linux/uffd.txt.const12
2 files changed, 33 insertions, 4 deletions
diff --git a/sys/linux/uffd.txt b/sys/linux/uffd.txt
index 807baaef3..811cf2e78 100644
--- a/sys/linux/uffd.txt
+++ b/sys/linux/uffd.txt
@@ -15,12 +15,14 @@ ioctl$UFFDIO_UNREGISTER(fd fd_uffd, cmd const[UFFDIO_UNREGISTER], arg ptr[in, uf
ioctl$UFFDIO_WAKE(fd fd_uffd, cmd const[UFFDIO_WAKE], arg ptr[in, uffdio_range])
ioctl$UFFDIO_COPY(fd fd_uffd, cmd const[UFFDIO_COPY], arg ptr[in, uffdio_copy])
ioctl$UFFDIO_ZEROPAGE(fd fd_uffd, cmd const[UFFDIO_ZEROPAGE], arg ptr[in, uffdio_zeropage])
+ioctl$UFFDIO_WRITEPROTECT(fd fd_uffd, cmd const[UFFDIO_WRITEPROTECT], arg ptr[in, uffdio_writeprotect])
+ioctl$UFFDIO_CONTINUE(fd fd_uffd, cmd const[UFFDIO_CONTINUE], arg ptr[in, uffdio_continue])
-userfaultfd_flags = O_NONBLOCK, O_CLOEXEC
-uffdio_register_mode = UFFDIO_REGISTER_MODE_MISSING, UFFDIO_REGISTER_MODE_WP
-uffdio_copy_mode = UFFDIO_COPY_MODE_DONTWAKE
+userfaultfd_flags = O_NONBLOCK, O_CLOEXEC, UFFD_USER_MODE_ONLY
+uffdio_register_mode = UFFDIO_REGISTER_MODE_MISSING, UFFDIO_REGISTER_MODE_WP, UFFDIO_REGISTER_MODE_MINOR
+uffdio_copy_mode = UFFDIO_COPY_MODE_DONTWAKE, UFFDIO_COPY_MODE_WP
uffdio_zero_mode = UFFDIO_ZEROPAGE_MODE_DONTWAKE
-uffdio_features = UFFD_FEATURE_PAGEFAULT_FLAG_WP, UFFD_FEATURE_EVENT_FORK, UFFD_FEATURE_EVENT_REMAP, UFFD_FEATURE_EVENT_REMOVE, UFFD_FEATURE_MISSING_HUGETLBFS, UFFD_FEATURE_MISSING_SHMEM, UFFD_FEATURE_EVENT_UNMAP
+uffdio_features = UFFD_FEATURE_PAGEFAULT_FLAG_WP, UFFD_FEATURE_EVENT_FORK, UFFD_FEATURE_EVENT_REMAP, UFFD_FEATURE_EVENT_REMOVE, UFFD_FEATURE_MISSING_HUGETLBFS, UFFD_FEATURE_MISSING_SHMEM, UFFD_FEATURE_EVENT_UNMAP, UFFD_FEATURE_SIGBUS, UFFD_FEATURE_THREAD_ID, UFFD_FEATURE_MINOR_HUGETLBFS, UFFD_FEATURE_MINOR_SHMEM
uffdio_api {
api const[UFFD_API, int64]
@@ -52,3 +54,18 @@ uffdio_zeropage {
mode flags[uffdio_zero_mode, int64]
zeropg const[0, int64]
}
+
+uffdio_writeprotect {
+ range uffdio_range
+ mode flags[uffdio_writeprotect_mode, int64]
+}
+
+uffdio_writeprotect_mode = UFFDIO_WRITEPROTECT_MODE_WP, UFFDIO_WRITEPROTECT_MODE_DONTWAKE
+
+uffdio_continue {
+ range uffdio_range
+ mode flags[uffdio_continue_mode, int64]
+ mapped int64 (out)
+}
+
+uffdio_continue_mode = UFFDIO_CONTINUE_MODE_DONTWAKE
diff --git a/sys/linux/uffd.txt.const b/sys/linux/uffd.txt.const
index 972475351..bcab8f462 100644
--- a/sys/linux/uffd.txt.const
+++ b/sys/linux/uffd.txt.const
@@ -3,13 +3,20 @@ arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
O_CLOEXEC = 524288
O_NONBLOCK = 2048, mips64le:128
UFFDIO_API = 3222841919
+UFFDIO_CONTINUE = 3223366151
+UFFDIO_CONTINUE_MODE_DONTWAKE = 1
UFFDIO_COPY = 3223890435
UFFDIO_COPY_MODE_DONTWAKE = 1
+UFFDIO_COPY_MODE_WP = 2
UFFDIO_REGISTER = 3223366144
+UFFDIO_REGISTER_MODE_MINOR = 4
UFFDIO_REGISTER_MODE_MISSING = 1
UFFDIO_REGISTER_MODE_WP = 2
UFFDIO_UNREGISTER = 2148575745, mips64le:ppc64le:1074833921
UFFDIO_WAKE = 2148575746, mips64le:ppc64le:1074833922
+UFFDIO_WRITEPROTECT = 3222841862
+UFFDIO_WRITEPROTECT_MODE_DONTWAKE = 2
+UFFDIO_WRITEPROTECT_MODE_WP = 1
UFFDIO_ZEROPAGE = 3223366148
UFFDIO_ZEROPAGE_MODE_DONTWAKE = 1
UFFD_API = 170
@@ -17,8 +24,13 @@ UFFD_FEATURE_EVENT_FORK = 2
UFFD_FEATURE_EVENT_REMAP = 4
UFFD_FEATURE_EVENT_REMOVE = 8
UFFD_FEATURE_EVENT_UNMAP = 64
+UFFD_FEATURE_MINOR_HUGETLBFS = 512
+UFFD_FEATURE_MINOR_SHMEM = 1024
UFFD_FEATURE_MISSING_HUGETLBFS = 16
UFFD_FEATURE_MISSING_SHMEM = 32
UFFD_FEATURE_PAGEFAULT_FLAG_WP = 1
+UFFD_FEATURE_SIGBUS = 128
+UFFD_FEATURE_THREAD_ID = 256
+UFFD_USER_MODE_ONLY = 1
__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015
__NR_userfaultfd = 282, 386:374, amd64:323, arm:388, mips64le:5317, ppc64le:364, s390x:355