| 
									
										
										
										
											2021-05-23 19:54:56 -07:00
										 |  |  | /* SPDX-License-Identifier: GPL-2.0 */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _SCSI_SCSI_STATUS_H
 | 
					
						
							|  |  |  | #define _SCSI_SCSI_STATUS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | #include <scsi/scsi_proto.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Message codes. */ | 
					
						
							|  |  |  | enum scsi_msg_byte { | 
					
						
							|  |  |  | 	COMMAND_COMPLETE	= 0x00, | 
					
						
							|  |  |  | 	EXTENDED_MESSAGE	= 0x01, | 
					
						
							|  |  |  | 	SAVE_POINTERS		= 0x02, | 
					
						
							|  |  |  | 	RESTORE_POINTERS	= 0x03, | 
					
						
							|  |  |  | 	DISCONNECT		= 0x04, | 
					
						
							|  |  |  | 	INITIATOR_ERROR		= 0x05, | 
					
						
							|  |  |  | 	ABORT_TASK_SET		= 0x06, | 
					
						
							|  |  |  | 	MESSAGE_REJECT		= 0x07, | 
					
						
							|  |  |  | 	NOP			= 0x08, | 
					
						
							|  |  |  | 	MSG_PARITY_ERROR	= 0x09, | 
					
						
							|  |  |  | 	LINKED_CMD_COMPLETE	= 0x0a, | 
					
						
							|  |  |  | 	LINKED_FLG_CMD_COMPLETE	= 0x0b, | 
					
						
							|  |  |  | 	TARGET_RESET		= 0x0c, | 
					
						
							|  |  |  | 	ABORT_TASK		= 0x0d, | 
					
						
							|  |  |  | 	CLEAR_TASK_SET		= 0x0e, | 
					
						
							|  |  |  | 	INITIATE_RECOVERY	= 0x0f,            /* SCSI-II only */ | 
					
						
							|  |  |  | 	RELEASE_RECOVERY	= 0x10,            /* SCSI-II only */ | 
					
						
							|  |  |  | 	TERMINATE_IO_PROC	= 0x11,            /* SCSI-II only */ | 
					
						
							|  |  |  | 	CLEAR_ACA		= 0x16, | 
					
						
							|  |  |  | 	LOGICAL_UNIT_RESET	= 0x17, | 
					
						
							|  |  |  | 	SIMPLE_QUEUE_TAG	= 0x20, | 
					
						
							|  |  |  | 	HEAD_OF_QUEUE_TAG	= 0x21, | 
					
						
							|  |  |  | 	ORDERED_QUEUE_TAG	= 0x22, | 
					
						
							|  |  |  | 	IGNORE_WIDE_RESIDUE	= 0x23, | 
					
						
							|  |  |  | 	ACA			= 0x24, | 
					
						
							|  |  |  | 	QAS_REQUEST		= 0x55, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* Old SCSI2 names, don't use in new code */ | 
					
						
							|  |  |  | 	BUS_DEVICE_RESET	= TARGET_RESET, | 
					
						
							|  |  |  | 	ABORT			= ABORT_TASK_SET, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Host byte codes. */ | 
					
						
							|  |  |  | enum scsi_host_status { | 
					
						
							|  |  |  | 	DID_OK		= 0x00,	/* NO error                                */ | 
					
						
							|  |  |  | 	DID_NO_CONNECT	= 0x01,	/* Couldn't connect before timeout period  */ | 
					
						
							|  |  |  | 	DID_BUS_BUSY	= 0x02,	/* BUS stayed busy through time out period */ | 
					
						
							|  |  |  | 	DID_TIME_OUT	= 0x03,	/* TIMED OUT for other reason              */ | 
					
						
							|  |  |  | 	DID_BAD_TARGET	= 0x04,	/* BAD target.                             */ | 
					
						
							|  |  |  | 	DID_ABORT	= 0x05,	/* Told to abort for some other reason     */ | 
					
						
							|  |  |  | 	DID_PARITY	= 0x06,	/* Parity error                            */ | 
					
						
							|  |  |  | 	DID_ERROR	= 0x07,	/* Internal error                          */ | 
					
						
							|  |  |  | 	DID_RESET	= 0x08,	/* Reset by somebody.                      */ | 
					
						
							|  |  |  | 	DID_BAD_INTR	= 0x09,	/* Got an interrupt we weren't expecting.  */ | 
					
						
							|  |  |  | 	DID_PASSTHROUGH	= 0x0a,	/* Force command past mid-layer            */ | 
					
						
							|  |  |  | 	DID_SOFT_ERROR	= 0x0b,	/* The low level driver just wish a retry  */ | 
					
						
							|  |  |  | 	DID_IMM_RETRY	= 0x0c,	/* Retry without decrementing retry count  */ | 
					
						
							|  |  |  | 	DID_REQUEUE	= 0x0d,	/* Requeue command (no immediate retry) also
 | 
					
						
							|  |  |  | 				 * without decrementing the retry count	   */ | 
					
						
							|  |  |  | 	DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution
 | 
					
						
							|  |  |  | 					 * and the driver blocked the port to | 
					
						
							|  |  |  | 					 * recover the link. Transport class will | 
					
						
							|  |  |  | 					 * retry or fail IO */ | 
					
						
							|  |  |  | 	DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */ | 
					
						
							| 
									
										
										
										
											2022-08-11 20:00:27 -05:00
										 |  |  | 	/*
 | 
					
						
							|  |  |  | 	 * We used to have DID_TARGET_FAILURE, DID_NEXUS_FAILURE, | 
					
						
							|  |  |  | 	 * DID_ALLOC_FAILURE and DID_MEDIUM_ERROR at 0x10 - 0x13. For compat | 
					
						
							|  |  |  | 	 * with userspace apps that parse the host byte for SG IO, we leave | 
					
						
							|  |  |  | 	 * that block of codes unused and start at 0x14 below. | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2021-05-23 19:54:56 -07:00
										 |  |  | 	DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _SCSI_SCSI_STATUS_H */
 |