Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sun3/include/pmap3.h
RevisionDateAuthorComments
 1.51  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.50  18-Jan-2020  tsutsui Fix "modload nfsserver" failure on sun3. PR/54869

sun3 port has two definitions for different pmaps for sun3 (pmap3.h)
and sun3x (pmap3x.h) and they are selected by _SUN3_ or _SUN3X_ macro,
but neither of them is defined on module builds so common exported
definitions required by module(7) should be in a common header,
i.e. pmap.h.

Should be pulled up to netbsd-9.
 1.49  07-Jan-2013  chs branches: 1.49.38; 1.49.42; 1.49.44;
switch to __USE_TOPDOWN_VM.
 1.48  03-Jun-2011  tsutsui branches: 1.48.2; 1.48.12;
- remove simple_lock(9) and use atomic_ops(3) to account pmap reference count,
perrequest from rmind@
- while here no need to export struct pmap on sun2/sun3/sun3x

No particular problem for a week on hp300 and sun3x kernels with disabled
tcp_vtw which has been broken for a month on low memory machines.
 1.47  11-Dec-2009  tsutsui branches: 1.47.4; 1.47.6; 1.47.10;
Export NBSG for bootloaders. MMU is enabled even on PROM on sun68k machines.
 1.46  11-Dec-2009  tsutsui Refactoring MD segment related definitions on m68k ports:
- move macro SEGSHIFT, NBSG, and SEGOFFSET from <machine/param.h>
to <machine/pmap.h> where they should belong
- don't use m68k_round_seg() and m68k_trunc_seg() in sun3 pmap sources
and instead define and use sun3_round_seg() and sun3_trunc_seg()
since they are quite pmap implementation dependent
 1.45  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.44  28-Apr-2008  martin branches: 1.44.6; 1.44.8;
Remove clause 3 and 4 from TNF licenses
 1.43  04-Jan-2008  ad branches: 1.43.6; 1.43.8; 1.43.10;
Don't pull in unrelated gunk.
 1.42  01-Oct-2006  tsutsui branches: 1.42.28; 1.42.34; 1.42.42;
First attempt at bus_space(9) support for sun3 with common sun68k/bus.c:
- make sun3 port use common sun68k files as much as possible
- add temporary options _SUN2_ in std.sun2 until sun3 can share all
sun68k files (autoconf.c and isr.c are not yet)
- move sun68kvme declaration temporary as well from files.sun68k to files.sun2
- rename and move sun68k_find_prom_map() function to MD sources since it
can't be shared with sun3
- add bus tag members to struct confargs and initilize them where appropriate

XXX1: MD bus_dma(9) backends are not implemented (yet).
XXX2: more code (obio etc.) should be shared among sun3, sun3x and sun2.
 1.41  16-Feb-2006  perry branches: 1.41.14; 1.41.16;
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.40  24-Dec-2005  perry branches: 1.40.2; 1.40.4; 1.40.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.39  11-Dec-2005  christos merge ktrace-lwp.
 1.38  22-Jan-2005  chs branches: 1.38.8;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.37  17-Jan-2005  atatat Convert the PMAP_PREFER() macro from two arguments (offset and hint)
to four (adding size and direction).

In order for topdown uvm to be an option on ports using PMAP_PREFER,
they will need to "prefer" lower addresses if topdown is being used.
Additionally, at least one port also needs to know the size.
 1.36  22-Sep-2002  chs branches: 1.36.6; 1.36.14;
it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.35  22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.34  10-Sep-2001  chris branches: 1.34.4;
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.33  03-Jul-2001  chs branches: 1.33.2; 1.33.4;
vm_offset_t -> [pv]addr_t.
 1.32  02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.31  26-May-2001  chs replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
 1.30  25-Apr-2001  thorpej Garbage-collect pmap_page_index().
 1.29  22-Apr-2001  thorpej Undo a misguided previous change to the pmap_update() API.
 1.28  22-Apr-2001  thorpej Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
 1.27  21-Apr-2001  thorpej #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
 1.26  16-Mar-1998  gwr branches: 1.26.14; 1.26.26;
Add an anonymous declaration of struct pmap in pmap.h and put
typedef struct pmap *pmap_t there, removing the latter from
pmap3.h and pmap3x.h (so LKMs can use <vm/vm.h>).
 1.25  18-Feb-1998  cgd Move pmap_map() function definition to MD headers, as appropriate. It's
an internal function, and the VM system shouldn't try to prototype it.
(Note that some ports _don't_ prototype it.)
 1.24  05-Feb-1998  gwr Merge arch/sun3x into arch/sun3
 1.23  03-Jan-1998  thorpej branches: 1.23.4;
Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
 1.22  02-Jan-1998  thorpej Make pmap_activate() take a proc *.
 1.21  28-Feb-1997  gwr Define pmap_page_index as a macro.
 1.20  18-Feb-1997  gwr No longer need pm_stats
 1.19  18-Feb-1997  gwr Add pmap_wired_count()
 1.18  27-Jan-1997  gwr branches: 1.18.4;
Fix copyrights (/s/REGENTS/FOUNDATION/)
 1.17  27-Jan-1997  gwr Remove unused PMAP_ACTIVATE/PMAP_DEACTIVATE macros.
Add new _pmap_fault macro used in trap.c
Declare pmap_activate() correctly.
 1.16  17-Dec-1996  gwr Make this compile with -Werror -Wall -Wstrict-prototypes
(finally! yea!) Also get rid of __BROKEN_INDIRECT_CONFIG
 1.15  20-Nov-1996  gwr Most files that were copyright Adam Glass and/or Gordon W. Ross
are now copyright The NetBSD Foundation (rights assigned).
 1.14  28-Feb-1996  gwr update PMAP_PREFER
 1.13  10-Apr-1995  mycroft Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.
 1.12  28-Mar-1995  jtc KERNEL -> _KERNEL
 1.11  21-Nov-1994  gwr Lots of changes. Fairly stable now.
 1.10  26-Oct-1994  cgd new RCS ID format.
 1.9  29-Jun-1994  gwr ..wrong version last time...
 1.8  28-Jun-1994  gwr Add PMEGQ_KERNEL for pmegs on the new kernel queue.
 1.7  24-Apr-1994  glass fixed to use new queue stuff. random diffs to make ddb stuff mostly compile
 1.6  04-Feb-1994  glass sun3 port works under NetBSD-current now. rcsids probably fucked
 1.5  28-Aug-1993  glass last snapshot before uploading. we still have serious clock problems
 1.4  21-Aug-1993  glass snapshot. for uploading. gets lost in swtch after enablertclock()
 1.3  02-Aug-1993  glass stupid cleanup; fixes to mon.h; rewrote asm.h based on old asm.h
and the i386 one from jolitz
cleaned up ending of virtaul addr space.
 1.2  30-Jul-1993  glass whatever was necessary to make the rest of it work.
 1.1  27-Jul-1993  glass new pmap module
 1.18.4.1  12-Mar-1997  is Merge in changes from The Trunk
 1.23.4.1  27-Jan-1998  gwr Make structure layout match Sun3X (just in case useland cares).
 1.26.26.1  21-Jun-2001  nathanw Catch up to -current.
 1.26.14.1  23-Apr-2001  bouyer Sync with HEAD.
 1.33.4.1  01-Oct-2001  fvdl Catch up with -current.
 1.33.2.2  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.33.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.34.4.2  18-Oct-2002  nathanw Catch up to -current.
 1.34.4.1  10-Sep-2001  nathanw file pmap3.h was added on branch nathanw_sa on 2002-10-18 02:40:22 +0000
 1.36.14.1  29-Apr-2005  kent sync with -current
 1.36.6.2  24-Jan-2005  skrll Sync with HEAD.
 1.36.6.1  17-Jan-2005  skrll Sync with HEAD.
 1.38.8.2  21-Jan-2008  yamt sync with head
 1.38.8.1  30-Dec-2006  yamt sync with head.
 1.40.6.1  22-Apr-2006  simonb Sync with head.
 1.40.4.1  09-Sep-2006  rpaulo sync with head
 1.40.2.1  18-Feb-2006  yamt sync with head.
 1.41.16.1  06-Oct-2006  tsutsui Sync files of recent sun3 and sun68k merge and intersil7170(4) changes
with HEAD to build sun3 kernel on this branch.
 1.41.14.1  18-Nov-2006  ad Sync with head.
 1.42.42.1  08-Jan-2008  bouyer Sync with HEAD
 1.42.34.1  18-Feb-2008  mjf Sync with HEAD.
 1.42.28.1  09-Jan-2008  matt sync with HEAD
 1.43.10.3  11-Mar-2010  yamt sync with head
 1.43.10.2  04-May-2009  yamt sync with head.
 1.43.10.1  16-May-2008  yamt sync with head.
 1.43.8.1  18-May-2008  yamt sync with head.
 1.43.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.43.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.44.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.44.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.47.10.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.47.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.47.4.1  12-Jun-2011  rmind sync with head
 1.48.12.1  25-Feb-2013  tls resync with head
 1.48.2.1  23-Jan-2013  yamt sync with head
 1.49.44.1  25-Jan-2020  ad Sync with head.
 1.49.42.1  21-Jan-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #636):

sys/arch/sun3/include/pmap.h: revision 1.33
sys/arch/sun3/include/pmap3.h: revision 1.50
sys/arch/sun3/include/pmap3x.h: revision 1.30

Fix "modload nfsserver" failure on sun3. PR/54869
sun3 port has two definitions for different pmaps for sun3 (pmap3.h)
and sun3x (pmap3x.h) and they are selected by _SUN3_ or _SUN3X_ macro,
but neither of them is defined on module builds so common exported
definitions required by module(7) should be in a common header,
i.e. pmap.h.

Should be pulled up to netbsd-9.
 1.49.38.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed