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