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