LCOV - code coverage report
Current view: top level - include/scsi - scsi_eh.h (source / functions) Hit Total Coverage
Test: combined.info Lines: 2 2 100.0 %
Date: 2022-03-28 16:04:14 Functions: 0 0 -
Branches: 3 8 37.5 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0 */
       2                 :            : #ifndef _SCSI_SCSI_EH_H
       3                 :            : #define _SCSI_SCSI_EH_H
       4                 :            : 
       5                 :            : #include <linux/scatterlist.h>
       6                 :            : 
       7                 :            : #include <scsi/scsi_cmnd.h>
       8                 :            : #include <scsi/scsi_common.h>
       9                 :            : struct scsi_device;
      10                 :            : struct Scsi_Host;
      11                 :            : 
      12                 :            : extern void scsi_eh_finish_cmd(struct scsi_cmnd *scmd,
      13                 :            :                                struct list_head *done_q);
      14                 :            : extern void scsi_eh_flush_done_q(struct list_head *done_q);
      15                 :            : extern void scsi_report_bus_reset(struct Scsi_Host *, int);
      16                 :            : extern void scsi_report_device_reset(struct Scsi_Host *, int, int);
      17                 :            : extern int scsi_block_when_processing_errors(struct scsi_device *);
      18                 :            : extern bool scsi_command_normalize_sense(const struct scsi_cmnd *cmd,
      19                 :            :                                          struct scsi_sense_hdr *sshdr);
      20                 :            : extern int scsi_check_sense(struct scsi_cmnd *);
      21                 :            : 
      22                 :        338 : static inline bool scsi_sense_is_deferred(const struct scsi_sense_hdr *sshdr)
      23                 :            : {
      24   [ +  -  +  -  :        676 :         return ((sshdr->response_code >= 0x70) && (sshdr->response_code & 1));
             +  -  -  - ]
      25                 :            : }
      26                 :            : 
      27                 :            : extern bool scsi_get_sense_info_fld(const u8 *sense_buffer, int sb_len,
      28                 :            :                                     u64 *info_out);
      29                 :            : 
      30                 :            : extern int scsi_ioctl_reset(struct scsi_device *, int __user *);
      31                 :            : 
      32                 :            : struct scsi_eh_save {
      33                 :            :         /* saved state */
      34                 :            :         int result;
      35                 :            :         unsigned int resid_len;
      36                 :            :         int eh_eflags;
      37                 :            :         enum dma_data_direction data_direction;
      38                 :            :         unsigned underflow;
      39                 :            :         unsigned char cmd_len;
      40                 :            :         unsigned char prot_op;
      41                 :            :         unsigned char *cmnd;
      42                 :            :         struct scsi_data_buffer sdb;
      43                 :            :         /* new command support */
      44                 :            :         unsigned char eh_cmnd[BLK_MAX_CDB];
      45                 :            :         struct scatterlist sense_sgl;
      46                 :            : };
      47                 :            : 
      48                 :            : extern void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd,
      49                 :            :                 struct scsi_eh_save *ses, unsigned char *cmnd,
      50                 :            :                 int cmnd_size, unsigned sense_bytes);
      51                 :            : 
      52                 :            : extern void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd,
      53                 :            :                 struct scsi_eh_save *ses);
      54                 :            : 
      55                 :            : #endif /* _SCSI_SCSI_EH_H */

Generated by: LCOV version 1.14