| UFFDIO_ZEROPAGE_MODE_DONTWAKE | Do not wake up the thread that waits for page-fault resolution. |
| 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. |
NAME
UFFDIO_ZEROPAGE - zero out a memory range registered with userfaultfd
LIBRARY
Standard C library (libc, -lc)
SYNOPSIS
#include <linux/userfaultfd.h>\n /* Definition of \nUFFD*\n constants */
\n#include <sys/ioctl.h>int ioctl(int \nfd\n, UFFDIO_ZEROPAGE, struct uffdio_zeropage *\nargp\n);#include <linux/userfaultfd.h>struct uffdio_zeropage {\n
\n struct uffdio_range range;\n
\n __u64 mode;\n /* Flags controlling behavior */
\n __s64 zeropage;\n /* Number of bytes zeroed */
\n};\nDESCRIPTION
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_ZEROPAGE operation.
STANDARDS
Linux.
HISTORY
Linux 4.3.
EXAMPLES
See userfaultfd(2).
SEE ALSO
ioctl(2), ioctl_userfaultfd(2), userfaultfd(2)
linux.git/Documentation/admin-guide/mm/userfaultfd.rst