opnsense-src/sys/mips/mips
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
..
autoconf.c o) Eliminate the "stand" frame and its use. Use CALLFRAME_* everywhere. 2010-04-19 07:34:26 +00:00
bcopy.S Replace uses of the ALEAF macro with XLEAF and remove ALEAF macro to 2013-10-15 04:43:31 +00:00
bus_space_fdt.c Update NetBSD Foundation copyrights to 2-clause BSD 2014-03-18 01:40:25 +00:00
bus_space_generic.c Update NetBSD Foundation copyrights to 2-clause BSD 2014-03-18 01:40:25 +00:00
busdma_machdep.c The add_bounce_page() function can be called when loading physical 2015-04-28 06:12:37 +00:00
cache.c Add 64 byte linesize cache flushing routines for L1 instruction, L1 data 2015-03-26 14:51:24 +00:00
cache_mipsNN.c Add 64 byte linesize cache flushing routines for L1 instruction, L1 data 2015-03-26 14:51:24 +00:00
cpu.c Fix build for certain MIPS kernels hiding an unused variable under #ifndef. 2014-11-21 10:47:29 +00:00
db_disasm.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_interface.c Don't include asm.h in non-asm files. 2013-05-01 06:57:46 +00:00
db_trace.c Don't assign the copyright to the FreeBSD foundation for the years 2013-05-29 16:51:03 +00:00
dump_machdep.c Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf_machdep.c In preparation for switching linuxulator to the use the native 1:1 2015-05-24 14:51:29 +00:00
elf_trampoline.c Shuffle the includes around so they occur after opt_global.h is included; 2013-10-09 00:22:21 +00:00
exception.S - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
fp.S Elminate NON_LEAF and use NESTED instead to unify our assembler 2013-10-15 04:45:09 +00:00
freebsd32_machdep.c The kernel sends signals to the processes via ABI specific sv_sendsig method. 2015-05-24 17:56:02 +00:00
gdb_machdep.c Update NetBSD Foundation copyrights to 2-clause BSD 2014-03-18 01:40:25 +00:00
genassym.c Garbage collect some unused symbols. 2012-03-06 08:40:21 +00:00
in_cksum.c Merge from projects/mips to head by hand: 2010-01-10 20:29:20 +00:00
inckern.S Make the ELF trampoline binary ELF executable (and do some cleanup). 2010-12-16 04:56:03 +00:00
intr_machdep.c Move PMC hook invocation to cpu_intr. The idea is the same as with ast() 2012-03-22 17:47:52 +00:00
libkern_machdep.c o) Use ABI, not ISA_* options, to determine whether to compile bits if libkern 2012-03-12 21:25:32 +00:00
locore.S At the risk of reducing source compatibility with old NetBSD and Sprite: 2012-03-06 19:01:32 +00:00
machdep.c ddb: allow specifying the exact address of the symtab and strtab 2014-09-25 08:28:10 +00:00
mem.c Remove Giant from /dev/mem and /dev/kmem. It is definitely not needed 2015-01-24 12:51:15 +00:00
minidump_machdep.c Pass up the error status of minidumpsys() to its callers. 2014-10-08 20:25:21 +00:00
mp_machdep.c Retire smp_active. It was racey and caused demonstrated problems with 2014-04-26 20:27:54 +00:00
mpboot.S Get rid of duplicated versions of the KSU bits. 2012-03-06 23:08:02 +00:00
nexus.c Move Open Firmware device root on PowerPC, ARM, and MIPS systems to 2014-02-05 14:44:22 +00:00
octeon_cop2.c - Add better COP2 (crypto coprocessor) context handler for Octeon. Keep 2012-01-06 01:23:26 +00:00
octeon_cop2_swtch.S - Add better COP2 (crypto coprocessor) context handler for Octeon. Keep 2012-01-06 01:23:26 +00:00
pm_machdep.c The kernel sends signals to the processes via ABI specific sv_sendsig method. 2015-05-24 17:56:02 +00:00
pmap.c Add two new pmap functions: 2015-08-04 19:46:13 +00:00
ptrace_machdep.c Place holder ptrace mips module. Not entirely sure what's required 2009-12-17 23:55:49 +00:00
sc_machdep.c Provide basic glue to allow syscons to be used on MIPS, modelled 2012-08-25 08:09:37 +00:00
stack_machdep.c Fix several typos 2013-05-12 16:43:26 +00:00
stdatomic.c opt_global.h is included automatically in the build. No need to 2014-11-18 17:06:56 +00:00
support.S Elminate NON_LEAF and use NESTED instead to unify our assembler 2013-10-15 04:45:09 +00:00
swtch.S Elminate NON_LEAF and use NESTED instead to unify our assembler 2013-10-15 04:45:09 +00:00
sys_machdep.c Remove clause 3 (the advertising clause), per the regent's letter. 2014-03-11 17:20:50 +00:00
tick.c Panics about how things can't be attached should probably happen in the 2013-10-29 20:38:58 +00:00
tlb.c Add pagemask debugging output in "show tlb" in the debugger. 2013-09-29 10:14:16 +00:00
trap.c Restore the trap type argument to the DTrace trap hook, removed in r268600. 2014-12-23 15:38:19 +00:00
uio_machdep.c Delete stray clause 3 (Advertising clause) and renumber while i'm 2014-03-11 23:41:35 +00:00
uma_machdep.c Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
vm_machdep.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00