1 #ifndef ISENSE_H_INCLUDED 2 #define ISENSE_H_INCLUDED 3 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 4 5 #ifdef __KERNEL__ 6 #include <linux/types.h> /* needed for u8, etc. */ 7 #include <linux/string.h> /* needed for strcat */ 8 #include <linux/kernel.h> /* needed for sprintf */ 9 #else 10 #ifndef U_STUFF_DEFINED 11 #define U_STUFF_DEFINED 12 typedef unsigned char u8; 13 typedef unsigned short u16; 14 typedef unsigned int u32; 15 #endif 16 #endif 17 18 #include "scsi3.h" /* needed for all things SCSI */ 19 20 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 21 /* 22 * Defines and typedefs... 23 */ 24 25 #ifdef __KERNEL__ 26 #define PrintF(x) printk x 27 #else 28 #define PrintF(x) printf x 29 #endif 30 31 #ifndef TRUE 32 #define TRUE 1 33 #define FALSE 0 34 #endif 35 36 #define RETRY_STATUS ((int) 1) 37 #define PUT_STATUS ((int) 0) 38 39 /* 40 * A generic structure to hold info about IO request that caused 41 * a Request Sense to be performed, and the resulting Sense Data. 42 */ 43 typedef struct IO_Info 44 { 45 char *DevIDStr; /* String of chars which identifies the device. */ 46 u8 *cdbPtr; /* Pointer (Virtual/Logical addr) to CDB bytes of 47 IO request that caused ContAllegianceCond. */ 48 u8 *sensePtr; /* Pointer (Virtual/Logical addr) to Sense Data 49 returned by Request Sense operation. */ 50 u8 *dataPtr; /* Pointer (Virtual/Logical addr) to Data buffer 51 of IO request caused ContAllegianceCondition. */ 52 u8 *inqPtr; /* Pointer (Virtual/Logical addr) to Inquiry Data for 53 IO *Device* that caused ContAllegianceCondition. */ 54 u8 SCSIStatus; /* SCSI status byte of IO request that caused 55 Contingent Allegiance Condition. */ 56 u8 DoDisplay; /* Shall we display any messages? */ 57 u16 rsvd_align1; 58 u32 ComplCode; /* Four-byte OS-dependent completion code. */ 59 u32 NotifyL; /* Four-byte OS-dependent notification field. */ 60 } IO_Info_t; 61 62 /* 63 * SCSI Additional Sense Code and Additional Sense Code Qualifier table. 64 */ 65 typedef struct ASCQ_Table 66 { 67 u8 ASC; 68 u8 ASCQ; 69 char *DevTypes; 70 char *Description; 71 } ASCQ_Table_t; 72 73 #if 0 74 /* 75 * SCSI Opcodes table. 76 */ 77 typedef struct SCSI_OPS_Table 78 { 79 u8 OpCode; 80 char *DevTypes; 81 char *ScsiCmndStr; 82 } SCSI_OPS_Table_t; 83 #endif 84 85 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 86 /* 87 * Public entry point prototypes 88 */ 89 90 /* in scsiherr.c, needed by mptscsih.c */ 91 extern int mpt_ScsiHost_ErrorReport(IO_Info_t *ioop); 92 93 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 94 #endif 95 96