pmap9
Machine-dependent portion of virtual memory subsystem
Usage
#include <sys/param.h>
#include <vm/vm.h>
#include <vm/pmap.h>
Overview
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.