UFFDIO_ZEROPAGE
(2const)zero out a memory range registered with userfaultfd
#include <linux/userfaultfd.h> /* Definition of UFFD* constants */ #include <sys/ioctl.h> int ioctl(int fd, UFFDIO_ZEROPAGE, struct uffdio_zeropage *argp); #include <linux/userfaultfd.h> struct uffdio_zeropage { struct uffdio_range range; __u64 mode; /* Flags controlling behavior */ __s64 zeropage; /* Number of bytes zeroed */ };
LIBRARY
DESCRIPTION
Zero out a memory range registered with userfaultfd.
The following value may be bitwise ORed in mode to change the behavior of the UFFDIO_ZEROPAGE operation:
- UFFDIO_ZEROPAGE_MODE_DONTWAKE
- Do not wake up the thread that waits for page-fault resolution.
The zeropage field is used by the kernel to return the number of bytes that was actually zeroed, or an error in the same manner as UFFDIO_COPY. If the value returned in the zeropage field doesn't match the value that was specified in range.len, the operation fails with the error EAGAIN. The zeropage field is output-only; it is not read by the UFFDIO_ZEROPAGE operation.
RETURN VALUE
ERRORS
- EAGAIN
- The number of bytes zeroed (i.e., the value returned in the zeropage field) does not equal the value that was specified in the range.len field.
- EINVAL
- Either range.start or range.len was not a multiple of the system page size; or range.len was zero; or the range specified was invalid.
- EINVAL
- An invalid bit was specified in the mode field.
- ESRCH (since Linux 4.13)
- The faulting process has exited at the time of a UFFDIO_ZEROPAGE operation.