scsi_reset(9f) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

scsi_reset(9f)

scsi_reset(9F)                 Kernel Functions                 scsi_reset(9F)

NAME
       scsi_reset - reset a SCSI bus or target

SYNOPSIS
       #include <sys/scsi/scsi.h>

       int scsi_reset(struct scsi_address *ap, int level);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       ap       Pointer to the scsi_address structure.


       level    The level of reset required.


DESCRIPTION
       The  scsi_reset()  function  asks  the host adapter driver to reset the
       SCSI bus or a SCSI target as specified by level. If  level  equals  RE‐
       SET_ALL,  the  SCSI bus is reset. If it equals RESET_TARGET, ap is used
       to determine the target to be reset. If it equals RESET_LUN, ap is used
       to determine the logical unit to be reset.


       When given the RESET_LUN level, scsi_reset() can return failure if  the
       LOGICAL UNIT RESET message is not supported by the target device, or if
       the  underlying  HBA  driver  does not implement the ability to issue a
       LOGICAL UNIT RESET message.


       Note that, at the point when scsi_reset() resets the logical unit (case
       RESET_LUN), or the target (case RESET_TARGET), or  the  bus  (case  RE‐
       SET_ALL),  there might be one or more command packets outstanding. That
       is, packets have been passed to scsi_transport(), and queued or  possi‐
       bly  transported, but the commands have not been completed and the tar‐
       get completion routine has not been called for those packets.


       The successful call to scsi_reset() has the side effect that  any  such
       commands  currently outstanding are aborted, at which point the packets
       are marked with pkt_reason set to CMD_RESET, and the appropriate bit --
       either STAT_BUS_RESET or STAT_DEV_RESET -- is  set  in  pkt_statistics.
       Once  thus appropriately marked, the aborted command packets are passed
       to the target driver command completion routine.


       Also note that, at the moment that a thread executing scsi_reset()  ac‐
       tually  resets  the  target  or  the  bus, it is possible that a second
       thread may have already called scsi_transport(), but not yet queued  or
       transported  its  command.  In  this case the HBA will not yet have re‐
       ceived the second thread's packet and this packet will not be aborted.

RETURN VALUES
       The scsi_reset() function returns:

       1    Upon success.


       0    Upon failure.


CONTEXT
       The scsi_reset() function can be called from user, interrupt, or kernel
       context.

SEE ALSO
       tran_reset_notify(9E), tran_reset(9E), scsi_abort(9F)


       Writing Device Drivers in Oracle Solaris 11.4

Oracle Solaris 11.4               16 Jan 2006                   scsi_reset(9F)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3