diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-12-28 22:05:41 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-12-28 22:10:40 +0100 |
commit | a7a099032d9f68d4338b021a6323689feacbc47a (patch) | |
tree | 87a7ff415a03976cf3a27c8dee535e31ca6e139f /i386/intel | |
parent | abd21321841032248800bca9abc64867f7ba6b59 (diff) | |
download | gnumach-a7a099032d9f68d4338b021a6323689feacbc47a.tar.gz gnumach-a7a099032d9f68d4338b021a6323689feacbc47a.tar.bz2 gnumach-a7a099032d9f68d4338b021a6323689feacbc47a.zip |
ddb: Fix accessing high memory
User processes loaded in high memory are not visible to ddb through the
direct mapping. We can however read/write data through copy_from/to_phys.
Diffstat (limited to 'i386/intel')
-rw-r--r-- | i386/intel/pmap.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/i386/intel/pmap.h b/i386/intel/pmap.h index 0ca03148..f24b3a71 100644 --- a/i386/intel/pmap.h +++ b/i386/intel/pmap.h @@ -494,6 +494,29 @@ extern void pmap_zero_page (phys_addr_t); extern void pmap_copy_page (phys_addr_t, phys_addr_t); /* + * copy_to_phys(src_addr_v, dst_addr_p, count) + * + * Copy virtual memory to physical memory + */ +extern void +copy_to_phys( + vm_offset_t src_addr_v, + phys_addr_t dst_addr_p, + int count); + +/* + * copy_from_phys(src_addr_p, dst_addr_v, count) + * + * Copy physical memory to virtual memory. The virtual memory + * is assumed to be present (e.g. the buffer pool). + */ +extern void +copy_from_phys( + phys_addr_t src_addr_p, + vm_offset_t dst_addr_v, + int count); + +/* * kvtophys(addr) * * Convert a kernel virtual address to a physical address |