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 #else 28 static inline bool 29 scsi_opcode_sa_name(int cmd, int sa, 30 const char **cdb_name, const char **sa_name) 31 { 32 *cdb_name = NULL; 33 switch (cmd) { 34 case VARIABLE_LENGTH_CMD: 35 case MAINTENANCE_IN: 36 case MAINTENANCE_OUT: 37 case PERSISTENT_RESERVE_IN: 38 case PERSISTENT_RESERVE_OUT: 39 case SERVICE_ACTION_IN_12: 40 case SERVICE_ACTION_OUT_12: 41 case SERVICE_ACTION_BIDIRECTIONAL: 42 case SERVICE_ACTION_IN_16: 43 case SERVICE_ACTION_OUT_16: 44 case EXTENDED_COPY: 45 case RECEIVE_COPY_RESULTS: 46 *sa_name = NULL; 47 return true; 48 default: 49 return false; 50 } 51 } 52 53 static inline const char * 54 scsi_sense_key_string(unsigned char key) 55 { 56 return NULL; 57 } 58 59 static inline const char * 60 scsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt) 61 { 62 *fmt = NULL; 63 return NULL; 64 } 65 66 static inline const char * 67 scsi_mlreturn_string(int result) 68 { 69 return NULL; 70 } 71 72 static inline const char * 73 scsi_hostbyte_string(int result) 74 { 75 return NULL; 76 } 77 78 #endif 79 80 #endif /* _SCSI_SCSI_DBG_H */ 81