diff options
Diffstat (limited to 'static/netbsd/man4/st.4 3.html')
| -rw-r--r-- | static/netbsd/man4/st.4 3.html | 351 |
1 files changed, 0 insertions, 351 deletions
diff --git a/static/netbsd/man4/st.4 3.html b/static/netbsd/man4/st.4 3.html deleted file mode 100644 index d97cfba3..00000000 --- a/static/netbsd/man4/st.4 3.html +++ /dev/null @@ -1,351 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">ST(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">ST(4)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">st</code> — <span class="Nd">SCSI/ATAPI - tape driver</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="Cd">st* at scsibus? target ? lun ?</code> - <br/> - <code class="Cd">st1 at scsibus0 target 4 lun 0</code> - <br/> - <code class="Cd">st* at atapibus? drive ? flags 0x0000</code></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Nm">st</code> driver provides support for SCSI - and Advanced Technology Attachment Packet Interface (ATAPI) tape drives. It - allows a tape drive to be run in several different modes depending on minor - numbers and supports several different ‘sub-modes’. The device - can have both a - <a class="permalink" href="#raw"><i class="Em" id="raw">raw</i></a> - interface and a - <a class="permalink" href="#block"><i class="Em" id="block">block</i></a> - interface; however, only the raw interface is usually used (or - recommended).</p> -<p class="Pp">SCSI and ATAPI devices have a relatively high level interface and - talk to the system via a SCSI or ATAPI adapter and a SCSI or ATAPI adapter - driver (e.g. <a class="Xr">ahc(4)</a>, <a class="Xr">pciide(4)</a>). A SCSI - or ATAPI adapter must also be separately configured into the system before a - SCSI or ATAPI tape can be configured.</p> -<p class="Pp" id="Sequential">As the SCSI or ATAPI adapter is probed during - boot, the SCSI or ATAPI bus is scanned for devices. Any devices found which - answer as - ‘<a class="permalink" href="#Sequential"><i class="Em">Sequential</i></a>’ - type devices will be attached to the <code class="Nm">st</code> driver.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="MOUNT_SESSIONS"><a class="permalink" href="#MOUNT_SESSIONS">MOUNT - SESSIONS</a></h1> -<p class="Pp">The <code class="Nm">st</code> driver is based around the concept - of a - “<a class="permalink" href="#mount"><i class="Em" id="mount">mount - session</i></a>”, 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:</p> -<ol class="Bl-enum"> - <li>Closing an ‘unmount device’, referred to as sub-mode 00 - below. An example is <span class="Pa">/dev/rst0</span>.</li> - <li>Using the <code class="Dv">MTOFFL</code> <a class="Xr">ioctl(2)</a> - command, reachable through the - ‘<code class="Cm">offline</code>’ command of - <a class="Xr">mt(1)</a>.</li> - <li>Opening a different mode will implicitly unmount the tape, thereby closing - off the mode that was previously mounted. All parameters will be loaded - freshly from the new mode (See below for more on modes).</li> -</ol> -</section> -<section class="Sh"> -<h1 class="Sh" id="MODES_AND_SUB-MODES"><a class="permalink" href="#MODES_AND_SUB-MODES">MODES - AND SUB-MODES</a></h1> -<p class="Pp">There are several different ‘operation’ modes. These - are controlled by bits 2 and 3 of the minor number and are designed to allow - users to easily read and write different formats of tape on devices that - allow multiple formats. The parameters for each mode can be set individually - by hand with the <a class="Xr">mt(1)</a> command. When a device - corresponding to a particular mode is first mounted, The operating - parameters for that mount session are copied from that mode. Further changes - to the parameters during the session will change those in effect for the - session but not those set in the operation mode. To change the parameters - for an operation mode, one must compile them into the - “<i class="Em">quirk</i>” table in the driver's source - code.</p> -<p class="Pp">In addition to the operating modes mentioned above, 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:</p> -<dl class="Bl-tag"> - <dt>00</dt> - <dd>A close will rewind the device; if the tape has been written, then a file - mark will be written before the rewind is requested. The device is - unmounted.</dd> - <dt>01</dt> - <dd>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.</dd> - <dt>10</dt> - <dd>A close will rewind the device. If the tape has been written, then a file - mark will be written before the rewind is requested. On completion of the - rewind an unload command will be issued. The device is unmounted.</dd> - <dt>11</dt> - <dd>This is Control mode, which allows the tape driver to be opened without a - tape inserted to allow various ioctls (e.g. MTIOCGET or MTIOCTOP to set - density or blocksize) and raw SCSI command on through. I/O can be done in - this mode, if desired, with the same rewind/eject behaviour as mode 01. - This isn't really an 'action taken on close' type of distinction, but this - seems to be the place to put this mode.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="BLOCKING_MODES"><a class="permalink" href="#BLOCKING_MODES">BLOCKING - MODES</a></h1> -<p class="Pp">SCSI tapes may run in either - ‘<a class="permalink" href="#variable"><i class="Em" id="variable">variable</i></a>’ - or - ‘<a class="permalink" href="#fixed"><i class="Em" id="fixed">fixed</i></a>’ - 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:</p> -<dl class="Bl-inset"> - <dt id="part">Variable block-size</dt> - <dd>Each write made to the device results in a single logical record written - to the tape. One can never read or write - <a class="permalink" href="#part"><i class="Em">part</i></a> 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 system (usually between - 1 byte and 64 Kbytes, sometimes more). - <p class="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.</p> - </dd> - <dt>Fixed block-size</dt> - <dd>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. - <p class="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 EOF (as above, if the file mark is never read, it remains for the - next process to read if in no-rewind mode).</p> - </dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="FILE_MARK_HANDLING"><a class="permalink" href="#FILE_MARK_HANDLING">FILE - MARK HANDLING</a></h1> -<p class="Pp">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 - ‘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 behaviors by the driver at this - time).</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="EOM_HANDLING"><a class="permalink" href="#EOM_HANDLING">EOM - HANDLING</a></h1> -<p class="Pp">Attempts to write past EOM and how EOM is reported are handled - slightly differently based upon whether EARLY WARNING recognition is enabled - in the driver.</p> -<p class="Pp">If EARLY WARNING recognitions is <i class="Em">not</i> enabled, - then detection of EOM (as reported in SCSI Sense Data with an EOM indicator) - causes the write operation to be flagged with I/O error (EIO). This has the - effect for the user application of not knowing actually how many bytes were - read (since the return of the <a class="Xr">read(2)</a> system call is set - to −1).</p> -<p class="Pp" id="is">If EARLY WARNING recognition - <a class="permalink" href="#is"><i class="Em">is</i></a> enabled, then - detection of EOM (as reported in SCSI Sense Data with an EOM indicator) has - no immediate effect except that the driver notes that EOM has been detected. - If the write completing didn't transfer all data that was requested, then - the residual count (counting bytes <i class="Em">not</i> written) is - returned to the user application. In any event, the next attempt to write - (if that is the next action the user application takes) is immediately - completed with no data transferred, and a residual returned to the user - application indicating that no data was transferred. This is the traditional - UNIX EOF indication. The state that EOM had been seen is then cleared.</p> -<p class="Pp">In either mode of operation, the driver does not prohibit the user - application from writing more data, if it chooses to do so. This will - continue up until the physical end of media, which is usually signalled - internally to the driver as a CHECK CONDITION with the Sense Key set to - VOLUME OVERFLOW. When this or any otherwise unhandled error occurs, an error - return of EIO will be transmitted to the user application. This does indeed - mean that if EARLY WARNING is enables and the device continues to set EOM - indicators prior to hitting physical end of media, that an indeterminate - number of 'short write returns' as described in the previous paragraph will - occur. However, the expected user application behaviour (in common with - other systems) is to close the tape and rewind and request another tape upon - the receipt of the first EOM indicator, possibly after writing one trailer - record.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="KERNEL_CONFIGURATION"><a class="permalink" href="#KERNEL_CONFIGURATION">KERNEL - CONFIGURATION</a></h1> -<p class="Pp">Because different tape drives behave differently, there is a - mechanism within the source to <code class="Nm">st</code> to quickly and - conveniently recognize and deal with brands and models of drive that have - special requirements.</p> -<p class="Pp">There is a table (called the “<i class="Em">quirk - table</i>”) in which the identification strings of known errant - drives can be stored. Alongside each is a set of flags that allows the - setting of densities and blocksizes for each of the modes, along with a set - of `QUIRK' flags that can be used to enable or disable sections of code - within the driver if a particular drive is recognized.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="IOCTLS"><a class="permalink" href="#IOCTLS">IOCTLS</a></h1> -<p class="Pp">The following <a class="Xr">ioctl(2)</a> calls apply to SCSI - tapes. Some also apply to other tapes. They are defined in the header file - <code class="In"><<a class="In">sys/mtio.h</a>></code>.</p> -<dl class="Bl-tag"> - <dt id="MTIOCGET"><a class="permalink" href="#MTIOCGET"><code class="Dv">MTIOCGET</code></a></dt> - <dd>(<code class="Li">struct mtget</code>) Retrieve the status and parameters - of the tape. Error status and residual is unlatched and cleared by the - driver when it receives this ioctl.</dd> - <dt id="MTIOCTOP"><a class="permalink" href="#MTIOCTOP"><code class="Dv">MTIOCTOP</code></a></dt> - <dd>(<code class="Li">struct mtop</code>) Perform a multiplexed operation. The - argument structure is as follows: - <div class="Bd Pp Bd-indent Li"> - <pre>struct mtop { - short mt_op; - daddr_t mt_count; -};</pre> - </div> - <p class="Pp">The following operation values are defined for - <var class="Va">mt_op</var>:</p> - <dl class="Bl-tag"> - <dt id="MTWEOF"><a class="permalink" href="#MTWEOF"><code class="Dv">MTWEOF</code></a></dt> - <dd>Write <var class="Va">mt_count</var> end of file marks at the present - head position.</dd> - <dt id="MTFSF"><a class="permalink" href="#MTFSF"><code class="Dv">MTFSF</code></a></dt> - <dd>Skip over <var class="Va">mt_count</var> file marks. Leave the head on - the EOM side of the last skipped file mark.</dd> - <dt id="MTBSF"><a class="permalink" href="#MTBSF"><code class="Dv">MTBSF</code></a></dt> - <dd>Skip - <a class="permalink" href="#backwards"><i class="Em" id="backwards">backwards</i></a> - over <var class="Va">mt_count</var> file marks. Leave the head on the - BOM (beginning of media) side of the last skipped file mark.</dd> - <dt id="MTFSR"><a class="permalink" href="#MTFSR"><code class="Dv">MTFSR</code></a></dt> - <dd>Skip forwards over <var class="Va">mt_count</var> records.</dd> - <dt id="MTBSR"><a class="permalink" href="#MTBSR"><code class="Dv">MTBSR</code></a></dt> - <dd>Skip backwards over <var class="Va">mt_count</var> records.</dd> - <dt id="MTREW"><a class="permalink" href="#MTREW"><code class="Dv">MTREW</code></a></dt> - <dd>Rewind the device to the beginning of the media.</dd> - <dt id="MTOFFL"><a class="permalink" href="#MTOFFL"><code class="Dv">MTOFFL</code></a></dt> - <dd>Rewind the media (and, if possible, eject). Even if the device cannot - eject the media it will often no longer respond to normal - requests.</dd> - <dt id="MTNOP"><a class="permalink" href="#MTNOP"><code class="Dv">MTNOP</code></a></dt> - <dd>No-op; set status only.</dd> - <dt id="MTERASE"><a class="permalink" href="#MTERASE"><code class="Dv">MTERASE</code></a></dt> - <dd>Erase the media from current position. If the field - <var class="Va">mt_count</var> is nonzero, a full erase is done (from - current position to end of media). If <var class="Va">mt_count</var> - is zero, only an erase gap is written. It is hard to say which drives - support only one but not the other option</dd> - <dt id="MTCACHE"><a class="permalink" href="#MTCACHE"><code class="Dv">MTCACHE</code></a></dt> - <dd>Enable controller buffering.</dd> - <dt id="MTNOCACHE"><a class="permalink" href="#MTNOCACHE"><code class="Dv">MTNOCACHE</code></a></dt> - <dd>Disable controller buffering.</dd> - <dt id="MTSETBSIZ"><a class="permalink" href="#MTSETBSIZ"><code class="Dv">MTSETBSIZ</code></a></dt> - <dd>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, unless the device was opened in - Control Mode (in which case this set value persists until a - reboot).</dd> - <dt id="MTSETDNSTY"><a class="permalink" href="#MTSETDNSTY"><code class="Dv">MTSETDNSTY</code></a></dt> - <dd>Set the density value (see <a class="Xr">mt(1)</a>) to use when - running in the mode opened (minor bits 2 and 3). This parameter is in - effect for the present mount session only, unless the device was - opened in Control Mode (in which case this set value persists until a - reboot). Any byte sized value may be specified. Note that only a very - small number of them will actually usefully work. The rest will cause - the tape drive to spit up.</dd> - <dt id="MTCMPRESS"><a class="permalink" href="#MTCMPRESS"><code class="Dv">MTCMPRESS</code></a></dt> - <dd>Enable or disable tape drive data compression. Typically tape drives - will quite contentedly ignore settings on reads, and will probably - keep you from changing density for writing anywhere but BOT.</dd> - <dt id="MTEWARN"><a class="permalink" href="#MTEWARN"><code class="Dv">MTEWARN</code></a></dt> - <dd>Enable or disable EARLY WARNING at EOM behaviour (using the count as a - boolean value).</dd> - </dl> - </dd> - <dt id="MTIOCRDSPOS"><a class="permalink" href="#MTIOCRDSPOS"><code class="Dv">MTIOCRDSPOS</code></a></dt> - <dd>(<code class="Li">uint32_t</code>) Read device logical block position. Not - all drives support this option.</dd> - <dt id="MTIOCRDHPOS"><a class="permalink" href="#MTIOCRDHPOS"><code class="Dv">MTIOCRDHPOS</code></a></dt> - <dd>(<code class="Li">uint32_t</code>) Read device hardware block position. - Not all drives support this option.</dd> - <dt id="MTIOCSLOCATE"><a class="permalink" href="#MTIOCSLOCATE"><code class="Dv">MTIOCSLOCATE</code></a></dt> - <dd>(<code class="Li">uint32_t</code>) Position the tape to the specified - device logical block position.</dd> - <dt id="MTIOCHLOCATE"><a class="permalink" href="#MTIOCHLOCATE"><code class="Dv">MTIOCHLOCATE</code></a></dt> - <dd>(<code class="Li">uint32_t</code>) Position the tape to the specified - hardware block position. Not all drives support this option.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> -<dl class="Bl-tag Bl-compact"> - <dt><span class="Pa">/dev/[n][e]rst[0-9]</span></dt> - <dd>general form:</dd> - <dt><span class="Pa">/dev/rst0</span></dt> - <dd>Mode 0, Rewind on close</dd> - <dt><span class="Pa">/dev/nrst0</span></dt> - <dd>Mode 1, No rewind on close</dd> - <dt><span class="Pa">/dev/erst0</span></dt> - <dd>Mode 2, Eject on close (if capable)</dd> - <dt><span class="Pa">/dev/enrst0</span></dt> - <dd>Mode 3, Control Mode (elsewise like mode 0)</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">mt(1)</a>, <a class="Xr">intro(4)</a>, - <a class="Xr">mtio(4)</a>, <a class="Xr">scsi(4)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">This <code class="Nm">st</code> driver was originally written for - Mach 2.5 by Julian Elischer, and was ported to - <span class="Ux">NetBSD</span> by Charles Hannum. This man page was edited - for <span class="Ux">NetBSD</span> by Jon Buller.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> -<p class="Pp">The selection of compression could possibly also be usefully done - as with a minor device bit.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">August 23, 1996</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
