Subject: Re: more SCSI preference questions...
To: None <hubert.feyrer@rz.uni-regensburg.de>
From: John F. Woods <jfw@jfwhome.funhouse.com>
List: current-users
Date: 08/20/1997 22:30:27
Eric:
> 1. if you use an ioctl, software (e.g. dump, tar, mt) must be modified to
> take advantage.
Hubert:
> Not necessarily... you could use 'mt' to disable/enable compression for
> a given tape. (I think some penguin-possessed OSs do this too).

The discussion of mag tape interfaces got me thinking about the idea of
nagging the makers of Retrospect (a backup program for Macs and PCs) into
supporting UNIX rmt as a tape "device".  I doubt it would fly, but the
basic idea of extending the rmt protocol into the late 1980s, if not the
actual 1990s, might offer a little guidance.  With a device minor number,
it would be harder to turn compression on and off, and you'd have no way
of knowing if it worked or not (if the compressed minor number doesn't
open, is that because compression isn't supported or because the tape
device is hosed?); with an ioctl, you can toggle the compression state and
(presumably) get a meaningful result.

As far as general SCSI tape features go, I'd like to see a way to select
tape partitions.  (Some SCSI tapes, like QIC-3080 and QIC-3095/Travan4,
have a dedicated track separate from the other serpentine tracks, which
can be accessed with a SCSI Set Partition command.  (I don't have my SCSI
standard handy, that might not be the correct name, and I don't remember
how it works.))  That could either be a minor device flag or an ioctl;
but now we're chewing up two minor bits for rare features, which I'd argue
suggests the ioctl route.

Note, by the way, that one part of the rmt protocol is host byte-order
dependant, and there's no easy way to tell what byte-order the rmt
server has!  All the world's a VAX...

While I'm griping about the rmt protocol, the type code in the mtget
structure is bogus.  Rather than listing all the devices which were
known about the last time anyone had the nerve to muck with rmt.h, it
should contain an identifier string (synthesized, if need be, but
ideally one would ask the controller).  And it would be nice if the
structure directly reported the (estimated) size of the tape (assuming
it's actually known, of course; you can't tell how big a reel of
half-inch tape you've got until the end is flapping...).