Home | History | Annotate | only in /src/sys/arch/mvme68k/include
History log of /src/sys/arch/mvme68k/include
RevisionDateAuthorComments
 1.28 30-Nov-2024  christos Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.27 12-Jul-2018  maxv branches: 1.27.36;
Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.26 24-Dec-2015  christos branches: 1.26.16; 1.26.18;
fenv for m68k
 1.25 17-Jul-2011  joerg branches: 1.25.12; 1.25.30;
Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.24 09-Feb-2007  ad Merge newlock2 to head.
 1.23 26-Jul-2006  drochner branches: 1.23.4;
don't install <machine/db_machdep.h>, this is kernel only
 1.22 11-Dec-2005  christos branches: 1.22.4; 1.22.8;
merge ktrace-lwp.
 1.21 08-May-2004  kleink branches: 1.21.12;
Factor out W{CHAR,INT}_{MAX,MIN} into their own header file.
 1.20 17-Jan-2003  thorpej branches: 1.20.2;
Merge the nathanw_sa branch.
 1.19 26-Nov-2002  lukem Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more.
 1.18 07-Aug-2002  briggs Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.17 28-Nov-2001  kleink branches: 1.17.8;
No point in installing svr4_machdep.h.
 1.16 15-Apr-2001  kleink branches: 1.16.2; 1.16.8;
Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.15 15-Apr-2001  kleink Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.14 14-Apr-2001  kleink Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
 1.13 14-Apr-2001  kleink Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.12 05-Dec-2000  scw branches: 1.12.2;
Backout the last change; I'll deal with it another way.
 1.11 05-Dec-2000  scw Add loadfile_machdep.h to list of installed machine headers.
 1.10 26-Jun-2000  kleink Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
 1.9 29-Apr-2000  thorpej Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
 1.8 15-Apr-2000  scw Bah, forgot to add intr.h during my last round of roto-tilling.
 1.7 17-Mar-2000  tron Install "machineendian_machdep.h".
 1.6 23-Dec-1999  kleink C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.5 19-Apr-1999  kleink branches: 1.5.2;
Add COMPAT_SVR4 for m68k.
 1.4 15-Mar-1999  minoura branches: 1.4.4;
Pullin m68k/ieee.h.
 1.3 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.2 12-Jul-1998  veego Add elf_machdep.h to the INCS list.
 1.1 12-Jun-1998  cgd Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install. (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.) The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change. Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
 1.4.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.5.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.5.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.5.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.12.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.16.8.5 11-Dec-2002  thorpej Sync with HEAD.
 1.16.8.4 13-Aug-2002  nathanw Catch up to -current.
 1.16.8.3 08-Jan-2002  nathanw Catch up to -current.
 1.16.8.2 10-Nov-2001  scw Kernel mcontext glue for Scheduler Activations on m68k from
Klaus Klein <kleink@netbsd.org>.
 1.16.8.1 15-Apr-2001  scw file Makefile was added on branch nathanw_sa on 2001-11-10 21:22:51 +0000
 1.16.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.16.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.17.8.1 31-Aug-2002  gehenna catch up with -current.
 1.20.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.20.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.20.2.1 03-Aug-2004  skrll Sync with HEAD
 1.21.12.2 26-Feb-2007  yamt sync with head.
 1.21.12.1 30-Dec-2006  yamt sync with head.
 1.22.8.1 11-Aug-2006  yamt sync with head
 1.22.4.1 09-Sep-2006  rpaulo sync with head
 1.23.4.1 01-Feb-2007  ad Header file cleanup.
 1.25.30.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.25.12.1 03-Dec-2017  jdolecek update from HEAD
 1.26.18.1 10-Jun-2019  christos Sync with HEAD
 1.26.16.1 28-Jul-2018  pgoyette Sync with HEAD
 1.27.36.1 02-Aug-2025  perseant Sync with HEAD
 1.2 07-May-2019  kamil Switch all users (except ia64) of custom machine/ansi.h to common_ansi.h

Deduplicate the code among ports and poll definitions of types
directly from a compiler.

This fixes miscompilation of certain programs that instruct compilers
to generate code for different types. This bug has been detected with
-fshort-wchar in EFI firmware.

Proposed and discussed on a mailing list (twice).

Itanium uses custom !ELF fallback switch, temporarily leave it as it is.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck branches: 1.1.1.1.260;
mvme68k port -- for the motorola vme147 m68030 card
 1.1.1.1.260.1 10-Jun-2019  christos Sync with HEAD
 1.3 08-Oct-1996  cgd repoint at shared aout_machdep.h, not exec.h
 1.2 08-Sep-1996  thorpej Use <m68k/exec.h>.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.8 01-Feb-2011  chuck udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.7 11-Dec-2005  christos branches: 1.7.100; 1.7.106; 1.7.108;
merge ktrace-lwp.
 1.6 23-Oct-2004  thorpej Centralize the declaration of booted_device and booted_partition.
 1.5 23-Oct-2003  jdolecek g/c PARTITIONMASK, it's not used anywhere anymore
 1.4 18-Mar-2000  scw branches: 1.4.28;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.3 31-Jan-1997  thorpej branches: 1.3.28; 1.3.36;
bootdv -> booted_device
 1.2 12-Sep-1996  thorpej branches: 1.2.2;
Do the extern song and dance.
 1.1 29-May-1996  chuck branches: 1.1.2;
add to fix boot generic problem
 1.1.2.2 29-May-1996  chuck add to fix boot generic problem
 1.1.2.1 29-May-1996  chuck file autoconf.h was added on branch netbsd-1-2 on 1996-05-29 02:32:22 +0000
 1.2.2.1 14-Jan-1997  thorpej Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection. Notable features:

- All ports behave in a consistent manner regarding root
device selection.
- No more "options GENERIC"; all kernels have the ability
to boot with RB_ASKNAME to select root device and file system
type.
- Root file system type can be wildcarded; a machine-independent
function will try all possible file systems for the selected
root device until one succeeds.
- If the root file system fails to mount, the operator will
be given the chance to select a new root device and file
system type, rather than having the machine simply panic.
- nfs_mountroot() no longer panics if any part of the NFS
mount process fails; it now returns an error, giving the
operator a chance to recover.
- New, more consistent, config(8) grammar. The constructs:

config netbsd swap generic
config netbsd root on nfs

have been replaced with:

config netbsd root on ? type ?
config netbsd root on ? type nfs

Additionally, the operator may select or wildcard root file
system type in the kernel configuration file:

config netbsd root on cd0a type cd9660

config(8) now requires that a "root" specification be
made. "root" may be wired down or wildcarded. "swap" and
"dump" specifications are optional, and follow previous
semantics.

- config(8) has a new "file-system" keyword, used to configure
file systems into the kernel. Eventually, this will be used
to generate the default vfssw[].

- "options NFSCLIENT" is obsolete, and is replaced by
"file-system NFS". "options NFSSERVER" still exists, since
NFS server support is independent of the NFS file system
client.

- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot(). Only SPARC, i386, and Alpha ports have been
tested at this time. Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
 1.3.36.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.3.28.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.4.28.4 02-Nov-2004  skrll Sync with HEAD.
 1.4.28.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.28.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.28.1 03-Aug-2004  skrll Sync with HEAD
 1.7.108.1 08-Feb-2011  bouyer Sync with HEAD
 1.7.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.100.1 05-Mar-2011  rmind sync with head
 1.2 21-Aug-1999  simonb Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
 1.1 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.3 18-Mar-2000  scw Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.2 14-Feb-1999  scw branches: 1.2.8; 1.2.16;
Merge support for mvme167 into main tree.
 1.1 30-Jan-1999  scw branches: 1.1.2;
file bus.h was initially added on branch scw-mvme167.
 1.1.2.1 30-Jan-1999  scw Initial changes for upcoming MVME1[67]7 support.
 1.2.16.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.2.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.17 05-Dec-2021  msaitoh s/from from/from/ in comment.
 1.16 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.15 12-Jan-2008  tsutsui branches: 1.15.6; 1.15.8; 1.15.10;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.14 04-Mar-2007  christos branches: 1.14.20; 1.14.26; 1.14.32;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.13 11-Dec-2005  christos branches: 1.13.26;
merge ktrace-lwp.
 1.12 09-Mar-2005  matt branches: 1.12.4;
Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create). dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
 1.11 28-Jan-2003  kent branches: 1.11.2; 1.11.10; 1.11.12;
Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it.
 1.10 12-Feb-2002  scw Separate out devices common to many Motorola mvme boards (68k, 88k and ppc)
in preparation for future mvmeppc and mvme88k ports.

This needs a bit if tidying up to make it trully shareable, which will
happen as the new mvme ports are added.
 1.9 19-Jul-2001  thorpej branches: 1.9.6;
Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
 1.8 16-May-2001  scw branches: 1.8.2;
Finally nobble the bus_dmamap_sync() problem with osiop(4).

Basically, bus_dmamap_sync() `PREREAD' needs to flush the cache
for the start and end of the region if it is not aligned to
a cacheline boundary, otherwise a subsequent POSTREAD can *purge*
valid data which was in the cacheline but *outside* the region
passed to bus_dmamap_sync().

Bus snooping doesn't always help here because osiop(4) calls
bus_dmamap_sync() with POSTREAD even if no data was actually
transferred! (And we can't rely on snooping on the 68060 models anyway).
 1.7 07-Mar-2001  thorpej Add the BUS_DMA_STREAMING flag.
 1.6 24-Nov-2000  scw branches: 1.6.2;
Revamp the bus_space(9) implementation:
. use a structure for the tag instead of an integer constant,
. add bus_space_{peek,poke}_N() (and G/C `badaddr()'),
. fix a few drivers which have dependencies on the implementation.
 1.5 20-Aug-2000  scw branches: 1.5.2;
Checkpoint of code to add VMEbus slave support using vme_dmamap* and
vme_dmamem*.

This is still a work in progress, but seems to DTRT on mvme167 so far.

TODO:
. Get VMEbus slave mode going on mvme147. This should be easy.
. Fix up the A16 slave mappings.
. Bounce buffer support. (Messy, but pretty much a `must have'.)
. Figure out how to deal with `location monitor' interrupts
within the framework. (Useful for Busnet, among other things.)
. It would be nice to make use of the VMEchip2's DMA facilities...
 1.4 13-Aug-2000  scw Pull a bunch of common code from vme_pcc.c and vme_two.c into
the new mvmebus.[ch] files, and put down some initial code to
deal with VMEbus slave mode.
 1.3 26-Jun-2000  simonb Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.2 18-Mar-2000  scw branches: 1.2.4;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.1 11-Mar-2000  scw branches: 1.1.2;
file bus_dma.h was initially added on branch scw_mvme68k_bus_space.
 1.1.2.2 13-Mar-2000  scw Add constraints for bus_dmamem_map() to allow allocation from onboard
RAM only, and/or restricting physical addresses to 24-bits.

Also make bus_dmamem_map() actually honour the BUS_DMA_COHERENT flag.
 1.1.2.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.2.4.1 30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.5.2.4 12-Mar-2001  bouyer Sync with HEAD.
 1.5.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.5.2.2 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.2.1 20-Aug-2000  bouyer file bus_dma.h was added on branch thorpej_scsipi on 2000-11-20 20:15:21 +0000
 1.6.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.6.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.8.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.8.2.1 03-Aug-2001  lukem update to -current
 1.9.6.2 28-Feb-2002  nathanw Catch up to -current.
 1.9.6.1 19-Jul-2001  nathanw file bus_dma.h was added on branch nathanw_sa on 2002-02-28 04:10:52 +0000
 1.11.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.11.10.1 29-Apr-2005  kent sync with -current
 1.11.2.1 01-Apr-2005  skrll Sync with HEAD.
 1.12.4.2 21-Jan-2008  yamt sync with head
 1.12.4.1 03-Sep-2007  yamt sync with head.
 1.13.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.14.32.1 19-Jan-2008  bouyer Sync with HEAD
 1.14.26.1 18-Feb-2008  mjf Sync with HEAD.
 1.14.20.1 23-Mar-2008  matt sync with HEAD
 1.15.10.1 16-May-2008  yamt sync with head.
 1.15.8.1 18-May-2008  yamt sync with head.
 1.15.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.18 27-Jan-2023  tsutsui mvme68k: Specify proper constraints for bus_space_read region and multi ops.

Sync with next68k.
 1.17 23-Jan-2021  christos Remove cargo-culted '#if 0' code that was designed to produce a
compile-time error if any of the bus_space_*_8 functions was used,
but was documented that it produces a link-time error.
 1.16 02-Apr-2020  msaitoh branches: 1.16.4;
s/impliment/implement/ in comment.
 1.15 23-Sep-2019  skrll Provide PRIxBUSADDR, PRIxBUSSIZE, PRIuBUSSIZE, and PRIxBSH for all arches
to follow arm and (generic) mips.

Reviewed by christos.
 1.14 12-Feb-2012  matt branches: 1.14.48;
Change old-style function defintions to C89 prototypes.

Approved by releng.
 1.13 28-Apr-2008  martin branches: 1.13.34; 1.13.38;
Remove clause 3 and 4 from TNF licenses
 1.12 12-Jan-2008  tsutsui branches: 1.12.6; 1.12.8; 1.12.10;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.11 16-Feb-2006  perry branches: 1.11.44; 1.11.50; 1.11.58;
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.10 24-Dec-2005  perry branches: 1.10.2; 1.10.4; 1.10.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.9 11-Dec-2005  christos merge ktrace-lwp.
 1.8 25-Oct-2003  scw branches: 1.8.16;
Simplify bus_space_{read,write}_N. Gcc3 emits better code than the old
compiler with straight C, rather than inline asm. (The latter was slightly
broken anyway with gcc3's more aggressive optimisation).
 1.7 29-Nov-2000  scw branches: 1.7.24;
Add register prefixes.
 1.6 24-Nov-2000  scw Replace the inline C versions of bus_space_{read,write}_N() with
inline assembler. This generates significantly more efficient code,
and trims ~1KB off the size of an mvme68k GENERIC kernel...
 1.5 18-Mar-2000  scw Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.4 25-Jan-2000  drochner branches: 1.4.2;
define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
 1.3 10-Apr-1999  drochner branches: 1.3.2;
add BUS_SPACE_ALIGNED_POINTER() definitions for completeness
 1.2 14-Feb-1999  scw branches: 1.2.4;
Merge support for mvme167 into main tree.
 1.1 30-Jan-1999  scw branches: 1.1.2;
file bus_space.h was initially added on branch scw-mvme167.
 1.1.2.2 13-Feb-1999  scw The further adventures of mvme167 support. Mostly working now.
 1.1.2.1 30-Jan-1999  scw Initial changes for upcoming MVME1[67]7 support.
 1.2.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.3.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.3.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.4.2.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.7.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.24.1 03-Aug-2004  skrll Sync with HEAD
 1.8.16.2 21-Jan-2008  yamt sync with head
 1.8.16.1 21-Jun-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.10.2.1 18-Feb-2006  yamt sync with head.
 1.11.58.1 19-Jan-2008  bouyer Sync with HEAD
 1.11.50.1 18-Feb-2008  mjf Sync with HEAD.
 1.11.44.1 23-Mar-2008  matt sync with HEAD
 1.12.10.1 16-May-2008  yamt sync with head.
 1.12.8.1 18-May-2008  yamt sync with head.
 1.12.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.38.1 18-Feb-2012  mrg merge to -current.
 1.13.34.1 17-Apr-2012  yamt sync with head
 1.14.48.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.14.48.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.16.4.1 03-Apr-2021  thorpej Sync with HEAD.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.57 20-Jan-2024  thorpej Largely unify the <machine/cpu.h> headers on the m68k platforms.
 1.56 19-Jan-2024  thorpej Consistently use "intr_depth" as the name of the interrupt depth counter
on m68k platforms.
 1.55 18-Jan-2024  thorpej Make the M68K_MMU_* defines real kernel options, available in opt_m68k_arch.h.
For 68030, 68040, and 68060, infer M68K_MMU_MOTOROLA. For 68010 and 68020, it
must be an explicit option (set in std.${MACHINE} or, in the case of hp300,
inferred from the specific model option).
 1.54 18-Jan-2024  thorpej Don't put the MVME1xx model defines into IDENT, make them defflag options and
put them in opt_mvmeconf.h. Make these options depend on the appropriate
M680x0 option (MVME147 -> M68030, MVME16[27] -> M68040, MVME17[27] -> M68060)
so that the CPU option appears correctly in opt_m68k_arch.h.
 1.53 16-Jan-2024  thorpej Switch mvme68k over to the common interrupt dispatch code and G/C
__HAVE_LEGACY_INTRCNT.
 1.52 09-Jan-2024  thorpej Remove duplicated / slightly-tweaked loadustp() (load user segment table)
routines from all of the m68k ports using the shared pmap. Instead, in
pmap_init(), set up a function pointer to the appropriate mmu_load_urp*()
function in mmu_subr.s.
 1.51 23-Nov-2019  ad cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().
 1.50 22-Aug-2018  msaitoh - Cleanup for dynamic sysctl:
- Remove unused *_NAMES macros for sysctl.
- Remove unused *_MAXID for sysctls.
- Move CTL_MACHDEP sysctl definitions for m68k into m68k/include/cpu.h and
use them on all m68k machines.
 1.49 17-Dec-2016  flxd branches: 1.49.14; 1.49.16;
Fix typo "one the" and architecture where appropriate.
 1.48 19-Oct-2013  christos branches: 1.48.6; 1.48.10;
make cpu_need_resched() macros consistent; __USE flags
 1.47 02-Feb-2012  tsutsui branches: 1.47.6; 1.47.10;
Always include <m68k/cpu.h> (i.e. outside #if defined(_KERNEL))
for crash(8) as amiga and sun3. There are _KERNEL protections in it.

Briefly tested by "build.sh -m news68k -U build".
Further possible botch will be fixed later.
 1.46 08-Feb-2011  rmind branches: 1.46.4; 1.46.8;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.45 22-Dec-2010  matt branches: 1.45.2; 1.45.4;
Collect cpu_info and friends and move to m68k/include/cpu.h
Add a define __HAVE_CPU_DATA_FIRST which means that cpu_data is the first
member in struct cpu_info.
 1.44 06-Jun-2010  mrg fix PR 6724 - convert m68k options to defflag's. this means that
M680[12346] are now available from opt_m68k_arch.h. FPSP meantioned
in the PR has already been fixed, and i could not find any more.

i built these kernels to ensure i did not break their builds:

amiga: GENERIC DRACO
atari: HADES FALCON MILAN-PCIIDE
mac68k: GENERIC
sun2: GENERIC
sun3: GENERIC GENERIC3X
cesfic: attempted GENERIC, does not build due to lack of machine/bus.h
hp300: GENERIC
luna68k: GENERIC
mvme68k: GENERIC
news68k: GENERIC
next68k: GENERIC
x68k: GENERIC
 1.43 21-Oct-2009  rmind branches: 1.43.2; 1.43.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.42 27-Feb-2008  xtraeme branches: 1.42.4;
Remove CTL_MACHDEP_NAMES, it's not used anywhere.

Ok by martin@.
 1.41 12-Jan-2008  tsutsui branches: 1.41.2; 1.41.6;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.40 17-Oct-2007  garbled branches: 1.40.2; 1.40.8;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.39 04-Aug-2007  ad branches: 1.39.2;
Add ci_cpuid where it's missing.
 1.38 21-May-2007  tsutsui branches: 1.38.2; 1.38.4; 1.38.8;
Move declarations of m68k common functions
from <machine/cpu.h> to <m68k/m68k.h>.
While here, remove some obsolete function decls.
 1.37 21-May-2007  tsutsui Adapt rest of m68k ports to yamt-idlelwp. Compile tested only.
 1.36 20-May-2007  mhitch Add missing call to lwp_startup() in lwp_trampoline() (which was renamed
from proc_trampoline to match the other ports).

A DIAGNOSTIC kernel will now boot and run. LOCKDEBUG still doesn't work yet.
Also, my amiga no longer loses time.
 1.35 04-Mar-2007  christos branches: 1.35.2; 1.35.4; 1.35.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.34 16-Feb-2007  ad branches: 1.34.2;
Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
 1.33 09-Feb-2007  ad Merge newlock2 to head.
 1.32 11-Dec-2005  christos branches: 1.32.20;
merge ktrace-lwp.
 1.31 26-Sep-2004  yamt branches: 1.31.12;
don't expose cpu_info to userland.
 1.30 22-Sep-2004  yamt move some per-cpu data definitions to MI place so that they can be modified
without touching all ports. discussed on tech-kern@.
 1.29 04-Jan-2004  jdolecek Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
as FPU state), and is the last potentially blocking operation;
all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
 1.28 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.27 17-Jan-2003  thorpej branches: 1.27.2;
Merge the nathanw_sa branch.
 1.26 20-Oct-2002  chs merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
- use m68k/cacheops.*, remove duplicates from cpu.h.
- centralize a few declarations in (all the copies of) cpu.h.
- define M68K_VAC on platforms which have a VAC.
- switch the sun platforms to the (now common) proc_trampoline().
- do the phys_map thang on the sun platforms too, no reason not to.
 1.25 12-Feb-2002  scw Separate out devices common to many Motorola mvme boards (68k, 88k and ppc)
in preparation for future mvmeppc and mvme88k ports.

This needs a bit if tidying up to make it trully shareable, which will
happen as the new mvme ports are added.
 1.24 06-Jul-2001  scw branches: 1.24.2; 1.24.8;
Ditch the `simulated' software interrupt in favour of
hardware-assisted soft interrupts on all boards.
(Note: VMEChip2-less 162/172 not yet tested)

This greatly simplifies the `rei' path and allows
interrupt nesting to be tracked somewhat more easily.

As a result we now have a working CLKF_INTR() macro
and can detect uvm_fault() being called from an interrupt
(although there may still be a very short race detecting
the latter; need to investigate further).
 1.23 14-Jun-2001  thorpej Don't need to prototype child_return() here, it's in <sys/proc.h>.
 1.22 30-May-2001  mrg use _KERNEL_OPT
 1.21 24-Nov-2000  scw branches: 1.21.2;
Revamp the bus_space(9) implementation:
. use a structure for the tag instead of an integer constant,
. add bus_space_{peek,poke}_N() (and G/C `badaddr()'),
. fix a few drivers which have dependencies on the implementation.
 1.20 20-Nov-2000  scw Add support for the m68060-based machines: MVME-172 and MVME-177.
CPU support taken from a combination of NetBSD/amiga and NetBSD/x68k.

At this time, MVME-172 works but MVME-177 is untested. Since the '177
is otherwise identical to the MVME-167, this should *just work*.
 1.19 15-Sep-2000  scw Use the complete ethernet address stored in nvram on mvme162/mvme167
instead of faking the first 5 nibbles a'la mvme147.

Apparently recent mvme16x boards have a new 5 nibble prefix...
 1.18 25-Aug-2000  thorpej Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity. Its use in
roundrobin() still needs some work.
 1.17 24-Jul-2000  scw G/C the IIO* #defines. They're no longer needed.
 1.16 27-May-2000  scw branches: 1.16.4;
Protect against multiple inclusion.
 1.15 27-May-2000  scw s/schedcpu_percpu/schedstate_percpu/
 1.14 26-May-2000  thorpej First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
 1.13 18-Mar-2000  scw Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.12 10-Aug-1999  thorpej branches: 1.12.2; 1.12.10;
Define cpu_number() as discussed on tech-smp.
 1.11 26-Feb-1999  is MVME68K specific part of fix for PR 6152
 1.10 20-Feb-1999  scw Add support for the VMEchip2 and the ncr53c710 SCSI IOP.
VMEchip2 support work is ongoing. SCSI is complete.
 1.9 14-Feb-1999  scw Merge support for mvme167 into main tree.
 1.8 11-Nov-1998  thorpej branches: 1.8.4;
Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
 1.7 13-Feb-1998  scottr Avoid declaring the "astpending" and "want_resched" globals in cpu.h,
as this breaks C++ code that happens to indirectly include this header.
Both Matthias Scheler and I noticed this, independently.

This problem notably does not affect the atari and sun3/sun3x ports,
which have already implemented a similar solution.
 1.6 12-Sep-1996  thorpej - Use MVME "machine options" to associate MVME models with CPU
options (a'la the hp300 port).
- Declare a "machineid" extern.
- Define constants for machineid, which match the Bug's idea
of MVME model numbers.
 1.5 12-Sep-1996  thorpej Prototype badaddr().
 1.4 11-Sep-1996  thorpej Use <m68k/cpu.h>.
 1.3 26-Apr-1996  chuck cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
 1.2 21-Dec-1995  mycroft Remove deprecated cpu_setstack().
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.8.4.1 13-Feb-1999  scw The further adventures of mvme167 support. Mostly working now.
 1.12.10.2 18-Mar-2000  scw MI VMEbus glue more or less complete.
Kernels now compiled with -Wall, etc. (lots of fixes needed for this)
All MD drivers now bus_spaced/bus_dma'd. The two SCSI drivers should
be replaced with bus_spaced MI versions at some point.
 1.12.10.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.12.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.12.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.16.4.1 17-Oct-2000  scw Pullup 1.18 - 1.19 (approved by tv)
Bring support for MVME162 into the 1.5 branch.
 1.21.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.24.8.8 03-Dec-2002  gmcgarry Add switch_exit() and switch_lwp_exit() prototypes.
 1.24.8.7 03-Dec-2002  gmcgarry Use cpu_proc_fork().
 1.24.8.6 11-Nov-2002  nathanw Catch up to -current
 1.24.8.5 28-Feb-2002  nathanw Catch up to -current.
 1.24.8.4 08-Dec-2001  thorpej Add a cpu_proc_fork(), called from uvm_proc_fork(), which takes care
of machine-dependent handling a fork() time (this is different from
forking the actual context in an LWP world). #define it away on
platforms which do not need it.

Problem noted by Gregory McGarry.
 1.24.8.3 17-Nov-2001  scw G/C an unused reference to 'struct lwp'
 1.24.8.2 17-Nov-2001  scw Kernel support for Scheduler Activations on m68k-based ports using
mvme68k as a testbed.

Boots multi-user on an mvme162, although userland support for SA is not
yet integrated/tested.
 1.24.8.1 06-Jul-2001  scw file cpu.h was added on branch nathanw_sa on 2001-11-17 13:07:54 +0000
 1.24.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.27.2.5 19-Oct-2004  skrll Sync with HEAD
 1.27.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.27.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.27.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.27.2.1 03-Aug-2004  skrll Sync with HEAD
 1.31.12.4 17-Mar-2008  yamt sync with head.
 1.31.12.3 21-Jan-2008  yamt sync with head
 1.31.12.2 03-Sep-2007  yamt sync with head.
 1.31.12.1 26-Feb-2007  yamt sync with head.
 1.32.20.1 06-Feb-2007  ad Update m68k pasteware.
 1.34.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.35.10.2 03-Oct-2007  garbled Sync with HEAD
 1.35.10.1 22-May-2007  matt Update to HEAD.
 1.35.4.1 11-Jul-2007  mjf Sync with head.
 1.35.2.2 20-Aug-2007  ad Sync with HEAD.
 1.35.2.1 27-May-2007  ad Sync with head.
 1.38.8.1 04-Aug-2007  jmcneill Sync with HEAD.
 1.38.4.1 15-Aug-2007  skrll Sync with HEAD.
 1.38.2.1 07-Aug-2007  matt Sync with HEAD.
 1.39.2.2 23-Mar-2008  matt sync with HEAD
 1.39.2.1 06-Nov-2007  matt sync with HEAD
 1.40.8.1 19-Jan-2008  bouyer Sync with HEAD
 1.40.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.41.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.41.2.1 24-Mar-2008  keiichi sync with head.
 1.42.4.2 11-Aug-2010  yamt sync with head.
 1.42.4.1 11-Mar-2010  yamt sync with head
 1.43.4.2 05-Mar-2011  rmind sync with head
 1.43.4.1 03-Jul-2010  rmind sync with head
 1.43.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.45.4.1 17-Feb-2011  bouyer Sync with HEAD
 1.45.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.46.8.1 18-Feb-2012  mrg merge to -current.
 1.46.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.46.4.1 17-Apr-2012  yamt sync with head
 1.47.10.1 18-May-2014  rmind sync with head
 1.47.6.2 03-Dec-2017  jdolecek update from HEAD
 1.47.6.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.48.10.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.48.6.1 05-Feb-2017  skrll Sync with HEAD
 1.49.16.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.49.16.1 10-Jun-2019  christos Sync with HEAD
 1.49.14.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.4 06-Nov-2017  christos Cleanup and clarify the ELFSIZE mess:

We now have 2 variables automatically set in elf_machdep.h:

ARCH_ELFSIZE: the size for userland binaries
KERN_ELFSIZE: the size for the kernel binaries

DB_ELFSIZE has been deleted and KERN_ELFSIZE should have always the
same values DB_ELFSIZE used to have.

In sys/exec_elf.h, if ELFSIZE is not set, it is set to KERN_ELFSIZE
for the kernel and ARCH_ELFSIZE for userland. These defaults should
eliminate the need for most manual ELFSIZE setting.
 1.3 11-Apr-2011  mrg branches: 1.3.14;
obsolete DB_AOUT_SYMBOLS. however, we need to leave most of the code
in db_sym.[ch] as it is used by the elf version of crash(8).

i will be cleaning up the db_sym.c code in a follow up commit to avoid
having dead code compiled.
 1.2 02-Dec-2000  scw branches: 1.2.152; 1.2.158;
Set things up so that DDB can get to the symbol table in ELF kernels.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck branches: 1.1.1.1.34;
mvme68k port -- for the motorola vme147 m68030 card
 1.1.1.1.34.1 08-Dec-2000  bouyer Sync with HEAD.
 1.2.158.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.152.1 21-Apr-2011  rmind sync with head
 1.3.14.1 03-Dec-2017  jdolecek update from HEAD
 1.11 30-Aug-2011  bouyer Add getlabelusesmbr(), as proposed in
http://mail-index.netbsd.org/tech-userlevel/2011/08/25/msg005404.html
This is used by disk tools such as disklabel(8) to dynamically decide is
the undelyling platform uses a disklabel-in-mbr-partition or not
(instead of using a compile-time list of ports).
getlabelusesmbr() reads the sysctl kern.labelusesmbr, takes its value from the
machdep #define LABELUSESMBR.
For evbmips, make LABELUSESMBR 1 if the platform uses pmon
as bootloader, and 0 (the previous value) otherwise.
 1.10 23-Oct-2009  snj Follow revision 1.8 in OpenBSD: remove ad clause.
 1.9 11-Dec-2005  christos branches: 1.9.78;
merge ktrace-lwp.
 1.8 23-Oct-2003  jdolecek g/c PARTITIONSHIFT (not used anywhere) and set MAXPARTITIONS directly to 8
 1.7 31-Aug-2001  simonb branches: 1.7.6; 1.7.22;
Use comments around the token after a #endif.
 1.6 01-Dec-2000  scw branches: 1.6.4;
Add __attribute__((__packed__)) to cpu_disklabel to get around
the ELF padding/alignment constraints.
 1.5 09-Nov-1999  scw Drop some #defines which are now in sys/disklabel.h.
 1.4 16-May-1996  chuck branches: 1.4.32; 1.4.34; 1.4.38;
add some comments to explain what is going on here
also add enough info to enable the kernel to create
a valid disklabel without help from wrtvid.
 1.3 07-May-1996  chuck change maxpart to 8 to be compat with prev binaries
 1.2 26-Apr-1996  chuck cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.4.38.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.4.34.1 15-Nov-1999  fvdl Sync with -current
 1.4.32.2 08-Dec-2000  bouyer Sync with HEAD.
 1.4.32.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.6.4.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.7.22.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.22.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.22.1 03-Aug-2004  skrll Sync with HEAD
 1.7.6.2 31-Aug-2001  simonb Use comments around the token after a #endif.
 1.7.6.1 31-Aug-2001  simonb file disklabel.h was added on branch nathanw_sa on 2001-08-31 04:44:57 +0000
 1.9.78.1 11-Mar-2010  yamt sync with head
 1.1 12-Jul-1998  thorpej Basic elf_machdep.h for m68k; doesn't include relocations, yet.
 1.3 17-Mar-2000  mycroft In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.2 24-Jan-1999  mycroft branches: 1.2.10;
Format consistency.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2.10.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.1 17-Mar-2000  mycroft branches: 1.1.6;
In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.1.6.2 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.1.6.1 17-Mar-2000  bouyer file endian_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:15:22 +0000
 1.3 08-Oct-1996  cgd moved to aout_machdep.h (via repository copy)
 1.2 08-Sep-1996  thorpej Use <m68k/exec.h>.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.1 27-Dec-2023  thorpej Re-factor the 680x0 Function Code definitions into their own
separate file (as was done on the sun2/sun3 ports ages ago)
and switch everyone to the common header.
 1.1 24-Dec-2015  christos branches: 1.1.2; 1.1.18;
fenv for m68k
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Dec-2015  jdolecek file fenv.h was added on branch tls-maxphys on 2017-12-03 11:36:30 +0000
 1.1.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.1 24-Dec-2015  skrll file fenv.h was added on branch nick-nhusb on 2015-12-27 12:09:39 +0000
 1.2 03-Feb-1998  mycroft Prototype __flt_rounds() consistently.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck branches: 1.1.1.1.18;
mvme68k port -- for the motorola vme147 m68030 card
 1.1.1.1.18.1 08-May-1998  mycroft Sync with trunk, per request of mycroft.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 30-Aug-1999  mycroft A foolish consistency.
 1.1 15-Mar-1999  minoura Pullin m68k/ieee.h.
 1.1 12-Apr-1996  chuck pull in ieeefp.h from m68k common area
 1.1 14-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 integer constant macros.
 1.1.12.2 14-Apr-2001  kleink Add definitions of C99 integer constant macros.
 1.1.12.1 14-Apr-2001  kleink file int_const.h was added on branch nathanw_sa on 2001-04-14 22:38:41 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 14-Apr-2001  bouyer file int_const.h was added on branch thorpej_scsipi on 2001-04-21 17:54:08 +0000
 1.1 15-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 15-Apr-2001  kleink Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 15-Apr-2001  kleink file int_fmtio.h was added on branch nathanw_sa on 2001-04-15 17:13:14 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 15-Apr-2001  bouyer file int_fmtio.h was added on branch thorpej_scsipi on 2001-04-21 17:54:08 +0000
 1.1 15-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 15-Apr-2001  kleink Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 15-Apr-2001  kleink file int_limits.h was added on branch nathanw_sa on 2001-04-15 15:29:10 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 15-Apr-2001  bouyer file int_limits.h was added on branch thorpej_scsipi on 2001-04-21 17:54:08 +0000
 1.1 14-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 14-Apr-2001  kleink Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 14-Apr-2001  kleink file int_mwgwtypes.h was added on branch nathanw_sa on 2001-04-14 12:19:58 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 14-Apr-2001  bouyer file int_mwgwtypes.h was added on branch thorpej_scsipi on 2001-04-21 17:54:08 +0000
 1.1 26-Jun-2000  kleink branches: 1.1.2;
Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
 1.1.2.2 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.1.2.1 26-Jun-2000  bouyer file int_types.h was added on branch thorpej_scsipi on 2000-11-20 20:15:22 +0000
 1.24 19-Jan-2024  thorpej Add _KERNEL guards around most of the definitions in these files.
 1.23 16-Jan-2024  thorpej Switch mvme68k over to the common interrupt dispatch code and G/C
__HAVE_LEGACY_INTRCNT.
 1.22 11-Jul-2023  riastradh mvme68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
 1.21 19-Apr-2018  christos branches: 1.21.32;
s/static inline/static __inline/g for consistency.
 1.20 22-May-2009  he branches: 1.20.62;
Remove a no-longer-needed include of <sys/device.h>, which now created
a build problem because dvl_mtx has an incomplete type when building
cacheops.o.
 1.19 26-Jun-2008  isaki Unify splraiseipl(9) implementation among m68k ports,
discussed with tsutsui@ on port-m68k.

For mvme68k:
- export ipl2psl_table[] and make it uint16_t
- make makeiplcookie(9) inline
- put PSL_S bit into ipl2psl_table[] rather than adding it in makeiplcookie(9)
- define both IPL_SCHED and IPL_HIGH independently to avoid confusion
- replace the order of IPL_SOFTCLOCK and IPL_SOFTBIO according to spl(9)
 1.18 28-Apr-2008  martin branches: 1.18.2; 1.18.4;
Remove clause 3 and 4 from TNF licenses
 1.17 03-Dec-2007  ad branches: 1.17.14; 1.17.16; 1.17.18;
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.16 11-Mar-2007  thorpej branches: 1.16.16; 1.16.18; 1.16.24;
- Shrink ipl_cookie_t from 32-bits to 16-bits (large enough to hold
an SR value or an IPL_* constant).
- Take advange of the smaller ipl_cookie_t to shrink kmutex_t from
16 bytes to 8 bytes by overlapping storage where possible.
- Implement a RAS-based _lock_cas() for mc68010 systems (Sun2). See
sun68k/sun68k/isr.c.

Tested on various m68k platforms, but NOT Sun2. In any case, at least
Sun2 compiles now.
 1.15 16-Feb-2007  ad branches: 1.15.2; 1.15.6;
Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
 1.14 21-Dec-2006  yamt merge yamt-splraiseipl branch.

- finish implementing splraiseipl (and makeiplcookie).
http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
- complete workqueue(9) and fix its ipl problem, which is reported
to cause audio skipping.
- fix netbt (at least compilation problems) for some ports.
- fix PR/33218.
 1.13 16-Feb-2006  perry branches: 1.13.14; 1.13.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.12 24-Dec-2005  perry branches: 1.12.2; 1.12.4; 1.12.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.11 06-Jul-2001  scw branches: 1.11.8; 1.11.40;
Ditch the `simulated' software interrupt in favour of
hardware-assisted soft interrupts on all boards.
(Note: VMEChip2-less 162/172 not yet tested)

This greatly simplifies the `rei' path and allows
interrupt nesting to be tracked somewhat more easily.

As a result we now have a working CLKF_INTR() macro
and can detect uvm_fault() being called from an interrupt
(although there may still be a very short race detecting
the latter; need to investigate further).
 1.10 13-Apr-2001  thorpej Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
 1.9 15-Jan-2001  thorpej branches: 1.9.2;
Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
 1.8 14-Jan-2001  thorpej Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
 1.7 14-Jan-2001  thorpej Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
 1.6 10-Dec-2000  scw A small splx()/spl0()/soft interrupt related optimisation. If we're
dropping to spl0, use inline code to check if a soft interrupt is
pending instead of taking the hit of a function call to do the check.
 1.5 19-Sep-2000  scw branches: 1.5.2;
Add IPL_SERIAL.
 1.4 22-Aug-2000  thorpej Add spllock(). See spl(9) for details.
 1.3 20-Jul-2000  scw Implement generic soft interrupts for mvme68k.
Based on Jason Thorpe's Alpha implementation.
 1.2 18-Mar-2000  scw branches: 1.2.4;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.1 11-Mar-2000  scw branches: 1.1.2;
file intr.h was initially added on branch scw_mvme68k_bus_space.
 1.1.2.2 18-Mar-2000  scw MI VMEbus glue more or less complete.
Kernels now compiled with -Wall, etc. (lots of fixes needed for this)
All MD drivers now bus_spaced/bus_dma'd. The two SCSI drivers should
be replaced with bus_spaced MI versions at some point.
 1.1.2.1 11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.2.4.1 22-Jul-2000  scw Pullup from trunk: 1.3
Approved by: thorpej

Implement generic soft interrupts for mvme68k.
 1.5.2.5 21-Apr-2001  bouyer Sync with HEAD
 1.5.2.4 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.5.2.3 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.5.2.2 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.2.1 19-Sep-2000  bouyer file intr.h was added on branch thorpej_scsipi on 2000-11-20 20:15:22 +0000
 1.9.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.11.40.5 07-Dec-2007  yamt sync with head
 1.11.40.4 03-Sep-2007  yamt sync with head.
 1.11.40.3 26-Feb-2007  yamt sync with head.
 1.11.40.2 30-Dec-2006  yamt sync with head.
 1.11.40.1 21-Jun-2006  yamt sync with head.
 1.11.8.2 06-Jul-2001  scw Ditch the `simulated' software interrupt in favour of
hardware-assisted soft interrupts on all boards.
(Note: VMEChip2-less 162/172 not yet tested)

This greatly simplifies the `rei' path and allows
interrupt nesting to be tracked somewhat more easily.

As a result we now have a working CLKF_INTR() macro
and can detect uvm_fault() being called from an interrupt
(although there may still be a very short race detecting
the latter; need to investigate further).
 1.11.8.1 06-Jul-2001  scw file intr.h was added on branch nathanw_sa on 2001-07-06 19:00:15 +0000
 1.12.6.1 22-Apr-2006  simonb Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.12.2.1 18-Feb-2006  yamt sync with head.
 1.13.16.3 10-Dec-2006  yamt add IPL_VM.
 1.13.16.2 10-Dec-2006  yamt remove unnecessary "#include <sys/spl.h>".
 1.13.16.1 10-Dec-2006  yamt implement splraiseipl and makeiplcookie for mvme68k.
 1.13.14.1 12-Jan-2007  ad Sync with head.
 1.15.6.2 03-Dec-2007  ad Sync with HEAD.
 1.15.6.1 13-Mar-2007  ad Sync with head.
 1.15.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.16.24.1 08-Dec-2007  mjf Sync with HEAD.
 1.16.18.1 09-Jan-2008  matt sync with HEAD
 1.16.16.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.17.18.3 20-Jun-2009  yamt sync with head
 1.17.18.2 04-May-2009  yamt sync with head.
 1.17.18.1 16-May-2008  yamt sync with head.
 1.17.16.1 18-May-2008  yamt sync with head.
 1.17.14.2 29-Jun-2008  mjf Sync with HEAD.
 1.17.14.1 02-Jun-2008  mjf Sync with HEAD.
 1.18.4.1 27-Jun-2008  simonb Sync with head.
 1.18.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.20.62.1 22-Apr-2018  pgoyette Sync with HEAD
 1.21.32.1 09-Aug-2023  martin Pull up following revision(s) (requested by maya in ticket #316):

sys/arch/m68k/include/mutex.h: revision 1.13
sys/arch/arm/include/cpu.h: revision 1.125
sys/arch/sun68k/include/intr.h: revision 1.21
sys/arch/arm/include/mutex.h: revision 1.28
sys/sys/rwlock.h: revision 1.18
sys/arch/powerpc/include/mutex.h: revision 1.7
sys/arch/arm/include/mutex.h: revision 1.29
sys/arch/powerpc/include/mutex.h: revision 1.8
sys/uvm/uvm_param.h: revision 1.42
sys/sys/ksem.h: revision 1.16
sys/arch/x86/include/mutex.h: revision 1.10
sys/sys/proc.h: revision 1.372
sys/sys/ksem.h: revision 1.17
sys/arch/ia64/include/mutex.h: revision 1.8
sys/arch/evbarm/include/intr.h: revision 1.29
sys/sys/lua.h: revision 1.9
sys/arch/next68k/include/intr.h: revision 1.23
sys/arch/ia64/include/mutex.h: revision 1.9
sys/arch/hp300/include/intr.h: revision 1.35
sys/arch/hp300/include/intr.h: revision 1.36
sys/arch/sparc/include/cpu.h: revision 1.111
sys/arch/hppa/include/mutex.h: revision 1.16
sys/arch/vax/include/intr.h: revision 1.31
sys/arch/hppa/include/mutex.h: revision 1.17
sys/arch/news68k/include/intr.h: revision 1.28
sys/arch/hppa/include/mutex.h: revision 1.18
sys/arch/hppa/include/intr.h: revision 1.3
sys/arch/hppa/include/mutex.h: revision 1.19
sys/arch/hppa/include/intr.h: revision 1.4
sys/sys/sched.h: revision 1.92
sys/opencrypto/cryptodev.h: revision 1.51
sys/arch/vax/include/mutex.h: revision 1.20
sys/arch/sparc64/include/mutex.h: revision 1.10
sys/arch/ia64/include/sapicvar.h: revision 1.2
sys/arch/riscv/include/mutex.h: revision 1.5
sys/arch/amiga/dev/grfabs_cc.c: revision 1.39
sys/external/bsd/drm2/include/linux/idr.h: revision 1.11
sys/arch/riscv/include/mutex.h: revision 1.6
sys/ddb/files.ddb: revision 1.16
sys/arch/mac68k/include/intr.h: revision 1.32
share/man/man4/ddb.4: revision 1.203
sys/ddb/db_command.c: revision 1.183
sys/arch/mips/include/mutex.h: revision 1.10
sys/ddb/db_command.c: revision 1.184
sys/arch/x68k/include/intr.h: revision 1.22
sys/arch/sparc/include/psl.h: revision 1.51
sys/arch/or1k/include/mutex.h: revision 1.4
sys/arch/mips/include/mutex.h: revision 1.11
sys/arch/arm/xscale/pxa2x0_intr.h: revision 1.16
sys/arch/sparc64/include/cpu.h: revision 1.134
sys/arch/sparc/include/psl.h: revision 1.52
sys/arch/or1k/include/mutex.h: revision 1.5
sys/arch/mvme68k/include/intr.h: revision 1.22
sys/arch/luna68k/include/intr.h: revision 1.16
external/cddl/osnet/sys/sys/kcondvar.h: revision 1.6
sys/arch/sparc/include/mutex.h: revision 1.12
sys/arch/sparc/include/mutex.h: revision 1.13
sys/arch/usermode/include/mutex.h: revision 1.5
sys/arch/usermode/include/mutex.h: revision 1.6
sys/kern/kern_core.c: revision 1.38
usr.sbin/crash/Makefile: revision 1.49
sys/arch/amiga/include/intr.h: revision 1.23
sys/arch/alpha/include/mutex.h: revision 1.12
sys/arch/alpha/include/mutex.h: revision 1.13
sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.16
sys/ddb/ddb.h: revision 1.6
sys/arch/sparc64/include/mutex.h: revision 1.8
sys/arch/sh3/include/mutex.h: revision 1.12
sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.17
sys/ddb/db_syncobj.c: revision 1.1
sys/arch/vax/include/mutex.h: revision 1.18
sys/arch/sparc64/include/psl.h: revision 1.63
sys/arch/sparc64/include/mutex.h: revision 1.9
sys/arch/sh3/include/mutex.h: revision 1.13
sys/arch/evbarm/lubbock/obio.c: revision 1.13
sys/arch/atari/include/intr.h: revision 1.23
sys/ddb/db_syncobj.c: revision 1.2
sys/arch/vax/include/mutex.h: revision 1.19
sys/arch/evbarm/g42xxeb/obio.c: revision 1.14
sys/arch/evbarm/g42xxeb/obio.c: revision 1.15
sys/arch/cesfic/include/intr.h: revision 1.14
sys/ddb/db_syncobj.h: revision 1.1
sys/arch/x86/include/cpu.h: revision 1.134
sys/arch/evbarm/g42xxeb/obio.c: revision 1.16
sys/arch/cesfic/include/intr.h: revision 1.15
sys/arch/arm/xscale/pxa2x0_intr.c: revision 1.26
sys/sys/cpu_data.h: revision 1.54
sys/arch/m68k/include/mutex.h: revision 1.12
sys/arch/ia64/acpi/madt.c: revision 1.6

sys/rwlock.h: Make this more self-contained for bool.

machine/mutex.h: Sprinkle includes so this can be used by crash(8).

ddb: New `show all tstiles' command.
Shows who's waiting for which locks and what the owner is up to.

Include psl.h for ipl_cookie_t if __MUTEX_PRIVATE

sys: Rip <sys/resourcevar.h> out of <uvm/uvm_param.h>.

And thus out of <sys/param.h>, which is exceedingly overused and
fragile and delenda est.

Should fix (some) issues with the recent inclusion of machine/lock.h
in various machine/mutex.h files.

arm/mutex.h: Need machine/intr.h, machine/lock.h.

For ipl_cookie_t and __cpu_simple_lock_t.
evbarm/intr.h: Define ipl_cookie_t before including ARM_INTR_IMPL.

Otherwise arm/mutex.h doesn't work, due to a cyclic dependency which
should really be fixed.
opencrypto/cryptodev.h: Fix includes.
- Move sys/condvar.h under #ifdef _KERNEL.
- Add some other necessary includes and forward declarations.
- Sort.

hp300/intr.h: Fix missing includes.
linux/idr.h: Need <sys/mutex.h> for kmutex_t.
amiga/intr.h: Don't define spl*() functions if !_KERNEL.

This is used by crash(8) now, and what's important is ipl_cookie_t.
cesfic/intr.h: Expose ipl_cookie_t to userland for crash(8).
cesfic/intr.h: Expose ipl_cookie_t to userland only with _KMEMUSER.

Probably not necessary but let's be a little more cautious about
this.

atari/intr.h: Expose ipl_cookie_t with _KMEMUSER for crash(8).

arm/cpu.h: Need sys/param.h for COHERENCY_UNIT.

Nix machine/param.h -- not meant to be used directly, pulled in by
sys/param.h.

Move the definition of ipl_cookie_t out of the kernel-only sections,
some _KMEMUSER applications need it.

ddb: Cast pointer to uintptr_t first before db_expr_t.

hppa/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

luna68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

mvme68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

news68k/intr.h: Fix includes. Put some definitions under _KERNEL.

next68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

sys/ksem.h: Hack around fstat(8) abuse of _KERNEL.

sun68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

vax/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).

x68k/intr.h: Put functions under _KERNEL so crash(8) can use this.

Make ipl_cookie_t visible for _KMEMUSER userland applications.

fix editor mishap in previous

Explicitly include <sys/mutex.h> for kmutex_t.

Replace kmutex_t * (which may be undefined here) with struct kmutex *,
suggested by Taylor.

hp300/intr.h: Put most of this under #ifdef _KERNEL.
Only ipl_cookie_t really needs to be exposed now, for crash(8).

mac68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
Make inclusion of sys/intr.h explicit for spl*.

fix hppa and vax builds.

machine/lock.h isn't necessary for __cpu_simple_lock_t, it's in
sys/types.h. avoids cpu_data.h vs sched.h include order issues.

move the hppa ipl_t typedef with the moved usage of it.
machine/mutex.h: Sprinkle sys/types.h, omit machine/lock.h.

Turns out machine/lock.h is not needed for __cpu_simple_lock_t, which
always comes from sys/types.h. And, really, sys/types.h (or at least
sys/stdint.h) is needed for uintN_t and uintptr_t.

ddb: Cast pointer to uintptr_t, then to db_expr_t.
Avoids warnings about conversion between pointer and integer of
different size on some architectures.

re-fix hppa builds.

this file uses __cpu_simple_lock(), not just the underlying type,
so it does need machine/lock.h.

Break cycle by using `struct kmutex *' instead of `kmutex_t *'.
sys/sched.h included sys/mutex.h
which includes sys/intr.h
which includes machine/intr.h
which on cats includes arm/footbridge/footbridge_intr.h
which includes arm/cpu.h
which includes sys/cpu_data.h
which includes sys/sched.h

But there was never any real need for sys/mutex.h in sys/sched.h,
because it only uses pointers to the opaque struct kmutex. Cycle
broken by using `struct kmutex *' instead of pulling in sys/mutex.h
for the definition of kmutex_t.

Side effect: This revealed that sys/cpu_data.h needed sys/intr.h
(which was pulled in accidentally by sys/mutex.h via sys/sched.h) for
SOFTINT_COUNT. Also revealed some other machine/cpu.h header files
were missing includes of sys/mutex.h for kmutex_t.

ia64: Need sys/types.h for u_int, vaddr_t; sys/mutex.h for kmutex_t.

explicitly include no longer implicitly included sys/mutex.h.

arm/xscale: Use sys/bitops.h fls32 - 1 instead of 31 - __builtin_clz.
Sidesteps namespace collision with `#define bits ...' in net/zlib.c.

complete the previous - there were two calls to find_first_bit() to fix.

arm/xscale: Missed a spot with previous find_first_bit commit.

evbarm/g42xxeb: Fix off-by-one in previous.

The original find_first_bit(x) was 31 - __builtin_clz((uint32_t)x),
which is equivalent to fls32(x) - 1, not to fls32(x).

Note that fls32 is 1-based and returns 0 for x=0.
 1.1 25-Apr-1997  thorpej Machine-dependent crash dump header - just pulls in <m68k/kcore.h>
 1.3 28-Mar-2012  christos - Normalize inclusion protection (remove)
- Move CHAR_{MIN,MAX} to a common file.
- Fix broken comments
 1.2 09-Jan-1998  perry branches: 1.2.192; 1.2.196;
multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom)
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2.196.1 05-Apr-2012  mrg sync to latest -current.
 1.2.192.1 17-Apr-2012  yamt sync with head
 1.7 06-Aug-2014  joerg Consistently define WARN in a way that passes format string checks, i.e.
always uses the same number of arguments as given in the format string.
 1.6 30-Mar-2014  christos branches: 1.6.2;
fixes for gcc-4.8 (John D. Baker)
 1.5 28-Apr-2008  martin branches: 1.5.34; 1.5.44; 1.5.50;
Remove clause 3 and 4 from TNF licenses
 1.4 25-Jan-2006  christos branches: 1.4.72; 1.4.74; 1.4.76;
free -> dealloc
unsigned -> size_t for alloc/dealloc
 1.3 31-Oct-2001  thorpej branches: 1.3.2; 1.3.34; 1.3.46;
Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
 1.2 04-Dec-2000  scw branches: 1.2.2; 1.2.6; 1.2.8;
The LOAD_TEXTA flag is required when loading a.out kernels.

Also add some non-standalone versions for the benefit of installboot(8).
 1.1 30-Nov-2000  scw Prepare to switch mvme68k bootloader over to the MI loadfile().
 1.2.8.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.2.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.2.2.1 04-Dec-2000  bouyer file loadfile_machdep.h was added on branch thorpej_scsipi on 2000-12-08 09:28:36 +0000
 1.3.46.1 01-Feb-2006  yamt sync with head.
 1.3.34.1 21-Jun-2006  yamt sync with head.
 1.3.2.2 31-Oct-2001  thorpej Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
 1.3.2.1 31-Oct-2001  thorpej file loadfile_machdep.h was added on branch nathanw_sa on 2001-10-31 17:20:48 +0000
 1.4.76.1 16-May-2008  yamt sync with head.
 1.4.74.1 18-May-2008  yamt sync with head.
 1.4.72.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.50.1 18-May-2014  rmind sync with head
 1.5.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.34.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6.2.1 10-Aug-2014  tls Rebase.
 1.1 29-Apr-2000  thorpej branches: 1.1.6;
Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
 1.1.6.2 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.1.6.1 29-Apr-2000  bouyer file lock.h was added on branch thorpej_scsipi on 2000-11-20 20:15:22 +0000
 1.1 30-Nov-2024  christos branches: 1.1.4;
Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.1.4.2 02-Aug-2025  perseant Sync with HEAD
 1.1.4.1 30-Nov-2024  perseant file lwp_private.h was added on branch perseant-exfatfs on 2025-08-02 05:55:56 +0000
 1.1 23-Dec-1999  kleink branches: 1.1.8;
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.1.8.2 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.1.8.1 23-Dec-1999  bouyer file math.h was added on branch thorpej_scsipi on 2000-11-20 20:15:22 +0000
 1.2 17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 10-Nov-2001  scw branches: 1.1.2;
file mcontext.h was initially added on branch nathanw_sa.
 1.1.2.1 10-Nov-2001  scw Kernel mcontext glue for Scheduler Activations on m68k from
Klaus Klein <kleink@netbsd.org>.
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file mutex.h was initially added on branch newlock2.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file mutex.h was added on branch yamt-lazymbuf on 2007-02-26 09:07:34 +0000
 1.33 10-Feb-2012  para proper sizing of kmem_arena on different ports

PR port-i386/45946: Kernel locks up in VMEM system
 1.32 08-Feb-2011  rmind branches: 1.32.4; 1.32.8;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.31 11-Dec-2009  tsutsui branches: 1.31.4; 1.31.6; 1.31.8;
Refactoring MD segment related definitions on m68k ports:
- move macro SEGSHIFT, NBSEG, and SEGOFSET from <machine/param.h>
to <m68k/pmap_motorola.h> where they should belong
- also simplify NBSEG macro for both 020/030 and 040/060 cases
- also move m68k_trunc_seg(), m68k_round_seg(), and m68k_seg_offset()
(that use SEGOFSET) from <m68k/param.h> to <m68k/pmap_motorola.h>
- add comments about each segment size value used on pmap_motorola
implementation
- add TIA_SIZE, TIA_SHIFT, TIB_SIZE, and TIB_SHIFT macro which can be
used for ste/pte index sizes
- use proper vaddr_t cast instead of unsigned for SEGOFSET/PGOFSET macro

Tested on atari, hp300, and news68k.
 1.30 09-Dec-2009  tsutsui Fix wrong NBSEG values for all hp300 pmap derived m68k ports.
They were incorrect since 1997 on amiga and atari, and since 2002
on other ports, but fortunately they don't look so fatal.

Anyway, these values will be moved into <m68k/pmap_motorola.h> soon
since they are quite pmap implementation dependent.
 1.29 12-Jan-2008  tsutsui branches: 1.29.10;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.28 11-Dec-2005  christos branches: 1.28.50; 1.28.56; 1.28.64;
merge ktrace-lwp.
 1.27 11-Sep-2005  he Patterned after next68k, omit inclusion of <sys/device.h> if we
are not in _KERNEL. This should work around our lint problems
related to "unspecified-size array at end of struct" constructs.
 1.26 07-Aug-2003  agc branches: 1.26.14; 1.26.16; 1.26.20;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.25 03-Nov-2002  chs branches: 1.25.6;
merge pmap.h for all 4k-page motorola-MMU (or compatible) m68k platforms.
 1.24 20-Dec-2000  scw branches: 1.24.8;
Some minor optimisations to avoid checking {cpu,mmu}type when
the kernel was built for only one type of CPU.
 1.23 05-Dec-2000  scw UPAGES -> 2 as recommended by Chuck Silvers.
 1.22 20-Nov-2000  scw Add support for the m68060-based machines: MVME-172 and MVME-177.
CPU support taken from a combination of NetBSD/amiga and NetBSD/x68k.

At this time, MVME-172 works but MVME-177 is untested. Since the '177
is otherwise identical to the MVME-167, this should *just work*.
 1.21 27-May-2000  scw Nuke HP_SEG_SIZE. Use NBSEG instead (as used by m68k_trunc_seg() et al),
which takes into account the mmu type.
 1.20 18-Mar-2000  scw branches: 1.20.2;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.19 11-Feb-2000  thorpej branches: 1.19.2;
Update for the NKMEMPAGES changes.
 1.18 04-Dec-1999  ragge CL* discarding.
 1.17 21-Sep-1999  scw branches: 1.17.2; 1.17.8;
Add #ifdef _KERNEL around the spln() macros.
 1.16 05-Aug-1999  thorpej Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX. This platforms still have this bug until their
XXX spl*() functions are fixed.
 1.15 22-May-1999  scw Double the value for NKMEMCLUSTERS, to allow more KVA for LFS et al.
 1.14 20-Feb-1999  scw branches: 1.14.4;
Add splserial().
 1.13 22-Aug-1998  scw vm_offset -> [vp]addr_t and vm_size_t -> [vp]size_t
While I'm here, expunge use of 'register' storage class.
 1.12 20-Sep-1997  leo Move the definition of MSGBUFSIZE up to the machine-arch level if
possible. Pointed out by Bernd Ernesti.
 1.11 19-Sep-1997  leo Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
 1.10 10-Jul-1997  veego branches: 1.10.2;
Restore the define of NPTEPG.
 1.9 10-Jun-1997  veego The 'Mach derived conversion macros' are now in <m68k/param.h>
 1.8 10-Jun-1997  veego Use the MI <m68k/param.h> include.
 1.7 24-Feb-1997  fvdl Define ALIGNED_POINTER
 1.6 26-Apr-1996  chuck branches: 1.6.8;
cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
 1.5 04-Mar-1996  cgd add _MACHINE and _MACHINE_ARCH, which are like MACHINE and MACHINE_ARCH,
execpt without quotes. meant to be __CONCAT()ted for easy #includes
of machine-dependent headers for MI code (e.g. for the MI ISA/EISA/PCI/TC
bus code).
 1.4 01-Mar-1996  cgd Clean up tabbing/spacing in defns of MACHINE, MACHINE_ARCH, and MID_MACHINE.
 1.3 01-Feb-1996  mycroft LOCORE -> _LOCORE
 1.2 13-Aug-1995  mycroft Replace splnet() with splsoftnet(). Add splnet().
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.6.8.1 12-Mar-1997  is Merge in changes from Trunk
 1.10.2.1 22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.14.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.17.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.17.2.4 05-Jan-2001  bouyer Sync with HEAD
 1.17.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.17.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.17.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.19.2.1 18-Mar-2000  scw MI VMEbus glue more or less complete.
Kernels now compiled with -Wall, etc. (lots of fixes needed for this)
All MD drivers now bus_spaced/bus_dma'd. The two SCSI drivers should
be replaced with bus_spaced MI versions at some point.
 1.20.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.24.8.1 11-Nov-2002  nathanw Catch up to -current
 1.25.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.25.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.25.6.1 03-Aug-2004  skrll Sync with HEAD
 1.26.20.1 21-Apr-2006  tron Pull up following revision(s) (requested by oster in ticket #1284):
sys/arch/mvme68k/include/param.h: revision 1.27
sys/arch/hp300/include/param.h: revision 1.46
Patterned after next68k, omit inclusion of <sys/device.h> if we
are not in _KERNEL. This should work around our lint problems
related to "unspecified-size array at end of struct" constructs.
 1.26.16.2 21-Jan-2008  yamt sync with head
 1.26.16.1 21-Jun-2006  yamt sync with head.
 1.26.14.1 21-Apr-2006  tron Pull up following revision(s) (requested by oster in ticket #1284):
sys/arch/mvme68k/include/param.h: revision 1.27
sys/arch/hp300/include/param.h: revision 1.46
Patterned after next68k, omit inclusion of <sys/device.h> if we
are not in _KERNEL. This should work around our lint problems
related to "unspecified-size array at end of struct" constructs.
 1.28.64.1 19-Jan-2008  bouyer Sync with HEAD
 1.28.56.1 18-Feb-2008  mjf Sync with HEAD.
 1.28.50.1 23-Mar-2008  matt sync with HEAD
 1.29.10.1 11-Mar-2010  yamt sync with head
 1.31.8.1 17-Feb-2011  bouyer Sync with HEAD
 1.31.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.31.4.1 05-Mar-2011  rmind sync with head
 1.32.8.1 18-Feb-2012  mrg merge to -current.
 1.32.4.1 17-Apr-2012  yamt sync with head
 1.2 31-Mar-1997  gwr Need a common <m68k/pcb.h> for gdb.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.27 03-Nov-2002  chs merge pmap.h for all 4k-page motorola-MMU (or compatible) m68k platforms.
 1.26 22-Sep-2002  chs it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.25 22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.24 10-Sep-2001  chris branches: 1.24.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.23 26-May-2001  chs branches: 1.23.2; 1.23.4;
replace vm_page_t with struct vm_page *.
 1.22 26-May-2001  chs replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
 1.21 16-May-2001  scw Finally nobble the bus_dmamap_sync() problem with osiop(4).

Basically, bus_dmamap_sync() `PREREAD' needs to flush the cache
for the start and end of the region if it is not aligned to
a cacheline boundary, otherwise a subsequent POSTREAD can *purge*
valid data which was in the cacheline but *outside* the region
passed to bus_dmamap_sync().

Bus snooping doesn't always help here because osiop(4) calls
bus_dmamap_sync() with POSTREAD even if no data was actually
transferred! (And we can't rely on snooping on the 68060 models anyway).
 1.20 22-Apr-2001  thorpej Undo a misguided previous change to the pmap_update() API.
 1.19 22-Apr-2001  thorpej Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
 1.18 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.17 22-Sep-2000  scw branches: 1.17.2;
Add pmap_zero_page_uncached(), and the PMAP_PAGEIDLEZERO macro.
 1.16 27-May-2000  scw Nuke HP_SEG_SIZE. Use NBSEG instead (as used by m68k_trunc_seg() et al),
which takes into account the mmu type.
 1.15 18-Mar-2000  scw branches: 1.15.2;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.14 26-Feb-1999  is branches: 1.14.8; 1.14.16;
MVME68K specific part of fix for PR 6152
 1.13 16-Jan-1999  chuck MNN is no longer optional
 1.12 22-Aug-1998  scw vm_offset -> [vp]addr_t and vm_size_t -> [vp]size_t
While I'm here, expunge use of 'register' storage class.
 1.11 21-Feb-1998  scw Whoops, cgd's pmap_map change got lost! Put it back.
 1.10 21-Feb-1998  scw Implement changes for MACHINE_NEW_NONCONTIG and UVM.
 1.9 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.8 06-Jan-1998  thorpej Garbage-collect pm_stchanged; it's not used by anything.
 1.7 06-Jan-1998  thorpej Garbage-collect use of the PCB's copy of the user segment table pointer.
 1.6 03-Jan-1998  thorpej Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
 1.5 01-Jan-1998  thorpej Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
 1.4 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.3 09-Oct-1997  scw Added support for VMEbus RAM cards via MACHINE_NONCONTIG.
The kernel should still compile and run without it, but I've
put the config option in std.mvme68k so it's built like this
as standard.
 1.2 21-Jun-1997  scw branches: 1.2.4;
Deleted m68k_round_seg and m68k_trunc_seg. They're in common m68k/param.h now.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2.4.1 14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.14.16.3 18-Mar-2000  scw MI VMEbus glue more or less complete.
Kernels now compiled with -Wall, etc. (lots of fixes needed for this)
All MD drivers now bus_spaced/bus_dma'd. The two SCSI drivers should
be replaced with bus_spaced MI versions at some point.
 1.14.16.2 14-Mar-2000  scw s/v/va/
 1.14.16.1 13-Mar-2000  scw Add constraints for bus_dmamem_map() to allow allocation from onboard
RAM only, and/or restricting physical addresses to 24-bits.

Also make bus_dmamem_map() actually honour the BUS_DMA_COHERENT flag.
 1.14.8.2 23-Apr-2001  bouyer Sync with HEAD.
 1.14.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.15.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.17.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.23.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.23.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.23.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.24.4.6 11-Nov-2002  nathanw Catch up to -current
 1.24.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.24.4.4 02-Jul-2002  nathanw Adjust whitespace so that this matches the trunk.
 1.24.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.24.4.2 17-Nov-2001  scw Kernel support for Scheduler Activations on m68k-based ports using
mvme68k as a testbed.

Boots multi-user on an mvme162, although userland support for SA is not
yet integrated/tested.
 1.24.4.1 10-Sep-2001  scw file pmap.h was added on branch nathanw_sa on 2001-11-17 13:07:54 +0000
 1.2 12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.1 07-Aug-2002  briggs branches: 1.1.2; 1.1.4; 1.1.6; 1.1.202; 1.1.204;
Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.1.204.1 10-Jun-2019  christos Sync with HEAD
 1.1.202.1 28-Jul-2018  pgoyette Sync with HEAD
 1.1.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.1 07-Aug-2002  jdolecek file pmc.h was added on branch kqueue on 2002-09-06 08:38:00 +0000
 1.1.4.2 31-Aug-2002  gehenna catch up with -current.
 1.1.4.1 07-Aug-2002  gehenna file pmc.h was added on branch gehenna-devsw on 2002-08-31 13:45:28 +0000
 1.1.2.2 13-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 07-Aug-2002  nathanw file pmc.h was added on branch nathanw_sa on 2002-08-13 02:18:33 +0000
 1.3 13-Jul-2002  scw m68k syscall rototill:

- Switch all m68k-based ports over to __HAVE_SYSCALL_INTERN.
- Add systrace glue.
- Define struct mdproc in <m68k/proc.h> instead of <machine/proc.h>.
(They were all defined exactly the same anyway, other than a couple
of the MDP_* flags.)
 1.2 27-Jul-2000  scw branches: 1.2.4; 1.2.8; 1.2.16;
G/C some obsolete HP-UX related flags, and prevent multiple
inclusion while I'm here.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck branches: 1.1.1.1.34;
mvme68k port -- for the motorola vme147 m68030 card
 1.1.1.1.34.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.2.16.1 16-Jul-2002  gehenna catch up with -current.
 1.2.8.2 01-Aug-2002  nathanw Catch up to -current.
 1.2.8.1 17-Nov-2001  scw Kernel support for Scheduler Activations on m68k-based ports using
mvme68k as a testbed.

Boots multi-user on an mvme162, although userland support for SA is not
yet integrated/tested.
 1.2.4.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.18 23-Sep-2013  tsutsui Make MVMEPROM_ARG2() macro take two args in a single asm statement.

Fixes a problem that a wrong address is passed to the MVMEPROM outstr
function (then caused garbages on screen) after we switched to gcc-4.5.
Reported and confirmed by Andrew Gillham on port-mvme68k@:
http://mail-index.NetBSD.org/port-mvme68k/2013/09/17/msg000084.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/19/msg000085.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000095.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000097.html
No error on "build.sh -m mvme68k build" builds.

Should be pulled up to netbsd-6 branches.
 1.17 24-Dec-2005  perry branches: 1.17.112; 1.17.118; 1.17.122; 1.17.124; 1.17.128; 1.17.134;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.16 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.15 11-Dec-2005  christos merge ktrace-lwp.
 1.14 10-Dec-2003  agc branches: 1.14.16;
Modify the licences of code written by Theo De Raadt from a 4-clause
to a 2-clause licence (retaining UCB clauses (1) and (2)), per PR
22409 from Joel Baker, approved by Theo de Raadt, and ratified by
myself - the only discrepancy being the handling of the original
clause 3 in src/usr.sbin/yppoll/yppoll.c.
 1.13 24-Oct-2003  scw gcc3 bitches about a gratuitous use of __CONCAT(), so just delete it.
 1.12 09-Nov-2001  scw branches: 1.12.16;
The success/failure status for some Bug syscalls is indicated by the Z
flag in the status register, not by a value on the stack.

How this ever worked for so long is beyond me...
 1.11 14-Apr-2001  scw branches: 1.11.2; 1.11.6; 1.11.8;
Fix bootline argument passing from the Bug PROM.
 1.10 05-Dec-2000  scw branches: 1.10.2;
Add some #defines for offsets into the bugargs structure, and make the
register names usable within assembly code.
 1.9 04-Dec-2000  scw s/a6/fp/ again...
 1.8 04-Dec-2000  scw Prefix the register names with `%'.
 1.7 30-Nov-2000  scw Ditch an extra % in a register prefix, and s/a6/fp/
 1.6 29-Nov-2000  scw Add register prefixes.
 1.5 01-Aug-1998  scw branches: 1.5.14;
Changes to keep lint happy.
In particular, fix some Makefiles so the include
paths are passed to lint.
 1.4 05-Nov-1997  thorpej asm volatile -> __asm__ __volatile
 1.3 30-Aug-1996  thorpej branches: 1.3.14;
RCS id police.
 1.2 19-May-1996  chuck move rb_nosym/rb_sboot here
 1.1 16-May-1996  chuck import Theo's prom.h from OpenBSD. includes my recent changes.
 1.3.14.1 05-Nov-1997  thorpej Update from trunk: asm volatile -> __asm__ __volatile
 1.5.14.2 21-Apr-2001  bouyer Sync with HEAD
 1.5.14.1 08-Dec-2000  bouyer Sync with HEAD.
 1.10.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.11.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.11.8.1 14-Apr-2001  nathanw file prom.h was added on branch nathanw_sa on 2002-01-08 00:26:34 +0000
 1.11.6.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.11.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.12.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.12.16.1 03-Aug-2004  skrll Sync with HEAD
 1.14.16.1 21-Jun-2006  yamt sync with head.
 1.17.134.1 23-Sep-2013  riz Pull up following revision(s) (requested by tsutsui in ticket #954):
sys/arch/mvme68k/stand/libbug/outln.c: revision 1.4
sys/arch/mvme68k/stand/libsa/Makefile.inc: revision 1.6
sys/arch/mvme68k/stand/Makefile.booters: revision 1.24
sys/arch/mvme68k/include/prom.h: revision 1.18
sys/arch/mvme68k/stand/libsa/Makefile: revision 1.34
sys/arch/mvme68k/stand/libbug/outstr.c: revision 1.4
Explicitly link SRT0.o (Standalone RunTime startup code) first.
This is my fault on changes to make mvme68k bootloaders use MI libsa:
http://mail-index.netbsd.org/source-changes/2011/01/02/msg016539.html
MVME PROM requires raw binaries (by objcopy -O binary) so we have to
make sure the entry point is located at the first address of the binaries.
The problem (6.1 netboot fails with an illegal instruction message)
is reported by Andrew Gillham on port-mvme68k@:
http://mail-index.netbsd.org/port-mvme68k/2013/09/17/msg000082.html
Note mvme68k bootloadres in netbsd-6 still have another bug triggered
by gcc-4.5.
Should be pulled up to netbsd-6 branches.
Make MVMEPROM_ARG2() macro take two args in a single asm statement.
Fixes a problem that a wrong address is passed to the MVMEPROM outstr
function (then caused garbages on screen) after we switched to gcc-4.5.
Reported and confirmed by Andrew Gillham on port-mvme68k@:
http://mail-index.NetBSD.org/port-mvme68k/2013/09/17/msg000084.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/19/msg000085.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000095.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000097.html
No error on "build.sh -m mvme68k build" builds.
Should be pulled up to netbsd-6 branches.
 1.17.128.1 18-May-2014  rmind sync with head
 1.17.124.1 26-Sep-2013  riz Pull up following revision(s) (requested by tsutsui in ticket #954):
sys/arch/mvme68k/stand/libbug/outln.c: revision 1.4
sys/arch/mvme68k/stand/libsa/Makefile.inc: revision 1.6
sys/arch/mvme68k/stand/Makefile.booters: revision 1.24
sys/arch/mvme68k/include/prom.h: revision 1.18
sys/arch/mvme68k/stand/libsa/Makefile: revision 1.34
sys/arch/mvme68k/stand/libbug/outstr.c: revision 1.4
Explicitly link SRT0.o (Standalone RunTime startup code) first.
This is my fault on changes to make mvme68k bootloaders use MI libsa:
http://mail-index.netbsd.org/source-changes/2011/01/02/msg016539.html
MVME PROM requires raw binaries (by objcopy -O binary) so we have to
make sure the entry point is located at the first address of the binaries.
The problem (6.1 netboot fails with an illegal instruction message)
is reported by Andrew Gillham on port-mvme68k@:
http://mail-index.netbsd.org/port-mvme68k/2013/09/17/msg000082.html
Note mvme68k bootloadres in netbsd-6 still have another bug triggered
by gcc-4.5.
Should be pulled up to netbsd-6 branches.
Make MVMEPROM_ARG2() macro take two args in a single asm statement.
Fixes a problem that a wrong address is passed to the MVMEPROM outstr
function (then caused garbages on screen) after we switched to gcc-4.5.
Reported and confirmed by Andrew Gillham on port-mvme68k@:
http://mail-index.NetBSD.org/port-mvme68k/2013/09/17/msg000084.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/19/msg000085.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000095.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000097.html
No error on "build.sh -m mvme68k build" builds.
Should be pulled up to netbsd-6 branches.
 1.17.122.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.118.1 23-Sep-2013  riz Pull up following revision(s) (requested by tsutsui in ticket #954):
sys/arch/mvme68k/stand/libbug/outln.c: revision 1.4
sys/arch/mvme68k/stand/libsa/Makefile.inc: revision 1.6
sys/arch/mvme68k/stand/Makefile.booters: revision 1.24
sys/arch/mvme68k/include/prom.h: revision 1.18
sys/arch/mvme68k/stand/libsa/Makefile: revision 1.34
sys/arch/mvme68k/stand/libbug/outstr.c: revision 1.4
Explicitly link SRT0.o (Standalone RunTime startup code) first.
This is my fault on changes to make mvme68k bootloaders use MI libsa:
http://mail-index.netbsd.org/source-changes/2011/01/02/msg016539.html
MVME PROM requires raw binaries (by objcopy -O binary) so we have to
make sure the entry point is located at the first address of the binaries.
The problem (6.1 netboot fails with an illegal instruction message)
is reported by Andrew Gillham on port-mvme68k@:
http://mail-index.netbsd.org/port-mvme68k/2013/09/17/msg000082.html
Note mvme68k bootloadres in netbsd-6 still have another bug triggered
by gcc-4.5.
Should be pulled up to netbsd-6 branches.
Make MVMEPROM_ARG2() macro take two args in a single asm statement.
Fixes a problem that a wrong address is passed to the MVMEPROM outstr
function (then caused garbages on screen) after we switched to gcc-4.5.
Reported and confirmed by Andrew Gillham on port-mvme68k@:
http://mail-index.NetBSD.org/port-mvme68k/2013/09/17/msg000084.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/19/msg000085.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000095.html
http://mail-index.NetBSD.org/port-mvme68k/2013/09/22/msg000097.html
No error on "build.sh -m mvme68k build" builds.
Should be pulled up to netbsd-6 branches.
 1.17.112.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 14-Oct-2002  chs merge pte.h for m68k w/ motorola or compatible MMU
(only 4k-page platforms so far).
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck branches: 1.1.1.1.54;
mvme68k port -- for the motorola vme147 m68030 card
 1.1.1.1.54.1 18-Oct-2002  nathanw Catch up to -current.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file rwlock.h was initially added on branch newlock2.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file rwlock.h was added on branch yamt-lazymbuf on 2007-02-26 09:07:34 +0000
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 13-Sep-1998  mycroft Minor change.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.3 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.2 22-Jan-1999  mycroft Standardize format.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 11-Dec-2005  christos branches: 1.2.18;
merge ktrace-lwp.
 1.1 11-Jul-2005  christos branches: 1.1.6;
Add m68k sunos_machdep.h
 1.1.6.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.6.1 11-Jul-2005  skrll file sunos_machdep.h was added on branch ktrace-lwp on 2005-11-10 13:57:47 +0000
 1.2.18.2 21-Jun-2006  yamt sync with head.
 1.2.18.1 11-Dec-2005  yamt file sunos_machdep.h was added on branch yamt-lazymbuf on 2006-06-21 14:54:01 +0000
 1.4 19-Dec-2018  maxv Remove compat_svr4 and compat_svr4_32, as discussed on tech-kern@ recently,
but also as discussed several times in the past.
 1.3 09-Nov-1999  kleink branches: 1.3.42; 1.3.220;
Rip protection against multiple inclusion from wrapper headers.
 1.2 29-Apr-1999  kleink branches: 1.2.2; 1.2.4; 1.2.6; 1.2.10;
Pull in the right generic m68k header. (Where was my mind?)
 1.1 19-Apr-1999  kleink Add COMPAT_SVR4 for m68k.
 1.2.10.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2.6.1 15-Nov-1999  fvdl Sync with -current
 1.2.4.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.2.2.1 21-Jun-1999  thorpej Sync w/ -current.
 1.3.220.1 10-Jun-2019  christos Sync with HEAD
 1.3.42.1 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.16 16-Jan-2024  thorpej Switch mvme68k over to the common interrupt dispatch code and G/C
__HAVE_LEGACY_INTRCNT.
 1.15 01-Apr-2021  simonb Define __HAVE_LEGACY_INTRCNT to indicate this port uses legacy intrcnt
interrupt accounting.
 1.14 20-Jan-2008  joerg branches: 1.14.110; 1.14.112;
Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.13 07-Jan-2008  tsutsui Add timecounter(9) support for mvme68k.

Based on a patch from Garrett D'Amore and several tweaks by me.
Compile tested only, but reviewed by joerg@ and
no objection from scw@ on port-mvme68k.
 1.12 17-Oct-2007  garbled branches: 1.12.2; 1.12.8;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.11 14-Jul-2007  ad branches: 1.11.10;
Generic soft interrupts are mandatory.
 1.10 09-Sep-2006  gdamore branches: 1.10.10; 1.10.18;
Convet to MI todr. Ok steve@.
 1.9 28-Feb-2002  simonb branches: 1.9.32; 1.9.50; 1.9.62;
Use "#define<tab>".
 1.8 14-Jan-2001  thorpej branches: 1.8.4; 1.8.8;
Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
 1.7 25-Jul-2000  scw Nuke __BROKEN_DK_ESTABLISH, and add __HAVE_DEVICE_REGISTER.
 1.6 23-Jul-2000  scw __BROKEN_CONFIG_UNIT_USAGE is no longer required for mvme68k.
 1.5 16-May-2000  thorpej Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc. Those
platforms should be changed to use device_register(). In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
 1.4 05-Feb-2000  cgd add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
wrong things with device configuration data "cf_unit" information.
 1.3 18-Mar-1997  thorpej branches: 1.3.24;
Get rid of __BDEVSW_DUMP_OLD_TYPE and __BROKEN_INDIRECT_CONFIG.
 1.2 05-Dec-1996  cgd First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.3.24.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.3.24.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.8.8.1 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.8.4.1 16-Mar-2002  jdolecek Catch up with -current.
 1.9.62.1 18-Nov-2006  ad Sync with head.
 1.9.50.1 14-Sep-2006  yamt sync with head.
 1.9.32.3 21-Jan-2008  yamt sync with head
 1.9.32.2 03-Sep-2007  yamt sync with head.
 1.9.32.1 30-Dec-2006  yamt sync with head.
 1.10.18.1 03-Oct-2007  garbled Sync with HEAD
 1.10.10.1 15-Jul-2007  ad Sync with head.
 1.11.10.3 23-Mar-2008  matt sync with HEAD
 1.11.10.2 09-Jan-2008  matt sync with HEAD
 1.11.10.1 06-Nov-2007  matt sync with HEAD
 1.12.8.2 23-Jan-2008  bouyer Sync with HEAD.
 1.12.8.1 08-Jan-2008  bouyer Sync with HEAD
 1.12.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.14.112.1 03-Apr-2021  thorpej Sync with HEAD.
 1.14.110.1 03-Apr-2021  thorpej Sync with HEAD.
 1.2 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2 16-Jan-2024  thorpej Switch mvme68k over to the common interrupt dispatch code and G/C
__HAVE_LEGACY_INTRCNT.
 1.1 13-Jan-2024  thorpej Switch mvme68k to the common m68k vector table.
 1.39 08-Feb-2025  tsutsui Bump DFLSSIZ from 512KB to 2MB on all hp300 pmap m68k ports.

Some modern applications could require 512KB buffer on stack and
no particular comment on port-m68k@:
https://mail-index.netbsd.org/port-m68k/2025/02/02/msg000893.html
 1.38 01-Feb-2020  tsutsui branches: 1.38.30;
Add MAX/MIN PAGE_SIZE and PAGE_SHIFT definitions of m68k for jemalloc(3).

Background:
- All m68k ports have fixed PAGE_SIZE value in their kernels,
but each port uses different PAGE_SIZE value (4096 or 8192)
due to historical reasons.
- Currently module(7) binaries are built per each port so
all m68k kernel sources don't support run-time variable PAGE_SIZE.
- MI <uvm/uvm_param.h> assumes that the port supports a variable
PAGE_SIZE on module(7) builds if both MAX_PAGE_SIZE and MIN_PAGE_SIZE
are defined and they have different values.
- On the other hand, jemalloc(3) checks MAX_PAGE_SHIFT in
src/external/bsd/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h
for internal optimization.
- m68k ports share userland binaries (especially pkgsrc binaries)
among all ports, so we need to define MAX_PAGE_SHIFT as 13 to
support m68k ports where PAGE_SIZE==8192.
(though this would affect only if static binaries built on
4k page hosts are executed on 8k page hosts)

To solve these inconsistency on PAGE_SIZE definitions,
we should have an independent PAGE_SIZE related definitions
for userland, but it requires major reorganization.
For now (especially for netbsd-9) we define MAX/MIN PAGE_SIZE and
PAGE_SHIFT values in <m68k/vmparam.h> only in !defined(_KERNEL) case.

Discussed on source-changes-d@ and tech-kern@ with christos@ and thorpej@:
https://mail-index.netbsd.org/source-changes-d/2020/01/thread1.html#012035
https://mail-index.netbsd.org/tech-kern/2020/01/thread1.html#025954

Should be pulled up to netbsd-9.
 1.37 28-Jun-2019  tsutsui branches: 1.37.2; 1.37.4;
Fix lingering page size comments.

Pointed out by christos@ on port-m68k@:
http://mail-index.netbsd.org/port-m68k/2019/06/06/msg000726.html

XXX: we also need MAX_PAGE_SIZE in somewhere for newer jemalloc?
 1.36 02-Feb-2017  rin branches: 1.36.14;
PR port-mac68k/51923
Bump default MAXTSIZ to 32MB for m68k ports, which allos us to use GCC 5.4 on
GENERIC kernels.
Ok jklos
 1.35 02-Feb-2017  rin PR port-mac68k/51923
Remove unused SYSPTSIZE and USRPTSIZE from m68k ports.
Ok jklos
 1.34 08-Feb-2011  rmind branches: 1.34.14; 1.34.32; 1.34.36; 1.34.40;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.33 02-Jan-2011  tsutsui branches: 1.33.2; 1.33.4;
Remove "last kernel PT page" stuff derived from hp300 where PA != VA.

Compile test only, but same changes as other PA == VA m68k ports like
luna68k, news68k, and x68k used for a decade.
 1.32 06-Nov-2010  uebayasi Remove incomplete, never worked dynamic run-time memory registration
(uvm_page_physload(9)). This functionality will be re-added later.
 1.31 08-Dec-2009  tsutsui branches: 1.31.2; 1.31.4;
Use PGSHIFT from <machine/param.h> for PAGE_SHIFT.
We can assume PGSHIFT is always constant on current
m68k pmap_motorola implementation.
Also fix some leftover HP300 comments on some ports.
 1.30 26-Aug-2009  thorpej Minor tweak to the pv_table management in the Hibler-derived m68k pmaps:
The head of the list is now a pv_header, which contains the first pv_entry
as well as a 16-bit attributes field (replaces the pmap_attributes array
plus the pv_entry::pv_flags field) as a 16-bit count of caller-specified
cache-inhibited mappings.

Tested on hp300 (shared pmap_motorola.c), changes to atari and amiga copies
are purely mechanical.
 1.29 06-Mar-2009  joerg Remove SHMMAXPGS from all kernel configs. Dynamically compute the
initial limit as 1/4 of the physical memory. Ensure the limit is at
least 1024 pages, the old default on most platforms.
 1.28 25-Oct-2007  yamt branches: 1.28.20; 1.28.28; 1.28.34;
defparam PAGER_MAP_SIZE.
 1.27 11-Dec-2005  christos branches: 1.27.30; 1.27.48; 1.27.50; 1.27.54;
merge ktrace-lwp.
 1.26 01-Apr-2005  yamt branches: 1.26.2;
merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
 1.25 07-Aug-2003  agc branches: 1.25.8; 1.25.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.24 02-Apr-2003  thorpej branches: 1.24.2;
Use PAGE_SIZE rather than NBPG.
 1.23 10-Dec-2002  thorpej Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
 1.22 15-Nov-2001  soren MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
 1.21 01-May-2001  thorpej branches: 1.21.2; 1.21.8;
Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
 1.20 29-Apr-2001  thorpej Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM. These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg. As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now). Changes to other pmap
modules will follow.
 1.19 29-Apr-2001  scw Compute PAGER_MAP_SIZE at runtime to avoid needlessly crippling large-
memory models for the benefit of small-memory models.

Uses a heuristic of min(onboard_ram_size/2, 16MB).
 1.18 14-Apr-2001  scw Define a PAGER_MAP_SIZE of 4MB for the benefit of low-memory models.
XXX: This may still not be low enough for models with less than 8MB RAM...
 1.17 01-Dec-2000  tsutsui branches: 1.17.2;
Remove unused pcbb() macro.
 1.16 14-Nov-2000  thorpej We use 4K pages on the mvme68k. Override PAGE_SIZE and friends to
be compile-time constants.
 1.15 27-Jul-2000  scw Bump DFLDSIZ to 32MB since 16MB is no longer enough for some
parts of `make build'.
 1.14 11-Feb-2000  thorpej Update for the NKMEMPAGES changes.
 1.13 26-Jan-2000  tsutsui Remove obsoleted macros.
 1.12 04-Dec-1999  ragge CL* discarding.
 1.11 26-Apr-1999  thorpej branches: 1.11.2; 1.11.8;
Garbage-collect the VM_MBUF_SIZE constant. Instead, use the size
(nmbclusters * mclbytes), so that the right amount of KVA space is
allocated if those variables are patched.
 1.10 16-Jan-1999  chuck branches: 1.10.6;
MNN is no longer optional
 1.9 22-Aug-1998  scw vm_offset -> [vp]addr_t and vm_size_t -> [vp]size_t
While I'm here, expunge use of 'register' storage class.
 1.8 08-Jul-1998  thorpej Put VMEbus RAM on a lower priority free list, since it's much slower (because
the MVME-147 doesn't cache access to any VMEbus space).
 1.7 18-Mar-1998  thorpej Make MACHINE_NEW_NONCONTIG non-optional.
 1.6 21-Feb-1998  scw Implement changes for MACHINE_NEW_NONCONTIG and UVM.
 1.5 12-Oct-1997  scw Move MACHINE_NONCONTIG from std.mvme68k to <machine/vmparam.h> as per
Jason's request.
 1.4 12-Jul-1997  perry branches: 1.4.2;
update comment from 1981 on memory and disk prices -- pr-2754 from Curt Sampson
 1.3 12-Jun-1997  mrg bring mrg-vm-swap2 onto mainilne.
 1.2 26-Apr-1996  chuck branches: 1.2.6; 1.2.10;
cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
 1.1 25-Jul-1995  chuck branches: 1.1.1;
Initial revision
 1.1.1.1 25-Jul-1995  chuck mvme68k port -- for the motorola vme147 m68030 card
 1.2.10.1 04-May-1997  mrg re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
 1.2.6.1 12-Feb-1997  mrg initial work for dynamic swap additions.
 1.4.2.1 14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.10.6.2 06-Aug-1999  chs take an initial guess at UBC parameters.
 1.10.6.1 21-Jun-1999  thorpej Sync w/ -current.
 1.11.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.11.2.4 21-Apr-2001  bouyer Sync with HEAD
 1.11.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.11.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.11.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.17.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.21.8.3 11-Dec-2002  thorpej Sync with HEAD.
 1.21.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.21.8.1 01-May-2001  nathanw file vmparam.h was added on branch nathanw_sa on 2002-01-08 00:26:34 +0000
 1.21.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.24.2.4 01-Apr-2005  skrll Sync with HEAD.
 1.24.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.24.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.24.2.1 03-Aug-2004  skrll Sync with HEAD
 1.25.10.1 23-Feb-2005  yamt change kernel va layout, following mac68k.
 1.25.8.1 29-Apr-2005  kent sync with -current
 1.26.2.1 27-Oct-2007  yamt sync with head.
 1.27.54.1 13-Nov-2007  bouyer Sync with HEAD
 1.27.50.1 06-Nov-2007  matt sync with HEAD
 1.27.48.1 28-Oct-2007  joerg Sync with HEAD.
 1.27.30.1 03-Dec-2007  ad Sync with HEAD.
 1.28.34.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.28.28.1 28-Apr-2009  skrll Sync with HEAD.
 1.28.20.3 11-Mar-2010  yamt sync with head
 1.28.20.2 16-Sep-2009  yamt sync with head
 1.28.20.1 04-May-2009  yamt sync with head.
 1.31.4.1 05-Mar-2011  rmind sync with head
 1.31.2.1 26-Apr-2010  uebayasi Remove the unfinished code to add a memory segment after uvm_page_init().
It doesn't even compile.

(In the future, we should allocate struct vm_page [] on the added memory
segment for NUMA's sake.)
 1.33.4.1 17-Feb-2011  bouyer Sync with HEAD
 1.33.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.34.40.1 21-Apr-2017  bouyer Sync with HEAD
 1.34.36.1 20-Mar-2017  pgoyette Sync with HEAD
 1.34.32.1 05-Feb-2017  skrll Sync with HEAD
 1.34.14.1 03-Dec-2017  jdolecek update from HEAD
 1.36.14.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.37.4.1 29-Feb-2020  ad Sync with head.
 1.37.2.1 10-Feb-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #682):

sys/arch/next68k/include/vmparam.h: revision 1.27
sys/arch/mac68k/include/vmparam.h: revision 1.46
sys/arch/sun3/include/vmparam.h: revision 1.38
sys/arch/m68k/include/vmparam.h: revision 1.1
sys/arch/hp300/include/vmparam.h: revision 1.41
sys/arch/m68k/include/Makefile: revision 1.32
sys/arch/amiga/include/vmparam.h: revision 1.48
distrib/sets/lists/comp/ad.m68k: revision 1.63
sys/arch/x68k/include/vmparam.h: revision 1.40
sys/arch/mvme68k/include/vmparam.h: revision 1.38
sys/arch/luna68k/include/vmparam.h: revision 1.23
sys/arch/news68k/include/vmparam.h: revision 1.23
sys/arch/atari/include/vmparam.h: revision 1.34
sys/arch/cesfic/include/vmparam.h: revision 1.19

Add MAX/MIN PAGE_SIZE and PAGE_SHIFT definitions of m68k for jemalloc(3).

Background:
- All m68k ports have fixed PAGE_SIZE value in their kernels,
but each port uses different PAGE_SIZE value (4096 or 8192)
due to historical reasons.
- Currently module(7) binaries are built per each port so
all m68k kernel sources don't support run-time variable PAGE_SIZE.
- MI <uvm/uvm_param.h> assumes that the port supports a variable
PAGE_SIZE on module(7) builds if both MAX_PAGE_SIZE and MIN_PAGE_SIZE
are defined and they have different values.
- On the other hand, jemalloc(3) checks MAX_PAGE_SHIFT in
src/external/bsd/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h
for internal optimization.
- m68k ports share userland binaries (especially pkgsrc binaries)
among all ports, so we need to define MAX_PAGE_SHIFT as 13 to
support m68k ports where PAGE_SIZE==8192.
(though this would affect only if static binaries built on
4k page hosts are executed on 8k page hosts)

To solve these inconsistency on PAGE_SIZE definitions,
we should have an independent PAGE_SIZE related definitions
for userland, but it requires major reorganization.

For now (especially for netbsd-9) we define MAX/MIN PAGE_SIZE and
PAGE_SHIFT values in <m68k/vmparam.h> only in !defined(_KERNEL) case.

Discussed on source-changes-d@ and tech-kern@ with christos@ and thorpej@:
https://mail-index.netbsd.org/source-changes-d/2020/01/thread1.html#012035
https://mail-index.netbsd.org/tech-kern/2020/01/thread1.html#025954

Should be pulled up to netbsd-9.
 1.38.30.1 02-Aug-2025  perseant Sync with HEAD
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 08-May-2004  kleink branches: 1.1.2;
Factor out W{CHAR,INT}_{MAX,MIN} into their own header file.
 1.1.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.2 03-Aug-2004  skrll Sync with HEAD
 1.1.2.1 08-May-2004  skrll file wchar_limits.h was added on branch ktrace-lwp on 2004-08-03 10:38:08 +0000
 1.13 29-Mar-2008  tsutsui Split softc and device_t for zsc(4) and its children.

XXX we should restructure MI APIs and make it really machine independent.
 1.12 12-Jan-2008  tsutsui branches: 1.12.6;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.11 18-Nov-2007  he branches: 1.11.6;
Ensure that file ends with a newline.
 1.10 07-Nov-2007  ad Merge tty changes from the vmlocking branch.
 1.9 11-Dec-2005  christos branches: 1.9.30; 1.9.48; 1.9.50; 1.9.54; 1.9.56;
merge ktrace-lwp.
 1.8 07-Aug-2003  agc branches: 1.8.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.7 31-May-2001  scw branches: 1.7.8; 1.7.24;
Deprecate intrcnt/intrnames in favour of the generic evcnt(9) interface.
 1.6 10-Dec-2000  scw branches: 1.6.2;
Define `splzs()' to be `splserial()' instead of `spl4()', which was
wrong anyway since it blindly set SPL to 4 regardless of the prevailing
level.
 1.5 20-Jul-2000  scw Implement generic soft interrupts for mvme68k.
Based on Jason Thorpe's Alpha implementation.
 1.4 17-Dec-1996  gwr branches: 1.4.30; 1.4.42;
Adapt to the new version of dev/ic/z8530*
(Note: now define zsc_softc here.)
 1.3 13-Oct-1996  christos backout previous kprintf change
 1.2 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.1 26-Apr-1996  chuck cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
 1.4.42.1 22-Jul-2000  scw Pullup from trunk: 1.5
Approved by: thorpej

Implement generic soft interrupts for mvme68k.
 1.4.30.2 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.4.30.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.6.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.7.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.24.1 03-Aug-2004  skrll Sync with HEAD
 1.7.8.2 31-May-2001  scw Deprecate intrcnt/intrnames in favour of the generic evcnt(9) interface.
 1.7.8.1 31-May-2001  scw file z8530var.h was added on branch nathanw_sa on 2001-05-31 18:46:10 +0000
 1.8.16.3 21-Jan-2008  yamt sync with head
 1.8.16.2 07-Dec-2007  yamt sync with head
 1.8.16.1 15-Nov-2007  yamt sync with head.
 1.9.56.2 18-Feb-2008  mjf Sync with HEAD.
 1.9.56.1 19-Nov-2007  mjf Sync with HEAD.
 1.9.54.2 18-Nov-2007  bouyer Sync with HEAD
 1.9.54.1 13-Nov-2007  bouyer Sync with HEAD
 1.9.50.3 23-Mar-2008  matt sync with HEAD
 1.9.50.2 09-Jan-2008  matt sync with HEAD
 1.9.50.1 08-Nov-2007  matt sync with -HEAD
 1.9.48.2 21-Nov-2007  joerg Sync with HEAD.
 1.9.48.1 11-Nov-2007  joerg Sync with HEAD.
 1.9.30.1 03-Dec-2007  ad Sync with HEAD.
 1.11.6.1 19-Jan-2008  bouyer Sync with HEAD
 1.12.6.1 03-Apr-2008  mjf Sync with HEAD.

RSS XML Feed