Commit Graph

2028 Commits

Author SHA1 Message Date
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
ws 99d394c267 Typo 1998-11-12 14:00:06 +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
chs 61458d7dfa LOCKDEBUG enhancements for non-MP:
keep a list of locked locks.
use this to print where the lock was locked
when we either go to sleep with a lock held
or try to free a locked lock.
1998-11-04 06:19:55 +00:00
pk 9eb94a0c03 Must protect user-land from cpuvar.h; noticed by Juergen Hannken-Illjes. 1998-10-26 08:16:08 +00:00
pk f3c1682c65 No need for `#ifdef SUN4M' protection. 1998-10-26 08:12:15 +00:00
pk de51cf3531 Define and use CPU pause/resume IPI messages (until such times that I know
what the prom supplied versions actually do).
1998-10-24 08:12:55 +00:00
pk c85c920d03 Duh.. condition codes are not preserved when writing directly into %psr.
Also, we need to deal with bus latency when turning off bits in the
interrupt status register.
1998-10-24 08:04:07 +00:00
pk 890e54bee0 Pull in cpuvar.h to get definition of `curproc'. 1998-10-21 07:11:47 +00:00
tron b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
pk f0529fccf5 Maintain a current process (`curproc') a per CPU. 1998-10-19 11:56:43 +00:00
christos 09285b1171 PR/6311: By me... There was a bug unloading the dmamap:
addr = map->dm_segs[0].ds_addr & ~PGOFSET;
	len = map->dm_segs[0].ds_len;
	len = ((addr & PGOFSET) + len + PGOFSET) & ~PGOFSET;
	addr &= ~PGOFSET;

Notice that the & ~PGOFSET in the first line should be gone. This fixes
the newfs large disk panic.
1998-10-18 16:02:34 +00:00
pk 0bf09a4ae7 Drop cpuinfo's `L1_ptps'; instead keep a per CPU segment (level 2) page
table descriptor that is used to patch up a region (level 1) page table
associated with a user pmap at context switch time.
1998-10-16 22:39:17 +00:00
drochner 2468738337 change handling of libkern:
-sys/lib/libkern builds as library per default (as it was documented all
 the time)
-ports able to LKM set "KERN_AS=obj" explicitely in their Makefiles
 (for now; should depend on actual "option LKM" or -better- functions
 included for LKM use should be pulled in by a stub)
-always link libcompat before libkern - libkern stuff can be referred to
 by libcompat, but not the other way
1998-10-15 18:37:13 +00:00
pk fd966585a1 Turn on the counter at each CPU (we fear nothing..) 1998-10-14 14:53:36 +00:00
pk afcfa7d7fa Let all CPUs spin at spl0. 1998-10-14 14:47:20 +00:00
pk 631a48776f Don't allocate two stacks per CPU.
Minor attach-time message change.
1998-10-14 14:22:18 +00:00
pk e6c0a03f90 `ncpu != 0' doesn't make much sense when deciding what CP info to print. 1998-10-13 21:08:48 +00:00
pk bf7ace9074 CLKF_INTR() needs to have a MULTIPROCESSOR version. 1998-10-13 20:53:02 +00:00
pk 802248ee1c We use MULTIPROCESSOR explicitly here, so pull in "opt_multiprocessor.h". 1998-10-13 13:37:14 +00:00
pk 14a3acbd47 srmmu_cache_flush(): handle small (< NBPG) ranges more efficiently. 1998-10-13 13:34:06 +00:00
pk 1e0064d5d6 EINTSTACK => EINTSTACKP 1998-10-13 12:05:44 +00:00
pk d5e94d4fb2 Add missing `return'. 1998-10-13 11:33:36 +00:00
pk 8511a94f26 Oops, USPACE does not in 13 bits.. repair and save one instruction
in a non-SMP kernel.
1998-10-12 22:05:17 +00:00
pk c27a8760b7 In switchexit(), switch to the current CPU's idle u.area. 1998-10-12 21:51:54 +00:00
pk dff4866141 Add offset of `cpuinfo.idle_u'. 1998-10-12 21:50:22 +00:00
pk 5d124ce774 Move around a few PTE-manipulating macros. 1998-10-12 21:17:28 +00:00
pk 83b671e23d Make `cpcb' (current u.area) a per-CPU variable.
Brace some MP-only code with `#ifdef MULTIPROCESSOR'.
1998-10-12 20:56:48 +00:00
pk 6791d7f713 Make `_cpcb' (pointer to current user area) a per-CPU variable.
This cpuinfo field is initialized here in locore before calling bootstrap(),
since it must be valid before entering the window overflow/underflow handlers.

Fix miscalculation in the MULTIPROCESSOR version of INTR_SETUP().
1998-10-12 14:39:10 +00:00
pk 523892012a `cpcb' (pointer to current u.area) is now a per-CPU variable. 1998-10-12 14:32:14 +00:00
pk fbbc2eeedd `cpuinfo' is now cleared in locore. 1998-10-12 14:15:13 +00:00
pk 6fc7a5b45a Define `sizeof(struct cpu_info)'. 1998-10-12 14:03:22 +00:00
pk 1fb4827a72 Take care of a MID not present when matching timer register sets. 1998-10-12 12:28:26 +00:00
chuck 8bef431273 remove unused share map code from UVM:
- update calls to uvm_unmap_remove/uvm_unmap (mainonly boolean arg
        has been removed)
1998-10-11 23:20:59 +00:00
pk b9d844a520 Allocate a private PCB, kernel stack and interrupt stack for each processor.
As a result, the stack setup code in locore.s changes slightly in
the MULTIPROCESSOR case. Also, make the stack redzone barrier (for
debugging only) a per-CPU entity.
1998-10-11 14:46:45 +00:00
thorpej 908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
pk 5422d07da0 Construct a `flush_cache_all()' for Cypress CPUs. 1998-10-09 10:48:14 +00:00
pk 024e5f4c9a More `#if defined(MULTIPROCESSOR)'s. 1998-10-09 10:08:52 +00:00
pk 57a688f81e Init a variable. 1998-10-09 08:01:33 +00:00
pk 312385da0a Define SMP versions of some cache flush methods. 1998-10-08 22:27:32 +00:00
pk 41d031837e Define a message structure of inter-processor communication. 1998-10-08 22:25:42 +00:00
pk f3c4a67a7f Adapt to changes to the cpus[] array. 1998-10-08 22:23:44 +00:00
pk 34ad8e5fb7 Find out about the number of CPUs in the system before starting device
configuration, so we can build a cpus[] array without "holes".
1998-10-08 22:14:44 +00:00
pk a61ee50b27 Move [gs]etcontext and [gs]etpte() to pte.h 1998-10-08 21:49:12 +00:00
pk e6bbfcc58a Move [gs]etcontext() and [gs]etpte() to pte.h 1998-10-08 21:47:34 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
pk 2727683a09 more DIAGNOSTIC sanity checks 1998-10-06 19:24:03 +00:00
thorpej 0729240c88 Move the "XXX re-zero proc0 user area" to the end of configure(), before
interrupts are enabled.
1998-10-06 18:58:09 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00