Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sh3/include/pmap.h
RevisionDateAuthorComments
 1.37  14-Mar-2020  ad pmap_remove_all(): Return a boolean value to indicate the behaviour. If
true, all mappings have been removed, the pmap is totally cleared out, and
UVM can then avoid doing the work to call pmap_remove() for each map entry.
If false, either nothing has been done, or some helpful arch-specific voodoo
has taken place.
 1.36  03-Sep-2016  christos branches: 1.36.16;
Fix pmap_prefer for topdown and turn topdown on.
 1.35  14-Nov-2010  uebayasi branches: 1.35.18; 1.35.36;
Move struct vm_page_md definition from vmparam.h to pmap.h, because
it's used only by pmap. vmparam.h has definitions for wider
audience.

All GENERIC kernels build tested, except ia64.

powerpc/include/booke/vmparam.h has one too, but it has no pmap.h,
so it's left as is.
 1.34  21-Oct-2009  rmind branches: 1.34.2; 1.34.4;
Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.33  09-Dec-2008  pooka Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module. pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
 1.32  28-Apr-2008  martin branches: 1.32.6; 1.32.8;
Remove clause 3 and 4 from TNF licenses
 1.31  21-Mar-2007  uwe branches: 1.31.34; 1.31.36; 1.31.38;
There are only 32 bits in a VA, not 33 - sync comment with this harsh reality.
 1.30  21-Feb-2007  thorpej branches: 1.30.4; 1.30.6; 1.30.8;
Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
 1.29  24-Sep-2006  tsutsui branches: 1.29.4;
Allow shared PV mappings in pmap_enter(9) even on SH4 if VAs of shared pages
have the same virtual cache indexes (i.e. they won't cause virtual cache
aliases). Also prepare PMAP_PREFER(9) for SH4 to avoid some possible virtual
cache aliases.
More stuff should be added in pmap_enter(9), but at least this changes
should fix some existing problems. See discussion on port-sh3 ML for details.

OK'ed by uwe and chs, and closes PR port-sh3/34243.
 1.28  10-Apr-2006  uwe branches: 1.28.8; 1.28.10;
Decorate pmap_remove_all() with /* ARGSUSED */
 1.27  16-Feb-2006  perry branches: 1.27.2; 1.27.4; 1.27.6;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.26  24-Dec-2005  perry branches: 1.26.2; 1.26.4; 1.26.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.25  22-Sep-2002  chs branches: 1.25.22;
it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.24  22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.23  09-May-2002  uch branches: 1.23.6;
new pmap designed for SH3/SH4.
 1.22  28-Apr-2002  uch Use "#define<tab>", white space nits.
 1.21  04-Apr-2002  uch remove obsolete functions, decralations and structure.
 1.20  03-Apr-2002  msaitoh sync with i386/include/pmap.h rev. 1.45:

make dangerous pmap_copy() and pmap_move() no-op.
 1.19  03-Mar-2002  uch SR related parts moved to psl.h. cpufunc.h segments.h are removed.
kernel mode checking is only SR.MD. no check stack pointer.
 1.18  28-Feb-2002  uch Remove #if 0 #endif
 1.17  17-Feb-2002  uch Add new MMU API. for detail, see sh3/mmu.h's comment.
 1.16  12-Feb-2002  uch ANSIfy KNF.
 1.15  11-Feb-2002  uch clean up redundant PTE PG_* defines.
PG_RO -> PG_KR
PG_RW -> PG_KW
PG_u -> PG_URKR
PG_PROT -> PG_UW
PG_AVAIL1 -> PG_PVLIST
 1.14  10-Sep-2001  chris Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
 1.13  26-May-2001  chs branches: 1.13.2; 1.13.4;
replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
 1.12  22-Apr-2001  thorpej Undo a misguided previous change to the pmap_update() API.
 1.11  22-Apr-2001  uch make this compile again under SH4
 1.10  22-Apr-2001  thorpej Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
 1.9  21-Apr-2001  thorpej pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations. Since these pmaps don't
defer anything, pmap_update() is a noop.
 1.8  19-Feb-2001  msaitoh branches: 1.8.2;
temporary fix a serious pmap problem with dummy PMAP_{MAP,UNMAP}_POOLPAGE().

To fix correctly, set IOM_RAM_BEGIN with P0 addr instead of P1 addr and
fix machdep.c and pmap.c.
 1.7  02-Feb-2001  thorpej Rewrite how mod/ref emulation is done. In particular, make
modified attribute checking actually work. Previously, a
page could be reported as modified even if it wasn't! This
is very bad, and e.g. caused the VM system to attempt to
"clean" pages of read-only files.

Only lip-services is paid to referenced attribute emulation.
This could be improved.
 1.6  28-Sep-2000  is We do wired page accounting. Tell UVM about this.
 1.5  25-Apr-2000  tsubai branches: 1.5.4;
Use P1SEG to map pool pages.
 1.4  24-Feb-2000  msaitoh SH4!
 1.3  14-Jan-2000  msaitoh remove SH3_PHYS_TO_P1SEG macro
 1.2  14-Sep-1999  tsubai branches: 1.2.2;
Catch up with -current.
 1.1  13-Sep-1999  itojun Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.2.2.4  23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.3  12-Mar-2001  bouyer Sync with HEAD.
 1.2.2.2  11-Feb-2001  bouyer Sync with HEAD.
 1.2.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.4.1  28-Sep-2000  is Pullup from -current, requested by is, approved by thorpej:

sys/arch/arm32/include/pmap.h 1.18
sys/arch/atari/include/pmap.h 1.21
sys/arch/i386/include/pmap.h 1.50
sys/arch/pc532/include/pmap.h 1.29
sys/arch/sh3/include/pmap.h 1.6

These are architectures that do implemented wired page accounting;
advertize it to UVM, so that mlock() from non-root processes works.
 1.8.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.13.4.1  01-Oct-2001  fvdl Catch up with -current.
 1.13.2.4  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.13.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.13.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.13.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.23.6.2  18-Oct-2002  nathanw Catch up to -current.
 1.23.6.1  09-May-2002  nathanw file pmap.h was added on branch nathanw_sa on 2002-10-18 02:39:44 +0000
 1.25.22.4  03-Sep-2007  yamt sync with head.
 1.25.22.3  26-Feb-2007  yamt sync with head.
 1.25.22.2  30-Dec-2006  yamt sync with head.
 1.25.22.1  21-Jun-2006  yamt sync with head.
 1.26.6.1  22-Apr-2006  simonb Sync with head.
 1.26.4.1  09-Sep-2006  rpaulo sync with head
 1.26.2.1  18-Feb-2006  yamt sync with head.
 1.27.6.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.27.4.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.27.2.1  11-Apr-2006  yamt sync with head
 1.28.10.1  22-Oct-2006  yamt sync with head
 1.28.8.1  18-Nov-2006  ad Sync with head.
 1.29.4.2  24-Mar-2007  yamt sync with head.
 1.29.4.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.30.8.1  29-Mar-2007  reinoud Pullup to -current
 1.30.6.1  11-Jul-2007  mjf Sync with head.
 1.30.4.1  10-Apr-2007  ad Sync with head.
 1.31.38.3  11-Mar-2010  yamt sync with head
 1.31.38.2  04-May-2009  yamt sync with head.
 1.31.38.1  16-May-2008  yamt sync with head.
 1.31.36.1  18-May-2008  yamt sync with head.
 1.31.34.2  17-Jan-2009  mjf Sync with HEAD.
 1.31.34.1  02-Jun-2008  mjf Sync with HEAD.
 1.32.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.32.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.34.4.1  05-Mar-2011  rmind sync with head
 1.34.2.1  16-Nov-2010  uebayasi Sync with HEAD.
 1.35.36.1  05-Oct-2016  skrll Sync with HEAD
 1.35.18.1  03-Dec-2017  jdolecek update from HEAD
 1.36.16.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed