is a very rough cut supporting only open/close/read/write for char
devices for the time being. It also takes some extra liberties in
error value processing wrt. to the request-response protocol, but
that will be fixed later. On the bright side, I haven't managed
to crash my test kernel in several hours with this anymore, so it
can be considered extra-stable ... All in all this is remarkably
similar to puffs from multiple angles (well, actually, big surprise
there) and these two will share more and more code in the future.
The hardest part, coming up with the name, was done by agc. I'm
not exactly sure what "pud" is supposed to stand for, but if my
British is anything close to par, I understand that "pud" over
there can stand for just about anything, so it's a safe bet.
configuration routine has been attached to the putter device minor
number, the configuration routine will be called when the device
is opened. This is required for subsystems which enter the kernel
only through the file descriptor and cannot configure themselves
via another route (like puffs does via the mount() syscall). Keep
the minor number 0 for "wildcard" uses where we do not require a
hardwired config routine (e.g. the puffs case).
- The mutex for the callout handler must run at IPL_SOFTCLOCK.
- Just stop the callout in sysmon_envsys_unregister() and don't wait
for the callout to finish.
This allows easy configuration of banner text, console device and timeout
as well as allowing menus of commands to be displayed. If /boot.cfg
is not present, then the existing behaviour does not change.
The sections in the boot loader source are surrounded by #ifdef SMALL
allowing this functionality to be removed if space is at a premium.
We need to sanity check the DeviceClass in this case.
Currently known guilty products:
0x050d/0x0121 Belkin Bluetooth and USB2LAN
If this turns out to be more common, we could use a quirk table.
provided by Martin Husemann on:
http://mail-index.netbsd.org/tech-kern/2007/11/16/0006.html
This fixes the uninitialized lock when calling bio_register() on mfi(4)
and other drivers, caught by LOCKDEBUG.
Ok'ed by Andrew Doran <ad@netbsd.org>