Print this page
OS-61 Need ability for fault injection in mptsas
OS-62 slow io error detector is needed.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/scsi/scsi_pkt.h
          +++ new/usr/src/uts/common/sys/scsi/scsi_pkt.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + *
       25 + * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  24   26   */
  25   27  
  26   28  #ifndef _SYS_SCSI_SCSI_PKT_H
  27   29  #define _SYS_SCSI_SCSI_PKT_H
  28   30  
  29   31  #include <sys/scsi/scsi_types.h>
  30   32  
  31   33  #ifdef  __cplusplus
  32   34  extern "C" {
  33   35  #endif
↓ open down ↓ 65 lines elided ↑ open up ↑
  99  101          off_t   pkt_dma_offset;         /* private */
 100  102          size_t  pkt_dma_len;            /* private */
 101  103          uint_t  pkt_dma_flags;          /* DMA flags */
 102  104          ddi_dma_cookie_t *pkt_cookies;  /* array of DMA cookies */
 103  105  
 104  106          /* private: iff scsi_pkt_allocated_correctly() */
 105  107          int     pkt_path_instance;      /* pHCI transport path */
 106  108  
 107  109          /* stage-temporary: iff scsi_pkt_allocated_correctly() */
 108  110          void    *pkt_stmp;              /* temporary for current pkt stage */
      111 +        hrtime_t pkt_start;
      112 +        hrtime_t pkt_stop;
 109  113  
 110  114  #ifdef  SCSI_SIZE_CLEAN_VERIFY
 111  115          /*
 112  116           * Must be last: Building a driver with-and-without
 113  117           * -DSCSI_SIZE_CLEAN_VERIFY, and checking driver modules for
 114  118           * differences with a tools like 'wsdiff' allows a developer to verify
 115  119           * that their driver has no dependencies on scsi*(9S) size.
 116  120           */
 117  121          int                     i_pkt_pad[8];
 118  122  #endif  /* SCSI_SIZE_CLEAN_VERIFY */
↓ open down ↓ 57 lines elided ↑ open up ↑
 176  180   *   PATH_INSTANCE      Select specific path (pkt_path_instance).
 177  181   *                      We need both a pkt_path_instance field and flag bit so
 178  182   *                      that a retry after a path failure, which sets
 179  183   *                      pkt_path_instance to failed path, does not select the
 180  184   *                      failed path.
 181  185   */
 182  186  #define FLAG_NOQUEUE            0x80000000
 183  187  #define FLAG_PKT_PATH_INSTANCE  0x40000000      /* Tell vhci the path to use */
 184  188  #define FLAG_PKT_COMP_CALLED    0x20000000      /* Set once pkt_comp called */
 185  189  
      190 +/* Extended flags. */
      191 +#define FLAG_PKT_BUSY           0x04000000      /* Reject packet immediately. */
      192 +#define FLAG_PKT_TIMEOUT        0x08000000      /* Timed-out packet. */
      193 +
 186  194  /*
 187  195   * Definitions for the pkt_reason field.
 188  196   */
 189  197  
 190  198  /*
 191  199   * Following defines are generic.
 192  200   */
 193  201  #define CMD_CMPLT       0       /* no transport errors- normal completion */
 194  202  #define CMD_INCOMPLETE  1       /* transport stopped with not normal state */
 195  203  #define CMD_DMA_DERR    2       /* dma direction error occurred */
↓ open down ↓ 92 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX