diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-03-03 00:50:33 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-03-03 00:57:24 +0100 |
commit | b9a59e483225093dec4e28ee5841b5b7f5e73562 (patch) | |
tree | 3b4b57251c769a90792e4cc10433863497635c89 /kern/syscall_sw.h | |
parent | 241317985705f7a4cc81286692322c23fce03104 (diff) |
Keep two virtual pages as mapping windows to access physical memory
PCI devices expose their memory etc. way beyond last_phys_addr. Userland
drivers opening /dev/mem need to open those too, even if phystokv() will
not work for them.
* i386/intel/pmap.h (pmap_mapwindow_t): New type.
(pmap_get_mapwindow, pmap_put_mapwindow): New prototypes.
(PMAP_NMAPWINDOWS): New macro.
* i386/intel/pmap.c (mapwindows): New array.
(pmap_get_mapwindow, pmap_put_mapwindow): New functions.
(pmap_bootstrap, pmap_virtual_space): Reserve virtual pages for the mapping
windows.
* i386/i386/phys.c: Include <i386/model_dep.h>
(INTEL_PTE_W, INTEL_PTE_R): New macros
(pmap_zero_page, pmap_copy_page, copy_to_phys, copy_from_phys): Use
`pmap_get_mapwindow' to temporarily map physical pages beyond last_phys_addr.
Diffstat (limited to 'kern/syscall_sw.h')
0 files changed, 0 insertions, 0 deletions