162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _SCSI_SCSI_DBG_H 362306a36Sopenharmony_ci#define _SCSI_SCSI_DBG_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_cistruct scsi_cmnd; 662306a36Sopenharmony_cistruct scsi_device; 762306a36Sopenharmony_cistruct scsi_sense_hdr; 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciextern void scsi_print_command(struct scsi_cmnd *); 1062306a36Sopenharmony_ciextern size_t __scsi_format_command(char *, size_t, 1162306a36Sopenharmony_ci const unsigned char *, size_t); 1262306a36Sopenharmony_ciextern void scsi_print_sense_hdr(const struct scsi_device *, const char *, 1362306a36Sopenharmony_ci const struct scsi_sense_hdr *); 1462306a36Sopenharmony_ciextern void scsi_print_sense(const struct scsi_cmnd *); 1562306a36Sopenharmony_ciextern void __scsi_print_sense(const struct scsi_device *, const char *name, 1662306a36Sopenharmony_ci const unsigned char *sense_buffer, 1762306a36Sopenharmony_ci int sense_len); 1862306a36Sopenharmony_ciextern void scsi_print_result(const struct scsi_cmnd *, const char *, int); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#ifdef CONFIG_SCSI_CONSTANTS 2162306a36Sopenharmony_ciextern bool scsi_opcode_sa_name(int, int, const char **, const char **); 2262306a36Sopenharmony_ciextern const char *scsi_sense_key_string(unsigned char); 2362306a36Sopenharmony_ciextern const char *scsi_extd_sense_format(unsigned char, unsigned char, 2462306a36Sopenharmony_ci const char **); 2562306a36Sopenharmony_ciextern const char *scsi_mlreturn_string(int); 2662306a36Sopenharmony_ciextern const char *scsi_hostbyte_string(int); 2762306a36Sopenharmony_ciextern const char *scsi_driverbyte_string(int); 2862306a36Sopenharmony_ci#else 2962306a36Sopenharmony_cistatic inline bool 3062306a36Sopenharmony_ciscsi_opcode_sa_name(int cmd, int sa, 3162306a36Sopenharmony_ci const char **cdb_name, const char **sa_name) 3262306a36Sopenharmony_ci{ 3362306a36Sopenharmony_ci *cdb_name = NULL; 3462306a36Sopenharmony_ci switch (cmd) { 3562306a36Sopenharmony_ci case VARIABLE_LENGTH_CMD: 3662306a36Sopenharmony_ci case MAINTENANCE_IN: 3762306a36Sopenharmony_ci case MAINTENANCE_OUT: 3862306a36Sopenharmony_ci case PERSISTENT_RESERVE_IN: 3962306a36Sopenharmony_ci case PERSISTENT_RESERVE_OUT: 4062306a36Sopenharmony_ci case SERVICE_ACTION_IN_12: 4162306a36Sopenharmony_ci case SERVICE_ACTION_OUT_12: 4262306a36Sopenharmony_ci case SERVICE_ACTION_BIDIRECTIONAL: 4362306a36Sopenharmony_ci case SERVICE_ACTION_IN_16: 4462306a36Sopenharmony_ci case SERVICE_ACTION_OUT_16: 4562306a36Sopenharmony_ci case EXTENDED_COPY: 4662306a36Sopenharmony_ci case RECEIVE_COPY_RESULTS: 4762306a36Sopenharmony_ci *sa_name = NULL; 4862306a36Sopenharmony_ci return true; 4962306a36Sopenharmony_ci default: 5062306a36Sopenharmony_ci return false; 5162306a36Sopenharmony_ci } 5262306a36Sopenharmony_ci} 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cistatic inline const char * 5562306a36Sopenharmony_ciscsi_sense_key_string(unsigned char key) 5662306a36Sopenharmony_ci{ 5762306a36Sopenharmony_ci return NULL; 5862306a36Sopenharmony_ci} 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_cistatic inline const char * 6162306a36Sopenharmony_ciscsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt) 6262306a36Sopenharmony_ci{ 6362306a36Sopenharmony_ci *fmt = NULL; 6462306a36Sopenharmony_ci return NULL; 6562306a36Sopenharmony_ci} 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cistatic inline const char * 6862306a36Sopenharmony_ciscsi_mlreturn_string(int result) 6962306a36Sopenharmony_ci{ 7062306a36Sopenharmony_ci return NULL; 7162306a36Sopenharmony_ci} 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_cistatic inline const char * 7462306a36Sopenharmony_ciscsi_hostbyte_string(int result) 7562306a36Sopenharmony_ci{ 7662306a36Sopenharmony_ci return NULL; 7762306a36Sopenharmony_ci} 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_cistatic inline const char * 8062306a36Sopenharmony_ciscsi_driverbyte_string(int result) 8162306a36Sopenharmony_ci{ 8262306a36Sopenharmony_ci return NULL; 8362306a36Sopenharmony_ci} 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#endif 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#endif /* _SCSI_SCSI_DBG_H */ 88