aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJustus Winter <justus@gnupg.org>2016-10-22 13:33:05 +0200
committerJustus Winter <justus@gnupg.org>2016-11-01 12:10:55 +0100
commit65553178d1222b3291143bdddfef9478e0b09021 (patch)
tree18c24a5ed0933fa71b17948d3822fcf7cd66a55f /include
parentc8e687cb8a6ba8f278c58bf78126f843ceb292bb (diff)
downloadgnumach-65553178d1222b3291143bdddfef9478e0b09021.tar.gz
gnumach-65553178d1222b3291143bdddfef9478e0b09021.tar.bz2
gnumach-65553178d1222b3291143bdddfef9478e0b09021.zip
i386: Use discontiguous page directories when using PAE.
Previously, we used contiguous page directories four pages in length when using PAE. To prevent physical memory fragmentation, we need to use virtual memory for objects spanning multiple pages. Virtual kernel memory, however, is a scarce commodity. * i386/intel/pmap.h (lin2pdenum): Never include the page directory pointer table index. (lin2pdenum_cont): New macro which does include said index. (struct pmap): Remove the directory base pointer when using PAE. * i386/intel/pmap.c (pmap_pde): Fix lookup. (pmap_pte): Fix check for uninitialized pmap. (pmap_bootstrap): Do not store the page directory base if PAE. (pmap_init): Reduce size of page directories to one page, use direct-mapped memory. (pmap_create): Allocate four page directories per pmap. (pmap_destroy): Adapt to the discontinuous directories. (pmap_collect): Likewise. * i386/i386/xen.h (hyp_mmu_update_la): Adapt code manipulating the kernels page directory. * i386/i386at/model_dep.c (i386at_init): Likewise.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions