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