2021-05-24 02:54:56 +00: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-12 01:00:27 +00: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-24 02:54:56 +00:00
|
|
|
DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* _SCSI_SCSI_STATUS_H */
|