Commit Graph

35878 Commits

Author SHA1 Message Date
lukem
1f8f74b669 enhance ephemeral port allocation code:
* support sysctl net.inet.ip.anonportmin (lowest ephemeral port)
  and net.inet.ip.anonportmax (highest ephemeral port).
  these can't be set to >65535, < IPPORT_RESERVED (unless IPNOPRIVPORTS
  is defined), and anonportmin has to be < anonportmax.
* use a cleaner way of only cycling through the available set once;
  this will be useful for when a random allocation scheme is used
* define IPPORT_ANON{MIN,MAX} instead of IPPORT_USER{LOW,HIGH}
1998-01-05 09:52:02 +00:00
lukem
1b0e96ce8f regenerate 1998-01-05 09:26:17 +00:00
thorpej
c64c0879cb Actually document that SO_LINGER's linger time is measured in seconds. 1998-01-05 09:18:41 +00:00
thorpej
2e85747e9e From 4.4BSD-Lite2 (noted by Frank van der Linden):
so_linger is used as an argument to tsleep(), so was stuffed with
clockticks for the TCP linger time.  However, so_linger is set directly from
l_linger if the linger time is specified, and l_linger is seconds (although
this is not currently documented anywhere).  Fix this to set the TCP
linger time in seconds, and multiply so_linger by hz when tsleep() is
called to actually perform the linger.
1998-01-05 09:12:29 +00:00
perry
93db5caa95 RCSID Police. 1998-01-05 07:41:06 +00:00
perry
fff05a68ab RCSID Police. 1998-01-05 07:31:05 +00:00
perry
015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
perry
3e0fad1868 RCSID Police. 1998-01-05 06:28:44 +00:00
thorpej
dcbd40b724 Document new queue access methods. 1998-01-05 06:28:04 +00:00
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