sa(4)

NAME

sa - SCSI Sequential Access device driver

SYNOPSIS

device sa

DESCRIPTION

The sa driver provides support for all SCSI devices of the
sequential
access class that are attached to the system through a sup
ported SCSI
Host Adapter. The sequential access class includes tape and
other linear
access devices.
A SCSI Host adapter must also be separately configured into
the system
before a SCSI sequential access device can be configured.

MOUNT SESSIONS

The sa driver is based around the concept of a ``mount
session'', which
is defined as the period between the time that a tape is
mounted, and the
time when it is unmounted. Any parameters set during a
mount session
remain in effect for the remainder of the session or until
replaced. The
tape can be unmounted, bringing the session to a close in
several ways.
These include:
1. Closing a `rewind device', referred to as sub-mode 00
below. An
example is /dev/sa0.
2. Using the MTOFFL ioctl(2) command, reachable through
the `offline'
command of mt(1).
It should be noted that tape devices are exclusive open de
vices, except
in the case where a control mode device is opened. In the
latter case,
exclusive access is only sought when needed (e.g., to set
parameters).

SUB-MODES

Bits 0 and 1 of the minor number are interpreted as `sub
modes'. The
sub-modes differ in the action taken when the device is
closed:
00 A close will rewind the device; if the tape has been
written, then
a file mark will be written before the rewind is re
quested. The
device is unmounted.
01 A close will leave the tape mounted. If the tape was
written to, a
file mark will be written. No other head positioning
takes place.
Any further reads or writes will occur directly after
the last
read, or the written file mark.
10 A close will rewind the device. If the tape has been
written, then
a file mark will be written before the rewind is re
quested. On
completion of the rewind an unload command will be is
sued. The
device is unmounted.

BLOCKING MODES

SCSI tapes may run in either `variable' or `fixed' block
size modes.
Most QIC-type devices run in fixed block-size mode, where
most nine-track
tapes and many new cartridge formats allow variable block
size. The difference between the two is as follows:
Variable block-size: Each write made to the device results
in a single
logical record written to the tape. One can never read or
write part of
a record from tape (though you may request a larger block
and read a
smaller record); nor can one read multiple blocks. Data
from a single
write is therefore read by a single read. The block size
used may be any
value supported by the device, the SCSI adapter and the sys
tem (usually
between 1 byte and 64 Kbytes, sometimes more).
When reading a variable record/block from the tape, the head
is logically
considered to be immediately after the last item read, and
before the
next item after that. If the next item is a file mark, but
it was never
read, then the next process to read will immediately hit the
file mark
and receive an end-of-file notification.
Fixed block-size: Data written by the user is passed to the
tape as a
succession of fixed size blocks. It may be contiguous in
memory, but it
is considered to be a series of independent blocks. One may
never write
an amount of data that is not an exact multiple of the
blocksize. One
may read and write the same data as a different set of
records. In other
words, blocks that were written together may be read sepa
rately, and
vice-versa.
If one requests more blocks than remain in the file, the
drive will
encounter the file mark. As there is some data to return
(unless there
were no records before the file mark), the read will suc
ceed, returning
that data. The next read will return immediately with a
value of 0. (As
above, if the file mark is never read, it remains for the
next process to
read if in no-rewind mode.)

FILE MARK HANDLING

The handling of file marks on write is automatic. If the
user has written to the tape, and has not done a read since the last
write, then a
file mark will be written to the tape when the device is
closed. If a
rewind is requested after a write, then the driver assumes
that the last
file on the tape has been written, and ensures that there
are two file
marks written to the tape. The exception to this is that
there seems to
be a standard (which we follow, but do not understand why)
that certain
types of tape do not actually write two file marks to tape,
but when
read, report a `phantom' file mark when the last file is
read. These
devices include the QIC family of devices. (It might be
that this set of
devices is the same set as that of fixed block devices.
This has not
been determined yet, and they are treated as separate behav
iors by the
driver at this time.)

IOCTLS

The sa driver supports all of the ioctls of mtio(4).

FILES

/dev/[n][e]sa[0-9] general form:
/dev/sa0 Rewind on close
/dev/nsa0 No rewind on close
/dev/esa0 Eject on close (if capable)
/dev/sa0.ctl Control mode device (to examine state
while another
program is accessing the device, e.g.).

DIAGNOSTICS

None.

SEE ALSO

mt(1), scsi(4)

AUTHORS

The sa driver was written for the CAM SCSI subsystem by
Justin T. Gibbs
and Kenneth Merry. Many ideas were gleaned from the st de
vice driver
written and ported from Mach 2.5 by Julian Elischer.
The current owner of record is Matthew Jacob who has suf
fered too many
years of breaking tape drivers.

BUGS

This driver lacks many of the hacks required to deal with
older devices.
Many older SCSI-1 devices may not work properly with this
driver yet.
Additionally, certain tapes (QIC tapes mostly) that were
written under
FreeBSD 2.X are not automatically read correctly with this
driver: you
may need to explicitly set variable block mode or set to the
blocksize
that works best for your device in order to read tapes writ
ten under
FreeBSD 2.X.
Fine grained density and compression mode support that is
bound to specific device names needs to be added.
Support for fast indexing by use of partitions is missing.
BSD June 6, 1999
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout