open the raw character device for nicknames (so that eject will open the
CD even without medias). Implement the raw_to_blk pathname conversion in
umount_mounted().
Create a new 'cdrom' type, add a '-l' switch which will cause a media load
on cdrom devices type.
Add 'sd0, sd1, sd2' nicknames to allow easy use with removable rewritable
disks (ZIP, jazz, MO, ...).
command (unlock for sd and cd) if no other partitions are open, return
EBUSY otherwise. DIOCEJECT will have the old semantic if its argument is not
0. The old ioctl has been renamed to ODIOCEJECT for binary compatibility.
the disk is ready to transfer data, and in ATA-5 the DSC has been obsoleted.
So only wait for DRQ to transfer data. This can be made conditional on the
ATA version if it's proven to break with some drives (worked with all the
drives I have access to).
While I'm there correct a few typos.
contiguous chunk of outq to emulation routine. Fix based on patch
from M. Drochner, modified to call output routine once with each
contiguous chunk when the ring buffer wraps around.
improvement in the "cat /usr/share/misc/termcap" benchmark on 486/75
ttwrite queues data for us in OBUFSIZ chunks. If we only consume
OBUFSIZ-1 bytes per call to wsdisplaystart(), we're *guaranteed* to
fall behind when given maximum-sized reads (which will defer
processing the leftovers until ttrstrt gets called, after a timeout)
Note that OBUFSIZ*4 may be overkill; OBUFSIZ*3 may be sufficient to
get maximal performance; OBUFSIZ*2 resulted in only about a 2.5x
performance improvement, but it's 2am and I've done enough tweaking
for the night.
Allow relative file writes,
For relative file accesses, no longer continues searching dirlist once we find
_any_ file, even one for which we don't have access,
If no dirlist was given on the command line, apply same permissions check as
with 'absolute' requests before allowing access.
* implement ftpvis(), which \ quotes the following in the given string:
SP, TAB, \, CR, "
* use ftpvis() in complete_ambiguous(), to escape characters in a word
which would confuse makeargv()/slurpstring().