logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

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.

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.

Examples

       See userfaultfd(2).

History

       Linux 5.7.

Library

       Standard C library (libc, -lc)

Name

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

Return Value

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

See Also

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

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

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

Standards

       Linux.

Synopsis

#include<linux/userfaultfd.h>  /* Definition of UFFD* constants */
       #include<sys/ioctl.h>intioctl(intfd,UFFDIO_WRITEPROTECT,...);#include<linux/userfaultfd.h>structuffdio_writeprotect{structuffdio_rangerange;  /* Range to change write permission*/
           __u64mode;   /* Mode to change write permission */
       };

See Also