Commit Graph

46 Commits

Author SHA1 Message Date
kleink ba6a8bf61e Update to reflect that unlike in m68k a.out environments, where the .align
directive is given a log2 argument, .align is given a linear argument in
m68k ELF environments.
2001-05-12 00:55:34 +00:00
chs a95226826d 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.
2001-02-22 07:11:08 +00:00
jdolecek 17a9fd0da5 split m68k SunOS and SVR4-specific sigcode.s code to sunos_sigcode.s
and svr4_sigcode.s respectively
adjust individual m68k port's locore.s to include new sigcode files if
appropriate
2000-11-26 11:47:23 +00:00
tsutsui 6bf0b47164 Fix typo in the previous revision. (s/LIdle/Lidle/) 2000-11-03 05:28:28 +00:00
thorpej a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
thorpej 8871d8563a Add a comment on single-processor systems about p_cpu being initialized
by fork1().
2000-05-31 05:06:43 +00:00
nathanw 820847ee98 Update for qs -> sched_qs change.
Kernel compiles again.
2000-05-31 03:16:52 +00:00
thorpej a7d0570e67 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.
2000-05-26 21:19:19 +00:00
thorpej 8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
itohy cef3e31058 Fix the problem that single-step tracing of a trap instruction
drops the system into kernel debugger.
1999-10-26 00:20:34 +00:00
thorpej 6489500f0a Make sure the branch target of the delay loop is aligned to a cache
half-line (8-byte) boundary.  Inspired by a discussion w/ Scott Reynolds.
1999-08-01 21:43:04 +00:00
christos bf88b9104e Include opt_compat_sunos.h 1999-04-30 09:21:54 +00:00
kleink ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
is d04273bac7 sun3 part of fix for PR 6152 1999-02-26 22:03:28 +00:00
thorpej cabecee13c 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.
1998-11-11 06:43:49 +00:00
thorpej bcf14a99e2 Garbage collect trap #1 and trap #2 handlers; they're moved to
trap_subr.s
1998-09-30 23:47:33 +00:00
thorpej a11e6632a8 Pull in opt_compat_netbsd.h 1998-09-30 23:01:28 +00:00
thorpej 8abe0d6b1c Adjust for the new "reaper" kernel thread: do not free the vmspace and
u-area in machine-dependent code.  Instead, call exit2() to schedule
the reaper to free them for us, once it is safe to do so (i.e. we are
no longer running on the dead proc's vmspace and stack).
1998-09-09 00:07:48 +00:00
gwr 1b01ec0993 First cut at UVM support. Compiles, but not tested yet. 1998-06-09 20:47:17 +00:00
gwr eff2e270bd Merge arch/sun3x into arch/sun3 1998-02-05 04:56:24 +00:00
gwr 58126a3b29 Separate pmap_activate() from _pmap_switch(), so the latter can remain
equivalent to what locore.s:cpu_switch does with in-line assembly when
PMAP_DEBUG is not defined.  Also do splimp/splx in pmap_activate.
1998-01-22 21:48:42 +00:00
gwr 43013bccbb Use MONEND instead of DVMA_SPACE_START in the "DDB convenience" symbols. 1998-01-22 21:35:27 +00:00
thorpej d14e18faa9 Make pmap_activate() take a proc *. 1998-01-02 20:10:26 +00:00
gwr e9393ba0e4 MONSTART/monstart symbol 1997-10-16 16:14:44 +00:00
gwr e512003d6e Add non-inline version of _splraise. 1997-05-29 22:20:01 +00:00
gwr 1aa91b893d Eliminate references to vmspace.vm_pmap
(also fix some comments).
1997-05-13 17:17:12 +00:00
jeremy 3f7423a432 Wrap all label references with new macros in m68k/asm.h in preperation
for ELF switchover. (eventually)
1997-05-02 23:07:35 +00:00
gwr 9ae1b69554 Rename "Idle" to "_Idle" so clock.c can reference it. 1997-04-25 18:48:39 +00:00
thorpej 48fa8154e7 Adjust for <m68k/m68k/trap_subr.s> 1997-04-25 01:49:05 +00:00
thorpej f05b58b229 Use common m68k sigcode. 1997-04-13 02:37:15 +00:00
thorpej 00c04fe742 Use <m68k/m68k/proc_subr.s> 1997-04-09 20:58:33 +00:00
jeremy b572daa4dc In-tree GNU ``as'' does not know of 'pmove <reg>,tt0' instruction. Changed
instances of this instruction to hardcoded opcode statements.  Thanks to
jthorpe for pointing this out.
1997-03-31 02:22:25 +00:00
gwr d531b1ed42 s/fpu_type/fputype/g 1997-03-17 19:03:11 +00:00
thorpej b6f3695cd1 Use <m68k/m68k/support.s> 1997-03-16 11:04:52 +00:00
gwr 2f598d011a Sync with sun3 (Trap 1,2,15 handlers) 1997-03-13 20:46:37 +00:00
gwr 201bc0aa96 Add ptest_addr 1997-03-05 23:54:08 +00:00
jeremy 043293d2da Added the '@' symbols that GAS needs for address register indirect addressing
statements that are used when PMAP_DEBUG is undefined.
1997-02-20 00:54:21 +00:00
gwr c4fa121f14 Reinstate call to pmap_activate() for now, because it is helpful
for debugging the pmap code.  The in-line version of the same is
still here and will be used if PMAP_DEBUG is not defined.
1997-02-12 23:06:27 +00:00
gwr 6ef591a70b Add a few more coments. (i.e. why init a6=0) 1997-02-11 19:06:08 +00:00
gwr 7bd7620f61 Sync with sun3. 1997-02-11 00:56:08 +00:00
thorpej 8d00d8cb60 Remove an un-true comment. 1997-02-02 08:38:51 +00:00
gwr d33b4cd423 Load the root pointer using VM_PMAP_MMUCRP
Also rename nodb_trap to _nodb_trap
1997-01-23 22:47:36 +00:00
gwr 4dcea02177 Fix a comment (PCB_MMUCTX is a virtual address). 1997-01-17 16:30:05 +00:00
gwr aaf91fd6aa Adapt to rename of pcb_mmuctx to pcb_mmucrp, and corrected
prototype of loadcrp(), which kills some bogus type casts.
1997-01-17 16:27:17 +00:00
gwr cd05f4190d Initial import. Gets as far as nfs_mountroot. 1997-01-14 20:57:07 +00:00