summaryrefslogtreecommitdiff
path: root/static/openbsd/man4/st.4
diff options
context:
space:
mode:
Diffstat (limited to 'static/openbsd/man4/st.4')
-rw-r--r--static/openbsd/man4/st.4308
1 files changed, 308 insertions, 0 deletions
diff --git a/static/openbsd/man4/st.4 b/static/openbsd/man4/st.4
new file mode 100644
index 00000000..43159d35
--- /dev/null
+++ b/static/openbsd/man4/st.4
@@ -0,0 +1,308 @@
+.\" $OpenBSD: st.4,v 1.22 2024/12/21 01:00:31 jsg Exp $
+.\" $NetBSD: st.4,v 1.2 1996/10/20 23:15:24 explorer Exp $
+.\"
+.\" Copyright (c) 1996
+.\" Julian Elischer <julian@freebsd.org>. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd $Mdocdate: December 21 2024 $
+.Dt ST 4
+.Os
+.Sh NAME
+.Nm st
+.Nd SCSI tape driver
+.Sh SYNOPSIS
+.Cd "st* at scsibus?"
+.Cd "#st0 at scsibus0 target 4 lun 0" Pq fixed-configuration example
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for
+.Tn SCSI
+tape drives.
+.Pp
+.Tn SCSI
+devices have a relatively high level interface and talk to the system via a
+.Tn SCSI
+adapter and a
+.Tn SCSI
+adapter driver
+e.g.\&
+.Xr ahc 4 .
+The
+.Tn SCSI
+adapter must be separately configured into the system before a
+.Tn SCSI
+tape can be configured.
+.Pp
+As the
+.Tn SCSI
+adapter is probed during boot, the
+.Tn SCSI
+bus is scanned for devices.
+Any devices found which answer as
+.Em Sequential
+type devices will be attached to the
+.Nm
+driver.
+.Sh MOUNT SESSIONS
+The
+.Nm
+driver is based around the concept of a
+.Em 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:
+.Bl -enum
+.It
+Closing an
+.Dq unmount device .
+.It
+Using the
+.Dv MTOFFL
+.Xr ioctl 2
+command, reachable through the
+.Cm offline
+command of
+.Xr mt 1 .
+.El
+.Sh EJECT and REWIND
+Bit 0 of the minor number specifies whether a rewind is attempted when the
+device is closed.
+When it is set, the device will not attempt a rewind on close
+and the device will have an
+.Sq n
+in its name.
+For example,
+.Pa /dev/rst0
+will rewind on close but
+.Pa /dev/nrst0
+will not.
+.Pp
+Bit 1 of the minor number specifies whether an eject is attempted when the
+device is closed.
+When it is set, the device will attempt to eject its media on close
+and the device will have an
+.Sq e
+in its name.
+For example,
+.Pa /dev/erst0
+will eject its media on close but
+.Pa /dev/rst0
+will not.
+.Pp
+If both bit 0 and bit 1 are set then an eject will
+be attempted without a rewind and the device will have both an
+.Sq e
+and an
+.Sq n
+in its name.
+For example,
+.Pa /dev/enrst0
+will eject its media without first rewinding it on close.
+.Pp
+There is no guarantee that the attempted eject or rewind will be supported
+by the actual hardware.
+.Sh BLOCKING MODES
+.Tn SCSI
+tapes may run in either
+.Em variable
+or
+.Em fixed
+block-size modes.
+Most
+.Tn QIC Ns -type
+devices run in fixed block-size mode, whereas most nine-track tapes
+and many new cartridge formats allow variable block-size.
+The difference between the two is as follows:
+.Bl -inset
+.It 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
+.Em 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
+.Tn SCSI
+adapter and the system (usually between 1 byte and 64 Kbytes,
+sometimes more).
+.Pp
+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.
+.It 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 separately,
+and vice-versa.
+.Pp
+If one requests more blocks than remain in the file, the drive will
+encounter the file mark.
+Because there is some data to return (unless there were no records before
+the file mark), the read will succeed, returning that data.
+The next read will return immediately with an
+.Dv EOF .
+(As above, if the file mark is never read, it remains for the next process
+to read if in no-rewind mode.)
+.El
+.Sh 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 don't understand why) that certain types of tape do not actually
+write two file marks to tape, but when read, report a
+.Dq 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.
+This has not yet been determined, and they are treated as separate
+behaviors by the driver at this time.)
+.Sh IOCTLS
+The following
+.Xr ioctl 2
+calls apply to
+.Tn SCSI
+tapes.
+Some also apply to other tapes.
+They are defined in the header file
+.In sys/mtio.h .
+.\"
+.\" Almost all of this discussion belongs in a separate mt(4)
+.\" manual page, since it is common to all magnetic tapes.
+.\"
+.Bl -tag -width MTIOCEEOT
+.It Dv MTIOCGET Fa "struct mtget *"
+Retrieve the status and parameters of the tape.
+.It Dv MTIOCTOP "struct mtop *"
+Perform a multiplexed operation.
+The argument structure is as follows:
+.Bd -literal -offset indent
+struct mtop {
+ short mt_op;
+ int mt_count;
+};
+.Ed
+.Pp
+The following operation values are defined for
+.Va mt_op :
+.Bl -tag -width MTSELDNSTY
+.It Dv MTWEOF
+Write
+.Va mt_count
+end of file marks at the present head position.
+.It Dv MTFSF
+Skip over
+.Va mt_count
+file marks.
+Leave the head on the EOM side of the last skipped file mark.
+.It Dv MTBSF
+Skip
+.Em backwards
+over
+.Va mt_count
+file marks.
+Leave the head on the BOM (beginning of media) side of the last skipped
+file mark.
+.It Dv MTFSR
+Skip forwards over
+.Va mt_count
+records.
+.It Dv MTBSR
+Skip backwards over
+.Va mt_count
+records.
+.It Dv MTREW
+Rewind the device to the beginning of the media.
+.It Dv MTOFFL
+Rewind the media (and, if possible, eject).
+Even if the device cannot eject the media, it will often no longer respond
+to normal requests.
+.It Dv MTNOP
+No-op; set status only.
+.It Dv MTCACHE
+Enable controller buffering.
+.It Dv MTNOCACHE
+Disable controller buffering.
+.It Dv MTSETBSIZ
+Set the blocksize to use for the device/mode.
+If the device is capable of variable blocksize operation, and the blocksize
+is set to 0, then the drive will be driven in variable mode.
+This parameter is in effect for the present mount session only.
+.It Dv MTSETDNSTY
+Set the density value (see
+.Xr mt 1 )
+to use when running in the mode opened (minor bits 2 and 3).
+This parameter is in effect for the present
+mount session only.
+.El
+.It Dv MTIOCIEOT
+Set end-of-tape processing (not presently supported for
+.Nm
+devices).
+.It Dv MTIOCEEOT
+Set end-of-tape processing (not presently supported for
+.Nm
+devices).
+.El
+.Sh FILES
+.Bl -tag -width /dev/[e][n][r]st[0-9] -compact
+.It Pa /dev/[e][n][r]st[0-9]
+General form.
+.It Pa /dev/rst0
+No eject, rewind on close.
+.It Pa /dev/nrst0
+No eject, no rewind on close.
+.It Pa /dev/erst0
+Eject, rewind on close.
+.It Pa /dev/enrst0
+Eject, no rewind on close.
+.El
+.Sh SEE ALSO
+.Xr chio 1 ,
+.Xr mt 1 ,
+.Xr intro 4 ,
+.Xr mtio 4 ,
+.Xr scsi 4
+.Sh HISTORY
+.An Julian Elischer
+wrote
+.Nm
+for Mach 2.5 and ported it to 386BSD.