isense.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

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