Ben Gras [Wed, 25 Oct 2006 13:38:31 +0000 (13:38 +0000)]
Part of wait()/waitpid() fix in revision 2629:2634 in PM - kernel
unblocks a process that has no priority (stopped with sys_nice()
and PRIO_STOP) and reschedules it if that gives it RTS flags of 0.
Ben Gras [Wed, 25 Oct 2006 11:29:43 +0000 (11:29 +0000)]
. processes stay ZOMBIE, even after wait(), to avoid wrongly seeing them
as living processes before they are cleaned up (fixes
wait()/waitpid() hanging forever on previously-ZOMBIE processes)
. stop processes from running using sys_nice() with PRIO_STOP
when a handled signal is delivered, before computing
stack locations for sys_sigsend(). (fixes race condition
when runnable processes get signals, and e.g. get scheduled
before FS sends a reply to unpause(), which can make the
signal stack location wrong.)
Philip Homburg [Fri, 20 Oct 2006 15:01:32 +0000 (15:01 +0000)]
(Incomplete) support for access control in PCI (pci_set_acl).
-script argument to service for crash recovery scripts
-config argument to service for driver resource configuration
restart command in service to restart a driver after a crash (for use in
crash recovery scripts).
down and refresh now take labels instead of pids.
verious changes in rs to make this work.
Ben Gras [Wed, 4 Oct 2006 13:28:38 +0000 (13:28 +0000)]
Change select() so that only as many words as necessary for the 'nfds'
argument from the fd bitmasks are copied from and back to userspace. This
solves an ABI dependency on OPEN_MAX. If nfds is too big for the current
OPEN_MAX, select() fails (but that's relatively easy to fix by 'just'
recompiling the system and not the application binaries), but if it's
smaller, binaries keep working.
Ben Gras [Thu, 10 Aug 2006 11:51:11 +0000 (11:51 +0000)]
. fix for wild store at startup time by calling dev_io without fp
initialized
. fix for writing exactly PIPE_SIZE to a pipe with O_NONBLOCK blocking
anyway because of incomplete logic in pipe_check
Ben Gras [Tue, 25 Jul 2006 09:41:40 +0000 (09:41 +0000)]
Introduction of a 'big' ioctl, with more bits (20) reserved for encoding the
size field. The TIOCSFON ioctl size (8192) didn't get encoded properly,
as there weren't enough bits for it (12) in the regular format.
The new format has only one type field, and an extra flag (_IOC_BIG)
turned on. FS checks for this flag and uses the alternative decoding
of the ioctl codes to determine the size when doing grants.
This unbreaks loadfont, although that still uses a phys copy in tty.
Philip Homburg [Wed, 19 Jul 2006 11:50:18 +0000 (11:50 +0000)]
Switch to vc 0 and softscrolling when /dev/video is opened and switch back
at the close. This should prevent problems with X on (emulated) Cirrus
cards.
Ben Gras [Thu, 13 Jul 2006 14:50:23 +0000 (14:50 +0000)]
. DS understands publishing and subscribing where keys are in string
form. Subscriptions are regular expressions.
. different types are stored per key; currently u32 and/or string.
the same key can be referenced (publish, subscribe, check) as any type.
. notify()s are sent when subscriptions are triggered (publishing or
updating of matching keys); optionally, a subscribe flag sends
updates for all matching keys at subscription time, instead of only
after updates after subscribing
. all interfacing to ds is in /usr/src/lib/syslib/ds.c.
. subscribe is ds_subscribe
publish functions are ds_publish_<type>
retrieve functions are ds_retrieve_<type> (one-time retrieval of a value)
check functions are ds_check_<type> (check for updated key caller
subscribes to not yet checked for, or ESRCH for none)
. ramdisk driver updated with new ds interface
Philip Homburg [Thu, 13 Jul 2006 13:19:48 +0000 (13:19 +0000)]
More stack for tcpd.
Safecopies renders the NWIOQUERYPARAM ioctl useless. This functionality
is now replaced with /dev/ipstat. Write the request to the device and
read the answer in one read request.