Commit Graph

1111 Commits

Author SHA1 Message Date
matt fb6a3dfb64 Include offsets in vs_cpu register in comments. 2000-06-02 21:39:54 +00:00
matt e488ca043b change void f() to void f(void) 2000-06-01 02:28:11 +00:00
matt c9aff328d9 Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
2000-06-01 00:49:49 +00:00
matt 22635242c9 Eliminate booted_from. extern'ed booted_device (for raidframe). nothing
outside autoconf.c in sys/arch/vax needs to deal with booted_device).
2000-05-31 23:55:51 +00:00
matt 7a66d70655 add placeholders for the MicroVAX 3400 (ka640). 2000-05-31 23:53:27 +00:00
thorpej 858becb7c2 In the MULTIPROCESSOR case, initialize p_cpu before a process is
marked SONPROC.
2000-05-31 05:10:54 +00:00
ragge 992002c2be Use the cpu_info struct to store cpu-specific data in the same way in
both uniprocessor and multiprocessor environments. Use the otherwise
unused internal CPU register SSP to store the cpu_info pointer.
The macros curcpu(), curproc, cpu_number() and need_resched() are now the
same in both uniprocessor and multiprocessor environments.
2000-05-29 20:00:55 +00:00
matt 33889a5e6c Enable DDB. 2000-05-28 20:21:04 +00:00
matt 166475069f fix it so it compiles. 2000-05-28 18:17:59 +00:00
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
matt 141dcca251 Add VAX660/670/680 support. 2000-05-28 05:17:25 +00:00
ragge 26acf7f88a Only map in map registers and the I/O page if they are not mapped in already. 2000-05-27 21:44:35 +00:00
ragge 8293b12111 Write kvtopte() and kvtophys() as inline assembler. GCC create quite bad
code for them, and they are only 2-3 instructions each if written by hand.
2000-05-27 21:17:06 +00:00
ragge 6cfde8f146 Remove the pcbtrap global variable, use a per-CPU variable instead. 2000-05-27 20:02:58 +00:00
ragge 98d0ab9e1c Use machine instead of vax in include path. 2000-05-27 16:44:14 +00:00
ragge 99baa81ae7 Rewrite cpu_fork(), it now looks like and works as other ports' cpu_fork()
(calling child_return() etc...). Have fun, Jason!
2000-05-27 16:33:04 +00:00
ragge aacf5a4bc1 Growel out the SCSI BUS ID from NVRAM instead of hard-code it. 2000-05-27 10:12:45 +00:00
thorpej 21fc65e1a8 sleep() -> tsleep() 2000-05-27 04:52:27 +00:00
matt fa1474c2eb This need <sys/sched.h> to compile. 2000-05-27 03:23:22 +00:00
sommerfeld 40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +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
ragge 02512fa1e9 Correct a comparision. 2000-05-26 21:05:23 +00:00
ragge 4eea61af11 If we panic before the vsbus is found, don't panic again. 2000-05-26 21:05:01 +00:00
ragge 1e700bc362 Make it compile again. 2000-05-26 20:51:25 +00:00
ragge b2bc655ba8 Fake success when trying to use the strategy() routine on a network device.
This avoids clobbering errno and bad error messages.
2000-05-26 20:18:57 +00:00
ragge e2148b38ab Don't init the net info more than once. 2000-05-26 20:16:46 +00:00
ragge b8b40eed22 Avoid hanging if boot fails on some machines. 2000-05-26 20:15:21 +00:00
jhawk 8e44b27348 Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
2000-05-26 03:34:24 +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
matt 37be92c0d1 Add loadfile() support. soon to be needed by bootblocks. 2000-05-25 20:25:22 +00:00
matt 091b74891d Modify the file list for kernel to supress errors/text for certain ones. 2000-05-25 19:36:20 +00:00
thorpej 6ec6c6f90a Move common return-to-userland goo into userret(), like other ports. 2000-05-25 17:01:11 +00:00
ragge e256727fb2 Four more instructions makes it possible to boot old kernels also. 2000-05-24 19:53:11 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
matt 83ae868133 Add some debug stuff. Disable SCSI on KA49 for now until I can figure out
why it doesn't work.
2000-05-23 23:47:28 +00:00
matt 62469cb55a Allow for boot.vax and netbsd.vax when booting. this allows a multi
architecture CD to be made which includes VAX support.
2000-05-23 23:34:20 +00:00
matt 27a876b17c boot detection moved autoconf.c; remove it from here. 2000-05-23 21:36:43 +00:00
matt 6f98bbbb09 Add some missing ifdef's. 2000-05-23 19:55:55 +00:00
matt 88352edc02 Add prototype for findcpu in _STANDALONE. 2000-05-22 15:55:52 +00:00
matt 8c22116924 cpp can be so annoying. to appease it, can't -> cannot 2000-05-22 15:54:53 +00:00
matt 7a0c7ff6f9 get rid of a double / 2000-05-22 15:42:37 +00:00
matt 09d6519a0f make the declaration of findcpu() ansi. (e.g add void to it). 2000-05-22 15:41:31 +00:00
matt 5ece00b8bc Obviously we don't use the symbol, but we might give it the correct value.
We support up to NVAX platforms.
2000-05-22 15:40:06 +00:00
matt 2d5c3f8447 Move BDEV_LE detection to here. 2000-05-22 15:38:47 +00:00
matt cb089ee017 Remove RPB hook from here and put in autoconf.c 2000-05-22 15:34:05 +00:00
matt ff7c474e11 The double / in the path has been bothering me for awhile. 2000-05-22 15:33:13 +00:00
ragge f506422549 Boot device recognition for DEUNA added; combined with some cleanup. 2000-05-21 20:18:49 +00:00
ragge 314caa6651 Standalone driver for the Digital Equipment Unibus Network Adapter (DEUNA).
This allows 11/750 owners to install from a single TU58 cassette.
(Are there still any 11/750 owners left out there? :-)
2000-05-21 20:17:43 +00:00
ragge da774180b6 Compare the boot address with 1) physical address and 2) correct variable. 2000-05-21 10:03:55 +00:00
ragge d901690b17 Remove forgotten debug printf. 2000-05-21 09:45:54 +00:00