1#ifndef _SCSI_SCSI_DBG_H
2#define _SCSI_SCSI_DBG_H
3
4struct scsi_cmnd;
5struct scsi_device;
6struct scsi_sense_hdr;
7
8#define SCSI_LOG_BUFSIZE 128
9
10extern void scsi_print_command(struct scsi_cmnd *);
11extern size_t __scsi_format_command(char *, size_t,
12				   const unsigned char *, size_t);
13extern void scsi_show_extd_sense(const struct scsi_device *, const char *,
14				 unsigned char, unsigned char);
15extern void scsi_show_sense_hdr(const struct scsi_device *, const char *,
16				const struct scsi_sense_hdr *);
17extern void scsi_print_sense_hdr(const struct scsi_device *, const char *,
18				 const struct scsi_sense_hdr *);
19extern void scsi_print_sense(const struct scsi_cmnd *);
20extern void __scsi_print_sense(const struct scsi_device *, const char *name,
21			       const unsigned char *sense_buffer,
22			       int sense_len);
23extern void scsi_print_result(const struct scsi_cmnd *, const char *, int);
24
25#ifdef CONFIG_SCSI_CONSTANTS
26extern bool scsi_opcode_sa_name(int, int, const char **, const char **);
27extern const char *scsi_sense_key_string(unsigned char);
28extern const char *scsi_extd_sense_format(unsigned char, unsigned char,
29					  const char **);
30extern const char *scsi_mlreturn_string(int);
31extern const char *scsi_hostbyte_string(int);
32extern const char *scsi_driverbyte_string(int);
33#else
34static inline bool
35scsi_opcode_sa_name(int cmd, int sa,
36		    const char **cdb_name, const char **sa_name)
37{
38	*cdb_name = NULL;
39	switch (cmd) {
40	case VARIABLE_LENGTH_CMD:
41	case MAINTENANCE_IN:
42	case MAINTENANCE_OUT:
43	case PERSISTENT_RESERVE_IN:
44	case PERSISTENT_RESERVE_OUT:
45	case SERVICE_ACTION_IN_12:
46	case SERVICE_ACTION_OUT_12:
47	case SERVICE_ACTION_BIDIRECTIONAL:
48	case SERVICE_ACTION_IN_16:
49	case SERVICE_ACTION_OUT_16:
50	case EXTENDED_COPY:
51	case RECEIVE_COPY_RESULTS:
52		*sa_name = NULL;
53		return true;
54	default:
55		return false;
56	}
57}
58
59static inline const char *
60scsi_sense_key_string(unsigned char key)
61{
62	return NULL;
63}
64
65static inline const char *
66scsi_extd_sense_format(unsigned char asc, unsigned char ascq, const char **fmt)
67{
68	*fmt = NULL;
69	return NULL;
70}
71
72static inline const char *
73scsi_mlreturn_string(int result)
74{
75	return NULL;
76}
77
78static inline const char *
79scsi_hostbyte_string(int result)
80{
81	return NULL;
82}
83
84static inline const char *
85scsi_driverbyte_string(int result)
86{
87	return NULL;
88}
89
90#endif
91
92#endif /* _SCSI_SCSI_DBG_H */
93