1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _SCSI_SCSI_DBG_H 3 #define _SCSI_SCSI_DBG_H 4 5 struct scsi_cmnd; 6 struct scsi_device; 7 struct scsi_sense_hdr; 8 9 extern void scsi_print_command(struct scsi_cmnd *); 10 extern size_t __scsi_format_command(char *, size_t, 11 const unsigned char *, size_t); 12 extern void scsi_print_sense_hdr(const struct scsi_device *, const char *, 13 const struct scsi_sense_hdr *); 14 extern void scsi_print_sense(const struct scsi_cmnd *); 15 extern void __scsi_print_sense(const struct scsi_device *, const char *name, 16 const unsigned char *sense_buffer, 17 int sense_len); 18 extern void scsi_print_result(const struct scsi_cmnd *, const char *, int); 19 20 #ifdef CONFIG_SCSI_CONSTANTS 21 extern bool scsi_opcode_sa_name(int, int, const char **, const char **); 22 extern const char *scsi_sense_key_string(unsigned char); 23 extern const char *scsi_extd_sense_format(unsigned char, unsigned char, 24 const char **); 25 extern const char *scsi_mlreturn_string(int); 26 extern const char *scsi_hostbyte_string(int); 27 extern const char *scsi_driverbyte_string(int); 28 #else 29 static inline bool 30 scsi_opcode_sa_name(int cmd, int sa, 31 const char **cdb_name, const char **sa_name) 32 { 33 *cdb_name = NULL; 34 switch (cmd) { 35 case VARIABLE_LENGTH_CMD: 36 case MAINTENANCE_IN: 37 case MAINTENANCE_OUT: 38 case PERSISTENT_RESERVE_IN: 39 case PERSISTENT_RESERVE_OUT: 40 case SERVICE_ACTION_IN_12: 41 case SERVICE_ACTION_OUT_12: 42 case SERVICE_ACTION_BIDIRECTIONAL: 43 case SERVICE_ACTION_IN_16: 44 case SERVICE_ACTION_OUT_16: 45 case EXTENDED_COPY: 46 case RECEIVE_COPY_RESULTS: 47 *sa_name = NULL; 48 return true; 49 default: 50 return false; 51 } 52 } 53 54 static inline const char * 55 scsi_sense_key_string(unsigned char key) 56 { 57 return NULL; 58 } 59 60 static inline const char * 61 scsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt) 62 { 63 *fmt = NULL; 64 return NULL; 65 } 66 67 static inline const char * 68 scsi_mlreturn_string(int result) 69 { 70 return NULL; 71 } 72 73 static inline const char * 74 scsi_hostbyte_string(int result) 75 { 76 return NULL; 77 } 78 79 static inline const char * 80 scsi_driverbyte_string(int result) 81 { 82 return NULL; 83 } 84 85 #endif 86 87 #endif /* _SCSI_SCSI_DBG_H */ 88