UFFDIO_WRITEPROTECT(2const) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | STANDARDS | HISTORY | EXAMPLES | SEE ALSO | COLOPHON

UFFDIO_WRITEPROTECT(2const)                  UFFDIO_WRITEPROTECT(2const)

NAME         top

       UFFDIO_WRITEPROTECT - write-protect or write-unprotect a
       userfaultfd-registered memory range

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <linux/userfaultfd.h>  /* Definition of UFFD* constants */
       #include <sys/ioctl.h>

       int ioctl(int fd, UFFDIO_WRITEPROTECT, ...);

       #include <linux/userfaultfd.h>

       struct uffdio_writeprotect {
           struct uffdio_range  range;  /* Range to change write permission*/
           __u64                mode;   /* Mode to change write permission */
       };

DESCRIPTION         top

       Write-protect or write-unprotect a userfaultfd-registered memory
       range registered with mode UFFDIO_REGISTER_MODE_WP.

       There are two mode bits that are supported in this structure:

       UFFDIO_WRITEPROTECT_MODE_WP
              When this mode bit is set, the ioctl will be a write-
              protect operation upon the memory range specified by
              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.

       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 UFFDIO_WRITEPROTECT_MODE_WP is
              not specified.

RETURN VALUE         top

       On success, 0 is returned.  On error, -1 is returned and errno is
       set to indicate the error.

ERRORS         top

       EINVAL The start or the len field of the ufdio_range structure
              was not a multiple of the system page size; or len was
              zero; or the specified range was otherwise invalid.

       EAGAIN The process was interrupted; retry this call.

       ENOENT The range specified in range is not valid.  For example,
              the virtual address does not exist, or not registered with
              userfaultfd write-protect mode.

       EFAULT Encountered a generic fault during processing.

STANDARDS         top

       Linux.

HISTORY         top

       Linux 5.7.

EXAMPLES         top

       See userfaultfd(2).

SEE ALSO         top

       ioctl(2), ioctl_userfaultfd(2), userfaultfd(2)

       Documentation/admin-guide/mm/userfaultfd.rst in the Linux kernel
       source tree

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       [email protected]

Linux man-pages 6.9.1          2024-06-17    UFFDIO_WRITEPROTECT(2const)

Pages that refer to this page: ioctl_userfaultfd(2)