TRAN_RESET(9E) | Driver Entry Points | TRAN_RESET(9E) |
#include <sys/scsi/scsi.h> int prefixtran_reset(struct scsi_address *ap, int level);
level
tran_reset() must reset either the SCSI bus, a SCSI target device, or a SCSI logical unit as specified by level.
level must be one of the following:
RESET_ALL
RESET_TARGET
RESET_LUN
tran_reset should set the pkt_reason field of all outstanding packets in the transport layer associated with each target or logical unit that was successfully reset to CMD_RESET and the pkt_statistics field must be OR'ed with either STAT_BUS_RESET (if the SCSI bus was reset) or STAT_DEV_RESET (if the target or logical unit was reset).
The HBA driver should use a SCSI Bus Device Reset Message to reset a target device. The HBA driver should use a SCSI Logical Unit Reset Message to reset a logical unit.
Packets that are in the transport layer but not yet active on the bus should be returned with pkt_reason set to CMD_RESET and pkt_statistics OR'ed with STAT_ABORTED.
Support for RESET_LUN is optional but strongly encouraged for new and updated HBA drivers. If an HBA driver provides RESET_LUN support, it must also create the lun-reset capability with a value of zero for each target device instance represented by a valid ap. The HBA is also required to provide the means to return the current value of the lun-reset capability in its tran_getcap(9E) routine, as well as the means to change the value of the lun_reset capability in its tran_getcap(9E) routine.
1
0
Writing Device Drivers
August 17, 2005 | OmniOS |