opnsense-src/sys/arm/include
Olivier Houchard 8f2948f1c1 Bring in the nice work from Mark Tinguely on arm pmap.
The only downside is that it renames pmap_vac_me_harder() to pmap_fix_cache().
From Mark's email on -arm :
pmap_get_vac_flags(), pmap_vac_me_harder(), pmap_vac_me_kpmap(), and
pmap_vac_me_user() has been rewritten as pmap_fix_cache() to be more
efficient in the kernel map case. I also removed the reference to
the md.kro_mappings, md.krw_mappings, md.uro_mappings, and md.urw_mappings
counts.

In pmap_clearbit(), we can also skip over tests and writeback/invalidations
in the PVF_MOD and PVF_REF cases if those bits are not set in the pv_flag.
PVF_WRITE will turn caching back on and remove the PV_MOD bit.

In pmap_nuke_pv(), the vm_page_flag_clear(pg, PG_WRITEABLE) has been moved
to the pmap_fix_cache().

We can be more agressive in attempting to turn caching back on by calling
pmap_fix_cache() at times that may be appropriate to turn cache on
(a kernel mapping has been removed, a write has been removed or a read
has been removed and we know the mapping does not have multiple write
mappings to a page).

In pmap_remove_pages() the cpu_idcache_wbinv_all() is moved to happen
before the page tables are NULLed because the caches are virtually
indexed and virtually tagged.

In pmap_remove_all(), the pmap_remove_write(m) is added before the
page tables are NULLed because the caches are virtually indexed and
virtually tagged. This also removes the need for the caches fixing routine
(whichever is being used pmap_vac_me_harder() or pmap_fix_cache()) to be
called on any of these mappings.

In pmap_remove(), I simplified the cache cleaning process and removed
extra TLB removals. Basically if more than PMAP_REMOVE_CLEAN_LIST_SIZE
are removed, then just flush the entire cache.
2008-01-31 00:05:40 +00:00
..
_bus.h Break out the definition of bus_space_{tag,handle}_t and a few other types 2005-04-18 21:45:34 +00:00
_inttypes.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
_limits.h Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
_stdint.h <stdint.h> should define WINT_M{AX,IN} independent from whether WCHAR_MIN is 2004-05-18 16:04:57 +00:00
_types.h Switch to a 64bit time_t, while it's not a big problem to do so. 2006-05-15 00:17:27 +00:00
armreg.h Merge definitions for ARM9E, ARM10 and ARM11 processors from p4 (which 2007-10-18 05:06:58 +00:00
asm.h Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available. 2007-10-13 12:04:10 +00:00
asmacros.h Close a race. 2007-12-02 12:49:28 +00:00
atomic.h Close a race. 2007-12-02 12:49:28 +00:00
blockio.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
bootconfig.h Remove __P 2007-03-21 03:28:16 +00:00
bus.h correct bus space unmap prototype 2006-11-19 23:46:50 +00:00
bus_dma.h - Add bounce pages for arm, largely based on the i386 implementation. 2007-01-17 00:53:05 +00:00
clock.h First part of a little cleanup in the calendar/timezone/RTC handling. 2006-10-02 12:59:59 +00:00
cpu.h Clean out sysctl machdep.* related defines. 2006-05-11 17:29:25 +00:00
cpuconf.h __CPU_XSCALE_PXA2XX -> CPU_XSCALE_PXA2X0 2007-11-01 10:01:15 +00:00
cpufunc.h Merge support from p4 (from NetBSD) for arm9e and arm10, arm11 cores. Not 2007-10-18 05:33:06 +00:00
db_machdep.h Define BYTE_MSF if we're compiling a big endian kernel, so that DDB can 2006-07-27 11:41:37 +00:00
disassem.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
elf.h PR: 2006-10-04 21:37:10 +00:00
endian.h In __bswap16_var(), make sure the 16 upper bits are cleared; while 2007-09-09 11:58:38 +00:00
exec.h Use a common multi-inclusion protection, and add such a 2005-02-19 21:16:48 +00:00
fiq.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
float.h Bring in a version of float.h more correct for softfloat. 2005-03-20 00:34:24 +00:00
floatingpoint.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
fp.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
frame.h Tweak how the MD code calls the fooclock() methods some. Instead of 2005-12-22 22:16:09 +00:00
gdb_machdep.h Add remote GDB bits for arm. 2006-07-14 00:50:51 +00:00
ieee.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
ieeefp.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
in_cksum.h MFp4: Forget the asm inlined version of in_cksum_hdr(). It doesn't work if 2006-03-09 23:33:59 +00:00
intr.h The iop34x has 128 interrupts. 2007-06-16 15:03:33 +00:00
katelib.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
kdb.h Add kdb_cpu_sync_icache(), intended to synchronize instruction 2007-06-09 21:55:17 +00:00
limits.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
machdep.h Instead of using sysarch() to store-retrieve the tp, add a magic address, 2005-02-26 18:59:01 +00:00
md_var.h - Add bounce pages for arm, largely based on the i386 implementation. 2007-01-17 00:53:05 +00:00
memdev.h Import md bits for mem(4) on arm. 2004-11-07 23:01:36 +00:00
metadata.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
mutex.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
param.h By popular demand, move __HAVE_ACPI and __PCI_REROUTE_INTERRUPT into 2006-01-09 06:05:57 +00:00
pcb.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
pcpu.h - PCPU_ADD is no longer spelled with LAZY_ in the middle. 2007-06-06 23:23:47 +00:00
pmap.h Bring in the nice work from Mark Tinguely on arm pmap. 2008-01-31 00:05:40 +00:00
pmc_mdep.h Add stubs to unbreak LINT. 2007-12-07 13:45:47 +00:00
proc.h Divorce critical sections from spinlocks. Critical sections as denoted by 2005-04-04 21:53:56 +00:00
profile.h Use __mcount() instead of _mcount() to reduce diffs with NetBSD. 2007-05-19 16:20:37 +00:00
psl.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
pte.h Fix the cache mode description. 2007-07-27 14:45:33 +00:00
ptrace.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
reg.h Protect the function declarations with #ifdef _KERNEL. 2004-11-04 19:20:54 +00:00
reloc.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
resource.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
runq.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
setjmp.h Protect setjmp.h with #ifndef _MACHINE_SETJMP_H_. 2004-07-12 21:23:58 +00:00
sf_buf.h Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps 2006-08-08 20:59:38 +00:00
sigframe.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
signal.h Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
smp.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
stack.h Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
swi.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
sysarch.h Instead of using sysarch() to store-retrieve the tp, add a magic address, 2005-02-26 18:59:01 +00:00
trap.h Add support for ptrace() and gdb breakpoints. 2005-01-10 22:43:16 +00:00
ucontext.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
undefined.h Remove __P 2007-03-21 03:28:16 +00:00
utrap.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
vmparam.h Add configuration knobs for the superpage reservation system. Initially, 2007-12-27 16:45:39 +00:00