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

# pmap\_map(9)

map a physical memory range into kernel virtual address (KVA) space

## NAME

**pmap\_map** – map a physical memory range into kernel virtual address (KVA) space

## SYNOPSIS

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

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

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

*vm\_offset\_t*\

**pmap\_map**(*vm\_offset\_t \*virt*, *vm\_paddr\_t start*, *vm\_paddr\_t end*, *int prot*);

## DESCRIPTION

The **pmap\_map**() function maps a range of physical addresses into kernel virtual address (KVA) space, from *start* to *end*, with protection bits *prot*.

The value passed in *\*virt* is treated as a hint for the virtual address of the beginning of the mapping.

## IMPLEMENTATION NOTES

The *prot* argument is currently ignored by machine-dependent implementations.

Architectures which can support a direct mapped physical to virtual region can return the appropriate address within that region, leaving *\*virt* unchanged.

## RETURN VALUES

The **pmap\_map**() function returns the virtual address of the beginning of the mapping, if the mapping was successfully made; *\*virt* will also be updated with the first usable address after the mapped region.

If the function is unsuccessful, NULL is returned.

## SEE ALSO

[pmap(9)](/pmap/9.md)

## AUTHORS

This manual page was written by Bruce M Simpson ⟨*bms@spc.org*⟩.
