---
name: "pmap"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/pmap/9"
---

# pmap(9)

machine-dependent portion of virtual memory subsystem

## NAME

**pmap** – machine-dependent portion of virtual memory subsystem

## SYNOPSIS

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

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

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

## DESCRIPTION

The **pmap** module is the machine-dependent portion of the FreeBSD VM (Virtual Memory) sub-system. Each function documented herein must have its own architecture-dependent implementation.

The **pmap** module is responsible for managing hardware-dependent objects such as page tables, address maps, TLBs, etc.

Machine-dependent code must provide the header file ⟨machine/pmap.h⟩. This file contains the definition of the *pmap* structure:

```
struct pmap {
        /* Contents defined by pmap implementation. */
};
typedef struct pmap *pmap_t;
```

This header file may also define other data structures used by the **pmap** implementation.

The header file ⟨vm/pmap.h⟩ defines a structure for tracking **pmap** statistics (see below). This structure is defined as:

```
struct pmap_statistics {
        long        resident_count; /* number of mapped pages */
        long        wired_count;    /* number of wired pages */
};
```

The implementation's *struct pmap* must contain an instance of this structure having the name *pm\_stats*, and it must be updated by the implementation after each relevant **pmap** operation.

## SEE ALSO

[pmap(9)](/pmap/9.md), [pmap\_activate(9)](/pmap_activate/9.md), [pmap\_addr\_hint(9)](/pmap_addr_hint/9.md), [pmap\_change\_wiring(9)](/pmap_change_wiring/9.md), [pmap\_clear\_modify(9)](/pmap_clear_modify/9.md), [pmap\_clear\_reference(9)](/pmap_clear_reference/9.md), [pmap\_copy(9)](/pmap_copy/9.md), [pmap\_copy\_page(9)](/pmap_copy_page/9.md), [pmap\_enter(9)](/pmap_enter/9.md), [pmap\_extract(9)](/pmap_extract/9.md), [pmap\_extract\_and\_hold(9)](/pmap_extract_and_hold/9.md), [pmap\_growkernel(9)](/pmap_growkernel/9.md), [pmap\_init(9)](/pmap_init/9.md), [pmap\_init2(9)](/pmap_init2/9.md), [pmap\_is\_modified(9)](/pmap_is_modified/9.md), [pmap\_is\_prefaultable(9)](/pmap_is_prefaultable/9.md), [pmap\_map(9)](/pmap_map/9.md), [pmap\_mincore(9)](/pmap_mincore/9.md), [pmap\_object\_init\_pt(9)](/pmap_object_init_pt/9.md), [pmap\_page\_exists\_quick(9)](/pmap_page_exists_quick/9.md), [pmap\_page\_init(9)](/pmap_page_init/9.md), [pmap\_page\_protect(9)](/pmap_page_protect/9.md), [pmap\_pinit(9)](/pmap_pinit/9.md), [pmap\_pinit0(9)](/pmap_pinit0/9.md), [pmap\_pinit2(9)](/pmap_pinit2/9.md), [pmap\_protect(9)](/pmap_protect/9.md), [pmap\_qenter(9)](/pmap_qenter/9.md), [pmap\_qremove(9)](/pmap_qremove/9.md), [pmap\_release(9)](/pmap_release/9.md), [pmap\_remove(9)](/pmap_remove/9.md), [pmap\_remove\_all(9)](/pmap_remove_all/9.md), [pmap\_remove\_pages(9)](/pmap_remove_pages/9.md), [pmap\_resident\_count(9)](/pmap_resident_count/9.md), [pmap\_ts\_modified(9)](/pmap_ts_modified/9.md), [pmap\_wired\_count(9)](/pmap_wired_count/9.md), [pmap\_zero\_area(9)](/pmap_zero_area/9.md), [pmap\_zero\_idle(9)](/pmap_zero_idle/9.md), [pmap\_zero\_page(9)](/pmap_zero_page/9.md), [vm\_map(9)](/vm_map/9.md)

## AUTHORS

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