diff options
author | marcel <marcel@FreeBSD.org> | 2011-07-16 20:34:02 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2011-07-16 20:34:02 +0000 |
commit | 3abb8f9591c05a06c334fa139ffe1d2087c14729 (patch) | |
tree | 0efdbda9581aa7379cc6727c9cf9dc8dc12dccdc /lib/libc/stdio/getwc.c | |
parent | c7527da8368df2fa54418c4919a8f79521a02946 (diff) | |
download | FreeBSD-src-3abb8f9591c05a06c334fa139ffe1d2087c14729.zip FreeBSD-src-3abb8f9591c05a06c334fa139ffe1d2087c14729.tar.gz |
Don't assume pmap_mapdev() gets called only for memory mapped I/O
addresses (i.e. uncacheable). ACPI in particular uses pmap_mapdev()
rather excessively (number of calls) just to get a valid KVA. To
that end, have pmap_mapdev():
1. cache the last result so that we don't waste time for multiple
consecutive invocations with the same PA/SZ.
2. find the memory descriptor that covers the PA and return NULL
if none was found or when the PA is for a common DRAM address.
3. Use either a region 6 or region 7 KVA, in accordance with the
memory attribute.
Diffstat (limited to 'lib/libc/stdio/getwc.c')
0 files changed, 0 insertions, 0 deletions