thorpej
f50fecdeaf
Oops, fix uninitialzed variable in last.
1998-11-18 18:40:54 +00:00
thorpej
587f931901
Be a bit more precise about how we allow no deactivation support in
...
config_detach().
1998-11-18 18:40:08 +00:00
thorpej
3579ddab03
If the ca_activate entry point fails, make sure to restore the old
...
dv_flags.
1998-11-18 18:38:07 +00:00
thorpej
ab1b371163
Implement config_detach(), mostly from Chris Demetriou, modified slightly
...
by Ken Hornstein and myself.
Add flags to struct device, and define one as "active". Devices are
initially active from config_attach(). Their active state may be changed
via config_activate() and config_deactivate().
These new functions assume that the device being manipulated will recursively
perform the action on its children.
Together, config_deactivate() and config_detach() may be used to implement
interrupt-driven device detachment. config_deactivate() will take care of
things that need to be performed at interrupt time, and config_detach()
(which must run in a valid thread context) finishes the job, which may
block.
1998-11-17 08:38:07 +00:00
perry
0c20c72cf9
(mostly) fix kernel tags support. from Frederick Bruckman in pr-6445.
1998-11-15 20:36:30 +00:00
thorpej
88bc4b9f8d
Conditionally include the 4.4BSD-Lite2 compat vfs sysctl code.
1998-11-15 18:38:11 +00:00
tls
6321478a33
At securelevel >=2, don't allow new mounts, only allow change from rw to ro.
1998-11-14 06:38:54 +00:00
thorpej
1d03badef0
Implement a way to queue kernel threads for creation after init,
...
pagedaemon, reaper, etc. Caller provides a callback function and
argument which will be called to create the threads.
1998-11-14 00:08:49 +00:00
thorpej
d23593a784
Make vfs_sysctl() work.
1998-11-13 20:15:32 +00:00
mycroft
1115f2e840
Er, NSIG is one *more* than the number of signals.
1998-11-13 17:23:52 +00:00
mycroft
d6ffecf67c
Oops; signal numbers are 1..NSIG, not 0..NSIG-1.
1998-11-13 17:12:54 +00:00
thorpej
2f3f9379cf
Add a couple more file systems to mountcompatnames[] (even though they
...
didn't exist in 4.3BSD or NetBSD 0.9) and always put the table into
the kernel. It's going to be needed for VFS sysctls.
1998-11-13 04:12:35 +00:00
thorpej
920a1ace5b
fork_kthread() -> kthread_create(). Set P_NOCLDWAIT on kernel threads,
...
which will cause any of their children to be reparented to init(8) (which
is already prepared to wait out orphaned processes).
1998-11-11 22:45:32 +00:00
thorpej
a0fac8a7bc
Move fork_kthread() to a new file, kern_kthread.c, and rename it to
...
kthread_create(). Implement kthread_exit() (causes a thrad to exit).
Set P_NOCLDWAIT on kernel threads, which will cause any of their children
to be reparented to init(8) (which is already prepared to wait out orphaned
processes).
1998-11-11 22:44:24 +00:00
thorpej
04dc9a8878
Remove some code accidentally readded when Christos implement P_NOCLDWAIT.
1998-11-11 22:37:13 +00:00
thorpej
6956a57584
Initial version of API for creating kernel threads (likely to change somewhat
...
in the future):
- New function, fork_kthread(), takes entry point, argument for entry point,
and comment for new proc. May be called by any context, will fork the
thread from proc0 (requires slight changes to cpu_fork()).
- cpu_set_kpc() now takes a third argument, a void *arg to pass to the
thread entry point. Thread entry point now takes void * instead of
struct proc *.
- Create the pagedaemon and reaper kernel threads using fork_kthread().
1998-11-11 06:34:43 +00:00
mycroft
d4026f6eb5
GC the B_CACHE bit.
1998-11-09 01:18:34 +00:00
mycroft
36918f312f
Rework cluster_rbuild() to use buffers with the file system block size.
...
From Alasdair Baird.
1998-11-08 18:18:31 +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
jonathan
3ac3cbcfb8
Add options DDB_FROMCONSOLE and sysctl ddb.fromconsole, analagous to
...
DDB_ONPANIC. Lets user ignore breaks but enter DDB on panic. Intended
for machines where debug on panic is useful, but DDB entry is not,
(public-access console, or terminal-servers which send spurious breaks)
Add new ddb hook, console_debugger(), which decides whether or not to
ignore console ddb requests. Console drivers should be updated to call
console_debugger(), not Debugger(), in response to serial-console
break or ddb keyboard sequence.
1998-10-29 21:22:32 +00:00
mycroft
13daec0fb1
Several things:
...
* Change the usage of B_DONE so that it is only set when a buffer is in sync
with the data on disk.
* If a buffer is being waited for, don't put it on the age queue.
* Make sure to clear B_DONE when pages are stolen from a buffer.
* Make sure to clear B_CACHE after each use.
* If we find a buffer for the block we want with valid data, but it is too
small, panic. (This isn't supposed to happen.)
Fixes potential file corruption problems with clustering.
1998-10-27 23:48:22 +00:00
tron
bac6bb6bf2
No need to get definition of "SYSV..." from "opt_sysv.h" because they
...
must be set if these files are compiled.
1998-10-21 22:24:28 +00:00
tron
bb56b72356
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
1998-10-19 22:19:27 +00:00
tron
f87a1b6e7a
1.93:Regen.
1998-10-19 22:19:26 +00:00
tron
fe8170d1b1
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
1998-10-19 22:19:26 +00:00
tron
06fb47025e
1.99:Regen.
1998-10-19 22:19:25 +00:00
tron
39876df951
Defopt SYSVMSG, SYSVSEM and SYSVSHM.
1998-10-19 22:14:54 +00:00
pk
2d45ece0e7
Allow `curproc' to be defined in <machine/proc.h> to enable a transition
...
to SMP support.
1998-10-19 11:51:53 +00:00
bouyer
bf32feec28
More >2Gb fixes, from Constantine Sapuntzakis.
1998-10-16 14:29:40 +00:00
pk
c65c55af6f
Disable the daft PAUSE() macro, which manages to skip all the relevant
...
code in lockmgr() most of the time. This a no doubt a case of Bad Coding Style.
1998-10-14 09:41:21 +00:00
bouyer
91ce6daac5
Fix for files > 2Gb, one from Kirk McKusick via OpenBSD and one similar from me.
1998-10-12 09:57:48 +00:00
christos
10b5900f45
update for linux file move.
1998-10-03 20:39:32 +00:00
eeh
903d20a930
Fix big-endian syscall args.
1998-10-03 19:21:11 +00:00
drochner
835d1b736c
Make contsigmask, stopsigmask, sigcantmask kernel private.
1998-10-03 14:29:02 +00:00
erh
8c963d5a04
Move elf function name macros to exec_elf.h. COMPAT_LINUX is no longer limited to ELFSIZE==32.
1998-10-01 16:06:24 +00:00
erh
a0480f4f57
Only include linux a.out makecmds if EXEC_AOUT is defined.
1998-10-01 15:55:34 +00:00
thorpej
d46253f21c
Implement vsprintf().
1998-09-29 21:03:02 +00:00
pk
25e37f3b97
In addition to the spinlock, use the lockmgr() to serialize access to
...
the back-end page allocator. This allows the back-end to sleep since we
now relinquish the spin lock after acquiring the long-term lock.
1998-09-29 18:09:29 +00:00
thorpej
ac0d359bcb
Initialize the CPU ID in the simplelock.
1998-09-29 07:29:53 +00:00
thorpej
73aefe65bc
If MULTIPROCESSOR, add a spin lock around the kernel printf (in the
...
appropriate places). This makes debugging messages work a LOT better
on my multiprocessor Alpha.
1998-09-29 01:49:43 +00:00
matt
f0071e56cf
Fix spl problem in socreate (which lead to the corruption of the
...
socket pool).
1998-09-25 23:32:27 +00:00
erh
3affe03bf4
Alpha Linux compat tweak for getpid, getuid and getgid.
1998-09-25 06:04:48 +00:00
thorpej
0c11d72456
Key off MULTIPROCESSOR, not NCPUS > 1. Pull in <machine/lock.h> if
...
MULTIPROCESSOR is defined, and rely on it to define the simple lock
operations.
1998-09-24 22:30:11 +00:00
thorpej
c0dd0b8353
Make sure the size is large enough to hold a pool_item.
1998-09-22 03:01:29 +00:00
enami
19031a5309
make this file compile again; the variable points signal action being
...
set is `nsa' and there is no variable `sa'.
1998-09-19 02:00:52 +00:00
christos
eb1a214078
Add NOCLDWAIT (from FreeBSD)
1998-09-18 18:48:22 +00:00
perry
5d0722b723
Note that kernel Makefile support for tags is totally broken.
1998-09-13 23:50:39 +00:00
christos
f35a4d311a
Regen
1998-09-13 14:45:22 +00:00
christos
34cb71bf00
Quote the backquotes in the double-quoted shell string, otherwise they
...
disappear and you get AS IS'' instead of ``AS IS'' in the generated files.
1998-09-13 14:44:34 +00:00
thorpej
f93b23110f
Regen.
1998-09-13 04:58:21 +00:00
thorpej
45431e6471
Emit syscall numbers for COMPAT_xx syscalls, too.
1998-09-13 04:57:24 +00:00
christos
34c5a58bb4
Make copyrights consistent; fix weird/trailing spaces add missing (c) etc.
1998-09-12 17:20:02 +00:00
pk
818fef1cd7
Nuke spurious pointer incrementation.
1998-09-12 13:12:14 +00:00
mycroft
b1c2e63db6
Regen.
1998-09-12 10:48:51 +00:00
mycroft
3f2c7263b1
Fix thinko in previous.
1998-09-12 10:48:27 +00:00
mycroft
584cc642fc
Regen.
1998-09-12 10:33:26 +00:00
mycroft
89ea1fcbdd
Version sys_sigreturn, to avoid breaking programs that use it explicitly.
1998-09-12 00:47:12 +00:00
mycroft
f384c47bc7
Regen.
1998-09-11 23:13:32 +00:00
thorpej
911fd86e93
Regen; signal changes. (mycroft must have forgotten to commit this)
1998-09-11 22:37:53 +00:00
pk
470227cc3b
Check that the `current directory' is still mounted before dropping core in it.
1998-09-11 13:25:20 +00:00
mycroft
fb526e055c
Substantial signal handling changes:
...
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.
Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
1998-09-11 12:50:05 +00:00
pk
3718fc4aa7
Allow the result of an extent allocation to be congruous to an arbitrary
...
number modulo the given alignment.
To do this the function extent_alloc_subregion() takes an additional `skew'
parameter. For compatibility's sake, this function has been renamed to
extent_alloc_subregion1().
1998-09-10 20:52:13 +00:00
dbj
aa45959106
Added uvm and ddb
1998-09-09 03:02:23 +00:00
thorpej
93ea1946f0
Implement a new kernel thread, the "reaper", which performs the task
...
of freeing the VM resources once a process has exited. A valid thread
must do this work, as doing so may block in a multi-processor environment.
1998-09-08 23:57:58 +00:00
thorpej
970e60efb8
- Use proclists[], rather than checking allproc and zombproc explicitly.
...
- Add some comments about locking.
1998-09-08 23:50:13 +00:00
thorpej
4edbfb00a8
- Add a new proclist, deadproc, which holds dead-but-not-yet-zombie
...
processes.
- Create a new data structure, the proclist_desc, which contains a
pointer to a proclist, and eventually, a pointer to the lock for that
proclist. Declare a static array of proclist_descs, proclists[],
consisting of allproc, deadproc, and zombproc.
1998-09-08 23:47:49 +00:00
christos
9b63f5f407
Assign copyright to TNF.
1998-09-05 14:30:31 +00:00
pk
6f107350c1
Make user-mode testing work again.
1998-09-01 17:59:36 +00:00
pk
5e3bbeb1e1
Fix a case of duplicate allocation in extent_alloc_subregion() triggered
...
by specifying a start address that happens to be beyond all currently
regions.
1998-09-01 17:57:44 +00:00
thorpej
77ecf8273e
Use the pool allocator and "nointr" pool page allocator for name cache entries.
...
The only benefit this provides is that we don't use kmem_map to map the memory
used for name cache entries (though, this is a 13 virtual page savings on my
PPro) since vnodes are never freed (they have their own freelist).
1998-09-01 04:33:56 +00:00
thorpej
830ea34819
Use the pool allocator and "nointr" pool page allocator for vnodes. The
...
only benefit this provides is that we don't use kmem_map to map the memory
used for vnodes (though, this is a 30 virtual page savings on my PPro)
since vnodes are never freed (they have their own freelist).
1998-09-01 03:09:14 +00:00
thorpej
8a1009afd9
Use the pool allocator and the "nointr" pool page allocator for rusage
...
structures.
1998-09-01 01:02:33 +00:00
thorpej
ad5e377513
Use the pool allocator and the "nointr" pool page allocator for tty
...
structures.
1998-09-01 00:23:28 +00:00
thorpej
3f8397855e
Use the pool allocator and the "nointr" pool page allocator for pgrp
...
structures.
1998-09-01 00:08:44 +00:00
thorpej
26b8f5c4ac
Use the pool allocator and "nointr" pool page allocator for file structures.
1998-08-31 23:55:37 +00:00
thorpej
a8f7175524
Use the pool allocator and "nointr" pool page allocator for pcred and
...
plimit structures.
1998-08-31 23:53:19 +00:00
thorpej
4dc0e91e12
Use the pool allocator and "nointr" pool page allocator for pcred and
...
plimit structures.
1998-08-31 23:20:16 +00:00
cgd
d58173741d
kill the last remnants of __BROKEN_INDIRECT_CONFIG. (only the pica port
...
used it, and it's non-working and apparently slated for replacement.)
1998-08-31 22:28:04 +00:00
mrg
69f13c5156
minor KNF nit
1998-08-31 02:47:00 +00:00
mrg
a2dad2e1a3
err, add sparc32_exec here. must forgot it.
1998-08-31 02:46:22 +00:00
scottr
b950031b83
Fix a few comment tyops, kill an inaccurate comment, and
...
do some minor KNFing.
1998-08-30 20:30:57 +00:00
thorpej
3d5e078fe9
Use the "nointr" pool page allocator.
1998-08-28 21:20:05 +00:00
thorpej
f1f6ec6afe
Add an alternate pool page allocator that can be used if the pool is
...
never accessed in interrupt context. In the UVM case, this uses the
kernel_map, to reduce usage of the previous kmem_map resource.
1998-08-28 21:18:37 +00:00
thorpej
77d0a69569
Add a waitok boolean argument to the VM system's pool page allocator backend.
1998-08-28 20:05:48 +00:00
pk
9e744b8155
Merge Chris Torek's new `%b' bit-field format into bitmask_snprintf().
1998-08-23 22:42:32 +00:00
ragge
b3574d3923
VAX logical page size increased to 4k.
1998-08-21 13:41:09 +00:00
thorpej
1083dcb6ca
Back out previous.
1998-08-18 18:16:30 +00:00
thorpej
7cc905f5c8
Add some braces to make egcs happy (ambiguous else warning).
1998-08-18 06:27:01 +00:00
thorpej
84f8a722d2
Deal with a VERY BOGUS -Wuninitialized warning. (Again, appears to be
...
__noreturn__ related)
1998-08-18 06:26:30 +00:00
thorpej
f3d7e7e21c
Add some braces to make egcs happy (ambiguous else warning).
1998-08-18 06:11:35 +00:00
thorpej
e00e495827
Add missing simple_unlock(), from Stefan Grefen, PR #5981 .
1998-08-17 17:29:20 +00:00
mycroft
bf886f2029
Assign my copyrights to TNF.
1998-08-15 05:19:50 +00:00
mycroft
6d3d8a1350
Make copyright notices with my name consistent.
1998-08-15 03:02:31 +00:00
thorpej
09efdbb42d
Oops, this got missed in the vm_offset_t -> vaddr_t change.
1998-08-13 19:15:33 +00:00
kleink
5350df2953
Per POSIX, fail with EINVAL if advisory locking is attempted on a file type
...
that doesn't support it, rather than using a homegrown EBADF or EOPNOTSUPP.
1998-08-13 10:06:31 +00:00
eeh
a2dd74ed79
Merge paddr_t changes into the main branch.
1998-08-13 02:10:37 +00:00
kleink
7b07ad780a
Per XNS Issue 5, calling recvmsg(2) or sendmsg(2) with an msg.msg_iovlen less
...
than or equal to 0 shall fail with EMSGSIZE; the latter condition was not being
checked for. Also, document the msg.msg_iovlen > {IOV_MAX} case.
1998-08-04 19:48:34 +00:00
kleink
c6ef57702d
UIO_MAXIOV -> IOV_MAX
1998-08-04 12:19:15 +00:00
perry
275d1554aa
Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
...
bcopy(x, y, z) -> memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
bcmp(x, y, z) -> memcmp(x, y, z)
bzero(x, y) -> memset(x, 0, y)
1998-08-04 04:03:10 +00:00
kleink
3d9b4a4320
Fix two off-by-one bugs, both present in each recvmsg(2) and sendmsg(2):
...
* the first one would cause an unnecessary malloc() of iovec storage for
a msg_iovlen of UIO_SMALLIOV although the required amount of memory has
been allocated on the stack.
* the second one would cause a recvmsg() or sendmsg() with a msg_iovlen of
UIO_MAXIOV to fail with EMSGSIZE, which is also a violation of XNS5.
1998-08-03 15:15:58 +00:00
kleink
c68582d64b
UIO_MAXIOV -> IOV_MAX
1998-08-03 15:01:00 +00:00
kleink
5404ba4886
Add support to query the
...
* availability of POSIX Synchronized I/O (kern.synchronized_io),
* maximum number of iovec structures to be used in readv(2) etc. (kern.iov_max)
via sysctl().
1998-08-03 14:38:20 +00:00
thorpej
85b7cfc8c3
Make sure we initialize pr_nidle.
1998-08-02 19:07:47 +00:00
kleink
b7877d3fc0
Implement support for IEEE Std 1003.1b-1993 syncronous I/O:
...
* if synchronized I/O file integrity completion of read operations was
requested, set IO_SYNC in the ioflag passed to the read vnode operator.
* if synchronized I/O data integrity completion of write operations was
requested, set IO_DSYNC in the ioflag passed to the write vnode operator.
1998-08-02 18:39:14 +00:00
thorpej
a4c7bab10e
Use the pool allocator for sockets.
1998-08-02 04:53:11 +00:00
thorpej
0e28b643e9
Use a pool for proc structures.
1998-08-02 04:41:32 +00:00
thorpej
6f739e1a66
Fix a braino in the idle page instrumentation.
1998-08-02 04:34:46 +00:00
thorpej
7c61b8cdd8
Instrument "idle pages" (i.e. pages which have no items allocated from
...
them, and could thus be freed back to the system).
1998-08-01 23:44:20 +00:00
thorpej
3c658f1f41
Don't call the protocol drain routines if how == M_NOWAIT, which typically
...
means we're in interrupt context. Since we can be called from a network
hardware interrupt, we could corrupt the protocol queues we try to drain
them at that time.
1998-08-01 01:47:24 +00:00
thorpej
c56c24f4fd
Initialize the mbuf allocator _before_ autoconfiguration; it might be
...
called when devices attach, take two.
Note that it is necessary that mbinit() NOT allocate memory, since it
is called before mb_map is created. This is not a problem with the
pool allocator that is now used for mbufs and mbuf clusters.
1998-08-01 01:36:35 +00:00
thorpej
e7521693c1
Use the pool allocator for mbufs and mbufs clusters (two pools, one for
...
each). Partially from pk@netbsd.org .
1998-08-01 01:35:20 +00:00
thorpej
e8b92fa131
Oops, back out previous. I need to attack that problem differently.
1998-08-01 01:20:43 +00:00
perry
730baa7431
fix sizeofs so they comply with the KNF style guide. yes, it is pedantic.
1998-07-31 22:50:48 +00:00
thorpej
17e88cf50e
Initialize the mbuf allocator _before_ autoconfiguration; it might be
...
called when devices attach.
1998-07-31 21:59:55 +00:00
thorpej
fe7696eacb
Un-static pool_head; vmstat wants to find it.
1998-07-31 21:55:09 +00:00
kleink
17de9df6c1
Reject an iovcnt argument of 0 to readv(), writev(), preadv() and pwritev()
...
as invalid. This has been stated by the respective manual pages at least
since Net/2, and is the behaviour specified by XSH5.
1998-07-31 15:38:58 +00:00
mycroft
f53fedba63
Regen.
1998-07-30 00:46:27 +00:00
mycroft
d588e17601
__Namespace__ __protection__.
1998-07-30 00:46:01 +00:00
thorpej
4b039671de
When checking for overflow in the residual count, test against SSIZE_MAX.
...
The read/write system calls return ssize_t because -1 is used to indicate
error, therefore the transfer size MUST be limited to SSIZE_MAX, otherwise
garbage can be returned to the user.
There is NO change from existing behavior here, only a more precise
definition of that the semantics are, except in the Alpha case, where
the full SSIZE_MAX transfer size can now be realized (ssize_t is 64-bit
on the Alpha).
1998-07-29 02:07:19 +00:00
thorpej
6326c90134
Change the "aresid" argument of vn_rdwr() from an int * to a size_t *,
...
to match the new uio_resid type.
1998-07-28 18:37:47 +00:00
thorpej
e95c22ee96
Don't cast the null residual pointer passed to vn_rdwr().
1998-07-28 18:17:34 +00:00
thorpej
80e25bcca0
Don't cast the null residual pointer passed to vn_rdwr().
1998-07-28 18:11:39 +00:00
thorpej
939279f988
When checking for overflow in the residual count, test against SSIZE_MAX.
...
The read/write system calls return ssize_t because -1 is used to indicate
error, therefore the transfer size MUST be limited to SSIZE_MAX, otherwise
garbage can be returned to the user.
There is NO change from existing behavior here, only a more precise
definition of that the semantics are, except in the Alpha case, where
the full SSIZE_MAX transfer size can now be realized (ssize_t is 64-bit
on the Alpha).
1998-07-28 17:58:29 +00:00
thorpej
bf51a1d137
uvm_deallocate() takes an address and a size, not an address range. From
...
ITOH Yasufumi <yasufu-i@is.aist-nara.ac.jp>, PR #5834 .
1998-07-24 20:47:59 +00:00
thorpej
fc4828b0b4
A few small changes to how pool pages are allocated/freed:
...
- If either an alloc or release function is provided, make sure both are
provided, otherwise panic, as this is a fatal error.
- If using the default allocator, default the pool pagesz to PAGE_SIZE,
since that is the granularity of the default allocator's mechanism.
- In the default allocator, use new functions:
uvm_km_alloc_poolpage()/uvm_km_free_poolpage(), or
kmem_alloc_poolpage()/kmem_free_poolpage()
rather than doing it here. These functions may use pmap hooks to
provide alternate methods of mapping pool pages.
1998-07-24 20:19:23 +00:00
sommerfe
1c2f0a15fd
Don't create the extent region pool until one of our callers is of the
...
opinion that it's safe to call malloc.
1998-07-24 06:40:45 +00:00
pk
4e465abf3f
Use a memory pool instead of malloc to allocate region descriptors.
1998-07-23 20:57:17 +00:00
pk
e32923a128
Re-vamped pool manager.
...
* support for customized memory supplier
* automatic page reclaim by VM system
* time-based hysteresis
* cache coloring (after Bonwick's "slabs")
1998-07-23 20:34:00 +00:00
lukem
786b86d71b
use AF_LOCAL instead of AF_UNIX
1998-07-18 05:04:35 +00:00
thorpej
4c50a37133
Back out previous, I botched something.
1998-07-16 00:46:50 +00:00
pk
3036bcf8e5
Close a descriptor leak. This proved especially detrimental under heavy
...
paging.
1998-07-15 12:38:29 +00:00
thorpej
b20c7bf68c
For SOCK_STREAM, provide the socket credentials to the accepter as soon as
...
the client connects.
1998-07-10 22:15:47 +00:00
jonathan
b37021c1a1
defopt NATM.
1998-07-05 22:48:05 +00:00
jonathan
d275e56dee
* defopt COMPAT_{09,10,11,12,13} and COMPAT_NOMID.
...
TODO: revisit interaction between native compat and emul compat usage.
1998-07-05 08:49:30 +00:00
jonathan
011f2bda08
defopt NS, NSIP.
1998-07-05 06:49:00 +00:00
jonathan
5c0c5dd0b4
defopt ISO TPIP.
1998-07-05 04:37:35 +00:00
jonathan
8db0fcdbf7
defopt CCITT.
1998-07-05 02:12:22 +00:00
jonathan
3751946b97
defopt INET, NETATALK.
1998-07-05 00:51:04 +00:00
jonathan
466e784ee1
defopt DDB.
1998-07-04 22:18:13 +00:00
thorpej
e5f49cece3
Regen: pad off_t args in pread/pwrite/preadv/pwritev.
1998-07-02 01:24:24 +00:00
thorpej
d4e618b3a5
Argh, pad the off_t args in pread/pwrite/preadv/pwritev. System call
...
numbers don't change since the window of brokenness was so small (1 day).
1998-07-02 01:23:33 +00:00
thorpej
bc799897fc
Implement pread(2), pwrite(2), preadv(2), and pwritev(2).
1998-06-30 19:36:24 +00:00
thorpej
1f37d1d569
Regen: added pread(2), pwrite(2), preadv(2), pwritev(2).
1998-06-30 19:34:20 +00:00
thorpej
f0dda0d383
Add positional read and write system calls:
...
- pread() (#173 ) and pwrite() (#174 ), which are defined by XPG4.2. System
call numbers match Solaris.
- preadv() (#289 ) and pwritev() (#290 ), which are the positional cousins
of readv() and writev(), but not defined by any standard.
1998-06-30 19:33:11 +00:00
thorpej
b6781dbaa2
Split up read/readv/write/writev into the system call front-end and
...
the guts that actually perform the I/O request.
1998-06-30 07:39:22 +00:00
thorpej
a4a34ba74a
Add two additional arguments to the fileops read and write calls, a
...
pointer to the offset to use, and a flags word. Define a flag that
specifies whether or not to update the offset passed by reference.
1998-06-30 05:33:11 +00:00
nathanw
30cbf42b77
Implement short corefile name support, controlled by options SHORTCORENAME
...
and sysctl kern.shortcorename.
Closes PR kern/5191.
1998-06-28 21:34:58 +00:00
thorpej
816e12eac2
defopt COMPAT_SVR4
1998-06-26 00:07:06 +00:00
thorpej
37b378d836
defopt COMPAT_HPUX
1998-06-25 23:56:39 +00:00
thorpej
8aee7782f5
defopt COMPAT_SUNOS
1998-06-25 23:40:33 +00:00
thorpej
311bac3348
defopt COMPAT_IBCS2
1998-06-25 23:22:37 +00:00
thorpej
c466f11939
defopt COMPAT_LINUX
1998-06-25 23:18:23 +00:00
thorpej
1a2cb1b9d4
defopt COMPAT_FREEBSD
1998-06-25 22:49:18 +00:00
thorpej
6b781d156f
defopt NFSSERVER
1998-06-25 22:17:36 +00:00
thorpej
23e23646da
Regen: defopt NFSSERVER
1998-06-25 22:17:21 +00:00
thorpej
d87e6c2b0e
defopt NFSSERVER
1998-06-25 22:16:01 +00:00
thorpej
808867c7cf
defopt KTRACE
1998-06-25 21:17:15 +00:00
thorpej
5b5a9f45a5
Regen: defopt KTRACE
1998-06-25 21:16:58 +00:00
thorpej
d6289815b4
defopt KTRACE
1998-06-25 21:15:35 +00:00
sommerfe
7ba7fbbb23
Always include fifos; "not an option any more".
1998-06-24 20:58:44 +00:00
sommerfe
becaafeea0
defopt for options FIFO
1998-06-22 22:00:59 +00:00
thorpej
387a1c5d41
Implement config_defer(), a generic mechanism to defer the configuration
...
of a device until all of its parent's children have been attached.
1998-06-09 18:46:12 +00:00
kleink
636443752e
Nuke a couple of non-local prototypes which are already declared in either
...
<sys/buf.h>, <sys/mount.h> or <sys/vnode.h>.
1998-06-08 15:52:07 +00:00
thorpej
618c279d16
Add fine-grained locking. Still one refinement to make, which will be
...
done in a separate commit.
1998-06-06 02:25:46 +00:00
kleink
4648a78bba
Regen: addition of fdatasync().
1998-06-05 20:36:53 +00:00
kleink
e9d6f5e996
Per IEEE Std 1003.1b-1993, implement the fdatasync() system call which is
...
identical to fsync() with the expecption of not being required to synchronize
file status information.
1998-06-05 20:31:36 +00:00
kleink
382743ada3
Convert fsync vnode operator implementations and usage from the old `waitfor'
...
argument and MNT_WAIT/MNT_NOWAIT to `flags' and FSYNC_WAIT.
1998-06-05 19:53:00 +00:00
kleink
b5a587ab63
Regen: fsync argument change.
1998-06-05 19:41:21 +00:00
kleink
c77a008cc2
Replace the `waitfor' argument to the fsync vnode operator with a `flags'
...
argument.
1998-06-05 19:38:56 +00:00
kleink
4c3bf73d01
Regen: mlock() and munlock() prototype changes.
1998-05-30 22:23:30 +00:00
kleink
bb7e6a0bdd
Per XSH98, const'ify the `addr' arguments to mlock() and munlock().
1998-05-30 22:21:03 +00:00
kleink
2a4b2482f5
Permit checking the availability of the POSIX File Synchronization Option
...
(a/k/a fsync(2)), System V style message queues, semaphores and shared memory
at runtime by adding a sysctl variable for each.
1998-05-24 19:52:01 +00:00
matt
b2c24dbcbe
Add an if_drain to the ifnet structure (call when the system is low
...
on mbufs). Add code to m_reclaim to call if_drain in each ifnet
that has one set. Remove register from declarations.
1998-05-22 17:47:21 +00:00
thorpej
ad7a87400a
defopt LOCKDEBUG
1998-05-20 01:32:29 +00:00
pk
d0e85dde99
Inline vref/vrele in vclean() because:
...
* we already have the vnode interlock, so vref() should not ask for it again.
* we call VOP_RECLAIM/VOP_INACTIVE(), which shouldn't be duplicated in vrele().
1998-05-18 14:59:49 +00:00
pk
addb5d9572
VOP_CLOSE() takes F* flags, not IO_* flags.
1998-05-08 21:02:35 +00:00
kleink
fe2d01988e
Fix some arithmetics lossage on typeless pointers.
1998-05-08 18:18:55 +00:00
kleink
bd6d376a49
Various SysV IPC prototype changes.
1998-05-07 18:00:49 +00:00
kleink
fb27bb18d3
Regen: various SysV IPC prototype changes.
1998-05-07 17:24:30 +00:00
kleink
e3611654cd
Several SYSV IPC prototype changes.
1998-05-07 17:08:42 +00:00
enami
9ad895e33c
Backout previous issignal() change so that gdb can trace a process
...
which has subprocess again; the lite2 change conflicts our local change.
1998-05-07 00:45:16 +00:00
thorpej
7f21dfafc1
Add monotonically increasing "current time" stamps for pfslowtimo() and
...
pffasttimo().
1998-05-06 01:11:46 +00:00
christos
1efd649b47
Regen
1998-05-02 18:34:13 +00:00
christos
02cecf686a
New fktrace syscall from Darren Reed [with fixes from me]
1998-05-02 18:33:19 +00:00
thorpej
73863dd3c9
Pass vslock() and vsunlock() a proc *, rather than implicitly operating
...
on curproc.
1998-04-30 06:28:57 +00:00
mycroft
f327fee4ca
Fix KTROP_CLEARFILE so it does the same thing as KTROP_CLEAR (i.e. vrele()
...
rather than vn_close()). Fixes PR 5357.
1998-04-28 22:27:22 +00:00
kleink
82eb51ee05
In soshutdown(), decouple the evaluation of the `how' argument from FREAD
...
and FWRITE; use SHUT_{RD,WR,RDWR} instead.
Also, return EINVAL if `how' is invalid.
1998-04-27 13:31:45 +00:00
thorpej
7a239c12c6
In vfs_unmountall(), if curproc is NULL, abort, because unmounting
...
puts the requesting process to sleep until the file systems buffers
have flushed, and sleeping with a NULL curproc will cause a fault.
1998-04-26 19:10:33 +00:00
thorpej
cbc64bb02d
Make vfs_shutdown() look a little nicer.
1998-04-26 18:58:54 +00:00
mycroft
359fa37f9a
Fix a condition where we might erroneously write out a buffer with garbage
...
left in it.
Fixes PR 5354.
1998-04-26 14:45:23 +00:00
matthias
818f5df269
new command "config" to set type (for c), constraint and printmodifier.
1998-04-25 19:48:27 +00:00
matt
754c43dcfc
Hook for 0-copy (or other optimized) sends and receives
1998-04-25 17:35:18 +00:00
jonathan
6c0abe64fc
defopt NTP and PPS_SYNC, in preparation for adding PPS support.
1998-04-22 07:08:11 +00:00
thorpej
2018d40811
Allocate kernel virtual address space for the U-area before allocating
...
the new proc structure when performing a fork. This makes it much
easier to abort a fork operation and return an error if we run out
of KVA space.
The U-area pages are still wired down in {,u}vm_fork(), as before.
1998-04-09 00:23:38 +00:00
mycroft
ca63148e3d
Oops; forgot to update prototype.
1998-03-30 06:18:05 +00:00
mycroft
f1ed6cae04
Argument to main() is no longer used.
1998-03-30 06:15:44 +00:00
mrg
af54a244f4
add missing int to typedef
1998-03-30 02:32:38 +00:00
mrg
f0fc5e8ca7
remove register from decl.
1998-03-29 05:19:43 +00:00
kleink
5d9a1f3207
Regen: syscalls.master changed.
1998-03-27 13:09:52 +00:00
kleink
3a1500efe9
Per X/Open CAE Spec Issue 5 Version 2, change the buffer size argument of
...
readlink() from type `int' to type `size_t'. This isn't an ABI change, since
the calling convention of our only LP64 platform (the Alpha) already promotes
this argument to a `long'.
This may not be the final action on this matter; readlink() still returns
an `int', which may change in a future revision of the standard.
1998-03-27 13:02:20 +00:00
thorpej
b436157e65
Make proc0 use the statically-allocate vmspace0 again, and make it use
...
the kernel's pmap, since proc0 (and other that share its address space)
are kernel-only processes, and should never contain userspace mappings.
This makes it easier to detect errors, like entering user mappings
for kernel processes, in pmap modules, and makes some sense, considering
that kernel processes are really just "thread contexts" for the kernel.
1998-03-27 01:52:01 +00:00
thorpej
272d8a4a38
Process 2 (the pagedaemon) always runs in kernel space, so share VM
...
space with proc0.
1998-03-22 18:22:07 +00:00
mycroft
2bb5067e13
Move the code to wait for carrier on a tty into a common function, since it
...
depends only on device-independent state bits.
Implement SunOS-style `dialout' devices.
1998-03-22 00:55:37 +00:00
mycroft
2ada4b4af1
Replace TS_WOPEN with t_wopen, per mail on tech-kern.
1998-03-21 04:02:47 +00:00
kleink
071ab13ebb
Move the permission check in change_owner() back to ufs_vnops::ufs_chown()
...
again - the facility required in this context would be a filesystem-specific
super-user determination, which is not available yet. Also, add some
clarification to a comment.
1998-03-10 11:49:33 +00:00
fvdl
1d02bb10d8
Clarify vget() comment a bit.
1998-03-04 09:13:48 +00:00
thorpej
9ebbb62608
Export spechash_slock; it's used outside of vfs_subr.c
1998-03-03 02:22:00 +00:00
thorpej
0080eaa0f5
Don't panic if DIAGNOSTIC in cluster_rbuild() if we aren't able to shed
...
memory in a buffer returned by geteblk(). Instrument the number of
occurrences.
1998-03-02 19:28:07 +00:00
ross
94ae870894
Compile post-lite2 with #ifndef DIAGNOSTIC
1998-03-01 09:51:29 +00:00
fvdl
78447a3cfd
Regen.
1998-03-01 02:29:59 +00:00
fvdl
e5bc90f40c
Merge with Lite2 + local changes
1998-03-01 02:20:01 +00:00
perry
a5385186b1
regen
1998-02-25 21:30:36 +00:00
perry
56c01cbd82
change second parm of sysarch() from char * to void *
1998-02-25 21:24:56 +00:00
chuck
5ad9218203
fix uvm-related protection error: we can't write protect the
...
vmcmd_map_readvn() area until after we do vn_rdwr(). should fix
problem reported by sean doran.
1998-02-23 18:53:22 +00:00
hannken
1bb761e96f
Didn't compile with option MEMORY_DISK_HOOKS.
1998-02-22 12:53:53 +00:00
mycroft
28e8037334
Fix missing newline in time zone warning.
1998-02-20 07:22:14 +00:00
pk
201f7cf6b4
Add option to use "static" storage provided by the caller.
...
From Matthias Drochner.
1998-02-19 23:51:48 +00:00
thorpej
95cd40bf13
Regen; makesyscalls.sh changed
1998-02-19 03:31:11 +00:00
thorpej
78a9bfbb1c
Argh, protect userland from includes in the syscall names file.
1998-02-19 03:30:24 +00:00
thorpej
2fc4c3415a
Include the UNION option header.
1998-02-19 00:53:46 +00:00
thorpej
990ca1baa0
Regen; syscalls.master and makesyscalls.sh changed.
1998-02-19 00:53:17 +00:00
thorpej
58fff16650
Include the NFS and LFS option headers.
1998-02-19 00:52:14 +00:00
thorpej
b0b3787d14
Include the NFS option header.
1998-02-19 00:47:02 +00:00
thorpej
0640c5a64f
Put #include directives in the system call names file, too, so we can
...
generate dependencies on optional system calls.
1998-02-18 23:14:55 +00:00
thorpej
9a3b52d482
Yay! This file is finally DEAD DEAD DEAD!
1998-02-18 07:17:13 +00:00
thorpej
d1f0dbf1b1
Don't use vfssw[], it's gone; use vfs_list instead.
...
Implement vfs_attach() and vfs_detach(), which add and remove file systems
from the kernel.
1998-02-18 07:16:41 +00:00
thorpej
6c57a3c322
Change vfs_opv_init_explicit() to not allocate the vnode operations
...
vectors; defer that to vfs_opv_init().
Change the interface to vfs_opv_init() and export it; it now takes a
pointer to an array of vnodeopv_desc *'s to initialize. Allocate
the vnode operations vectors here. Called by vfs_attach().
Implement vfs_opv_free(), which deallocates the vnode operations
vectors. Called by vfs_detach().
Change vfsinit() to build the initial vfs_list by traversing the
vfs_list_inital[] table, and vfs_attach()'ing those file systems.
Also, initialize special vnodeopv_descs (dead, fifo, spec) which
are not associated with any particular file system.
1998-02-18 07:15:30 +00:00
thorpej
c7a0984b02
vfssw[] is gone; use vfs_list instead.
1998-02-18 07:11:46 +00:00
thorpej
da61b242a0
Use vfs_attach()/vfs_detach().
1998-02-18 07:11:21 +00:00
kleink
f339e80ad6
Regen: syscalls.master change (addition of __posix_chown(), __posix_fchown(),
...
__posix_lchown(); posix_rename() -> __posix_rename()).
1998-02-14 20:05:53 +00:00
kleink
3404e6deb3
Implement __posix_chown(), __posix_fchown() and __posix_lchown(). Also,
...
rename posix_rename() to __posix_rename() to follow this convention.
1998-02-14 20:01:05 +00:00
kleink
3ef309317a
* Factor out some permission-checking code from ufs_setattr() into
...
change_owner().
* Change the semantics of chown(), fchown() and lchown(): when requesting a
change of the owner of a file, clear the set-user-id bit; analogous behaviour
for group changes.
* Since the above is a violation of the semantics specified by POSIX and
X/Open, add corresponding compatibility syscalls: __posix_chown(),
__posix_fchown(), __posix_lchown(). (Neither fchown() nor lchown() is
specified by POSIX; the prefix is intended to reflect the semantics.)
* Rename posix_rename() to __posix_rename() to follow the above convention.
1998-02-14 19:49:43 +00:00
kleink
59fe905973
Fix variable declarations: register -> register int.
1998-02-14 19:34:12 +00:00
thorpej
c1538fb038
Implement TIOCGSID.
1998-02-14 01:26:50 +00:00
thorpej
50c9f48319
Implement getsid(2), as defined by XPG4.2: returns the process group ID
...
of the session leader of the specified process's session.
1998-02-14 01:17:51 +00:00
thorpej
6da644fd03
Regen: syscalls.master changes (getsid(2))
1998-02-14 00:40:45 +00:00
thorpej
da187f7f6d
Reserve syscalls 283, 284, and 285 for 3 up-coming POSIX systems calls,
...
per kleink. Add XPG4.2's getsid(2) at #286 .
1998-02-14 00:39:33 +00:00
thorpej
d2924ae854
Prevent the session ID from disappearing if the session leader exits
...
(thus causing s_leader to become NULL) by storing the session ID separately
in the session structure. Export the session ID to userspace in the
eproc structure.
Submitted by Tom Proett <proett@nas.nasa.gov>.
1998-02-14 00:37:26 +00:00
kleink
af9cc34b3c
Add ONOCR and ONLRET output modes, from XPG4.2.
1998-02-13 21:53:44 +00:00
tls
561bc2f4ad
Remove rounding-down of hash size in hashinit(); support non &hashmask hash functions such as % [prime number] without bletcherous hacks.
1998-02-13 17:36:41 +00:00
kleink
0dc9b5452d
Fix variable declarations: register -> register int.
1998-02-12 20:39:41 +00:00
mrg
d90485202c
- add defopt's for UVM, UVMHIST and PMAP_NEW.
...
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
scottb
876dc027a1
added support for SCO UNIX (derived from iBCS2)
1998-02-09 01:29:10 +00:00
thorpej
1305ecbe62
Allow callers of uvm_km_suballoc() to specify where the base of the
...
submap _must_ begin, by adding a "fixed" boolean argument.
1998-02-08 06:15:53 +00:00
chs
ea8413cff7
whoops! undo GC, these are still used by OLDVM.
...
not paying attention...
1998-02-07 16:23:35 +00:00
chs
f64abc7b4c
add flags arg to hashinit(), to pass to malloc().
1998-02-07 02:44:44 +00:00
chs
0711fdaf0b
fix a locking problem by replacing the call to uvm_kernacc()
...
with an inlined version that uses kmem_map instead of kernel_map.
1998-02-07 02:40:36 +00:00
chs
d7d62b7ad3
snazzier LOCKDEBUG code.
1998-02-07 02:14:04 +00:00
chs
a4a3a88958
GC unused stuff.
1998-02-07 02:13:00 +00:00
thorpej
6b1ff3c892
When copying out multiple control messages, ensure that the next control
...
message is aligned. From David Borman <dab@bsdi.com>.
1998-02-06 23:19:26 +00:00