---
name: "UFFDIO_ZEROPAGE"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/UFFDIO_ZEROPAGE"
---

# UFFDIO\_ZEROPAGE(2const)

zero out a memory range registered with userfaultfd

## NAME

UFFDIO\_ZEROPAGE - zero out a memory range registered with userfaultfd

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#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 */
};
```

## 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

This [**ioctl**(2)](/ioctl/2.md) 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)](/userfaultfd/2.md).

## SEE ALSO

[**ioctl**(2)](/ioctl/2.md), [**ioctl\_userfaultfd**(2)](/ioctl_userfaultfd/2.md), [**userfaultfd**(2)](/userfaultfd/2.md)

*linux.git/Documentation/admin-guide/mm/userfaultfd.rst*
