aboutsummaryrefslogtreecommitdiff
path: root/include/scsi/scsi_eh.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/scsi/scsi_eh.h')
-rw-r--r--include/scsi/scsi_eh.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h
index 44224ba4dd9..06a8790893e 100644
--- a/include/scsi/scsi_eh.h
+++ b/include/scsi/scsi_eh.h
@@ -1,6 +1,8 @@
#ifndef _SCSI_SCSI_EH_H
#define _SCSI_SCSI_EH_H
+#include <linux/scatterlist.h>
+
#include <scsi/scsi_cmnd.h>
struct scsi_device;
struct Scsi_Host;
@@ -55,27 +57,31 @@ extern const u8 * scsi_sense_desc_find(const u8 * sense_buffer, int sb_len,
extern int scsi_get_sense_info_fld(const u8 * sense_buffer, int sb_len,
u64 * info_out);
-
+
+extern void scsi_build_sense_buffer(int desc, u8 *buf, u8 key, u8 asc, u8 ascq);
+
/*
* Reset request from external source
*/
#define SCSI_TRY_RESET_DEVICE 1
#define SCSI_TRY_RESET_BUS 2
#define SCSI_TRY_RESET_HOST 3
+#define SCSI_TRY_RESET_TARGET 4
extern int scsi_reset_provider(struct scsi_device *, int);
struct scsi_eh_save {
+ /* saved state */
int result;
enum dma_data_direction data_direction;
+ unsigned underflow;
unsigned char cmd_len;
- unsigned char cmnd[MAX_COMMAND_SIZE];
-
- void *buffer;
- unsigned bufflen;
- unsigned short use_sg;
- int resid;
-
+ unsigned char prot_op;
+ unsigned char *cmnd;
+ struct scsi_data_buffer sdb;
+ struct request *next_rq;
+ /* new command support */
+ unsigned char eh_cmnd[BLK_MAX_CDB];
struct scatterlist sense_sgl;
};