Home | History | Annotate | Download | only in sun3x
History log of /src/sys/arch/sun3/sun3x/machdep.c
RevisionDateAuthorComments
 1.141  11-Jun-2025  andvar s/congiguous/contiguous/ in comment.
 1.140  20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.139  11-Jun-2020  ad uvm_availmem(): give it a boolean argument to specify whether a recent
cached value will do, or if the very latest total must be fetched. It can
be called thousands of times a second and fetching the totals impacts not
only the calling LWP but other CPUs doing unrelated activity in the VM
system.
 1.138  31-Dec-2019  ad Rename uvm_free() -> uvm_availmem().
 1.137  21-Dec-2019  ad uvmexp.free -> uvm_free()
 1.136  03-Jun-2019  msaitoh Fix typo in comment(s/similiar/similar/).
 1.135  24-Mar-2014  christos branches: 1.135.10; 1.135.20; 1.135.30;
use cpu_{g,s}etmodel
 1.134  06-Sep-2013  tsutsui Tab/whitespace cleanup.
 1.133  28-Jul-2012  matt branches: 1.133.2; 1.133.4;
Remove declartions of physmem
 1.132  27-Jul-2012  matt Remove safepri and use IPL_SAFEPRI instead. This may be defined in a MD
header file (if not, a value of 0 is assmued).
 1.131  12-Dec-2011  mrg implement bdev_size(9) wrapper around d_psize() routine, so we can take
the device lock in relevant places. avoid doing so while actually dumping.

tested i386 crash dumps still work, and that all touched files compile.

fixes PR#45705.
 1.130  14-Jun-2011  tsutsui branches: 1.130.2; 1.130.6;
Fix merge botch. KERNBASE macro was split into KERNBASE3 and KERNBASE3X
for kernel, and was replaced with kernbase constant for possible reference
of USRSTACK in module(7).
 1.129  12-Jun-2011  rmind Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
 1.128  16-May-2011  tsutsui branches: 1.128.2;
- merge and move pasted m68k MD setreg() functions into m68k/m68k_machdep.c
- move m68881_save() and m68881_restore() declarations into <m68k/m68k.h>

Briefly tested and no obvious breakage on atari, sun3, and x68k.
 1.127  04-Mar-2011  joerg Refactor ps_strings access. Based on PK_32, write either the normal
version or the 32bit compat layout in execve1. Introduce a new function
copyin_psstrings for reading it back from userland and converting it to
the native layout. Refactor procfs to share most of the code with the
kern.proc_args sysctl handler.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.126  08-Feb-2011  rmind 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.125  17-Jan-2011  tsutsui branches: 1.125.2;
Explicitly include <machine/pcb.h> for struct pcb.
 1.124  15-Oct-2010  tsutsui branches: 1.124.2;
Make common kernel module binaries work on both sun3 and sun3x.
Tested on 3/160 (on TME) and (real) 3/80.

XXX: module files can be loaded only on single user?
 1.123  08-Feb-2010  joerg branches: 1.123.2;
Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.122  10-Dec-2009  matt branches: 1.122.2;
Change u_long to vaddr_t/vsize_t in exec code where appropriate (mostly
involves setregs and vmcmds). Should result in no code differences.
 1.121  21-Nov-2009  rmind Use lwp_getpcb() on sparc{64} and sun2/3 MD code, clean from struct user usage.
 1.120  10-Nov-2009  he Add a zero argument to pmap_kenter_pa() invocations.
According to cegger@ this is the right thing to do for the moment.
 1.119  15-Aug-2009  matt Include <sys/exec_aout.h> explicitly instead of relying on <sys/exec.h> to
do it for us.
 1.118  13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.117  21-Jan-2009  he branches: 1.117.2;
Re-adapt to the changed return types for major() and minor().
 1.116  12-Jan-2009  tsutsui Use PRIu64 to print 64 bit dev_t.
 1.115  30-Nov-2008  martin As discussed on tech-kern: mutex_init is too heavyweight for early bootstrap
phases, so move the initialization of the ksyms mutex back into main via
a function called ksyms_init. Rename the existing (but quite different)
ksyms_init* variations into ksyms_addsyms_elf() and ksyms_addsyms_explicit()
and adapt machdep code accordingly.
 1.114  25-Nov-2008  ad dumpsys: don't spew numbers into the log.
 1.113  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.112  11-Nov-2008  dyoung It is not appropriate to call pmf_system_shutdown(9) from
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:

1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.

2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.

I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
 1.111  02-Jul-2008  ad branches: 1.111.2; 1.111.4; 1.111.6;
Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.110  17-Oct-2007  garbled branches: 1.110.16; 1.110.20; 1.110.22; 1.110.24;
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.109  02-Jun-2007  tsutsui branches: 1.109.10;
- Don't refer fputype before FPU is probed.
- Call m68k_make_fpu_idle_frame() from initfpu().
 1.108  04-Mar-2007  tsutsui branches: 1.108.2; 1.108.4; 1.108.10;
Use (char *) on pointer arith.
 1.107  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.106  22-Feb-2007  thorpej TRUE -> true, FALSE -> false
 1.105  09-Feb-2007  ad branches: 1.105.2;
Merge newlock2 to head.
 1.104  21-Oct-2006  mrg in cpu_dumpconf(), don't panic() if we can't bdevsw_lookup() the
dumpdev. this occurs when we try to set the dumpdev to a device
with no driver loaded. this fixes PR#34872.

in sys_swapctl, if bdevsw_lookup() fails, set dumpdev = NODEV
before calling cpu_dumpconf(). (this also fixes PR#34872.)

XXX: cpu_dumpconf() should probably be changed to take a dumpdev
XXX: and return an error in such cases, but that is a much more
XXX: intrusive change.

XXX2: this is only run-tested on sparc64 and compile tested on a
XXX2: couple of platforms.
 1.103  05-Oct-2006  tsutsui Make sun3 use common sun68k/sun68k/isr.c, sun68k/include/cpu.h and
sun68k/include/intr.h.

This also means now sun3 has GENERIC_SOFT_INTERRUPTS support,
so also adapt fd.c and zs.c to MI softintr(9) APIs.

(I'll also update related sources in yamt-splraiseipl branch later)
 1.102  11-Dec-2005  christos branches: 1.102.20; 1.102.22;
merge ktrace-lwp.
 1.101  19-Jun-2005  thorpej branches: 1.101.2;
Move common Sun ID PROM definitions into <dev/sun/idprom.h>.
 1.100  03-Jun-2005  tsutsui Constify.
 1.99  25-Apr-2005  lukem Move the MI printing of `copyright' to the MD cpu_startup() code
where the printing of `version' is already performed.
This has the benefit of allowing the copyright to be available
via dmesg(8) on platforms which need the `msgbuf' to be setup
in cpu_startup() before printed output is remembered.
 1.98  01-Apr-2005  yamt 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.97  22-Jan-2005  chs branches: 1.97.2;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.96  24-Mar-2004  atatat branches: 1.96.8;
Tango on sysctl_createv() and flags. The flags have all been renamed,
and sysctl_createv() now uses more arguments.
 1.95  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.94  30-Dec-2003  pk Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes). It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms. Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
 1.93  04-Dec-2003  atatat Dynamic sysctl.

Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded. Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment. I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
 1.92  26-Oct-2003  mycroft Fix a compiler warning.
 1.91  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.90  15-Jul-2003  lukem __KERNEL_RCSID()
 1.89  29-Jun-2003  fvdl branches: 1.89.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.88  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.87  26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.86  01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.85  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.84  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.83  25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.82  19-Sep-2002  ragge Do not include <sys/clist.h>, it's not used in NetBSD at all.
 1.81  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.80  25-Aug-2002  thorpej Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
 1.79  18-May-2002  lukem add missing union sun3sir sun3sir; (hi gimpy!)
 1.78  20-Mar-2002  christos branches: 1.78.4;
kill remaining PS_STRINGS instances.
 1.77  06-Mar-2002  tsutsui Change type of dumpmag to u_int32_t since it is actually
a 32bit unsigned magic number.
As per discussion on tech-kern, and fixes port-sparc64/11949.
 1.76  11-Sep-2001  chs branches: 1.76.4;
replace pmap_enter() with pmap_kenter_pa() where appropriate.
 1.75  10-Sep-2001  chris Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

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

Reviewed by Jason.
 1.74  05-Sep-2001  tsutsui branches: 1.74.2;
bcopy() -> memcpy(), bzero() -> memset()
 1.73  05-Sep-2001  tsutsui - vm_offset_t -> [pv]addr_t
- vm_size_t -> vsize_t
- remove register prefixes
 1.72  31-Aug-2001  simonb Use comments around the token after a #endif.
 1.71  16-Jun-2001  tsutsui branches: 1.71.2;
Make sure to write out the dump header into an independent block
on the dump device on sun3x. (sync with sun3)
Now savecore(8) can find core dump in dumpdev properly.

XXX "target kcore /dev/mem" on gdb does not work yet.
 1.70  02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.69  30-May-2001  lukem add missing #include "opt_kgdb.h"
 1.68  28-May-2001  chs remove check for too-small MSGBUFOFF now that the reason for it is gone.
 1.67  28-May-2001  chs remove a useless call to uvm_map_protect(). the kernel text is already
mapped read-only in pmap_bootstrap() and the comment which tried to
explain why this might be needed anyway didn't make any sense.
 1.66  28-May-2001  chs make sun3x work again after the recent change to the m68k cpu_kcore_hdr:
allocate a page for dumps like the sun3 does rather than using part of
the msgbuf page. this also lets the msgbuf use the full msgbuf page.
 1.65  24-Apr-2001  thorpej Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative. It may be possible to
optimize these a little more.
 1.64  15-Mar-2001  chs eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
 1.63  22-Feb-2001  chs branches: 1.63.2;
switch sun3 to ELF. highlight include:
add "%" prefix to register names in assembly code.
change assembly functions to return values in %a0 instead of %d0.
C symbols no longer prepend an underscore, adjust assembly code for this.
32-bit values are now 32-bit aligned instead of 16-bit aligned,
adjust structure packing and padding to override this where necessary.
make EXEC_ELF std, make EXEC_AOUT and COMPAT_AOUT_M68K optional.
use the MI loadfile() instead of several home-grown versions.
 1.62  26-Jan-2001  tsutsui Sync with sun3/machdep.c:

> Require the machine-dependant DDB commands to be in db_machine_command_table[]
> and link it directly to db_command_table[] so that it's not necessary
> to do this at runtime. Make db_machine_command_table[] const on all ports.
> g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()
>
> Patch written by enami.
 1.61  09-Nov-2000  tsutsui On sun3x, cpu_reboot() calls sunmon_abort() for PROM bug work-around,
but sunmon_abort() does not restore mon_crp so it causes problems.
Instead, call romVectorPtr->abortEntry (via trap14) from sunmon_halt()
and call it from cpu_reboot().

Now PROM boot command works properly even after halt on my 3/80.
 1.60  13-Sep-2000  thorpej Add an align argument to uvm_map() and some callers of that
routine. Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
 1.59  29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.58  26-Jun-2000  mrg remove/move more mach vm header files:

<vm/pglist.h> -> <uvm/uvm_pglist.h>
<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
<vm/vm_object.h> -> nothing
<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.57  05-Jun-2000  jhawk branches: 1.57.2;
Do not clear msgbufenabled in dumpsys(). Dump messages will now go to
the message buffer. This can be invaluable in debugging if the dump
fails (assuming a persistant message buffer)
 1.56  26-May-2000  thorpej branches: 1.56.2;
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.55  19-Jan-2000  thorpej Move callout initialization to a single location; no need to duplicate
that code all over the place.
 1.54  04-Dec-1999  ragge CL* discarding.
 1.53  13-Nov-1999  thorpej Update for pmap_enter() API change. No functional difference.
 1.52  12-Sep-1999  chs branches: 1.52.2; 1.52.4; 1.52.8;
eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.
 1.51  26-May-1999  thorpej Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags. PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that. INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now). This will eventually
change now these maps are locked, as well.
 1.50  20-May-1999  lukem * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
 1.49  26-Apr-1999  thorpej 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.48  25-Apr-1999  simonb g/c REAL_CLISTS.
 1.47  11-Apr-1999  chs add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
 1.46  08-Apr-1999  gwr branches: 1.46.2;
Use the string kernel_arch to determine "sun3" vs "sun3x"
and leave the machine string as it was (make uses it).
 1.45  01-Apr-1999  thorpej Don't call configure() from cpu_startup().
 1.44  30-Mar-1999  gwr Arrange for "sysctl hw.machine" to show sun3x.
(Needed by the miniroot, etc.)
 1.43  26-Mar-1999  mycroft Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot. Also, DO NOT use
pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
access_type = 0. This should probably be revisited.
 1.42  24-Mar-1999  mrg completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
 1.41  04-Mar-1999  kleink Need to include DDB headers only if DDB is defined.
 1.40  27-Feb-1999  scottr defopt BUFCACHE and BUFPAGES.
 1.39  09-Jan-1999  thorpej Garbage-collect `mbutl'.
 1.38  13-Dec-1998  kleink Printf format warning cleanup: the type of the result of a shift operation is
that of the promoted left operand.
 1.37  24-Nov-1998  kleink Need <sys/device.h> to bring configure() declaration in scope.
 1.36  19-Oct-1998  tron Defopt SYSVMSG, SYSVSEM and SYSVSHM.
 1.35  04-Jul-1998  jonathan defopt DDB.
 1.34  09-Jun-1998  gwr First cut at UVM support. Compiles, but not tested yet.
 1.33  09-Jun-1998  gwr Make this compile...
 1.32  09-Jun-1998  tv Change ddb_init() for a.out to provision for kernels which are not booted by
the current 'bootblock' method, like the Shark, which preloads and preformats
the symbol table right in the boot code.
 1.31  08-Mar-1998  gwr Sync with sun3/machdep.c (should factor out common stuff...)
> Do the "early breakpoint" (if booted with "-d") even if we
> have only the PROM to handle it, so one can patch things.
 1.30  19-Feb-1998  thorpej Disable the message buffer during crash dumps by clearing msgbufenabled,
not msgbufmapped.
 1.29  05-Feb-1998  gwr Merge arch/sun3x into arch/sun3
 1.28  24-Jan-1998  mycroft When dumping, print out the device number as major,minor.
 1.27  04-Dec-1997  tv branches: 1.27.2;
Standardize COMPAT_SUNOS -- remove all references to
sunos_exec_aout_makecmds() in machdep.c for various architectures and put
it in exec_conf.c like the other emulations; rename exec.h to
sunos_exec.h.
 1.26  18-Nov-1997  hannken Change order of include files. See PR #4532.
 1.25  05-Oct-1997  gwr branches: 1.25.2;
Do the cpu_kcore_hdr initialization a little differently.
(also fix - was not setting pg_frame, pg_valid)
 1.24  04-Oct-1997  gwr Make cpu_reboot un-blank the screen (cnpollc(1)).
Validate space in page zero for the kcore header.
 1.23  02-Oct-1997  gwr Make msgbuf stay in page zero
 1.22  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.21  12-Sep-1997  mycroft Set the status word as well, and remove a bogus comment.
 1.20  12-Sep-1997  mycroft Always initialize all registers in setregs().
 1.19  11-Sep-1997  mycroft Fix execve(2) and *setregs() interfaces so emulations can set registers in a
more correct way. (See tech-kern.)
 1.18  12-Jun-1997  mrg branches: 1.18.4;
bring mrg-vm-swap2 onto mainilne.
 1.17  08-Jun-1997  veego Initialize machine from MACHINE.
 1.16  14-May-1997  gwr The Hydra is 20 MHz and the Pegasus is 33 MHz.
 1.15  25-Apr-1997  gwr branches: 1.15.2;
Moved the actual model identification work into identifycpu(),
which used to be in _startup.c:_verify_hardware().
Use sunmon_abort() in cpu_reboot() for now...
 1.14  09-Apr-1997  thorpej Adjust for new kcore.h
 1.13  04-Apr-1997  gwr Add a comment.
 1.12  27-Mar-1997  thorpej Don't allocate mclrefcnt[]; it's dead and gone.
 1.11  26-Mar-1997  gwr Renames: /dumpconf/cpu_dumpconf/, /boot/cpu_reboot/
 1.10  21-Mar-1997  gwr First cut at crashdump support.
 1.9  17-Mar-1997  gwr s/fpu_type/fputype/g
 1.8  18-Feb-1997  gwr Moved straytrap() to trap.c (and minor cleanup)
 1.7  14-Feb-1997  gwr Moved sendsig(), sys_sigreturn() to sun3/sig_machdep.c
Moved regdump() and friends to sun3/regdump.c
 1.6  12-Feb-1997  gwr Avoid dereferencing null curproc in dumpmem().
 1.5  11-Feb-1997  gwr branches: 1.5.2;
Sync with sun3.
 1.4  27-Jan-1997  gwr branches: 1.4.2;
Kill sunmon.h
 1.3  23-Jan-1997  gwr Use <machine/machdep.h> and <sun3/sun3/sunmon.h>
 1.2  16-Jan-1997  gwr Make sure the string passed to mon_reboot() is in our data segment
where the PROM can see it. (Bug found by Jeremy -- Thanks!)
 1.1  14-Jan-1997  gwr Initial revision
 1.4.2.1  12-Mar-1997  is Merge in Changes from The Trunk.
 1.5.2.1  12-Feb-1997  mrg don't allocate swap map in allocsys.
 1.15.2.2  01-Jun-1997  mrg update to trunk.
 1.15.2.1  04-May-1997  mrg re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
 1.18.4.3  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.18.4.2  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.18.4.1  16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.25.2.1  18-Nov-1997  mellon Pull rev 1.26 up from trunk (hannken)
 1.27.2.3  27-Jan-1998  gwr Fix the kcore header (needs "sun3x", not "sun3")
Make cpu_model[] begin with "Sun-3X ..."
 1.27.2.2  27-Jan-1998  gwr Merged Sun3 and Sun3X kernel sources.
 1.27.2.1  26-Jan-1998  gwr Merge recent changes on the head onto the gwr-3x3 branch.
 1.46.2.2  16-Apr-1999  chs branches: 1.46.2.2.2;
pull up 1.46 -> 1.47:
add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
 1.46.2.1  08-Apr-1999  chs branches: 1.46.2.1.2;
file machdep.c was added on branch netbsd-1-4 on 1999-04-16 16:25:36 +0000
 1.46.2.2.2.1  21-Jun-1999  thorpej Sync w/ -current.
 1.46.2.1.2.1 locked by: joerg;  08-Apr-1999  thorpej file machdep.c was added on branch netbsd-1-4 on 1999-06-21 01:03:21 +0000
 1.52.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.52.4.1  15-Nov-1999  fvdl Sync with -current
 1.52.2.5  27-Mar-2001  bouyer Sync with HEAD.
 1.52.2.4  12-Mar-2001  bouyer Sync with HEAD.
 1.52.2.3  11-Feb-2001  bouyer Sync with HEAD.
 1.52.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.52.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.56.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.57.2.1  15-Dec-2000  he Pull up revision 1.61 (requested by tsutsui):
Make PROM boot command work properly even after halt on 3/80.
 1.63.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.63.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.71.2.5  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.71.2.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.71.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.71.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.71.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.74.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.76.4.12  11-Nov-2002  nathanw Catch up to -current
 1.76.4.11  18-Oct-2002  nathanw Catch up to -current.
 1.76.4.10  17-Sep-2002  nathanw Catch up to -current.
 1.76.4.9  27-Aug-2002  nathanw Catch up to -current.
 1.76.4.8  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.76.4.7  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.76.4.6  20-Jun-2002  nathanw Catch up to -current.
 1.76.4.5  29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.76.4.4  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.76.4.3  02-Dec-2001  scw If an FPU is available, call m68k_make_fpu_idle_frame() to generate
a reference FPU idle frame.
 1.76.4.2  18-Nov-2001  scw MD Scheduler Activation bits for sun3/3x.
Compile-tested only.
 1.76.4.1  11-Sep-2001  scw file machdep.c was added on branch nathanw_sa on 2001-11-18 19:39:05 +0000
 1.78.4.3  31-Aug-2002  gehenna catch up with -current.
 1.78.4.2  30-May-2002  gehenna Catch up with -current.
 1.78.4.1  17-May-2002  gehenna Replace the access to devsw table and the hard-coded major with devsw API.
 1.89.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.89.2.6  01-Apr-2005  skrll Sync with HEAD.
 1.89.2.5  24-Jan-2005  skrll Sync with HEAD.
 1.89.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.89.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.89.2.2  03-Aug-2004  skrll Sync with HEAD
 1.89.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.96.8.1  29-Apr-2005  kent sync with -current
 1.97.2.2  27-Feb-2005  tsutsui Add a missing third arg (align) of uvm_km_alloc() for the new API world.
 1.97.2.1  12-Feb-2005  yamt use new apis.
 1.101.2.4  03-Sep-2007  yamt sync with head.
 1.101.2.3  26-Feb-2007  yamt sync with head.
 1.101.2.2  30-Dec-2006  yamt sync with head.
 1.101.2.1  21-Jun-2006  yamt sync with head.
 1.102.22.2  22-Oct-2006  yamt sync with head
 1.102.22.1  06-Oct-2006  tsutsui Sync files of recent sun3 and sun68k merge and intersil7170(4) changes
with HEAD to build sun3 kernel on this branch.
 1.102.20.2  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.102.20.1  18-Nov-2006  ad Sync with head.
 1.105.2.2  12-Mar-2007  rmind Sync with HEAD.
 1.105.2.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.108.10.1  26-Jun-2007  garbled Sync with HEAD.
 1.108.4.1  11-Jul-2007  mjf Sync with head.
 1.108.2.1  09-Jun-2007  ad Sync with head.
 1.109.10.1  06-Nov-2007  matt sync with HEAD
 1.110.24.1  03-Jul-2008  simonb Sync with head.
 1.110.22.3  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.110.22.2  14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.110.22.1  10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.110.20.3  11-Mar-2010  yamt sync with head
 1.110.20.2  19-Aug-2009  yamt sync with head.
 1.110.20.1  04-May-2009  yamt sync with head.
 1.110.16.2  17-Jan-2009  mjf Sync with HEAD.
 1.110.16.1  02-Jul-2008  mjf Sync with HEAD.
 1.111.6.1  02-Feb-2009  snj Pull up following revision(s) (requested by ad in ticket #346):
sys/arch/alpha/alpha/machdep.c: revision 1.311
sys/arch/amiga/amiga/machdep.c: revision 1.211
sys/arch/atari/atari/machdep.c: revision 1.153
sys/arch/hp700/hp700/machdep.c: revision 1.53
sys/arch/i386/i386/dumpsys.c: revision 1.5
sys/arch/mips/mips/mips_machdep.c: revision 1.206
sys/arch/mvme68k/mvme68k/machdep.c: revision 1.132
sys/arch/news68k/news68k/machdep.c: revision 1.75
sys/arch/next68k/next68k/machdep.c: revision 1.88
sys/arch/sparc/sparc/machdep.c: revision 1.285
sys/arch/sparc64/sparc64/machdep.c: revision 1.230
sys/arch/sun2/sun2/machdep.c: revision 1.56
sys/arch/sun3/sun3/machdep.c: revision 1.188
sys/arch/sun3/sun3x/machdep.c: revision 1.114
sys/arch/x68k/x68k/machdep.c: revision 1.153
dumpsys: don't spew numbers into the log.
 1.111.4.2  03-Mar-2009  skrll Sync with HEAD.
 1.111.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.111.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.117.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.122.2.2  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.122.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.123.2.3  31-May-2011  rmind sync with head
 1.123.2.2  05-Mar-2011  rmind sync with head
 1.123.2.1  18-Mar-2010  rmind Unify /dev/{mem,kmem,zero,null} implementations in MI code. Based on patch
from Joerg Sonnenberger, proposed on tech-kern@, in February 2008.

Work and depression still in progress.
 1.124.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.125.2.2  05-Mar-2011  bouyer Sync with HEAD
 1.125.2.1  17-Feb-2011  bouyer Sync with HEAD
 1.128.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.130.6.1  18-Feb-2012  mrg merge to -current.
 1.130.2.3  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.130.2.2  30-Oct-2012  yamt sync with head
 1.130.2.1  17-Apr-2012  yamt sync with head
 1.133.4.1  18-May-2014  rmind sync with head
 1.133.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.135.30.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.135.30.1  10-Jun-2019  christos Sync with HEAD
 1.135.20.1  27-Apr-2017  pgoyette Restore all work from the former pgoyette-localcount branch (which is
now abandoned doe to cvs merge botch).

The branch now builds, and installs via anita. There are still some
problems (cgd is non-functional and all atf tests time-out) but they
will get resolved soon.
 1.135.10.1  20-Jul-2016  pgoyette Adapt the machine/arch dependent code to the new {b,c}devsw reference
counting.

XXX Most of these will require testing by someone other than myself, as
I have a limited selection of hardware!

RSS XML Feed