📄 scsiseqlib.html
字号:
physical device. If the boolean <i>fixedSize</i> is true, then <i>numBytes</i>represents the number of blocks of size <i>blockSize</i>, defined in the <b>pScsiPhysDev</b> structure. If variable block sizes are used(<i>fixedSize</i> = FALSE), then <i>numBytes</i> represents the actual number of bytesto be read. <p></blockquote><h4>RETURNS</h4><blockquote><p>Number of bytes or blocks actually read, 0 if EOF, or ERROR.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiWrtTape"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiWrtTape( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiWrtTape( )</strong> - write data to a SCSI tape device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiWrtTape ( SCSI_SEQ_DEV * pScsiSeqDev, /* ptr to SCSI sequential device info */ int numBytes, /* total bytes or blocks to be written */ char * buffer, /* ptr to input data buffer */ BOOL fixedSize /* if variable size blocks */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine writes data to the current block on a specified physicaldevice. If the boolean <i>fixedSize</i> is true, then <i>numBytes</i>represents the number of blocks of size <i>blockSize</i>, defined in the <b>pScsiPhysDev</b> structure. If variable block sizes are used(<i>fixedSize</i> = FALSE), then <i>numBytes</i> represents the actual number of bytesto be written. If <i>numBytes</i> is greater than the <b>maxBytesLimit</b> fielddefined in the <b>pScsiPhysDev</b> structure, then more than one SCSI transactionis used to transfer the data.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the data cannot be written or zero bytes are written.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiRewind"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiRewind( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiRewind( )</strong> - issue a REWIND command to a SCSI device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiRewind ( SCSI_SEQ_DEV * pScsiSeqDev /* ptr to SCSI Sequential device */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues a REWIND command to a specified SCSI device.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the command fails.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiReserveUnit"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiReserveUnit( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiReserveUnit( )</strong> - issue a RESERVE UNIT command to a SCSI device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiReserveUnit ( SCSI_SEQ_DEV * pScsiSeqDev /* ptr to SCSI sequential device */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues a RESERVE UNIT command to a specified SCSI device.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the command fails.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiReleaseUnit"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiReleaseUnit( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiReleaseUnit( )</strong> - issue a RELEASE UNIT command to a SCSI device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiReleaseUnit ( SCSI_SEQ_DEV * pScsiSeqDev /* ptr to SCSI sequential device */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues a RELEASE UNIT command to a specified SCSI device.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the command fails.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiLoadUnit"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiLoadUnit( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiLoadUnit( )</strong> - issue a LOAD/UNLOAD command to a SCSI device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiLoadUnit ( SCSI_SEQ_DEV * pScsiSeqDev, /* ptr to SCSI physical device */ BOOL load, /* TRUE=load, FALSE=unload */ BOOL reten, /* TRUE=retention and unload */ BOOL eot /* TRUE=end of tape and unload */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues a LOAD/UNLOAD command to a specified SCSI device.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the command fails.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiWrtFileMarks"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiWrtFileMarks( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiWrtFileMarks( )</strong> - write file marks to a SCSI sequential device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiWrtFileMarks ( SCSI_SEQ_DEV * pScsiSeqDev, /* ptr to SCSI sequential device info */ int numMarks, /* number of file marks to write */ BOOL shortMark /* TRUE to write short file mark */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine writes file marks to a specified physical device.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if the file mark cannot be written.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiSpace"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiSpace( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiSpace( )</strong> - move the tape on a specified physical SCSI device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiSpace ( SCSI_SEQ_DEV * pScsiSeqDev, /* ptr to SCSI sequential device info */ int count, /* count for space command */ int spaceCode /* code for the type of space command */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine moves the tape on a specified SCSI physical device.There are two types of space code that are mandatory in SCSI; currentlythese are the only two supported:<p><table><tr valign=top><th align=left>Code </th><th align=left> Description </th><th align=left> Support</tr><tr><td colspan="5"><hr></tr><tr valign=top><td align=left>000 </td><td align=left> Blocks </td><td align=left> </td><td align=left> </td><td align=left> Yes</tr><tr valign=top><td align=left>001 </td><td align=left> File marks </td><td align=left> Yes</tr><tr valign=top><td align=left>010 </td><td align=left> Sequential file marks </td><td align=left> No</tr><tr valign=top><td align=left>011 </td><td align=left> End-of-data </td><td align=left> No</tr><tr valign=top><td align=left>100 </td><td align=left> Set marks </td><td align=left> No</tr><tr valign=top><td align=left>101 </td><td align=left> Sequential set marks </td><td align=left> No</tr><tr valign=top><td align=left></tr></tr></table></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if an error is returned by the device.<p></blockquote><h4>ERRNO</h4><blockquote><p><b>S_scsiLib_ILLEGAL_REQUEST</b></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiSeqStatusCheck"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiSeqStatusCheck( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiSeqStatusCheck( )</strong> - detect a change in media</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS scsiSeqStatusCheck ( SCSI_SEQ_DEV * pScsiSeqDev /* ptr to a sequential dev */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues a <b>TEST_UNIT_READY</b> command to a SCSI device to detect achange in media. It is called by file systems before executing <b><a href="./ioLib.html#open">open</a>( )</b> or<b><a href="./ioLib.html#creat">creat</a>( )</b>.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK or ERROR.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b><hr><a name="scsiSeqIoctl"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>scsiSeqIoctl( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>scsiSeqIoctl( )</strong> - perform an I/O control function for sequential access devices</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>int scsiSeqIoctl ( SCSI_SEQ_DEV * pScsiSeqDev, /* ptr to SCSI sequential device */ int function, /* ioctl function code */ int arg /* argument to pass to called function */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine issues <b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b> commands to perform sequentialdevice-specific I/O control operations.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK or ERROR.<p></blockquote><h4>ERRNO</h4><blockquote><p><b>S_scsiLib_INVALID_BLOCK_SIZE</b></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./scsiSeqLib.html#top">scsiSeqLib</a></b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -