freebsd-dev/sys/sparc64
Jason A. Harmening 713841afb2 Add two new pmap functions:
vm_offset_t pmap_quick_enter_page(vm_page_t m)
void pmap_quick_remove_page(vm_offset_t kva)

These will create and destroy a temporary, CPU-local KVA mapping of a specified page.

Guarantees:
--Will not sleep and will not fail.
--Safe to call under a non-sleepable lock or from an ithread

Restrictions:
--Not guaranteed to be safe to call from an interrupt filter or under a spin mutex on all platforms
--Current implementation does not guarantee more than one page of mapping space across all platforms. MI code should not make nested calls to pmap_quick_enter_page.
--MI code should not perform locking while holding onto a mapping created by pmap_quick_enter_page

The idea is to use this in busdma, for bounce buffer copies as well as virtually-indexed cache maintenance on mips and arm.

NOTE: the non-i386, non-amd64 implementations of these functions still need review and testing.

Reviewed by:	kib
Approved by:	kib (mentor)
Differential Revision:	http://reviews.freebsd.org/D3013
2015-08-04 19:46:13 +00:00
..
central s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
conf Spell crypto correctly. 2015-07-14 10:47:56 +00:00
ebus Simplify the ofw_bus_lookup_imap() API slightly: make it allocate maskbuf 2013-12-17 15:11:24 +00:00
fhc s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
include Add two new pmap functions: 2015-08-04 19:46:13 +00:00
isa Remove more superfluous const specifiers. 2014-02-23 18:36:45 +00:00
pci Update this driver to not save copies of registers that are no longer used 2015-04-24 13:12:04 +00:00
sbus Move the implementation of bus_space_barrier(9) to the inline function in 2013-10-24 17:06:41 +00:00
sparc64 Add two new pmap functions: 2015-08-04 19:46:13 +00:00