Barrelfish
Functions
pmap_target.c File Reference

pmap management More...

Functions

errval_t pmap_x86_64_init (struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc)
 Initialize a x86 pmap object. More...
 
errval_t pmap_x86_64_current_init (bool init_domain)
 Initialize the current pmap. Reserve space for metadata. More...
 

Detailed Description

pmap management

x86_64 specific management of page tables

Warning: This code is coupled with the code in slot_alloc/. and pinned.c

The maximum number of slots required to map a BASE_PAGE_SIZE sized page is the number of page table levels + 1. The sum for x86_64 is 4.

Warning: Additional slots will be required to map a BASE_PAGE_SIZE size page, if we also track the actual frames that are mapped. Currently this is not the case.

Function Documentation

errval_t pmap_x86_64_current_init ( bool  init_domain)

Initialize the current pmap. Reserve space for metadata.

This code is coupled with vspace_current_init()

errval_t pmap_x86_64_init ( struct pmap *  pmap,
struct vspace *  vspace,
struct capref  vnode,
struct slot_allocator *  opt_slot_alloc 
)

Initialize a x86 pmap object.

Parameters
pmapPmap object of type x86