Commit Graph

35669 Commits

Author SHA1 Message Date
thorpej 010625fefd Implement access methods:
lists: LIST_FIRST(), LIST_NEXT()

simple queues: SIMPLEQ_FIRST(), SIMPLEQ_NEXT()

tail queues: TAILQ_FIRST(), TAILQ_NEXT()

circular queues: CIRCLEQ_FIRST(), CIRCLEQ_LAST(), CIRCLEQ_NEXT(),
CIRCLEQ_PREV()
1998-01-05 06:27:42 +00:00
thorpej 4a7fabf18c Update for __vfork14(). 1998-01-05 06:14:51 +00:00
lukem 0acc42ca87 fix rcsid 1998-01-05 05:59:45 +00:00
thorpej ce340c6ca5 Also pass fork1() a struct proc **, in case the caller wants a pointer
to the newly created process.
1998-01-05 05:16:26 +00:00
perry c44d4effcd RCSID Police. 1998-01-05 05:15:43 +00:00
perry a2c607302b Slightly better RCS keyword munging 1998-01-05 05:15:18 +00:00
perry d38a11e380 Fix imported RCS keyword slightly 1998-01-05 05:08:43 +00:00
perry e13ab577cd RCSID Police. 1998-01-05 05:05:49 +00:00
perry f6aae0d6c2 RCSID Police 1998-01-05 04:54:16 +00:00
thorpej 5703397593 Initialize proc0's file descriptor table with fdinit1(). 1998-01-05 04:52:48 +00:00
thorpej 6382d6dd79 Implement file descriptor table sharing. Partially from FreeBSD. 1998-01-05 04:51:15 +00:00
thorpej c50d4a5006 Bump minor: added __vfork14(). 1998-01-05 02:29:46 +00:00
thorpej 27a61de952 Add __vfork14.S and Lint___vfork14.c 1998-01-05 02:29:04 +00:00
thorpej fb74151eaf Fix the stat(2) ABI problem noticed by Curt Sampson and Chris Demetriou.
The problem is that the timespec structures now how 7 32-bit values before
them, which causes them to be implicitly padded on the Alpha (because the
timespecs have an alignment of 64 bits).  However, the alignment constraints
changed if _POSIX_SOURCE was defined (thus replacing the timespecs with
time_ts and longs).  This had no effect on 32-bit architectures, but changed
the offsets of several stat structure members on the Alpha.

XXX The ABI has not changed; explicit padding is added in the _POSIX_SOURCE
XXX case, enabled by an #ifdef __alpha__.  This should be changed if the
XXX stat(2) ABI is ever changed again (e.g. if we change time_t to 64 bits).
1998-01-05 02:23:43 +00:00
thorpej d07708b38e Make lint(1) happy. 1998-01-04 23:53:58 +00:00
thorpej bedc7b48df Add syscall stubs for __vfork14(). These are basically copies of Ovfork.S
with the syscall numbers changed.

Since 4.4BSD vfork(2) did not share address space, Ovfork.S could be changed
to be identical to fork.S (modulo syscall numbers).  __vfork14.S, however,
needs to remain separate since with a shared address space, the stub needs to
pre-decrement the stack and do an indirect jump to the return address, so that
the shared stackframe is still there when the parent returns.  (Obviously,
this does not apply to systems which to not build stackframes on leaf calls.)
1998-01-04 20:58:08 +00:00
thorpej bbe02324b1 Add a lint stub for __vfork14.S 1998-01-04 20:52:09 +00:00
scw d6e657f29f Sync with release(7), and update ftp site IP address. 1998-01-04 12:48:14 +00:00
thorpej d11eb3028f Update to match the new (old :-) vfork(2) semantics. 1998-01-04 04:20:42 +00:00
thorpej faa8ffb044 Revive the -f option: report fork statistics. 1998-01-04 03:59:04 +00:00
thorpej 341b8e9b49 Add fork statistics to vmmeter. 1998-01-04 03:53:35 +00:00
thorpej 871be215c8 Define flags passed to fork1(). Currently "block parent" and "share vmspace"
are defined.
1998-01-04 03:53:04 +00:00
thorpej 740f872797 New vfork(2) implementation, whith semantics matching those of the original
3BSD vfork(2), i.e. share address space w/ parent and block parent.

Keep statistics on the total number of forks, the number of forks that
block the parent, and the number of forks that share the address space
with the parent.
1998-01-04 03:52:02 +00:00
thorpej 43677af399 Regen: add __vfork14() at #282. 1998-01-04 03:47:05 +00:00
thorpej d36ffe9822 Add __vfork14() system call at #282. 1998-01-04 03:45:21 +00:00
lukem a76b9e2bee document COMPAT_13 1998-01-04 00:44:20 +00:00
mikel 08d3b16fa0 init(8) lives in /sbin now 1998-01-03 09:03:27 +00:00
perry db7fdfc8c4 /usr/{src,obj,pkgsrc} -> root:wsrc, 0775 1998-01-03 06:00:33 +00:00
thorpej 5739c88a75 Implement address space sharing (by keeping ref counts on the vmspace
structure).  Many thanks to Chuck Cranor for debugging assistence.
1998-01-03 02:53:00 +00:00
thorpej e1f13c8c99 Change shmfork() and shmexit() prototypes (vmspace *'s, not proc *'s). 1998-01-03 02:51:32 +00:00
thorpej 36780f9243 Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s,
and update internal interfaces appropriately.
1998-01-03 02:50:32 +00:00
thorpej b1cf620cfe Update for additional argument to vm_fork() ("shared" boolean). 1998-01-03 02:49:30 +00:00
thorpej bb2d5987ff Don't call shmexit() if the vmspace ref count is not 1. Update for new
argument to shmexit().
1998-01-03 02:48:43 +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
thorpej 9ca174a51d Implement pmap_activate(). 1998-01-02 22:57:56 +00:00
thorpej a6f228e498 Make pmap_activate() take a struct proc *. 1998-01-02 22:36:33 +00:00
thorpej c162e92a71 Implement pmap_activate(). 1998-01-02 22:17:18 +00:00
thorpej f39e44955b Make pmap_activate() take a proc *. 1998-01-02 20:37:28 +00:00
thorpej d14e18faa9 Make pmap_activate() take a proc *. 1998-01-02 20:10:26 +00:00
ragge 5680284286 Fix problem in copy*str() when not emulating locc. 1998-01-02 19:33:27 +00:00
thorpej dd966fca05 Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
1998-01-01 20:05:23 +00:00
thorpej 287b63b321 - Make pmap_activate() and pmap_deactivate() take a struct proc *.
- Define active_user_pmap() and use it in the appropriate places (from hp300
  port).
1998-01-01 19:52:50 +00:00
tv 581952e735 Use the boot/bootxx files from ${DESTDIR}/usr/mdec, not /usr/mdec.
(Avoid using "new" bootcode as part of a release, for uniformity.)
1998-01-01 17:48:50 +00:00
mikel 733dae35bc use ${SIZE} instead of "size" (somehow this one got missed) 1998-01-01 08:11:41 +00:00
mikel dfc54e91fd replace /usr/games/bin with /usr/games in PATH, from Carl S. Shapiro
in PR 4733.  add /usr/local/bin to PATH to match dot.cshrc.
1998-01-01 08:00:10 +00:00