Daniel Eischen [Sat, 4 Dec 1999 22:55:59 +0000 (22:55 +0000)]
Change signal handling to conform to POSIX specified semantics.
Before this change, a signal was delivered to each thread that
didn't have the signal masked. Signals also improperly woke up
threads waiting on I/O. With this change, signals are now
handled in the following way:
o If a thread is waiting in a sigwait for the signal,
then the thread is woken up.
o If no threads are sigwait'ing on the signal and a
thread is in a sigsuspend waiting for the signal,
then the thread is woken up.
o In the case that no threads are waiting or suspended
on the signal, then the signal is delivered to the
first thread we find that has the signal unmasked.
o If no threads are waiting or suspended on the signal,
and no threads have the signal unmasked, then the signal
is added to the process wide pending signal set. The
signal will be delivered to the first thread that unmasks
the signal.
If there is an installed signal handler, it is only invoked
if the chosen thread was not in a sigwait.
In the case that multiple threads are waiting or suspended
on a signal, or multiple threads have the signal unmasked,
we wake up/deliver the signal to the first thread we find.
The above rules still apply.
Reported by: Scott Hess <scott@avantgo.com>
Reviewed by: jb, jasone
Bill Paul [Sat, 4 Dec 1999 17:41:31 +0000 (17:41 +0000)]
Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers
which it replaces. The new driver supports all of the chips supported
by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards.
This also completes my quest to convert things to miibus and add
Alpha support.
Override PERL and FULLPERL to be just "perl". This prevents MakeMaker
(ie Makefile.PL) from creating makefiles that explicitly use the perl
from the object tree. It breaks cross-building. While I'm here, create
a variable that holds common MakeMaker arguments used by all targets,
and by doing so automaticly fixed a bug.
Other modules can register and unregister ioctl handlers to extend the
ioctls known by the Linuxulator. A recent application is the vmware
port. The Linuxulator itself uses the new interface to register its
handlers as well. Handlers for the following types of ioctls have been
defined:
cdrom
console (=keyboard and VT handling)
socket
sound
termio
All ioctl related defines and declarations have been moved to a new
file (linux_ioctl.h), except for the pluggable ioctl handler interface
definition.
While there, cleanup linux.h some more.
linux.h and linux_ioctl.[ch] have been made to conform to style(9) as
much as possible.
Support the environtmental var "CVS_OPTIONS". Which can hold a set of
default options for cvs. These options are interpreted first and can be
overwritten by explicit command line parameters.
Matt Jacob [Fri, 3 Dec 1999 23:14:11 +0000 (23:14 +0000)]
Correct some botched timeout defines. Allocate only 8KB for the test read
in samount. Make things a lot quieter in samount (and other places). Fix
ridiculous and not so ridiculous bugs in compression related code in both
sagetparams and sasetparams.
Archie Cobbs [Fri, 3 Dec 1999 21:17:30 +0000 (21:17 +0000)]
Add a new function ng_findhook() for finding a node's hook;
if the node type provides a more efficient implementation than
the normal linear scan, use it.
Semen Ustimenko [Fri, 3 Dec 1999 20:37:40 +0000 (20:37 +0000)]
Merged NetBSD version, as they have done improvements:
1. ntfs_read*attr*() functions now accept
uio structure to eliminate one data copying.
2. found and removed deadlock caused
by 6 concurent ls -lR.
3. started implementation of nromal
Unicode<->unix recodeing.
Avoid hardcoding any paths and variables. The include directory must
now be specified on the command line. Accept a '-s' option which
controls whether a switch-statement is to be used instead of a series
of if-statements.
Matthew N. Dodd [Fri, 3 Dec 1999 08:41:24 +0000 (08:41 +0000)]
Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered(). 'ivars' may now be set using the
device_set_ivars() function.
This makes it easier for us to change how arbitrary data structures are
associated with a device_t. Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.
Despite my best efforts I've probably forgotten something so let me know
if this breaks anything. I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.
Brian Somers [Fri, 3 Dec 1999 06:33:10 +0000 (06:33 +0000)]
Be careful not to re-initialise `struct stat' while it still has
a running timer. This fixes a problem where a dial is manually
aborted, the hangup script kicks in and the chat timer ends up
on the timer queue twice (tick tick tick tick *boom*)
Nick Hibma [Fri, 3 Dec 1999 01:34:42 +0000 (01:34 +0000)]
Fix the 'usb0: USB revision unknown, not supported' people have been seeing
by identifying the version in the PCI drivers.
The OHCI driver just presets this to 1.0 as it is not specified in the
PCI registers anywhere. This should be revisited once USB 2.0 is in
wide spread use.
Archie Cobbs [Fri, 3 Dec 1999 00:28:06 +0000 (00:28 +0000)]
A better version of the previous checkin. If the user specifies
a custom file that could override a FreeBSD file under a different
configuration, but doesn't under this one, give a different warning.
Archie Cobbs [Thu, 2 Dec 1999 23:43:08 +0000 (23:43 +0000)]
When specifying additiona user-specified kernel compilation source
files in a 'files.XXX' file, config allows non-FreeBSD source files
with the same name as a FreeBSD source file to override the latter,
and in this situation it issues a warning.
However, if one of the user-specified files is actually a FreeBSD
source file (perhaps your kernel has some custom option that requires
that file), config mistakenly thinks it's a completely new file
and goes ahead and overrides all previous information for that file
(and issues the warning).
Sheldon Hearn [Thu, 2 Dec 1999 17:46:17 +0000 (17:46 +0000)]
Reserve #137 for nCipher's nFast PCI hardware cryptographic
accelerator, for which open source drivers are under development,
for John Hartley <john@ncipher.com>.
Nick Hibma [Thu, 2 Dec 1999 16:43:18 +0000 (16:43 +0000)]
In one queue all the TDs (transfer descriptor, packets) for one transfer
are queued. Traverse the queues vertically and then horizontally.
This means that TDs for one xfer are transmitted back to back until the
first NAK or error condition. Up to now we transmitted a TD per frame
and transmitted the next TD in the next frame.
The old approach is more fair if you have the end of the queue point at
the beginning of the control transfer queue, but also a lot more overhead
due to the fact that the QHs have to be read more often.
The new approach squirts the packets down the line as fast as possible
for one transfer and then does the next one. In the current situation,
with fairly empty USB buses, this is a more sensible approach. We might
have to revisit the scheduler later however.
It speeds up large transfers (Zip drive, Host-To-Host adapters) on UHCI
by a factor of 5 and makes it as fast as OHCI on the bus.
The next problem to solve is the question why the limit is 300kb/s and
not 1000/kb/s (kb == kilobyte).
Sheldon Hearn [Thu, 2 Dec 1999 16:39:15 +0000 (16:39 +0000)]
Replace the -q option to pwd_mkdb with a test for PW_SCAN_BIG_IDS in
the environment. This allows big ID warnings to be suppressed for
vipw and chpass as well.
Since the environment variable test is only performed for callers
of pw_scan() that do not set pw_big_ids_warning, the test can still
be overriden. Currently, chpass and pwd_mkdb are the only users
of pw_scan() and neither of them overrides the environment variable
test.
Make sure DESTDIR is set in the environment of mkioctls. This fixes
the breakage people have encountered at certain times (for example
when the altq_*.h files were removed).
Mike Smith [Thu, 2 Dec 1999 09:16:02 +0000 (09:16 +0000)]
Updates for 4.x:
- Add AMI and Mylex RAID controllers
- Reflect the demise of the 'eg' and 'ft' drivers
- Various minor cleanups
- Add some initial Microchannel information (this could do with some
fleshing out)