xref: /openbmc/linux/include/scsi/scsi_status.h (revision 149d0e48)
1*149d0e48SBart Van Assche /* SPDX-License-Identifier: GPL-2.0 */
2*149d0e48SBart Van Assche 
3*149d0e48SBart Van Assche #ifndef _SCSI_SCSI_STATUS_H
4*149d0e48SBart Van Assche #define _SCSI_SCSI_STATUS_H
5*149d0e48SBart Van Assche 
6*149d0e48SBart Van Assche #include <linux/types.h>
7*149d0e48SBart Van Assche #include <scsi/scsi_proto.h>
8*149d0e48SBart Van Assche 
9*149d0e48SBart Van Assche /* Message codes. */
10*149d0e48SBart Van Assche enum scsi_msg_byte {
11*149d0e48SBart Van Assche 	COMMAND_COMPLETE	= 0x00,
12*149d0e48SBart Van Assche 	EXTENDED_MESSAGE	= 0x01,
13*149d0e48SBart Van Assche 	SAVE_POINTERS		= 0x02,
14*149d0e48SBart Van Assche 	RESTORE_POINTERS	= 0x03,
15*149d0e48SBart Van Assche 	DISCONNECT		= 0x04,
16*149d0e48SBart Van Assche 	INITIATOR_ERROR		= 0x05,
17*149d0e48SBart Van Assche 	ABORT_TASK_SET		= 0x06,
18*149d0e48SBart Van Assche 	MESSAGE_REJECT		= 0x07,
19*149d0e48SBart Van Assche 	NOP			= 0x08,
20*149d0e48SBart Van Assche 	MSG_PARITY_ERROR	= 0x09,
21*149d0e48SBart Van Assche 	LINKED_CMD_COMPLETE	= 0x0a,
22*149d0e48SBart Van Assche 	LINKED_FLG_CMD_COMPLETE	= 0x0b,
23*149d0e48SBart Van Assche 	TARGET_RESET		= 0x0c,
24*149d0e48SBart Van Assche 	ABORT_TASK		= 0x0d,
25*149d0e48SBart Van Assche 	CLEAR_TASK_SET		= 0x0e,
26*149d0e48SBart Van Assche 	INITIATE_RECOVERY	= 0x0f,            /* SCSI-II only */
27*149d0e48SBart Van Assche 	RELEASE_RECOVERY	= 0x10,            /* SCSI-II only */
28*149d0e48SBart Van Assche 	TERMINATE_IO_PROC	= 0x11,            /* SCSI-II only */
29*149d0e48SBart Van Assche 	CLEAR_ACA		= 0x16,
30*149d0e48SBart Van Assche 	LOGICAL_UNIT_RESET	= 0x17,
31*149d0e48SBart Van Assche 	SIMPLE_QUEUE_TAG	= 0x20,
32*149d0e48SBart Van Assche 	HEAD_OF_QUEUE_TAG	= 0x21,
33*149d0e48SBart Van Assche 	ORDERED_QUEUE_TAG	= 0x22,
34*149d0e48SBart Van Assche 	IGNORE_WIDE_RESIDUE	= 0x23,
35*149d0e48SBart Van Assche 	ACA			= 0x24,
36*149d0e48SBart Van Assche 	QAS_REQUEST		= 0x55,
37*149d0e48SBart Van Assche 
38*149d0e48SBart Van Assche 	/* Old SCSI2 names, don't use in new code */
39*149d0e48SBart Van Assche 	BUS_DEVICE_RESET	= TARGET_RESET,
40*149d0e48SBart Van Assche 	ABORT			= ABORT_TASK_SET,
41*149d0e48SBart Van Assche };
42*149d0e48SBart Van Assche 
43*149d0e48SBart Van Assche /* Host byte codes. */
44*149d0e48SBart Van Assche enum scsi_host_status {
45*149d0e48SBart Van Assche 	DID_OK		= 0x00,	/* NO error                                */
46*149d0e48SBart Van Assche 	DID_NO_CONNECT	= 0x01,	/* Couldn't connect before timeout period  */
47*149d0e48SBart Van Assche 	DID_BUS_BUSY	= 0x02,	/* BUS stayed busy through time out period */
48*149d0e48SBart Van Assche 	DID_TIME_OUT	= 0x03,	/* TIMED OUT for other reason              */
49*149d0e48SBart Van Assche 	DID_BAD_TARGET	= 0x04,	/* BAD target.                             */
50*149d0e48SBart Van Assche 	DID_ABORT	= 0x05,	/* Told to abort for some other reason     */
51*149d0e48SBart Van Assche 	DID_PARITY	= 0x06,	/* Parity error                            */
52*149d0e48SBart Van Assche 	DID_ERROR	= 0x07,	/* Internal error                          */
53*149d0e48SBart Van Assche 	DID_RESET	= 0x08,	/* Reset by somebody.                      */
54*149d0e48SBart Van Assche 	DID_BAD_INTR	= 0x09,	/* Got an interrupt we weren't expecting.  */
55*149d0e48SBart Van Assche 	DID_PASSTHROUGH	= 0x0a,	/* Force command past mid-layer            */
56*149d0e48SBart Van Assche 	DID_SOFT_ERROR	= 0x0b,	/* The low level driver just wish a retry  */
57*149d0e48SBart Van Assche 	DID_IMM_RETRY	= 0x0c,	/* Retry without decrementing retry count  */
58*149d0e48SBart Van Assche 	DID_REQUEUE	= 0x0d,	/* Requeue command (no immediate retry) also
59*149d0e48SBart Van Assche 				 * without decrementing the retry count	   */
60*149d0e48SBart Van Assche 	DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution
61*149d0e48SBart Van Assche 					 * and the driver blocked the port to
62*149d0e48SBart Van Assche 					 * recover the link. Transport class will
63*149d0e48SBart Van Assche 					 * retry or fail IO */
64*149d0e48SBart Van Assche 	DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */
65*149d0e48SBart Van Assche 	DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on
66*149d0e48SBart Van Assche 				    * other paths */
67*149d0e48SBart Van Assche 	DID_NEXUS_FAILURE = 0x11,  /* Permanent nexus failure, retry on other
68*149d0e48SBart Van Assche 				    * paths might yield different results */
69*149d0e48SBart Van Assche 	DID_ALLOC_FAILURE = 0x12,  /* Space allocation on the device failed */
70*149d0e48SBart Van Assche 	DID_MEDIUM_ERROR = 0x13,  /* Medium error */
71*149d0e48SBart Van Assche 	DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */
72*149d0e48SBart Van Assche };
73*149d0e48SBart Van Assche 
74*149d0e48SBart Van Assche #endif /* _SCSI_SCSI_STATUS_H */
75