162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef CIO_DEBUG_H
362306a36Sopenharmony_ci#define CIO_DEBUG_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <asm/debug.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/* for use of debug feature */
862306a36Sopenharmony_ciextern debug_info_t *cio_debug_msg_id;
962306a36Sopenharmony_ciextern debug_info_t *cio_debug_trace_id;
1062306a36Sopenharmony_ciextern debug_info_t *cio_debug_crw_id;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define CIO_TRACE_EVENT(imp, txt) do {				\
1362306a36Sopenharmony_ci		debug_text_event(cio_debug_trace_id, imp, txt); \
1462306a36Sopenharmony_ci	} while (0)
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define CIO_MSG_EVENT(imp, args...) do {				\
1762306a36Sopenharmony_ci		debug_sprintf_event(cio_debug_msg_id, imp , ##args);	\
1862306a36Sopenharmony_ci	} while (0)
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#define CIO_CRW_EVENT(imp, args...) do {				\
2162306a36Sopenharmony_ci		debug_sprintf_event(cio_debug_crw_id, imp , ##args);	\
2262306a36Sopenharmony_ci	} while (0)
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistatic inline void CIO_HEX_EVENT(int level, void *data, int length)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	debug_event(cio_debug_trace_id, level, data, length);
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci/* For the CIO debugfs related features */
3062306a36Sopenharmony_ciextern struct dentry *cio_debugfs_dir;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#endif
33