Title: SCSI Toolbox, LLC
1 Introduction to the Developers Toolbox (DTB)
Tape Functions
2What is Developers Toolbox?
Developers Toolbox (DTB) is a set of function
libraries for Windows and Linux, that allow
programmers quick and easy access to SCSI, FC,
SAS, and ATAPI peripherals.
DTB consists of a .dll library for Windows, and a
.so shared library for Linux. Programming
environments supported are Visual Studio 6 and
Visual Studio .NET (VB, VC, C) for Windows,
and any programming environment that supports
shared libraries under Linux. Currently the Linux
DTB is supported under RedHat 9.
3History Evolution of DTB
DTB is the forth generation of scripting/programmi
ng solutions to be offered by STB.
- Keystroke/Mouse macro recorder playback 1996
- Build/Run Script function within SCSItoolbox
1998 - Scriptwriter Pro VBA engine within SCSItoolbox
2000 - Developers Toolbox 2002
- - Visual Basic support Jan 2003
- - Visual C support June 2003
- - .NET support June 2004
- - Linux RedHat 9 support Sept 2004
4DTB Windows Programming Environments
1. Microsoft Visual Basic 6 2. Microsoft Visual
C 6 3. Microsoft Visual Basic .NET 4. Microsoft
C 5. Scriptwriter Pro (SWP) - SWP is a VBA
engine with editor/debugger - SWP is accessible
from the SCSItoolbox - Stand Alone Scriptwriter
Pro is a separate application
5DTB Files
Windows - pssl and 2gbase files located in
the windows\system32 folder. - example VB
files vbpssl.dll and vb2gbase.dll Linux -
LibLinuxPSSL.so shared object file should be
placed in /usr/lib.
6DTB Types of functions available
- General Functions
- Functions that do not execute I/O
- Buffer management, HBA device counts, etc
- 2. Command functions
- - User defined CDBs
- - Pre-defined often used commands
- - Grouped by device type (disk, tape, library)
- 3. High level Test functions
- - multi-threaded, multi-device tests
- - grouped by device type
- 4. Low level protocol functions
7DTB Basic functions
- SCSIBufferSize returns the amount of buffer
available - SCSIGetDLLVersion returns the version number of
DTB - SCSIHostAdapterCount how many host adapters are
in the system - SCSITargetCount how many devices are attached
to the specified HBA - SCSIResetHBA resets and rescans the specified
HBA - SCSISetTimeout defines the timeout value in
seconds for all subsequent commands - SCSICMQ flushes the Windows message queue
- Math functions Hex2Dec,Dec2Hex,OR,AND,XOR
8DTB Buffer Functions Fill buffer functions
- SCISFillBuffer
- fills the buffer with n bytes of a user
specified data pattern - SCSIFillBlockNum
- blocksized data chunks with block number used
for data - SCSIFillRandom
- - blocksize data chunks with block , seed, and
random data - SCSIFillPattern
- - fills buffer with a predefined data pattern
- SCSIFile2Buffer
- - copies contents of a file into the buffer
- SCSIFileOffset2Buffer
- - Copies contents of the specified offset into a
file into the buffer
9DTB Buffer Functions Fill buffer functions
7. SCSILoadBuffer - fills buffer with a
repeating byte of data 8. SCSIRollPattern -
fills with a pattern of 4 bytes, incrementing the
pattern
10DTB Buffer Functions buffer compare functions
1. SCSICompareBuffers - compares a specified
number of bytes of buffer 0 and 1, starting at a
specified offset into the buffers. Returns offset
if compare fails 2. SCSICheckRandomBlock -
checks for correct random data as written with
SCSIFillRandom 3. SCSIGetRandomErrors - returns
error details if 2 above returns a failure 4.
SCSIBuffer2File - writes the contents of the
buffer to a file 5. SCSISearchBuffer - searches
the buffer for a specified data pattern
11DTB General SCSI Functions - INQUIRY
1. SCSITUR Test Unit Ready 2. SCSIInquiry raw
INQUIRY data 3. SCSIInquiryEVPD raw EVPD page
data 4. SCSIGetVendor returns VENDOR string 5.
SCSIGetProduct returns PRODUCT string 6.
SCSIGetVersion returns firmware VERSION
string 7. SCSIGetDeviceType returns device type
from INQUIRY byte 0
12DTB General SCSI Functions MODE LOG Pages
1. SCSIModeSense gets mode page data without
header and block descriptor 2. SCSIModeSenseFull
gets all mode page data including header and
block descriptor 3. SCSIModeSelect issues mode
select transferring page data only does not
send block descriptor 4. SCSIModeSelectFull
issues mode select transferring header, block
descriptor, and page data 5. SCSILogSense gets
specified log page data according to specified
pagecode
13DTB General SCSI Functions User Defined CDB
- Issues a CDB with the following details defined
by the programmer - CDB length - All bytes of
CDB - Data direction - Data length - Which
buffer to use for data phase This allows any CDB
(vendor unique, future definitions, etc) to be
sent with any data desired.
14DTB Tape Specific Commands general functions
1. SCSITapeRewind rewinds tape 2.
SCSITapeUnload ejects media from tape drive 3.
SCSIGetTapeCapacity returns current
blocksize 4. SCSISetTapeBlocksize sets
blocksize
15DTB Tape Specific Commands general functions
5. SCSIGetBufferMode returns MODE SENSE buffer
mode setting 7. SCSISetBufferMode sets MODE
SELECT buffer mode
16DTB Tape Specific Commands Write/Read
Functions
1. SCSITapeWriteF writes n number of blocks
from buffer 0 or 1 using fixed block writes 2.
SCSITapeWriteV- writes n number of bytes from
buffer 0 or 1 using variable block writes 3.
SCSITapeReadF reads n number of blocks into
buffer 0 or 1 using fixed block read 4.
SCSITapeReadV reads n number of bytes into
buffer 0 or 1 using variable block read
17DTB Tape Specific Commands General Functions
1. SCSITapeWFM writes a filemark 2.
SCSITapeFSF spaces forward by filemark 3.
SCSITapeFSR spaces reverse by filemark 4.
SCSITapeSpaceEOD spaces to end of data
18DTB Tape Specific Commands Firmware Download
The SCSISegmented_FWDL will use a series of WRITE
BUFFER commands in segmented mode to download a
firmware file into a drive. The data is written
in 0x2000 byte segments using WRITE BUFFER MODE
7
19DTB Tape Specific Commands Firmware Download
- Vendor specific firmware download functions 1.
SCSIDLT_FWDL Firmware download for Quantum DLT
drives 2. SCSISDLT_FWDL Quantum SuperDLT
firmware download 3. SCSIIBMLTO_FWDL IBM LTO
firmware download 4. SCSIHPLTO_FWDL HP LTO
firmware download 5. SCSISeagateLTO_FWDL
Certance firmware download 6. SCSISonyAIT_FWDL
Sony AIT/SAIT firmware download
20DTB Tape Specific Commands error information
Two functions are used to retrieve error
information - SCSIViewSense -
SCSIErrorDetails The procedure to follow when a
function that issues a CDB returns a failure code
is 1. Issue SCSIErrorDetails() 2. If Target
status does not equal 0 (Command Complete) issue
SCSIViewSense() to retrieve SENSE DATA
21DTB General SCSI Functions Threaded User CDB
These are a number of functions that allow -
any user defined CDB to be issued as a thread -
the status of any outstanding CDB thread to be
monitored - any data or error data to be
retrieved upon completion Example send a
threaded rewind command to a tape drive in a
library. While the rewind is processing use
threaded move media commands to exercise the
library robotics.
22DTB Protocol Functions
Several DTB functions are available to retrieve
and manipulate HBA and device settings using the
LSI U320 HBA and LSI MPI driver - any/all
negotiated parameter may be retrieved or set -
higher level functions allow setting tranfer
rates from 5 320 MB/s - SCSI bus resets may be
issued - all parameters may be read/written on a
device by device basis - Similar functions for
LSI Fibre Channel and SAS HBAs will be available
in Q1 2005
23DTB Threaded High-level Test Sequences
High level test sequences are created using the
following method 1. Initialize the test
sequence - SCSIPrepareForNewTapeTestSequence() 2.
Add the tape drives to be tested into the device
test list - SCSIAddTapeDeviceToBeTested() 3. Add
the test sequence steps into the test sequence
list - SCSIAddTapeTest() 4. Start the test
sequence - SCSIStartTapeTestSequence() 5.
Monitor test sequence progress -
SCSIGetTapeTestStatusWData,Full()
24DTB Threaded High-level Test Sequences
- functions are available to stop, pause, and
resume tests on a device by device basis -
external executable programs may be run as a test
sequence step - Vendor specific log retrieval -
Environmental chamber control - programmable
power supply control - email or IM
notification - etc - An individual text log file
is created for each device under test, containing
all test definition details and test results
25For more information contact SCSI Toolbox at -
Sales (720) 2492641 - Technical Support (303)
972-2072 www.scsitoolbox.com