X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fscsi%2Fscsi_eh.h;h=2a9add21267d7fddfc4f443b6d5f475eba65b31e;hb=63e14626eddb534ab429e9c2b95d3f7038b596b6;hp=44224ba4dd9065cb89d93a10aa1c7daf95b2f6bd;hpb=541010e4b8921cd781ff02ae68028501457045b6;p=linux-2.6 diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h index 44224ba4dd..2a9add2126 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 + #include struct scsi_device; struct Scsi_Host; @@ -55,27 +57,29 @@ 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 char cmd_len; - unsigned char cmnd[MAX_COMMAND_SIZE]; - - void *buffer; - unsigned bufflen; - unsigned short use_sg; - int resid; - + 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; };