Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sun3/include/cpu.h
RevisionDateAuthorComments
 1.39  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.38  11-Dec-2005  christos branches: 1.38.20; 1.38.22;
merge ktrace-lwp.
 1.37  22-Jan-2005  chs branches: 1.37.8;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.36  22-Sep-2004  yamt branches: 1.36.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.35  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.34  22-Sep-2003  tsutsui Remove #ifdef _KERNEL inside #ifdef _KERNEL.
 1.33  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.32  18-Jan-2003  thorpej branches: 1.32.2;
Merge the nathanw_sa branch.
 1.31  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.30  14-May-2002  matt Eliminate more commons or redundant declarations.
 1.29  30-May-2001  mrg branches: 1.29.2; 1.29.8;
use _KERNEL_OPT
 1.28  22-Feb-2001  chs branches: 1.28.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.27  04-Feb-2001  tsutsui Move cachectl1() declaration from sun3/machdep.h to include/cpu.h;
it is refered by sys/compat/linux/arch/m68k/linux_machdep.c.

XXX: all declarations in machdep.h should be moved into cpu.h?
 1.26  03-Feb-2001  tsutsui Include <m68k/m68k.h> to use m68k common definitions.
 1.25  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.24  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.23  10-Aug-1999  thorpej branches: 1.23.2;
Define cpu_number() as discussed on tech-smp.
 1.22  20-Mar-1997  gwr This needs muli-include protection now.
 1.21  17-Dec-1996  gwr Make this compile with -Werror -Wall -Wstrict-prototypes
(finally! yea!) Also get rid of __BROKEN_INDIRECT_CONFIG
 1.20  21-Dec-1995  mycroft Remove deprecated cpu_setstack().
 1.19  28-Jun-1995  cgd remove unused cpu_exec() definitions. moved "broken swap" markers, for
ports that still need it, to types.h.
 1.18  24-May-1995  gwr Update cpu_fork() to eliminate double mapping of kernel stacks.
 1.17  05-May-1995  cgd define BROKEN_SWAP and/or cpu_swapout as appropriate.
 1.16  22-Apr-1995  christos - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
 1.15  28-Mar-1995  jtc KERNEL -> _KERNEL
 1.14  21-Nov-1994  gwr Lots of changes. Fairly stable now.
 1.13  26-Oct-1994  cgd new RCS ID format.
 1.12  28-Jun-1994  gwr Make setsoft* use the real software interrupt register
provided on Sun machines (instead of simulating mtpr).
 1.11  27-May-1994  gwr Catch up with frame.h chages, merge stuff from new hp300 port.
 1.10  10-May-1994  gwr Add CTL_MACHDEP stuff.
 1.9  06-May-1994  gwr Tracking 4.4 integration
 1.8  05-May-1994  gwr Track renamed proc flags.
 1.7  04-Feb-1994  glass sun3 port works under NetBSD-current now. rcsids probably fucked
 1.6  23-Nov-1993  glass Now works with current tree, as opposed to the july 8th tree in which it was
written.
Requires magnum infrastructure now, particularly the clock stuff.
Fails to exec init because the /sbin/init binary
is a sunos binary. Next step is to integrate sunos compatibility code
from /sys/compat/sunos, and the amiga port.
Does not yet implement MACHINE_NOCONTIG support.

[from glass Mon Nov 22 21:22:45 PST 1993 home tag: home2]
 1.5  03-Aug-1993  glass it links with out any unresolved symbols, last few are just stubs
because we aren't likely to get near execing init for a while
 1.4  02-Aug-1993  glass stupid cleanup; fixes to mon.h; rewrote asm.h based on old asm.h
and the i386 one from jolitz
cleaned up ending of virtaul addr space.
 1.3  27-Jun-1993  glass fixed bug in mon.h; fixed NEED_* in cpu.h; spl macro problems
 1.2  26-Jun-1993  glass removed dumb define for enablertclock()
 1.1  25-Jun-1993  glass adding include files...not much of this works
 1.23.2.3  12-Mar-2001  bouyer Sync with HEAD.
 1.23.2.2  11-Feb-2001  bouyer Sync with HEAD.
 1.23.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.28.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.29.8.6  03-Dec-2002  gmcgarry Add missing prototypes.
 1.29.8.5  03-Dec-2002  gmcgarry Use cpu_proc_fork().
 1.29.8.4  11-Nov-2002  nathanw Catch up to -current
 1.29.8.3  20-Jun-2002  nathanw Catch up to -current.
 1.29.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.29.8.1  30-May-2001  thorpej file cpu.h was added on branch nathanw_sa on 2001-12-08 08:22:43 +0000
 1.29.2.1  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.32.2.5  24-Jan-2005  skrll Sync with HEAD.
 1.32.2.4  24-Sep-2004  skrll Sync with HEAD.
 1.32.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.32.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.32.2.1  03-Aug-2004  skrll Sync with HEAD
 1.36.4.1  29-Apr-2005  kent sync with -current
 1.37.8.1  30-Dec-2006  yamt sync with head.
 1.38.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.38.20.1  18-Nov-2006  ad Sync with head.

RSS XML Feed