sdi_device_reset(D3sdi)
sdi_device_reset --
send SFB_DEVICE_RESET to HBA driver
Synopsis
#include <sys/sdi.h>
int sdi_device_reset(struct scsi_adr *sap, struct sb *sbp);
Description
sdi_device_reset( )
sends
an SFB_DEVICE_RESET function
to the HBA driver corresponding to sap.
Prior to doing this,
it sends SFB_SUSPEND
to all Logical Units on the target.
Upon completion,
it calls the
sdi_timeout(D3sdi)
function to wait for 4 seconds,
giving devices tie to fully reset.
After this timeout period passes,
SFB_RESUME is sent
to all Logical Units that are not waiting
to be serviced by the error recovery gauntlet.
Arguments
sap-
SCSI target to be reset
sbp-
partially completed command block to be sent to HBA driver
Return values
The normal return is SDI_RET_OK.
Any other return value indicates a failure.
Usage
sdi_device_reset( )
is used by target drivers
as part of error recovery.
It is only called from the target driver's error recovery routine
as a result of a corresponding
sdi_start_gauntlet(D3sdi)
call.
Context and synchronization
Blockable
context.
Synchronization constraints
Does not sleep.
Driver-defined basic locks, read/write locks, and sleep
locks can be held across calls to this function.
Applicable hardware
All
Version applicability
sdi:
3, 4
target drivers
using ddi: 7, 7mp, 8, 8mp.
Differences between versions
In SDI versions prior to version 4,
the
sdi_device_reset( )
function is cast as an int.
References
sdi_bus_reset(D3sdi),
sdi_end_gauntlet(D3sdi),
sdi_start_gauntlet(D3sdi),
sdi_timeout(D3sdi)
``SDI bus timeout/reset recovery'' in HDK Technical Reference
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005