Merge tag 'nfs-for-5.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[linux-2.6-microblaze.git] / include / scsi / scsi_status.h
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         DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on
66                                     * other paths */
67         DID_NEXUS_FAILURE = 0x11,  /* Permanent nexus failure, retry on other
68                                     * paths might yield different results */
69         DID_ALLOC_FAILURE = 0x12,  /* Space allocation on the device failed */
70         DID_MEDIUM_ERROR = 0x13,  /* Medium error */
71         DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */
72 };
73
74 #endif /* _SCSI_SCSI_STATUS_H */