xref: /openbmc/linux/drivers/s390/cio/cio_debug.h (revision b24413180f5600bcb3bb70fbed5cf186b60864bd)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef CIO_DEBUG_H
3 #define CIO_DEBUG_H
4 
5 #include <asm/debug.h>
6 
7 /* for use of debug feature */
8 extern debug_info_t *cio_debug_msg_id;
9 extern debug_info_t *cio_debug_trace_id;
10 extern debug_info_t *cio_debug_crw_id;
11 
12 #define CIO_TRACE_EVENT(imp, txt) do {				\
13 		debug_text_event(cio_debug_trace_id, imp, txt); \
14 	} while (0)
15 
16 #define CIO_MSG_EVENT(imp, args...) do {				\
17 		debug_sprintf_event(cio_debug_msg_id, imp , ##args);	\
18 	} while (0)
19 
20 #define CIO_CRW_EVENT(imp, args...) do {				\
21 		debug_sprintf_event(cio_debug_crw_id, imp , ##args);	\
22 	} while (0)
23 
24 static inline void CIO_HEX_EVENT(int level, void *data, int length)
25 {
26 	if (unlikely(!cio_debug_trace_id))
27 		return;
28 	while (length > 0) {
29 		debug_event(cio_debug_trace_id, level, data, length);
30 		length -= cio_debug_trace_id->buf_size;
31 		data += cio_debug_trace_id->buf_size;
32 	}
33 }
34 
35 #endif
36