]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
ioctl_userfaultfd.2, UFFDIO_WRITEPROTECT.2const: Split UFFDIO_WRITEPROTECT from ioctl...
authorAlejandro Colomar <alx@kernel.org>
Fri, 14 Jun 2024 16:32:00 +0000 (18:32 +0200)
committerAlejandro Colomar <alx@kernel.org>
Fri, 14 Jun 2024 16:42:21 +0000 (18:42 +0200)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
man/man2/ioctl_userfaultfd.2
man/man2const/UFFDIO_WRITEPROTECT.2const [new file with mode: 0644]

index 76c098ed2c9afb2dd77f355492538c58c9354110..2dab16e81775708961498ac5f11a89fdb3022534 100644 (file)
@@ -72,76 +72,8 @@ events.
 .BR UFFDIO_ZEROPAGE (2const)
 .TQ
 .BR UFFDIO_WAKE (2const)
-.SS UFFDIO_WRITEPROTECT
-(Since Linux 5.7.)
-Write-protect or write-unprotect a userfaultfd-registered memory range
-registered with mode
-.BR UFFDIO_REGISTER_MODE_WP .
-.P
-The
-.I argp
-argument is a pointer to a
-.I uffdio_range
-structure as shown below:
-.P
-.in +4n
-.EX
-struct uffdio_writeprotect {
-    struct uffdio_range range; /* Range to change write permission*/
-    __u64 mode;                /* Mode to change write permission */
-};
-.EE
-.in
-.P
-There are two mode bits that are supported in this structure:
-.TP
-.B UFFDIO_WRITEPROTECT_MODE_WP
-When this mode bit is set,
-the ioctl will be a write-protect operation upon the memory range specified by
-.IR range .
-Otherwise it will be a write-unprotect operation upon the specified range,
-which can be used to resolve a userfaultfd write-protect page fault.
-.TP
-.B UFFDIO_WRITEPROTECT_MODE_DONTWAKE
-When this mode bit is set,
-do not wake up any thread that waits for
-page-fault resolution after the operation.
-This can be specified only if
-.B UFFDIO_WRITEPROTECT_MODE_WP
-is not specified.
-.P
-This
-.BR ioctl (2)
-operation returns 0 on success.
-On error, \-1 is returned and
-.I errno
-is set to indicate the error.
-Possible errors include:
-.TP
-.B EINVAL
-The
-.I start
-or the
-.I len
-field of the
-.I ufdio_range
-structure was not a multiple of the system page size; or
-.I len
-was zero; or the specified range was otherwise invalid.
-.TP
-.B EAGAIN
-The process was interrupted; retry this call.
-.TP
-.B ENOENT
-The range specified in
-.I range
-is not valid.
-For example, the virtual address does not exist,
-or not registered with userfaultfd write-protect mode.
-.TP
-.B EFAULT
-Encountered a generic fault during processing.
-.\"
+.TQ
+.BR UFFDIO_WRITEPROTECT (2const)
 .SS UFFDIO_CONTINUE
 (Since Linux 5.13.)
 Resolve a minor page fault
diff --git a/man/man2const/UFFDIO_WRITEPROTECT.2const b/man/man2const/UFFDIO_WRITEPROTECT.2const
new file mode 100644 (file)
index 0000000..536d673
--- /dev/null
@@ -0,0 +1,104 @@
+.\" Copyright 2016, IBM Corporation.
+.\" Written by Mike Rapoport <rppt@linux.vnet.ibm.com>
+.\" Copyright 2016, Michael Kerrisk <mtk.manpages@gmail.com>
+.\" Copyright 2024, Alejandro Colomar <alx@kernel.org>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH UFFDIO_WRITEPROTECT 2const (date) "Linux man-pages (unreleased)"
+.SH NAME
+UFFDIO_WRITEPROTECT
+\-
+write-protect or write-unprotect a userfaultfd-registered memory range
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.BR "#include <linux/userfaultfd.h>" "  /* Definition of " UFFD* " constants */"
+.B #include <sys/ioctl.h>
+.P
+.BI "int ioctl(int " fd ", UFFDIO_WRITEPROTECT, ...);"
+.fi
+.SH DESCRIPTION
+(Since Linux 5.7.)
+Write-protect or write-unprotect a userfaultfd-registered memory range
+registered with mode
+.BR UFFDIO_REGISTER_MODE_WP .
+.P
+The
+.I argp
+argument is a pointer to a
+.I uffdio_range
+structure as shown below:
+.P
+.in +4n
+.EX
+struct uffdio_writeprotect {
+    struct uffdio_range range; /* Range to change write permission*/
+    __u64 mode;                /* Mode to change write permission */
+};
+.EE
+.in
+.P
+There are two mode bits that are supported in this structure:
+.TP
+.B UFFDIO_WRITEPROTECT_MODE_WP
+When this mode bit is set,
+the ioctl will be a write-protect operation upon the memory range specified by
+.IR range .
+Otherwise it will be a write-unprotect operation upon the specified range,
+which can be used to resolve a userfaultfd write-protect page fault.
+.TP
+.B UFFDIO_WRITEPROTECT_MODE_DONTWAKE
+When this mode bit is set,
+do not wake up any thread that waits for
+page-fault resolution after the operation.
+This can be specified only if
+.B UFFDIO_WRITEPROTECT_MODE_WP
+is not specified.
+.SH RETURN VALUE
+This
+.BR ioctl (2)
+operation returns 0 on success.
+On error, \-1 is returned and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.TP
+.B EINVAL
+The
+.I start
+or the
+.I len
+field of the
+.I ufdio_range
+structure was not a multiple of the system page size; or
+.I len
+was zero; or the specified range was otherwise invalid.
+.TP
+.B EAGAIN
+The process was interrupted; retry this call.
+.TP
+.B ENOENT
+The range specified in
+.I range
+is not valid.
+For example, the virtual address does not exist,
+or not registered with userfaultfd write-protect mode.
+.TP
+.B EFAULT
+Encountered a generic fault during processing.
+.SH STANDARDS
+Linux.
+.SH HISTORY
+.SH EXAMPLES
+See
+.BR userfaultfd (2).
+.SH SEE ALSO
+.BR ioctl (2),
+.BR ioctl_userfaultfd (2),
+.BR userfaultfd (2)
+.P
+.I Documentation/admin\-guide/mm/userfaultfd.rst
+in the Linux kernel source tree