#ifndef DFT_JANK_H #define DFT_JANK_H #include "dft_common.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* * * brief print jank log. CNcomment: 上报事件。CNend * attention \n * NA. * param[in] prio log priority. CNcomment: 日志优先级。 CNend * param[in] tag log tag. CNcomment: 日志tag,头文件jank_tag_constant.h中定义。 CNend * param[in] fmt formate string. CNcomment: 格式字符串。 CNend * param[in] ... variable parameter list. CNcomment: 可变参数列表。 CNend * retval ::SUCCESS success. CNcomment: 成功。 CNend * retval ::FAILURE failure. CNcomment: 失败。 CNend * see \n * NA. */ int dft_jank_print(short prio, short tag, const char *fmt, ...); /* * * brief print jank log. CNcomment: 上报事件。CNend * attention \n * NA. * param[in] prio log priority. CNcomment: 日志优先级。 CNend * param[in] tag log tag. CNcomment: 日志tag,头文件jank_tag_constant.h中定义。 CNend * param[in] ut up time. CNcomment: 自启动后的运行时间。 CNend * param[in] rt real time. CNcomment: 自开机以来的时间。 CNend * param[in] fmt formate string. CNcomment: 格式字符串。 CNend * param[in] ... variable parameter list. CNcomment: 可变参数列表。 CNend * retval ::SUCCESS success. CNcomment: 成功。 CNend * retval ::FAILURE failure. CNcomment: 失败。 CNend * see \n * NA. */ int dft_jank_chgtm_print(short prio, short tag, unsigned long ut, unsigned long rt, const char *fmt, ...); /* * Simplified macro to send a jank log message using the current LOG_TAG. */ #ifndef JLOGD #define JLOGD(tag, ...) ((void)dft_jank_print(DFTEVENT_PRIORITY_DEBUG, tag, __VA_ARGS__)) #endif #ifndef JLOGV #define JLOGV(tag, ...) ((void)dft_jank_print(DFTEVENT_PRIORITY_VERBOSE, tag, __VA_ARGS__)) #endif #ifndef JLOGW #define JLOGW(tag, ...) ((void)dft_jank_print(DFTEVENT_PRIORITY_WARN, tag, __VA_ARGS__)) #endif #ifndef JLOGI #define JLOGI(tag, ...) ((void)dft_jank_print(DFTEVENT_PRIORITY_INFO, tag, __VA_ARGS__)) #endif #ifndef JLOGE #define JLOGE(tag, ...) ((void)dft_jank_print(DFTEVENT_PRIORITY_ERROR, tag, __VA_ARGS__)) #endif #ifndef JLOGD_CHGTM #define JLOGD_CHGTM(tag, ut, rt, ...) ((void)dft_jank_chgtm_print(DFTEVENT_PRIORITY_DEBUG, tag, ut, rt, __VA_ARGS__)) #endif #ifndef CONDITION #define CONDITION(cond) (__builtin_expect((cond) != 0, 0)) #endif #ifndef JLOGD_IF #define JLOGD_IF(cond, tag, ...) \ ((CONDITION(cond)) ? ((void)dft_jank_print(DFTEVENT_PRIORITY_DEBUG, tag, __VA_ARGS__)) : (void)0) #endif #ifndef JLOGV_IF #define JLOGV_IF(cond, tag, ...) \ ((CONDITION(cond)) ? ((void)dft_jank_print(DFTEVENT_PRIORITY_VERBOSE, tag, __VA_ARGS__)) : (void)0) #endif #ifndef JLOGW_IF #define JLOGW_IF(cond, tag, ...) \ ((CONDITION(cond)) ? ((void)dft_jank_print(DFTEVENT_PRIORITY_WARN, tag, __VA_ARGS__)) : (void)0) #endif #ifndef JLOGI_IF #define JLOGI_IF(cond, tag, ...) \ ((CONDITION(cond)) ? ((void)dft_jank_print(DFTEVENT_PRIORITY_INFO, tag, __VA_ARGS__)) : (void)0) #endif #ifndef JLOGE_IF #define JLOGE_IF(cond, tag, ...) \ ((CONDITION(cond)) ? ((void)dft_jank_print(DFTEVENT_PRIORITY_ERROR, tag, __VA_ARGS__)) : (void)0) #endif #ifdef __cplusplus #if __cplusplus } #endif #endif #endif