UFFDIO_ZEROPAGE2const
Zero out a memory range registered with userfaultfd
Usage
#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
Standard C library (libc, -lc)
Overview
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
This ioctl(2) operation returns 0 on success. In this case, the entire area was zeroed. On error, -1 is returned and errno is set to indicate the error.
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_ZEROPAGEoperation.
Examples
See userfaultfd(2).
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.