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