|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef _SCSI_SCSI_DBG_H | 
|  | #define _SCSI_SCSI_DBG_H | 
|  |  | 
|  | struct scsi_cmnd; | 
|  | struct scsi_device; | 
|  | struct scsi_sense_hdr; | 
|  |  | 
|  | extern void scsi_print_command(struct scsi_cmnd *); | 
|  | extern size_t __scsi_format_command(char *, size_t, | 
|  | const unsigned char *, size_t); | 
|  | extern void scsi_print_sense_hdr(const struct scsi_device *, const char *, | 
|  | const struct scsi_sense_hdr *); | 
|  | extern void scsi_print_sense(const struct scsi_cmnd *); | 
|  | extern void __scsi_print_sense(const struct scsi_device *, const char *name, | 
|  | const unsigned char *sense_buffer, | 
|  | int sense_len); | 
|  | extern void scsi_print_result(const struct scsi_cmnd *, const char *, int); | 
|  |  | 
|  | #ifdef CONFIG_SCSI_CONSTANTS | 
|  | extern bool scsi_opcode_sa_name(int, int, const char **, const char **); | 
|  | extern const char *scsi_sense_key_string(unsigned char); | 
|  | extern const char *scsi_extd_sense_format(unsigned char, unsigned char, | 
|  | const char **); | 
|  | extern const char *scsi_mlreturn_string(int); | 
|  | extern const char *scsi_hostbyte_string(int); | 
|  | extern const char *scsi_driverbyte_string(int); | 
|  | #else | 
|  | static inline bool | 
|  | scsi_opcode_sa_name(int cmd, int sa, | 
|  | const char **cdb_name, const char **sa_name) | 
|  | { | 
|  | *cdb_name = NULL; | 
|  | switch (cmd) { | 
|  | case VARIABLE_LENGTH_CMD: | 
|  | case MAINTENANCE_IN: | 
|  | case MAINTENANCE_OUT: | 
|  | case PERSISTENT_RESERVE_IN: | 
|  | case PERSISTENT_RESERVE_OUT: | 
|  | case SERVICE_ACTION_IN_12: | 
|  | case SERVICE_ACTION_OUT_12: | 
|  | case SERVICE_ACTION_BIDIRECTIONAL: | 
|  | case SERVICE_ACTION_IN_16: | 
|  | case SERVICE_ACTION_OUT_16: | 
|  | case EXTENDED_COPY: | 
|  | case RECEIVE_COPY_RESULTS: | 
|  | *sa_name = NULL; | 
|  | return true; | 
|  | default: | 
|  | return false; | 
|  | } | 
|  | } | 
|  |  | 
|  | static inline const char * | 
|  | scsi_sense_key_string(unsigned char key) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline const char * | 
|  | scsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt) | 
|  | { | 
|  | *fmt = NULL; | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline const char * | 
|  | scsi_mlreturn_string(int result) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline const char * | 
|  | scsi_hostbyte_string(int result) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline const char * | 
|  | scsi_driverbyte_string(int result) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #endif /* _SCSI_SCSI_DBG_H */ |