---
name: "zero_region"
section: "9"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/zero_region"
---

# zero\_region(9)

Read-only region prefilled with zeroes

## NAME

**zero\_region** – Read-only region prefilled with zeroes

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/systm.h\>**

**#include \<vm/vm\_param.h\>**

*extern* *const* *void* *\*zero\_region*;

## DESCRIPTION

The global variable *zero\_region* points to a read-only region prefilled with zeroes. The size of the region is specified by the ZERO\_REGION\_SIZE macro.

## IMPLEMENTATION NOTES

The region *zero\_region* points to is mapped to the same page multiple times.

## EXAMPLES

```
/*
 * This function writes zeroes to the vnode at offset 0
 * with ZERO_REGION_SIZE length.
 */
static int
write_example(struct vnode *vp)
{
	struct thread *td;
	struct iovec aiov;
	struct uio auio;
	int error;
	td = curthread;
	aiov.iov_base = __DECONST(void *, zero_region);
	aiov.iov_len = ZERO_REGION_SIZE;
	auio.uio_iov = &aiov;
	auio.uio_iovcnt = 1;
	auio.uio_offset = 0;
	auio.uio_resid = ZERO_REGION_SIZE;
	auio.uio_segflg = UIO_SYSSPACE;
	auio.uio_rw = UIO_WRITE;
	auio.uio_td = td;
	error = VOP_WRITE(vp, &auio, 0, td->td_ucred);
	return (error);
}
```

## SEE ALSO

[pmap(9)](/pmap/9.md), [vm\_map(9)](/vm_map/9.md)

## AUTHORS

This manual page was written by Ka Ho Ng ⟨*khng@FreeBSDFoundation.org*⟩ under sponsorship from the FreeBSD Foundation.
