18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _SCSI_SCSI_DBG_H
38c2ecf20Sopenharmony_ci#define _SCSI_SCSI_DBG_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_cistruct scsi_cmnd;
68c2ecf20Sopenharmony_cistruct scsi_device;
78c2ecf20Sopenharmony_cistruct scsi_sense_hdr;
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciextern void scsi_print_command(struct scsi_cmnd *);
108c2ecf20Sopenharmony_ciextern size_t __scsi_format_command(char *, size_t,
118c2ecf20Sopenharmony_ci				   const unsigned char *, size_t);
128c2ecf20Sopenharmony_ciextern void scsi_print_sense_hdr(const struct scsi_device *, const char *,
138c2ecf20Sopenharmony_ci				 const struct scsi_sense_hdr *);
148c2ecf20Sopenharmony_ciextern void scsi_print_sense(const struct scsi_cmnd *);
158c2ecf20Sopenharmony_ciextern void __scsi_print_sense(const struct scsi_device *, const char *name,
168c2ecf20Sopenharmony_ci			       const unsigned char *sense_buffer,
178c2ecf20Sopenharmony_ci			       int sense_len);
188c2ecf20Sopenharmony_ciextern void scsi_print_result(const struct scsi_cmnd *, const char *, int);
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#ifdef CONFIG_SCSI_CONSTANTS
218c2ecf20Sopenharmony_ciextern bool scsi_opcode_sa_name(int, int, const char **, const char **);
228c2ecf20Sopenharmony_ciextern const char *scsi_sense_key_string(unsigned char);
238c2ecf20Sopenharmony_ciextern const char *scsi_extd_sense_format(unsigned char, unsigned char,
248c2ecf20Sopenharmony_ci					  const char **);
258c2ecf20Sopenharmony_ciextern const char *scsi_mlreturn_string(int);
268c2ecf20Sopenharmony_ciextern const char *scsi_hostbyte_string(int);
278c2ecf20Sopenharmony_ciextern const char *scsi_driverbyte_string(int);
288c2ecf20Sopenharmony_ci#else
298c2ecf20Sopenharmony_cistatic inline bool
308c2ecf20Sopenharmony_ciscsi_opcode_sa_name(int cmd, int sa,
318c2ecf20Sopenharmony_ci		    const char **cdb_name, const char **sa_name)
328c2ecf20Sopenharmony_ci{
338c2ecf20Sopenharmony_ci	*cdb_name = NULL;
348c2ecf20Sopenharmony_ci	switch (cmd) {
358c2ecf20Sopenharmony_ci	case VARIABLE_LENGTH_CMD:
368c2ecf20Sopenharmony_ci	case MAINTENANCE_IN:
378c2ecf20Sopenharmony_ci	case MAINTENANCE_OUT:
388c2ecf20Sopenharmony_ci	case PERSISTENT_RESERVE_IN:
398c2ecf20Sopenharmony_ci	case PERSISTENT_RESERVE_OUT:
408c2ecf20Sopenharmony_ci	case SERVICE_ACTION_IN_12:
418c2ecf20Sopenharmony_ci	case SERVICE_ACTION_OUT_12:
428c2ecf20Sopenharmony_ci	case SERVICE_ACTION_BIDIRECTIONAL:
438c2ecf20Sopenharmony_ci	case SERVICE_ACTION_IN_16:
448c2ecf20Sopenharmony_ci	case SERVICE_ACTION_OUT_16:
458c2ecf20Sopenharmony_ci	case EXTENDED_COPY:
468c2ecf20Sopenharmony_ci	case RECEIVE_COPY_RESULTS:
478c2ecf20Sopenharmony_ci		*sa_name = NULL;
488c2ecf20Sopenharmony_ci		return true;
498c2ecf20Sopenharmony_ci	default:
508c2ecf20Sopenharmony_ci		return false;
518c2ecf20Sopenharmony_ci	}
528c2ecf20Sopenharmony_ci}
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_cistatic inline const char *
558c2ecf20Sopenharmony_ciscsi_sense_key_string(unsigned char key)
568c2ecf20Sopenharmony_ci{
578c2ecf20Sopenharmony_ci	return NULL;
588c2ecf20Sopenharmony_ci}
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_cistatic inline const char *
618c2ecf20Sopenharmony_ciscsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt)
628c2ecf20Sopenharmony_ci{
638c2ecf20Sopenharmony_ci	*fmt = NULL;
648c2ecf20Sopenharmony_ci	return NULL;
658c2ecf20Sopenharmony_ci}
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_cistatic inline const char *
688c2ecf20Sopenharmony_ciscsi_mlreturn_string(int result)
698c2ecf20Sopenharmony_ci{
708c2ecf20Sopenharmony_ci	return NULL;
718c2ecf20Sopenharmony_ci}
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_cistatic inline const char *
748c2ecf20Sopenharmony_ciscsi_hostbyte_string(int result)
758c2ecf20Sopenharmony_ci{
768c2ecf20Sopenharmony_ci	return NULL;
778c2ecf20Sopenharmony_ci}
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_cistatic inline const char *
808c2ecf20Sopenharmony_ciscsi_driverbyte_string(int result)
818c2ecf20Sopenharmony_ci{
828c2ecf20Sopenharmony_ci	return NULL;
838c2ecf20Sopenharmony_ci}
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci#endif
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci#endif /* _SCSI_SCSI_DBG_H */
88