1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds #ifndef _SCSI_SCSI_DBG_H
31da177e4SLinus Torvalds #define _SCSI_SCSI_DBG_H
41da177e4SLinus Torvalds
51da177e4SLinus Torvalds struct scsi_cmnd;
6d811b848SHannes Reinecke struct scsi_device;
7ea73a9f2SJames Bottomley struct scsi_sense_hdr;
81da177e4SLinus Torvalds
91da177e4SLinus Torvalds extern void scsi_print_command(struct scsi_cmnd *);
109e5ed2a5SHannes Reinecke extern size_t __scsi_format_command(char *, size_t,
119e5ed2a5SHannes Reinecke const unsigned char *, size_t);
12d811b848SHannes Reinecke extern void scsi_print_sense_hdr(const struct scsi_device *, const char *,
13d811b848SHannes Reinecke const struct scsi_sense_hdr *);
14d811b848SHannes Reinecke extern void scsi_print_sense(const struct scsi_cmnd *);
15d811b848SHannes Reinecke extern void __scsi_print_sense(const struct scsi_device *, const char *name,
161da177e4SLinus Torvalds const unsigned char *sense_buffer,
171da177e4SLinus Torvalds int sense_len);
18026f8da8SHannes Reinecke extern void scsi_print_result(const struct scsi_cmnd *, const char *, int);
192dd951ecSHannes Reinecke
202dd951ecSHannes Reinecke #ifdef CONFIG_SCSI_CONSTANTS
212dd951ecSHannes Reinecke extern bool scsi_opcode_sa_name(int, int, const char **, const char **);
221da177e4SLinus Torvalds extern const char *scsi_sense_key_string(unsigned char);
23d811b848SHannes Reinecke extern const char *scsi_extd_sense_format(unsigned char, unsigned char,
24d811b848SHannes Reinecke const char **);
252dd951ecSHannes Reinecke extern const char *scsi_mlreturn_string(int);
262dd951ecSHannes Reinecke extern const char *scsi_hostbyte_string(int);
272dd951ecSHannes Reinecke extern const char *scsi_driverbyte_string(int);
282dd951ecSHannes Reinecke #else
292dd951ecSHannes Reinecke static inline bool
scsi_opcode_sa_name(int cmd,int sa,const char ** cdb_name,const char ** sa_name)302dd951ecSHannes Reinecke scsi_opcode_sa_name(int cmd, int sa,
312dd951ecSHannes Reinecke const char **cdb_name, const char **sa_name)
322dd951ecSHannes Reinecke {
332dd951ecSHannes Reinecke *cdb_name = NULL;
342dd951ecSHannes Reinecke switch (cmd) {
352dd951ecSHannes Reinecke case VARIABLE_LENGTH_CMD:
362dd951ecSHannes Reinecke case MAINTENANCE_IN:
372dd951ecSHannes Reinecke case MAINTENANCE_OUT:
382dd951ecSHannes Reinecke case PERSISTENT_RESERVE_IN:
392dd951ecSHannes Reinecke case PERSISTENT_RESERVE_OUT:
402dd951ecSHannes Reinecke case SERVICE_ACTION_IN_12:
412dd951ecSHannes Reinecke case SERVICE_ACTION_OUT_12:
422dd951ecSHannes Reinecke case SERVICE_ACTION_BIDIRECTIONAL:
432dd951ecSHannes Reinecke case SERVICE_ACTION_IN_16:
442dd951ecSHannes Reinecke case SERVICE_ACTION_OUT_16:
452dd951ecSHannes Reinecke case EXTENDED_COPY:
462dd951ecSHannes Reinecke case RECEIVE_COPY_RESULTS:
472dd951ecSHannes Reinecke *sa_name = NULL;
482dd951ecSHannes Reinecke return true;
492dd951ecSHannes Reinecke default:
502dd951ecSHannes Reinecke return false;
512dd951ecSHannes Reinecke }
522dd951ecSHannes Reinecke }
532dd951ecSHannes Reinecke
542dd951ecSHannes Reinecke static inline const char *
scsi_sense_key_string(unsigned char key)552dd951ecSHannes Reinecke scsi_sense_key_string(unsigned char key)
562dd951ecSHannes Reinecke {
572dd951ecSHannes Reinecke return NULL;
582dd951ecSHannes Reinecke }
592dd951ecSHannes Reinecke
602dd951ecSHannes Reinecke static inline const char *
scsi_extd_sense_format(unsigned char asc,unsigned char ascq,const char ** fmt)612dd951ecSHannes Reinecke scsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt)
622dd951ecSHannes Reinecke {
632dd951ecSHannes Reinecke *fmt = NULL;
642dd951ecSHannes Reinecke return NULL;
652dd951ecSHannes Reinecke }
662dd951ecSHannes Reinecke
672dd951ecSHannes Reinecke static inline const char *
scsi_mlreturn_string(int result)682dd951ecSHannes Reinecke scsi_mlreturn_string(int result)
692dd951ecSHannes Reinecke {
702dd951ecSHannes Reinecke return NULL;
712dd951ecSHannes Reinecke }
722dd951ecSHannes Reinecke
732dd951ecSHannes Reinecke static inline const char *
scsi_hostbyte_string(int result)742dd951ecSHannes Reinecke scsi_hostbyte_string(int result)
752dd951ecSHannes Reinecke {
762dd951ecSHannes Reinecke return NULL;
772dd951ecSHannes Reinecke }
782dd951ecSHannes Reinecke
792dd951ecSHannes Reinecke static inline const char *
scsi_driverbyte_string(int result)802dd951ecSHannes Reinecke scsi_driverbyte_string(int result)
812dd951ecSHannes Reinecke {
822dd951ecSHannes Reinecke return NULL;
832dd951ecSHannes Reinecke }
842dd951ecSHannes Reinecke
852dd951ecSHannes Reinecke #endif
861da177e4SLinus Torvalds
871da177e4SLinus Torvalds #endif /* _SCSI_SCSI_DBG_H */
88