Commit Graph

520 Commits

Author SHA1 Message Date
ragge
a355d0bc1b Re-implement page reference bit emulation by using the (otherwise unused)
valid bit. This is faster than the "unmap all" solution that were described
in that Mach paper _and_ it eliminates the need for checking the wired bit.
As a result of this; swapping started working again on vax :-)
1998-01-31 12:17:34 +00:00
ragge
fe52d237fd Fix to make vfork work on machines with separated PCB/mtpr PTE registers. 1998-01-27 17:35:03 +00:00
mycroft
15ae963bea When dumping, print out the device number as major,minor. 1998-01-24 16:46:23 +00:00
ragge
eda1eecede Remove __BROKEN_INDIRECT_CONFIG and change all drivers to use
config_search instead.
1998-01-24 14:16:11 +00:00
ragge
01eb1bb746 Make kernel compile & run again after latest config changes. 1998-01-18 22:09:13 +00:00
ragge
afb1a37379 Fix page size initialisation. 1998-01-18 22:07:50 +00:00
ragge
37f6125fdd Garbage-collect unnecessary functions. Don't have blkcpy/blkclr
as inline.
1998-01-18 22:06:01 +00:00
thorpej
f32f947061 Update for changes to config. 1998-01-12 20:52:29 +00:00
perry
6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00
perry
b46484bb8a RCSID Police. 1998-01-05 20:51:25 +00:00
perry
015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
thorpej
b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej
b73f9750f6 Don't allocate PTEs in cpu_fork(); they were allocated when the new
process's pmap was created.  Instead, use pmap_activate() to load the
page {0,1} base and length registers into the PCB for the hardware's use.
1998-01-03 00:37:31 +00:00
thorpej
aa58d4ac6b Adjust for the fact that the page {0,1} base and length registers are now
stored in the pmap structure.
1998-01-03 00:35:28 +00:00
thorpej
f267fe868d - Adjust so that access to the PCB is not required in most pmap functions.
Store the page {0,1} base and length registers in the pmap structure,
  and implement pmap_activate(), which stores them in the PCB (for the
  hardware's use).
- Re-implement pmap_pinit(); allocate the PTEs here, not in cpu_fork().
1998-01-03 00:34:02 +00:00
thorpej
172a9381b6 - Remove the PCB pointer from the pmap structure. Instead, store the
page {0,1} base and length registers in the pmap structure.  They will
  be loaded in to the PCB when the process's address space is activated
  by way of pmap_activate().
- Remove pmap_pinit() macro; it's now a real function.
- Prototypes for pmap_pinit(), pmap_activate(), pmap_deactivate().
1998-01-03 00:28:43 +00:00
thorpej
d8076f896b Grab the PCB directly from the u-area, not by indirecting through VM
structures.
1998-01-03 00:23:53 +00:00
ragge
5680284286 Fix problem in copy*str() when not emulating locc. 1998-01-02 19:33:27 +00:00
kleink
eefde8bdcd Add COMPAT_13. 1997-12-01 16:31:29 +00:00
kleink
66c2794142 Add _BSD_SUSECONDS_T_ and _BSD_USECONDS_T_; do some space vs. tab formatting
cleanup
1997-11-23 20:20:53 +00:00
fair
315f8de9c2 add pseudo-device rnd, commented out 1997-11-20 08:11:14 +00:00
lukem
e8cb388f65 * add commented out DDB_HISTORY_SIZE=100 if DDB exists in config file
* fix up use of 'options<SPACE><TAB>'
1997-11-17 01:58:31 +00:00
veego
8b485c5962 Add a missing #if NARP > 0 around arpintr(); and add a #include "arp.h"
for NARP. This is for the 'new' arp system.
1997-11-13 10:43:06 +00:00
thorpej
ce4c770f88 Make sure CPP, AR, AS, and RANLIB are defined. 1997-11-12 23:11:50 +00:00
thorpej
a421995756 Define LORDER, NM, and TSORT here, like we do the rest of the tools. 1997-11-12 22:25:31 +00:00
ragge
7b60c8ed11 Fix multivolume installation bug; PR#4454. 1997-11-10 22:14:16 +00:00
thorpej
0b04d28454 Mark uses of long long with /* LONGLONG */ for lint. From
Chris Demetriou <cgd@pa.dec.com>.
1997-11-05 04:36:08 +00:00
thorpej
cc1f5b65c9 asm -> __asm__ 1997-11-05 04:23:35 +00:00
thorpej
4730a8cbec Bug fixes and cleanup from Chris Demetriou <cgd@pa.dec.com>:
- fix _C_LABEL so that it actually works.
- make __RENAME use _C_LABEL.
- fix __RENAME so that it expects an unquoted argument.
- fix __indr_reference and __warn_references so that they
  supply their own final semicolon.
- define __warn_references to nothing if not GNU C (required
  by the way it's used).

The __warn_references semicolon change has to be made
so that __warn_references can be defined into nothing.
(A ; all by itself isn't a great idea.)  The __indr_reference
change was made for consistency.
1997-11-04 23:09:23 +00:00
ragge
8f6ac836dd Move some interrupt routines out to assembler.
Optimize (slightly) pmap_clear_modify.
1997-11-04 22:59:20 +00:00
ragge
fb4298e98c Optimized copy/fetch/store routines; rewritten in assembler. 1997-11-04 20:52:27 +00:00
ragge
fd48076569 Use genassym for the first time in vax port history. Rewrite cpu_exit,
cpu_switch, setrunqueue and remrunqueue in assembler for efficiency.
1997-11-03 20:00:17 +00:00
ragge
4e254b7a82 Major rewriting, optimization and simplifying of the pmap code:
- Map in all physical memory first in system space. This reduces
  pmap_copy_page() and pmap_zero_page to 3 resp. 2 instructions.
- Have fized position user page tables. Makes the pv_table smaller
  and all reverse references faster (and simpler).
- Remove the wiring code. Nobody doesn't even know what a DR32 is anymore.
- Simulate page reference bit by setting page invalid, as suggested by
  Rich Draves in a paper for 1991 Mach Usenix Symposium.

This reduced the time spent in the pmap module to between 70-75% of
the previous; and made process startup _much_ faster.
1997-11-02 14:25:26 +00:00
ragge
9b1a735c8f Major rewriting, optimization and simplifying of the pmap code:
- Map in all physical memory first in system space. This reduces
  pmap_copy_page() and pmap_zero_page to 3 resp. 2 instructions.
- Have fized position user page tables. Makes the pv_table smaller
  and all reverse references faster (and simpler).
- Remove the wiring code. Nobody doesn't even know what a DR32 is anymore.
- Simulate page reference bit by setting page invalid, as suggested by
  Rich Draves in a paper for 1991 Mach Usenix Symposium.

This reduced the time spent in the pmap module to between 70-75% of
the previous; and made process startup _much_ faster.
1997-11-02 14:25:24 +00:00
ragge
ae27edc757 Major rewriting, optimization and simplifying of the pmap code:
- Map in all physical memory first in system space. This reduces
  pmap_copy_page() and pmap_zero_page to 3 resp. 2 instructions.
- Have fized position user page tables. Makes the pv_table smaller
  and all reverse references faster (and simpler).
- Remove the wiring code. Nobody doesn't even know what a DR32 is anymore.
- Simulate page reference bit by setting page invalid, as suggested by
  Rich Draves in a paper for 1991 Mach Usenix Symposium.

This reduced the time spent in the pmap module to between 70-75% of
the previous; and made process startup _much_ faster.
1997-11-02 14:25:19 +00:00
ragge
84f5dc2404 Fix clearing of redundant restart flag; CPU specific.
Also clean up a bit.
1997-11-02 14:07:07 +00:00
ragge
a8e1e83943 #include files must be in the correct order. 1997-11-02 14:01:07 +00:00
thorpej
665f7d1a6e Implement __RENAME() in <machine/cdefs.h> 1997-10-22 05:20:32 +00:00
ragge
e603ff5aa3 Fix vers.c dependency; PR#4090. 1997-10-20 11:54:26 +00:00
ragge
efa4c7c48e MSGBUFSIZE must be in CLBYTES, not NBPG. Also expand it to 4 * CLBYTES. 1997-10-19 20:48:47 +00:00
ragge
2260651129 Add match code to detect more than one SCSI adapter on 3100.
Provided by Bertram Barth.
1997-10-19 20:35:15 +00:00
ragge
d379f24df5 #include <vm/vm.h>. Fix some erroneous declarations. 1997-10-19 14:33:48 +00:00
ragge
e0bc9f61d7 Add a sometimes needed round_page().
Always flush TLB when messing around with system mapping.
1997-10-19 14:32:42 +00:00
ragge
a9510ace16 Only check for process switch if we are coming in from userspace.
Make ERESTART work for syscalls >63.
While we're here; clean up a little bit.
1997-10-19 12:32:52 +00:00
ragge
038cd08cce Make UBA adapter selection work on 8600 again. 1997-10-18 23:39:18 +00:00
christos
801520ffac fix chrtoblk declaration 1997-10-16 23:43:16 +00:00
explorer
80513cb5ae o Make usage of /dev/random dependant on
pseudo-device   rnd                     # /dev/random and in-kernel generator
  in config files.

o Add declaration to all architectures.

o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
  that this code is derived in part from Ted Tyso's linux code.
1997-10-13 00:46:08 +00:00
bouyer
6ab3092b11 Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
1997-10-09 15:42:19 +00:00
thorpej
616e0b7e33 Copyright assigned to The NetBSD Foundation. 1997-10-05 18:26:38 +00:00
lukem
7d508b124f define SIZE?=size, and use ${SIZE} instead of size. makes cross
compilation easier
1997-10-03 07:17:00 +00:00