1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
.\" Copyright, the authors of the Linux man-pages project
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH UFFDIO_ZEROPAGE 2const 2025-05-17 "Linux man-pages (unreleased)"
.SH NAME
UFFDIO_ZEROPAGE
\-
zero out a memory range registered with userfaultfd
.SH LIBRARY
Standard C library
.RI ( libc ,\~ \-lc )
.SH SYNOPSIS
.nf
.BR "#include <linux/userfaultfd.h>" " /* Definition of " UFFD* " constants */"
.B #include <sys/ioctl.h>
.P
.BI "int ioctl(int " fd ", UFFDIO_ZEROPAGE, struct uffdio_zeropage *" argp );
.P
.B #include <linux/userfaultfd.h>
.P
.fi
.EX
.B struct uffdio_zeropage {
.B " struct uffdio_range range;"
.BR " __u64 mode;" " /* Flags controlling behavior */"
.BR " __s64 zeropage;" " /* Number of bytes zeroed */"
.B };
.EE
.SH DESCRIPTION
Zero out a memory range registered with userfaultfd.
.P
The following value may be bitwise ORed in
.I mode
to change the behavior of the
.B UFFDIO_ZEROPAGE
operation:
.TP
.B UFFDIO_ZEROPAGE_MODE_DONTWAKE
Do not wake up the thread that waits for page-fault resolution.
.P
The
.I 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
.BR UFFDIO_COPY .
.\" FIXME Why is the 'zeropage' field used to return error values?
.\" This should be explained in the manual page.
If the value returned in the
.I zeropage
field doesn't match the value that was specified in
.IR range.len ,
the operation fails with the error
.BR EAGAIN .
The
.I zeropage
field is output-only;
it is not read by the
.B UFFDIO_ZEROPAGE
operation.
.SH RETURN VALUE
This
.BR ioctl (2)
operation returns 0 on success.
In this case, the entire area was zeroed.
On error, \-1 is returned and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EAGAIN
The number of bytes zeroed (i.e., the value returned in the
.I zeropage
field)
does not equal the value that was specified in the
.I range.len
field.
.TP
.B EINVAL
Either
.I range.start
or
.I range.len
was not a multiple of the system page size; or
.I range.len
was zero; or the range specified was invalid.
.TP
.B EINVAL
An invalid bit was specified in the
.I mode
field.
.TP
.BR ESRCH " (since Linux 4.13)"
The faulting process has exited at the time of a
.B UFFDIO_ZEROPAGE
operation.
.SH STANDARDS
Linux.
.SH HISTORY
Linux 4.3.
.SH EXAMPLES
See
.BR userfaultfd (2).
.SH SEE ALSO
.BR ioctl (2),
.BR ioctl_userfaultfd (2),
.BR userfaultfd (2)
.P
.I linux.git/\:Documentation/\:admin\-guide/\:mm/\:userfaultfd.rst
|