1scsi_status(9S) Data Structures for Drivers scsi_status(9S)
2
3
4
6 scsi_status - SCSI status structure
7
9 #include <sys/scsi/scsi.h>
10
11
13 Solaris DDI specific (Solaris DDI)
14
16 The SCSI-2standard defines a status byte that is normally sent by the
17 target to the initiator during the status phase at the completion of
18 each command.
19
21 uchar sts_scsi2 :1; /* SCSI-2 modifier bit */
22 uchar sts_is :1; /* intermediate status sent */
23 uchar sts_busy :1; /* device busy or reserved */
24 uchar sts_cm :1; /* condition met */
25 ucha sts_chk :1; /* check condition */
26
27
28
29 sts_chk indicates that a contingent allegiance condition has occurred.
30
31
32 sts_cm is returned whenever the requested operation is satisfied
33
34
35 sts_busy indicates that the target is busy. This status is returned
36 whenever a target is unable to accept a command from an otherwise
37 acceptable initiator (that is, no reservation conflicts). The recom‐
38 mended initiator recovery action is to issue the command again later.
39
40
41 sts_is is returned for every successfully completed command in a series
42 of linked commands (except the last command), unless the command is
43 terminated with a check condition status, reservation conflict, or com‐
44 mand terminated status. Note that host bus adapter drivers may not sup‐
45 port linked commands (see scsi_ifsetcap(9F)). If sts_is and sts_busy
46 are both set, then a reservation conflict has occurred.
47
48
49 sts_scsi2 is the SCSI-2 modifier bit. If sts_scsi2 and sts_chk are both
50 set, this indicates a command terminated status. If sts_scsi2 and
51 sts_busy are both set, this indicates that the command queue in the
52 target is full.
53
54
55 For accessing the status as a byte, the following values are appropri‐
56 ate:
57
58 STATUS_GOOD
59
60 This status indicates that the target has successfully completed
61 the command.
62
63
64 STATUS_CHECK
65
66 This status indicates that a contingent allegiance condition has
67 occurred.
68
69
70 STATUS_MET
71
72 This status is returned when the requested operations are satis‐
73 fied.
74
75
76 STATUS_BUSY
77
78 This status indicates that the target is busy.
79
80
81 STATUS_INTERMEDIATE
82
83 This status is returned for every successfully completed command in
84 a series of linked commands.
85
86
87 STATUS_SCSI2
88
89 This is the SCSI-2 modifier bit.
90
91
92 STATUS_INTERMEDIATE_MET
93
94 This status is a combination of STATUS_MET and STATUS_INTERMEDIATE.
95
96
97 STATUS_RESERVATION_CONFLICT
98
99 This status is a combination of STATUS_INTERMEDIATE and STA‐
100 TUS_BUSY, and it is returned whenever an initiator attempts to
101 access a logical unit or an extent within a logical unit is
102 reserved.
103
104
105 STATUS_TERMINATED
106
107 This status is a combination of STATUS_SCSI2 and STATUS_CHECK, and
108 it is returned whenever the target terminates the current I/O
109 process after receiving a terminate I/O process message.
110
111
112 STATUS_QFULL
113
114 This status is a combination of STATUS_SCSI2 and STATUS_BUSY, and
115 it is returned when the command queue in the target is full.
116
117
119 scsi_ifgetcap(9F), scsi_init_pkt(9F), scsi_extended_sense(9S),
120 scsi_pkt(9S)
121
122
123 Writing Device Drivers
124
125
126
127SunOS 5.11 30 Aug 1995 scsi_status(9S)