FreeBSD virtual memory subsystem code
pmap.h File Reference
#include <machine/pmap.h>
Include dependency graph for pmap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pmap_statistics
 

Macros

#define PMAP_ENTER_NOSLEEP   0x00000100
 
#define PMAP_ENTER_WIRED   0x00000200
 
#define PMAP_ENTER_LARGEPAGE   0x00000400
 
#define PMAP_ENTER_RESERVED   0xFF000000
 
#define PMAP_TS_REFERENCED_MAX   5
 
#define pmap_resident_count(pm)   ((pm)->pm_stats.resident_count)
 
#define pmap_wired_count(pm)   ((pm)->pm_stats.wired_count)
 

Typedefs

typedef struct pmap_statisticspmap_statistics_t
 

Functions

void pmap_activate (struct thread *td)
 
void pmap_advise (pmap_t pmap, vm_offset_t sva, vm_offset_t eva, int advice)
 
void pmap_align_superpage (vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t)
 
void pmap_clear_modify (vm_page_t m)
 
void pmap_copy (pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t)
 
void pmap_copy_page (vm_page_t, vm_page_t)
 
void pmap_copy_pages (vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], vm_offset_t b_offset, int xfersize)
 
int pmap_enter (pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, u_int flags, int8_t psind)
 
void pmap_enter_object (pmap_t pmap, vm_offset_t start, vm_offset_t end, vm_page_t m_start, vm_prot_t prot)
 
void pmap_enter_quick (pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot)
 
vm_paddr_t pmap_extract (pmap_t pmap, vm_offset_t va)
 
vm_page_t pmap_extract_and_hold (pmap_t pmap, vm_offset_t va, vm_prot_t prot)
 
void pmap_growkernel (vm_offset_t)
 
void pmap_init (void)
 
boolean_t pmap_is_modified (vm_page_t m)
 
boolean_t pmap_is_prefaultable (pmap_t pmap, vm_offset_t va)
 
boolean_t pmap_is_referenced (vm_page_t m)
 
boolean_t pmap_is_valid_memattr (pmap_t, vm_memattr_t)
 
vm_offset_t pmap_map (vm_offset_t *, vm_paddr_t, vm_paddr_t, int)
 
int pmap_mincore (pmap_t pmap, vm_offset_t addr, vm_paddr_t *pap)
 
void pmap_object_init_pt (pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, vm_size_t size)
 
boolean_t pmap_page_exists_quick (pmap_t pmap, vm_page_t m)
 
void pmap_page_init (vm_page_t m)
 
int pmap_page_wired_mappings (vm_page_t m)
 
int pmap_pinit (pmap_t)
 
void pmap_pinit0 (pmap_t)
 
void pmap_protect (pmap_t, vm_offset_t, vm_offset_t, vm_prot_t)
 
void pmap_qenter (vm_offset_t, vm_page_t *, int)
 
void pmap_qremove (vm_offset_t, int)
 
vm_offset_t pmap_quick_enter_page (vm_page_t)
 
void pmap_quick_remove_page (vm_offset_t)
 
void pmap_release (pmap_t)
 
void pmap_remove (pmap_t, vm_offset_t, vm_offset_t)
 
void pmap_remove_all (vm_page_t m)
 
void pmap_remove_pages (pmap_t)
 
void pmap_remove_write (vm_page_t m)
 
void pmap_sync_icache (pmap_t, vm_offset_t, vm_size_t)
 
int pmap_ts_referenced (vm_page_t m)
 
void pmap_unwire (pmap_t pmap, vm_offset_t start, vm_offset_t end)
 
void pmap_zero_page (vm_page_t)
 
void pmap_zero_page_area (vm_page_t, int off, int size)
 

Variables

vm_offset_t kernel_vm_end
 

Macro Definition Documentation

◆ PMAP_ENTER_LARGEPAGE

#define PMAP_ENTER_LARGEPAGE   0x00000400

Definition at line 109 of file pmap.h.

◆ PMAP_ENTER_NOSLEEP

#define PMAP_ENTER_NOSLEEP   0x00000100

Definition at line 107 of file pmap.h.

◆ PMAP_ENTER_RESERVED

#define PMAP_ENTER_RESERVED   0xFF000000

Definition at line 110 of file pmap.h.

◆ PMAP_ENTER_WIRED

#define PMAP_ENTER_WIRED   0x00000200

Definition at line 108 of file pmap.h.

◆ pmap_resident_count

#define pmap_resident_count (   pm)    ((pm)->pm_stats.resident_count)

Definition at line 172 of file pmap.h.

◆ PMAP_TS_REFERENCED_MAX

#define PMAP_TS_REFERENCED_MAX   5

Definition at line 120 of file pmap.h.

◆ pmap_wired_count

#define pmap_wired_count (   pm)    ((pm)->pm_stats.wired_count)

Definition at line 173 of file pmap.h.

Typedef Documentation

◆ pmap_statistics_t

Definition at line 82 of file pmap.h.

Function Documentation

◆ pmap_activate()

void pmap_activate ( struct thread *  td)

Referenced by vmspace_exit(), and vmspace_switch_aio().

Here is the caller graph for this function:

◆ pmap_advise()

void pmap_advise ( pmap_t  pmap,
vm_offset_t  sva,
vm_offset_t  eva,
int  advice 
)

Referenced by vm_fault_dontneed(), and vm_map_madvise().

Here is the caller graph for this function:

◆ pmap_align_superpage()

void pmap_align_superpage ( vm_object_t  ,
vm_ooffset_t  ,
vm_offset_t *  ,
vm_size_t   
)

Referenced by vm_map_alignspace().

Here is the caller graph for this function:

◆ pmap_clear_modify()

void pmap_clear_modify ( vm_page_t  m)

Referenced by vm_page_set_validclean().

Here is the caller graph for this function:

◆ pmap_copy()

void pmap_copy ( pmap_t  ,
pmap_t  ,
vm_offset_t  ,
vm_size_t  ,
vm_offset_t   
)

Referenced by vm_map_copy_entry(), and vmspace_fork().

Here is the caller graph for this function:

◆ pmap_copy_page()

void pmap_copy_page ( vm_page_t  ,
vm_page_t   
)

Referenced by vm_fault_copy_entry(), vm_fault_cow(), and vm_page_reclaim_run().

Here is the caller graph for this function:

◆ pmap_copy_pages()

void pmap_copy_pages ( vm_page_t  ma[],
vm_offset_t  a_offset,
vm_page_t  mb[],
vm_offset_t  b_offset,
int  xfersize 
)

◆ pmap_enter()

int pmap_enter ( pmap_t  pmap,
vm_offset_t  va,
vm_page_t  m,
vm_prot_t  prot,
u_int  flags,
int8_t  psind 
)

◆ pmap_enter_object()

void pmap_enter_object ( pmap_t  pmap,
vm_offset_t  start,
vm_offset_t  end,
vm_page_t  m_start,
vm_prot_t  prot 
)

Referenced by vm_map_pmap_enter().

Here is the caller graph for this function:

◆ pmap_enter_quick()

void pmap_enter_quick ( pmap_t  pmap,
vm_offset_t  va,
vm_page_t  m,
vm_prot_t  prot 
)

Referenced by vm_fault_prefault().

Here is the caller graph for this function:

◆ pmap_extract()

vm_paddr_t pmap_extract ( pmap_t  pmap,
vm_offset_t  va 
)

Referenced by kern_mincore().

Here is the caller graph for this function:

◆ pmap_extract_and_hold()

vm_page_t pmap_extract_and_hold ( pmap_t  pmap,
vm_offset_t  va,
vm_prot_t  prot 
)

Referenced by vm_fault_quick_hold_pages().

Here is the caller graph for this function:

◆ pmap_growkernel()

void pmap_growkernel ( vm_offset_t  )

Referenced by vm_map_insert().

Here is the caller graph for this function:

◆ pmap_init()

void pmap_init ( void  )

Referenced by vm_mem_init().

Here is the caller graph for this function:

◆ pmap_is_modified()

boolean_t pmap_is_modified ( vm_page_t  m)

Referenced by kern_mincore(), vm_page_advise(), and vm_page_test_dirty().

Here is the caller graph for this function:

◆ pmap_is_prefaultable()

boolean_t pmap_is_prefaultable ( pmap_t  pmap,
vm_offset_t  va 
)

Referenced by vm_fault_prefault().

Here is the caller graph for this function:

◆ pmap_is_referenced()

boolean_t pmap_is_referenced ( vm_page_t  m)

Referenced by kern_mincore(), and vm_swapout_object_deactivate_page().

Here is the caller graph for this function:

◆ pmap_is_valid_memattr()

boolean_t pmap_is_valid_memattr ( pmap_t  ,
vm_memattr_t   
)

◆ pmap_map()

vm_offset_t pmap_map ( vm_offset_t *  ,
vm_paddr_t  ,
vm_paddr_t  ,
int   
)

Referenced by startup_alloc(), vm_page_array_alloc(), and vm_page_startup().

Here is the caller graph for this function:

◆ pmap_mincore()

int pmap_mincore ( pmap_t  pmap,
vm_offset_t  addr,
vm_paddr_t *  pap 
)

Referenced by kern_mincore().

Here is the caller graph for this function:

◆ pmap_object_init_pt()

void pmap_object_init_pt ( pmap_t  pmap,
vm_offset_t  addr,
vm_object_t  object,
vm_pindex_t  pindex,
vm_size_t  size 
)

Referenced by vm_map_pmap_enter().

Here is the caller graph for this function:

◆ pmap_page_exists_quick()

boolean_t pmap_page_exists_quick ( pmap_t  pmap,
vm_page_t  m 
)

Referenced by vm_swapout_object_deactivate_page().

Here is the caller graph for this function:

◆ pmap_page_init()

void pmap_page_init ( vm_page_t  m)

Referenced by vm_page_init_page(), and vm_page_initfake().

Here is the caller graph for this function:

◆ pmap_page_wired_mappings()

int pmap_page_wired_mappings ( vm_page_t  m)

◆ pmap_pinit()

int pmap_pinit ( pmap_t  )

Referenced by vmspace_fork().

Here is the caller graph for this function:

◆ pmap_pinit0()

void pmap_pinit0 ( pmap_t  )

◆ pmap_protect()

void pmap_protect ( pmap_t  ,
vm_offset_t  ,
vm_offset_t  ,
vm_prot_t   
)

Referenced by kmem_init_zero_region(), vm_map_copy_entry(), and vm_map_protect().

Here is the caller graph for this function:

◆ pmap_qenter()

void pmap_qenter ( vm_offset_t  ,
vm_page_t *  ,
int   
)

◆ pmap_qremove()

void pmap_qremove ( vm_offset_t  ,
int   
)

◆ pmap_quick_enter_page()

vm_offset_t pmap_quick_enter_page ( vm_page_t  )

◆ pmap_quick_remove_page()

void pmap_quick_remove_page ( vm_offset_t  )

◆ pmap_release()

void pmap_release ( pmap_t  )

Referenced by vmspace_dofree().

Here is the caller graph for this function:

◆ pmap_remove()

void pmap_remove ( pmap_t  ,
vm_offset_t  ,
vm_offset_t   
)

Referenced by _kmem_unback(), kmem_bootstrap_free(), startup_free(), vm_map_delete(), vm_map_sync(), and vm_swapout_map_deactivate_pages().

Here is the caller graph for this function:

◆ pmap_remove_all()

void pmap_remove_all ( vm_page_t  m)

Referenced by cdev_pager_free_page(), vm_fault_cow(), vm_object_page_remove(), vm_page_set_invalid(), and vm_page_try_remove_all().

Here is the caller graph for this function:

◆ pmap_remove_pages()

void pmap_remove_pages ( pmap_t  )

Referenced by vmspace_exit().

Here is the caller graph for this function:

◆ pmap_remove_write()

void pmap_remove_write ( vm_page_t  m)

Referenced by vm_object_page_remove_write(), and vm_page_try_remove_write().

Here is the caller graph for this function:

◆ pmap_sync_icache()

void pmap_sync_icache ( pmap_t  ,
vm_offset_t  ,
vm_size_t   
)

Referenced by vm_sync_icache().

Here is the caller graph for this function:

◆ pmap_ts_referenced()

int pmap_ts_referenced ( vm_page_t  m)

Referenced by vm_pageout_launder(), vm_pageout_scan_active(), and vm_pageout_scan_inactive().

Here is the caller graph for this function:

◆ pmap_unwire()

void pmap_unwire ( pmap_t  pmap,
vm_offset_t  start,
vm_offset_t  end 
)

Referenced by vm_map_wire_entry_failure().

Here is the caller graph for this function:

◆ pmap_zero_page()

◆ pmap_zero_page_area()

void pmap_zero_page_area ( vm_page_t  ,
int  off,
int  size 
)

Referenced by vm_page_set_valid_range(), vm_page_set_validclean(), vm_page_zero_invalid(), and vnode_pager_subpage_purge().

Here is the caller graph for this function:

Variable Documentation

◆ kernel_vm_end

vm_offset_t kernel_vm_end
extern

Referenced by vm_map_insert().