Provided by: manpages-dev_6.9.1-1_all bug

NAME

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

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #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

       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

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

ERRORS

       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

       Linux.

HISTORY

       Linux 5.7.

EXAMPLES

       See userfaultfd(2).

SEE ALSO

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

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