Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sun68k/include/cpu.h
RevisionDateAuthorComments
 1.28  20-Jan-2024  thorpej Largely unify the <machine/cpu.h> headers on the m68k platforms.
 1.27  19-Jan-2024  thorpej Consistently use "intr_depth" as the name of the interrupt depth counter
on m68k platforms.
 1.26  24-Nov-2019  ad Correction to previous.
 1.25  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.24  23-Aug-2018  msaitoh Remove inclusion of old m68k/sysctl.h
 1.23  19-Oct-2013  christos branches: 1.23.28; 1.23.30;
make cpu_need_resched() macros consistent; __USE flags
 1.22  22-Dec-2010  matt branches: 1.22.8; 1.22.18; 1.22.22;
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.21  21-Oct-2009  rmind branches: 1.21.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.20  26-Jan-2008  tsutsui branches: 1.20.10;
Also account idepth in clock interrupt handlers
(which are registered directly by isr_add_custom())
and use the idepth value for CLKF_INTR().
 1.19  17-Oct-2007  garbled branches: 1.19.2;
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.18  04-Aug-2007  ad branches: 1.18.2;
Add ci_cpuid where it's missing.
 1.17  21-May-2007  tsutsui branches: 1.17.2; 1.17.4; 1.17.8;
Move declarations of m68k common functions
from <machine/cpu.h> to <m68k/m68k.h>.
While here, remove some obsolete function decls.
 1.16  21-May-2007  tsutsui Make netintr() static since it's referred only in sun68k/isr.c.
 1.15  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.14  18-May-2007  tsutsui Adapt sun68k ports to yamt-idlelwp.
Tested on TME (sun2 and sun3) and 3/80 (sun3x).
 1.13  16-Feb-2007  ad branches: 1.13.6; 1.13.8; 1.13.14;
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.12  09-Feb-2007  ad Merge newlock2 to head.
 1.11  05-Oct-2006  tsutsui Minor cleanups before isr.c merge with sun3:
- include <m68k/cpu.h> rather than <m68k/m68k.h> in <sun68k/cpu.h>
- wrap M68K_VAC definition with #ifndef _SUN3X_ in <sun68k/cpu.h>
- move setsoftnet() macro from <sun68k/cpu.h> to <sun68k/intr.h>
- move declarations for isr_soft_request() and isr_soft_clear() from
sun2/include/intr.h to <sun68k/intr.h>
- remove extern keyword from function declarations
 1.10  11-Dec-2005  christos branches: 1.10.20; 1.10.22;
merge ktrace-lwp.
 1.9  22-Jan-2005  chs branches: 1.9.8;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.8  22-Sep-2004  yamt branches: 1.8.4;
move some per-cpu data definitions to MI place so that they can be modified
without touching all ports. discussed on tech-kern@.
 1.7  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.6  21-Sep-2003  cl make compile
 1.5  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.4  18-Jan-2003  thorpej branches: 1.4.2;
Merge the nathanw_sa branch.
 1.3  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.2  27-Jun-2001  fredette branches: 1.2.8;
Use _KERNEL_OPT.
 1.1  14-Jun-2001  fredette Added sources for the sun2 boot blocks and other
sun68k-ish code, all of which ought to eventually
be shared with the sun3.
 1.2.8.3  11-Nov-2002  nathanw Catch up to -current
 1.2.8.2  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.2.8.1  27-Jun-2001  thorpej file cpu.h was added on branch nathanw_sa on 2001-12-08 08:22:44 +0000
 1.4.2.5  24-Jan-2005  skrll Sync with HEAD.
 1.4.2.4  24-Sep-2004  skrll Sync with HEAD.
 1.4.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1  03-Aug-2004  skrll Sync with HEAD
 1.8.4.1  29-Apr-2005  kent sync with -current
 1.9.8.4  04-Feb-2008  yamt sync with head.
 1.9.8.3  03-Sep-2007  yamt sync with head.
 1.9.8.2  26-Feb-2007  yamt sync with head.
 1.9.8.1  30-Dec-2006  yamt sync with head.
 1.10.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.10.20.2  06-Feb-2007  ad Update m68k pasteware.
 1.10.20.1  18-Nov-2006  ad Sync with head.
 1.13.14.2  03-Oct-2007  garbled Sync with HEAD
 1.13.14.1  22-May-2007  matt Update to HEAD.
 1.13.8.1  11-Jul-2007  mjf Sync with head.
 1.13.6.2  20-Aug-2007  ad Sync with HEAD.
 1.13.6.1  27-May-2007  ad Sync with head.
 1.17.8.1  04-Aug-2007  jmcneill Sync with HEAD.
 1.17.4.1  15-Aug-2007  skrll Sync with HEAD.
 1.17.2.1  07-Aug-2007  matt Sync with HEAD.
 1.18.2.2  23-Mar-2008  matt sync with HEAD
 1.18.2.1  06-Nov-2007  matt sync with HEAD
 1.19.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.20.10.1  11-Mar-2010  yamt sync with head
 1.21.4.1  05-Mar-2011  rmind sync with head
 1.22.22.1  18-May-2014  rmind sync with head
 1.22.18.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.22.8.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.23.30.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.23.30.1  10-Jun-2019  christos Sync with HEAD
 1.23.28.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

RSS XML Feed