Home | History | Annotate | Download | only in include
History log of /src/sys/arch/atari/include/pmap.h
RevisionDateAuthorComments
 1.43  06-Jan-2023  tsutsui TAB/spaces/indents cleanup.
 1.42  21-Apr-2022  andvar s/substract/subtract/ in comments and error message.
s/obtainted/obtained/ in one comment.
 1.41  06-Dec-2009  tsutsui Move initialization of protection_codes[] and kernel_pmap()
from MD pmap bootstrap sources to common pmap_bootstrap_finalize().

Tested on atari, hp300, mac68k, and news68k.

XXX: Why is protection_codes[] array initialized at run time?
 1.40  13-Mar-2009  abs Use separate free lists for TT and ST ram, and give TT a lower id
so all TT ram will be used before any ST ram. (free_list param to
uvm_page_physload())
Tested on a TT with and without TT ram.
 1.39  01-Jan-2009  tsutsui branches: 1.39.2;
Pull the following amiga's pmap changes to atari:
arch/amiga/amiga/amiga_init.c 1.95-1.97, 1.100-1.102
arch/amiga/amiga/pmap.c 1.123, 1.126-1.131, 1.142, 1.145
arch/amiga/amiga/pmap_bootstrap.c 1.1, 1.2, 1.3, 1.4
arch/amiga/conf/files.amiga 1.137
arch/amiga/include/pcb.h 1.16
arch/amiga/include/pmap.h 1.44
arch/amiga/include/pte.h 1.19
arch/amiga/include/vmparam.h 1.35

- change kernel address space layout (i.e. move Sysmap to the end of KVA)
to match other m68k ports, which should be done on yamt-km merge
- rework pmap_zero_page(), pmap_copy_page() and some more other functions
to make them compatible with m68k/pmap_motorola.c
- move pmap_bootstrap() into a separate file to allow using either
the atari pmap.c or the m68k common pmap_motorola.c
- use common m68k include files, pcb.h, pmap_motorola.h, and pte_motorola.h
- misc style and cosmetic changes

Most merge work is done by Tuomo Makinen, and
miscellaneous fixes and cleanups are done by me.

Tested on Falcon with both 68030 and 68060 by Tuomo, and
also tested on TT030 by David Ross on port-atari.

Should be pulled up to netbsd-4 (it requires at least Sysmap changes)
and netbsd-5.
 1.38  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.37  15-Nov-2008  abs Remove bogus DEBUG uvm_map() calls - (sync with amiga pmap). From Tuomo
 1.36  11-Jan-2008  he branches: 1.36.6; 1.36.10; 1.36.16; 1.36.18; 1.36.20;
Include <sys/simplelock.h> to pull in appropriate definitions.
 1.35  21-Feb-2007  thorpej branches: 1.35.22; 1.35.28; 1.35.34;
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.34  16-Feb-2006  perry branches: 1.34.18; 1.34.20;
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.33  24-Dec-2005  perry branches: 1.33.2; 1.33.4; 1.33.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.32  11-Dec-2005  christos merge ktrace-lwp.
 1.31  07-Aug-2003  agc branches: 1.31.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.30  02-Apr-2003  thorpej branches: 1.30.2;
Use PAGE_SIZE rather than NBPG.
 1.29  22-Sep-2002  chs it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.28  22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.27  10-Sep-2001  chris branches: 1.27.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.26  26-May-2001  chs branches: 1.26.2; 1.26.4;
replace vm_page_t with struct vm_page *.
 1.25  26-May-2001  chs replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
 1.24  22-Apr-2001  thorpej Undo a misguided previous change to the pmap_update() API.
 1.23  22-Apr-2001  thorpej Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
 1.22  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.21  28-Sep-2000  is branches: 1.21.2;
The Atari pmap does wired page accounting; advertize it to UVM.
 1.20  25-Feb-1999  is branches: 1.20.8; 1.20.18;
Atari part of fix for pr 6152
 1.19  02-Sep-1998  leo Get rid of vm_offset_t/vm_size_t
 1.18  07-May-1998  leo Implement MACHINE_NEW_NONCONTIG. Implementation is based on Ignatios' amiga
implementation and Chuck's conversion description.
 1.17  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.16  06-Jan-1998  thorpej Garbage-collect pm_stchanged; it's not used by anything.
 1.15  06-Jan-1998  thorpej Garbage-collect use of the PCB's copy of the user segment table pointer.
 1.14  03-Jan-1998  thorpej Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
 1.13  01-Jan-1998  thorpej Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
 1.12  01-Jan-1998  thorpej - Make pmap_activate() and pmap_deactivate() take a struct proc *.
- Define active_user_pmap() and use it in the appropriate places (from hp300
port).
 1.11  10-Jun-1997  veego s/atari_btop/m68k_btop/
 1.10  06-Nov-1996  leo pmap_changebit() no longer static.
 1.9  20-Jul-1996  leo Checkpoint integration of 68040 MMU support. Also fix oversight in allocation
of (virtual) I/O area address range.
 1.8  12-Jul-1996  leo Sync with atari_init cleanup
 1.7  18-Apr-1996  leo Yet more prototyping and -Wall fixes.
 1.6  09-Jun-1995  leo Support & require MACHINE_NONCONTIG
 1.5  16-Apr-1995  leo Changed '#endif KERNEL' -> '#endif /* _KERNEL */'.
 1.4  10-Apr-1995  mycroft Oops; finish that last change.
 1.3  10-Apr-1995  mycroft Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.
 1.2  30-Mar-1995  leo KERNEL -> _KERNEL
 1.1  26-Mar-1995  leo branches: 1.1.1;
Initial revision
 1.1.1.1  26-Mar-1995  leo NetBSD/Atari, port by Leo Weppelman.
 1.20.18.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.20.8.2  23-Apr-2001  bouyer Sync with HEAD.
 1.20.8.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.21.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.26.4.1  01-Oct-2001  fvdl Catch up with -current.
 1.26.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.26.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.27.4.5  18-Oct-2002  nathanw Catch up to -current.
 1.27.4.4  02-Jul-2002  nathanw Adjuct whitespace so that this matches the trunk.
 1.27.4.3  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.27.4.2  17-Nov-2001  scw MD Scheduler Activation bits for Atari.
Compile-tested only.
 1.27.4.1  10-Sep-2001  scw file pmap.h was added on branch nathanw_sa on 2001-11-17 23:18:09 +0000
 1.30.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.30.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.30.2.1  03-Aug-2004  skrll Sync with HEAD
 1.31.16.2  21-Jan-2008  yamt sync with head
 1.31.16.1  26-Feb-2007  yamt sync with head.
 1.33.6.1  22-Apr-2006  simonb Sync with head.
 1.33.4.1  09-Sep-2006  rpaulo sync with head
 1.33.2.1  18-Feb-2006  yamt sync with head.
 1.34.20.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.34.18.1  15-Jan-2009  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1258):
sys/arch/atari/atari/atari_init.c: revision 1.68, 1.69, 1.70
sys/arch/atari/atari/pmap_bootstrap.c: revision 1.1
sys/arch/atari/include/pte.h: revision 1.8
sys/arch/atari/include/vmparam.h: revision 1.22
sys/arch/atari/include/pmap.h: revision 1.35, 1.37, 1.39 (via patch)
sys/arch/atari/atari/pmap.c: revision 1.106, 1.111 (via patch)
sys/arch/atari/atari/genassym.cf: revision 1.28
sys/arch/atari/conf/files.atari: revision 1.113
sys/arch/atari/include/pcb.h: revision 1.7, 1.8, 1.9
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.
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
Remove bogus DEBUG uvm_map() calls - (sync with amiga pmap). From Tuomo
Remove quite obsolete pcb_cmap2.
Pull the following amiga's pmap changes to atari:
arch/amiga/amiga/amiga_init.c 1.95-1.97, 1.100-1.102
arch/amiga/amiga/pmap.c 1.123, 1.126-1.131, 1.142, 1.145
arch/amiga/amiga/pmap_bootstrap.c 1.1, 1.2, 1.3, 1.4
arch/amiga/conf/files.amiga 1.137
arch/amiga/include/pcb.h 1.16
arch/amiga/include/pmap.h 1.44
arch/amiga/include/pte.h 1.19
arch/amiga/include/vmparam.h 1.35
- change kernel address space layout (i.e. move Sysmap to the end of KVA)
to match other m68k ports, which should be done on yamt-km merge
- rework pmap_zero_page(), pmap_copy_page() and some more other functions
to make them compatible with m68k/pmap_motorola.c
- move pmap_bootstrap() into a separate file to allow using either
the atari pmap.c or the m68k common pmap_motorola.c
- use common m68k include files, pcb.h, pmap_motorola.h, and pte_motorola.h
- misc style and cosmetic changes
Most merge work is done by Tuomo Makinen, and
miscellaneous fixes and cleanups are done by me.
Tested on Falcon with both 68030 and 68060 by Tuomo, and
also tested on TT030 by David Ross on port-atari.
Should be pulled up to netbsd-4 (it requires at least Sysmap changes)
and netbsd-5.
Update one more comment which was missed in previous.
 1.35.34.1  11-Jan-2008  bouyer Sync with HEAD
 1.35.28.1  18-Feb-2008  mjf Sync with HEAD.
 1.35.22.1  23-Mar-2008  matt sync with HEAD
 1.36.20.3  26-Mar-2009  snj Pull up following revision(s) (requested by abs in ticket #612):
sys/arch/atari/atari/pmap_bootstrap.c: revision 1.3
sys/arch/atari/atari/atari_init.c: revision 1.76
sys/arch/atari/include/pmap.h: revision 1.40
sys/arch/atari/include/vmparam.h: revision 1.24
Use separate free lists for TT and ST ram, and give TT a lower id
so all TT ram will be used before any ST ram. (free_list param to
uvm_page_physload())
Tested on a TT with and without TT ram.
 1.36.20.2  08-Jan-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #230):
sys/arch/atari/atari/atari_init.c: revision 1.69
sys/arch/atari/atari/pmap.c: revision 1.111 via patch
sys/arch/atari/atari/pmap_bootstrap.c: revision 1.1
sys/arch/atari/conf/files.atari: revision 1.113
sys/arch/atari/include/pcb.h: revision 1.9
sys/arch/atari/include/pmap.h: revision 1.39 via patch
sys/arch/atari/include/pte.h: revision 1.8
sys/arch/atari/include/vmparam.h: revision 1.22
Pull the following amiga's pmap changes to atari:
arch/amiga/amiga/amiga_init.c 1.95-1.97, 1.100-1.102
arch/amiga/amiga/pmap.c 1.123, 1.126-1.131, 1.142, 1.145
arch/amiga/amiga/pmap_bootstrap.c 1.1, 1.2, 1.3, 1.4
arch/amiga/conf/files.amiga 1.137
arch/amiga/include/pcb.h 1.16
arch/amiga/include/pmap.h 1.44
arch/amiga/include/pte.h 1.19
arch/amiga/include/vmparam.h 1.35
- change kernel address space layout (i.e. move Sysmap to the end of KVA)
to match other m68k ports, which should be done on yamt-km merge
- rework pmap_zero_page(), pmap_copy_page() and some more other functions
to make them compatible with m68k/pmap_motorola.c
- move pmap_bootstrap() into a separate file to allow using either
the atari pmap.c or the m68k common pmap_motorola.c
- use common m68k include files, pcb.h, pmap_motorola.h, and
pte_motorola.h
- misc style and cosmetic changes
Most merge work is done by Tuomo Makinen, and
miscellaneous fixes and cleanups are done by me.
Tested on Falcon with both 68030 and 68060 by Tuomo, and
also tested on TT030 by David Ross on port-atari.
Should be pulled up to netbsd-4 (it requires at least Sysmap changes)
and netbsd-5.
 1.36.20.1  08-Jan-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #230):
sys/arch/atari/atari/atari_init.c: revision 1.68
sys/arch/atari/atari/pmap.c: revision 1.106
sys/arch/atari/include/pmap.h: revision 1.37
Remove bogus DEBUG uvm_map() calls - (sync with amiga pmap). From Tuomo
 1.36.18.2  28-Apr-2009  skrll Sync with HEAD.
 1.36.18.1  19-Jan-2009  skrll Sync with HEAD.
 1.36.16.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.36.10.2  11-Mar-2010  yamt sync with head
 1.36.10.1  04-May-2009  yamt sync with head.
 1.36.6.1  17-Jan-2009  mjf Sync with HEAD.
 1.39.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

RSS XML Feed