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